From 6eed06f7fc01deaf35235d1971bde5858ff4d91d Mon Sep 17 00:00:00 2001
From: Wuzzy <almikes@aol.com>
Date: Sat, 1 Apr 2017 06:51:55 +0200
Subject: [PATCH] Add equivalence code for the snowy dirt blocks

---
 mods/ITEMS/mcl_core/functions.lua           | 11 +++++++----
 mods/ITEMS/mcl_core/nodes.lua               |  7 ++++---
 mods/ITEMS/mcl_dye/init.lua                 |  4 ++--
 mods/ITEMS/mcl_farming/shared_functions.lua |  2 +-
 mods/ITEMS/mcl_mushrooms/small.lua          |  2 +-
 mods/ITEMS/mcl_tools/init.lua               |  2 +-
 6 files changed, 16 insertions(+), 12 deletions(-)

diff --git a/mods/ITEMS/mcl_core/functions.lua b/mods/ITEMS/mcl_core/functions.lua
index 831168cb..d852df19 100644
--- a/mods/ITEMS/mcl_core/functions.lua
+++ b/mods/ITEMS/mcl_core/functions.lua
@@ -261,14 +261,17 @@ function mcl_core.generate_tree(pos, trunk, leaves, typearbre)
 			for dz=0,1 do
 					pos.z = pos.z + dz
 					--> 0
-					if minetest.get_node(pos).name == "mcl_core:dirt_with_grass" 
-					or  minetest.get_node(pos).name == "mcl_core:dirt" then else
+					local name = minetest.get_node(pos).name
+					if name == "mcl_core:dirt_with_grass"
+					or name == "mcl_core:dirt_with_grass_snow"
+					or  name == "mcl_core:dirt" then else
 							return
 					end
 					pos.x = pos.x+1
 					--> 1
-					if minetest.get_node(pos).name == "mcl_core:dirt_with_grass" 
-					or  minetest.get_node(pos).name == "mcl_core:dirt" then else
+					if name == "mcl_core:dirt_with_grass"
+					or name == "mcl_core:dirt_with_grass_snow"
+					or  name == "mcl_core:dirt" then else
 							return
 					end
 					pos.x = pos.x-1
diff --git a/mods/ITEMS/mcl_core/nodes.lua b/mods/ITEMS/mcl_core/nodes.lua
index 6c37f72f..28a434b5 100644
--- a/mods/ITEMS/mcl_core/nodes.lua
+++ b/mods/ITEMS/mcl_core/nodes.lua
@@ -375,7 +375,7 @@ minetest.register_node("mcl_core:dirt_with_grass", {
 	_mcl_hardness = 0.6,
 })
 
-
+-- NOTE: This block is to be considered equivalent to the grass block
 minetest.register_node("mcl_core:dirt_with_grass_snow", {
 	description = "Snowy Grass Block",
 	_doc_items_create_entry = false,
@@ -428,6 +428,7 @@ minetest.register_node("mcl_core:mycelium", {
 	_mcl_hardness = 0.6,
 })
 
+-- NOTE: This block is to be considered equivalent to mycelium
 minetest.register_node("mcl_core:mycelium_snow", {
 	description = "Snowy Mycelium",
 	_doc_items_create_entry = false,
@@ -455,6 +456,7 @@ minetest.register_node("mcl_core:podzol", {
 	_mcl_hardness = 0.6,
 })
 
+-- NOTE: This block is to be considered equivalent to podzol
 minetest.register_node("mcl_core:podzol_snow", {
 	description = "Snowy Podzol",
 	_doc_items_create_entry = false,
@@ -463,12 +465,11 @@ minetest.register_node("mcl_core:podzol_snow", {
 	stack_max = 64,
 	groups = {handy=1,shovely=3, soil=1, soil_sapling=2, soil_sugarcane=1, building_block=1, not_in_creative_inventory=1},
 	drop = 'mcl_core:dirt',
-	sounds = mcl_sounds.node_sound_dirt_defaults(),
+	sounds = mcl_sounds.node_sound_snow_defaults(),
 	_mcl_blast_resistance = 2.5,
 	_mcl_hardness = 0.6,
 })
 
-
 minetest.register_node("mcl_core:dirt", {
 	description = "Dirt",
 	_doc_items_longdesc = "Dirt acts as a soil for a few plants. When in light, it will turn into a grass block eventually.",
diff --git a/mods/ITEMS/mcl_dye/init.lua b/mods/ITEMS/mcl_dye/init.lua
index 886cc18e..a02b7f0a 100644
--- a/mods/ITEMS/mcl_dye/init.lua
+++ b/mods/ITEMS/mcl_dye/init.lua
@@ -158,7 +158,7 @@ mcl_dye.apply_bone_meal = function(pointed_thing)
 		-- Cocoa: Advance by 1 stage
 		mcl_cocoas.grow(pos)
 		return true
-	elseif n.name == "mcl_core:dirt_with_grass" then
+	elseif n.name == "mcl_core:dirt_with_grass" or n.name == "mcl_core:dirt_with_grass_snow" then
 		-- Grass Block: Generate tall grass and random flowers all over the place
 		for i = -2, 3, 1 do
 			for j = -3, 2, 1 do
@@ -167,7 +167,7 @@ mcl_dye.apply_bone_meal = function(pointed_thing)
 				n = minetest.get_node(pos)
 				n2 = minetest.get_node({x=pos.x, y=pos.y-1, z=pos.z})
 
-				if n.name ~= ""  and n.name == "air" and n2.name == "mcl_core:dirt_with_grass" then
+				if n.name ~= "" and n.name == "air" and (n2.name == "mcl_core:dirt_with_grass" or n2.name == "mcl_core:dirt_with_grass_snow") then
 					if math.random(0,5) > 3 then
 						minetest.add_node(pos, {name=plant_tab[math.random(1, #plant_tab)]})
 					else
diff --git a/mods/ITEMS/mcl_farming/shared_functions.lua b/mods/ITEMS/mcl_farming/shared_functions.lua
index 12e66195..cb88b17c 100644
--- a/mods/ITEMS/mcl_farming/shared_functions.lua
+++ b/mods/ITEMS/mcl_farming/shared_functions.lua
@@ -310,7 +310,7 @@ function mcl_farming:add_gourd(full_unconnected_stem, connected_stem_basename, s
 					local floor = minetest.get_node(floorpos)
 					local block = minetest.get_node(blockpos)
 					local soilgroup = minetest.get_item_group(floor.name, "soil")
-					if not ((floor.name=="mcl_core:dirt_with_grass" or floor.name=="mcl_core:dirt" or soilgroup == 2 or soilgroup == 3) and block.name == "air") then
+					if not ((floor.name=="mcl_core:dirt_with_grass" or floor.name=="mcl_core:dirt_with_grass_snow" or floor.name=="mcl_core:dirt" or soilgroup == 2 or soilgroup == 3) and block.name == "air") then
 						table.remove(neighbors, n)
 					end
 				end
diff --git a/mods/ITEMS/mcl_mushrooms/small.lua b/mods/ITEMS/mcl_mushrooms/small.lua
index 4becfd2d..bb49bd39 100644
--- a/mods/ITEMS/mcl_mushrooms/small.lua
+++ b/mods/ITEMS/mcl_mushrooms/small.lua
@@ -42,7 +42,7 @@ local on_place = function(itemstack, placer, pointed_thing)
 	if light and light <= 12 then
 		light_ok = true
 	end
-	if (soil_node.name == "mcl_core:podzol" or soil_node.name == "mcl_core:mycelium") or
+	if (soil_node.name == "mcl_core:podzol" or soil_node.name == "mcl_core:podzol_snow" or soil_node.name == "mcl_core:mycelium" or soil_node == "mcl_core:mycelium_snow") or
 			(light_ok and (soil_def.groups and soil_def.groups.solid and soil_def.groups.opaque)) then
 		local idef = itemstack:get_definition()
 		local success = minetest.item_place_node(itemstack, placer, pointed_thing)
diff --git a/mods/ITEMS/mcl_tools/init.lua b/mods/ITEMS/mcl_tools/init.lua
index 0697baf0..dfa6a5a4 100644
--- a/mods/ITEMS/mcl_tools/init.lua
+++ b/mods/ITEMS/mcl_tools/init.lua
@@ -166,7 +166,7 @@ local make_grass_path = function(itemstack, placer, pointed_thing)
 		end
 	end
 
-	if node.name == "mcl_core:dirt_with_grass" and pointed_thing.above.y == pointed_thing.under.y then
+	if (node.name == "mcl_core:dirt_with_grass" or node.name == "mcl_core:dirt_with_grass_snow") and pointed_thing.above.y == pointed_thing.under.y then
 		local above = table.copy(pointed_thing.under)
 		above.y = above.y + 1
 		if minetest.get_node(above).name == "air" then