mirror of
				https://github.com/Splizard/minetest-mod-snow.git
				synced 2025-10-31 05:45:25 +01:00 
			
		
		
		
	Compare commits
	
		
			14 Commits
		
	
	
		
			master
			...
			73cf3790fa
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 73cf3790fa | |||
| 8dae0a0246 | |||
| db6bf1d1b2 | |||
| afe80c0dc3 | |||
| f51bcd00df | |||
|  | d3ba0dd21c | ||
|  | 3b44907492 | ||
|  | d215ac3fff | ||
|  | 854e10f087 | ||
|  | 794fb251ba | ||
|  | 6120890c5d | ||
|  | d06bec7c52 | ||
|  | df38728f4b | ||
|  | 8f34ce940b | 
| @@ -1,4 +1,5 @@ | |||||||
| default | default | ||||||
|  | christmas_craft? | ||||||
| flowers? | flowers? | ||||||
| stairs? | stairs? | ||||||
| moreblocks? | moreblocks? | ||||||
|   | |||||||
							
								
								
									
										4
									
								
								init.lua
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								init.lua
									
									
									
									
									
								
							| @@ -51,7 +51,7 @@ local load_time_start = minetest.get_us_time() | |||||||
|  |  | ||||||
|  |  | ||||||
| -- Original init.lua File Broken into Smaller Files | -- Original init.lua File Broken into Smaller Files | ||||||
| local srcpath = minetest.get_modpath"snow".."/src/" | local srcpath = minetest.get_modpath("snow").."/src/" | ||||||
| dofile(srcpath.."abms.lua") | dofile(srcpath.."abms.lua") | ||||||
| dofile(srcpath.."aliases.lua") | dofile(srcpath.."aliases.lua") | ||||||
| dofile(srcpath.."crafting.lua") | dofile(srcpath.."crafting.lua") | ||||||
| @@ -203,5 +203,5 @@ local msg = "[snow] loaded after ca. " .. time .. " seconds." | |||||||
| if time > 0.01 then | if time > 0.01 then | ||||||
| 	print(msg) | 	print(msg) | ||||||
| else | else | ||||||
| 	minetest.log("info", msg) | 	minetest.log("action", msg) | ||||||
| end | end | ||||||
|   | |||||||
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								schematics/snow_pine.mts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								schematics/snow_pine.mts
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								schematics/snow_pine_from_sapling.mts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								schematics/snow_pine_from_sapling.mts
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								schematics/snow_xmas_from_sapling.mts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								schematics/snow_xmas_from_sapling.mts
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								schematics/snowy_snow_pine_from_sapling.mts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								schematics/snowy_snow_pine_from_sapling.mts
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								schematics/snowy_snow_xmas_from_sapling.mts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								schematics/snowy_snow_xmas_from_sapling.mts
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										18
									
								
								src/abms.lua
									
									
									
									
									
								
							
							
						
						
									
										18
									
								
								src/abms.lua
									
									
									
									
									
								
							| @@ -2,7 +2,7 @@ | |||||||
| -- light through (sunlight_propagates) or have a light paramtype and | -- light through (sunlight_propagates) or have a light paramtype and | ||||||
| -- liquidtype combination. ~ LazyJ, 2014_03_08 | -- liquidtype combination. ~ LazyJ, 2014_03_08 | ||||||
|  |  | ||||||
| minetest.register_abm({ | --[[minetest.register_abm({ | ||||||
| 	nodenames = {"default:dirt_with_snow"}, | 	nodenames = {"default:dirt_with_snow"}, | ||||||
| 	interval = 2, | 	interval = 2, | ||||||
| 	chance = 20, | 	chance = 20, | ||||||
| @@ -19,7 +19,7 @@ minetest.register_abm({ | |||||||
| 		end | 		end | ||||||
| 	end | 	end | ||||||
| }) | }) | ||||||
|  | ]]-- | ||||||
|  |  | ||||||
|  |  | ||||||
| --Melting | --Melting | ||||||
| @@ -31,7 +31,7 @@ minetest.register_abm({ | |||||||
|  |  | ||||||
| minetest.register_abm({ | minetest.register_abm({ | ||||||
| 	nodenames = {"group:melts"}, | 	nodenames = {"group:melts"}, | ||||||
| 	neighbors = {"group:igniter", "default:torch", "default:furnace_active", "group:hot"}, | 	neighbors = {"group:igniter", "default:torch", "default:torch_wall", "default:furnace_active", "group:hot"}, | ||||||
| 	interval = 10, | 	interval = 10, | ||||||
| 	chance = 2, | 	chance = 2, | ||||||
| 	action = function(pos, node) | 	action = function(pos, node) | ||||||
| @@ -78,6 +78,7 @@ minetest.register_abm({ | |||||||
|  |  | ||||||
| --Freezing | --Freezing | ||||||
| --Water freezes when in contact with snow. | --Water freezes when in contact with snow. | ||||||
|  | --[[ | ||||||
| minetest.register_abm({ | minetest.register_abm({ | ||||||
| 	nodenames = {"default:water_source"}, | 	nodenames = {"default:water_source"}, | ||||||
| 	-- Added "group:icemaker" and snowbrick. ~ LazyJ | 	-- Added "group:icemaker" and snowbrick. ~ LazyJ | ||||||
| @@ -125,7 +126,7 @@ minetest.register_abm({ | |||||||
| 		end | 		end | ||||||
| 	end, | 	end, | ||||||
| }) | }) | ||||||
|  | ]]-- | ||||||
|  |  | ||||||
|  |  | ||||||
| --Spread moss to cobble. | --Spread moss to cobble. | ||||||
| @@ -143,7 +144,7 @@ minetest.register_abm({ | |||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | --[[ | ||||||
| --Grow Pine Saplings | --Grow Pine Saplings | ||||||
| minetest.register_abm({ | minetest.register_abm({ | ||||||
| 	nodenames = {"snow:sapling_pine"}, | 	nodenames = {"snow:sapling_pine"}, | ||||||
| @@ -166,7 +167,7 @@ minetest.register_abm({ | |||||||
| 		-- This finds the sapling under the grown tree. ~ LazyJ | 		-- This finds the sapling under the grown tree. ~ LazyJ | ||||||
| 		if minetest.get_node(pos).name == "snow:sapling_pine" then | 		if minetest.get_node(pos).name == "snow:sapling_pine" then | ||||||
| 			   -- This switches the sapling to a tree trunk. ~ LazyJ | 			   -- This switches the sapling to a tree trunk. ~ LazyJ | ||||||
| 			minetest.set_node(pos, {name="default:pinetree"}) | 			minetest.set_node(pos, {name="default:pine_tree"}) | ||||||
| 			   -- This is more for testing but it may be useful info to some admins when | 			   -- This is more for testing but it may be useful info to some admins when | ||||||
| 			   -- grepping the server logs too. ~ LazyJ | 			   -- grepping the server logs too. ~ LazyJ | ||||||
| 			minetest.log("action", "A pine sapling grows into a tree at "..minetest.pos_to_string(pos)) | 			minetest.log("action", "A pine sapling grows into a tree at "..minetest.pos_to_string(pos)) | ||||||
| @@ -176,7 +177,6 @@ minetest.register_abm({ | |||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
| --Grow Christmas Tree Saplings | --Grow Christmas Tree Saplings | ||||||
| minetest.register_abm({ | minetest.register_abm({ | ||||||
| 	nodenames = {"snow:xmas_tree"}, | 	nodenames = {"snow:xmas_tree"}, | ||||||
| @@ -201,10 +201,11 @@ minetest.register_abm({ | |||||||
| 	end | 	end | ||||||
| }) | }) | ||||||
|  |  | ||||||
|  | ]]-- | ||||||
|  |  | ||||||
|  |  | ||||||
| --Backwards Compatability. | --Backwards Compatability. | ||||||
|  | --[[ | ||||||
| minetest.register_abm({ | minetest.register_abm({ | ||||||
| 	nodenames = {"snow:snow1","snow:snow2","snow:snow3","gsnow4","snow:snow5","snow:snow6","snow:snow7","snow:snow8"}, | 	nodenames = {"snow:snow1","snow:snow2","snow:snow3","gsnow4","snow:snow5","snow:snow6","snow:snow7","snow:snow8"}, | ||||||
| 	interval = 1, | 	interval = 1, | ||||||
| @@ -214,3 +215,4 @@ minetest.register_abm({ | |||||||
| 		minetest.set_node_level(pos, 7*(tonumber(node.name:sub(-1)))) | 		minetest.set_node_level(pos, 7*(tonumber(node.name:sub(-1)))) | ||||||
| 	end, | 	end, | ||||||
| }) | }) | ||||||
|  | ]]-- | ||||||
|   | |||||||
| @@ -29,6 +29,7 @@ minetest.register_alias("cobblesnow", "snow:snow_cobble") | |||||||
|  |  | ||||||
| -- To clean up my first stairsplus attempt. | -- To clean up my first stairsplus attempt. | ||||||
| -- Stair | -- Stair | ||||||
|  | --[[ | ||||||
| minetest.register_alias(":default:stair_snowblock", "moreblocks:stair_snowblock") | minetest.register_alias(":default:stair_snowblock", "moreblocks:stair_snowblock") | ||||||
| minetest.register_alias(":default:stair_snowblock_half", "moreblocks:stair_snowblock_half") | minetest.register_alias(":default:stair_snowblock_half", "moreblocks:stair_snowblock_half") | ||||||
| minetest.register_alias(":default:stair_snowblock_right_half", "moreblocks:stair_snowblock_right_half") | minetest.register_alias(":default:stair_snowblock_right_half", "moreblocks:stair_snowblock_right_half") | ||||||
| @@ -102,3 +103,8 @@ minetest.register_alias(":default:micro_ice_4", "moreblocks:micro_ice_4") | |||||||
| minetest.register_alias(":default:micro_ice_12", "moreblocks:micro_ice_12") | minetest.register_alias(":default:micro_ice_12", "moreblocks:micro_ice_12") | ||||||
| minetest.register_alias(":default:micro_ice_14", "moreblocks:micro_ice_14") | minetest.register_alias(":default:micro_ice_14", "moreblocks:micro_ice_14") | ||||||
| minetest.register_alias(":default:micro_ice_15", "moreblocks:micro_ice_15") | minetest.register_alias(":default:micro_ice_15", "moreblocks:micro_ice_15") | ||||||
|  | ]]-- | ||||||
|  | -- If christmas_craft then override his star with this mod one. | ||||||
|  | if minetest.get_modpath("christmas_craft") then | ||||||
|  | 	minetest.register_alias_force("christmas_craft:christmas_star", "snow:star") | ||||||
|  | end | ||||||
|   | |||||||
| @@ -57,7 +57,7 @@ of snowblocks (and then use them to water-grief by melting the snow blocks). | |||||||
|  |  | ||||||
| ~ LazyJ | ~ LazyJ | ||||||
|  |  | ||||||
| --]] | ]]-- | ||||||
|  |  | ||||||
| minetest.register_craft({ | minetest.register_craft({ | ||||||
| 	type = "shapeless", | 	type = "shapeless", | ||||||
| @@ -77,7 +77,7 @@ minetest.register_craft({ | |||||||
| 		"default:snowblock", | 		"default:snowblock", | ||||||
| 		"default:snowblock" | 		"default:snowblock" | ||||||
| 	} | 	} | ||||||
| })]] | })]]-- | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|   | |||||||
| @@ -96,7 +96,7 @@ if snow.enable_snowfall then | |||||||
|  |  | ||||||
| 		for _, player in ipairs(minetest.get_connected_players()) do | 		for _, player in ipairs(minetest.get_connected_players()) do | ||||||
| 			local player_name = player:get_player_name() | 			local player_name = player:get_player_name() | ||||||
| 			local pos_player = player:getpos() | 			local pos_player = player:get_pos() | ||||||
| 			local pposy = math.floor(pos_player.y) + 2 -- Precipitation when swimming | 			local pposy = math.floor(pos_player.y) + 2 -- Precipitation when swimming | ||||||
| 			if pposy >= YLIMIT - 2 then | 			if pposy >= YLIMIT - 2 then | ||||||
| 				local pposx = math.floor(pos_player.x) | 				local pposx = math.floor(pos_player.x) | ||||||
| @@ -107,9 +107,9 @@ if snow.enable_snowfall then | |||||||
| 				local nobj_humid = minetest.get_perlin(np_humid) | 				local nobj_humid = minetest.get_perlin(np_humid) | ||||||
| 				local nobj_prec = minetest.get_perlin(np_prec) | 				local nobj_prec = minetest.get_perlin(np_prec) | ||||||
|  |  | ||||||
| 				local nval_temp = nobj_temp:get2d({x = pposx, y = pposz}) | 				local nval_temp = nobj_temp:get_2d({x = pposx, y = pposz}) | ||||||
| 				local nval_humid = nobj_humid:get2d({x = pposx, y = pposz}) | 				local nval_humid = nobj_humid:get_2d({x = pposx, y = pposz}) | ||||||
| 				local nval_prec = nobj_prec:get2d({x = os.clock() / 60, y = 0}) | 				local nval_prec = nobj_prec:get_2d({x = os.clock() / 60, y = 0}) | ||||||
|  |  | ||||||
| 				-- Biome system: Frozen biomes below heat 35, | 				-- Biome system: Frozen biomes below heat 35, | ||||||
| 				-- deserts below line 14 * t - 95 * h = -1496 | 				-- deserts below line 14 * t - 95 * h = -1496 | ||||||
| @@ -151,14 +151,13 @@ if snow.enable_snowfall then | |||||||
| 								((time - 0.1875) / 0.0521) * difsval) | 								((time - 0.1875) / 0.0521) * difsval) | ||||||
| 						end | 						end | ||||||
| 						-- Set sky to overcast bluish-grey | 						-- Set sky to overcast bluish-grey | ||||||
| 						player:set_sky( | 						player:set_sky({ | ||||||
| 							{r = sval, g = sval, b = sval + 16, a = 255}, | 							base_color = {r = sval, g = sval, b = sval + 16, a = 255}, | ||||||
| 							"plain", | 							type = "plain", | ||||||
| 							{} | 						}) | ||||||
| 						) |  | ||||||
| 					else | 					else | ||||||
| 						-- Reset sky to normal | 						-- Reset sky to normal | ||||||
| 						player:set_sky({}, "regular", {}) | 						player:set_sky({type = "regular"}) | ||||||
| 					end | 					end | ||||||
| 				end | 				end | ||||||
|  |  | ||||||
|   | |||||||
| @@ -12,7 +12,7 @@ saplings grow into trees. --]] | |||||||
|  |  | ||||||
| -- Part 1: To disable the mapgen, add the *starting* comment under this line. | -- Part 1: To disable the mapgen, add the *starting* comment under this line. | ||||||
|  |  | ||||||
| local perlin_scale, nosmooth_rarity | --[[local perlin_scale, nosmooth_rarity | ||||||
| if not snow.disable_mapgen then | if not snow.disable_mapgen then | ||||||
| 	print("[snow] Mapgen enabled!") | 	print("[snow] Mapgen enabled!") | ||||||
|  |  | ||||||
| @@ -59,18 +59,18 @@ if not snow.disable_mapgen then | |||||||
|  |  | ||||||
|  |  | ||||||
| 	--Identify the mapgen. | 	--Identify the mapgen. | ||||||
| 	local mgname = minetest.get_mapgen_setting"mg_name" | 	local mgname = minetest.get_mapgen_setting("mg_name") | ||||||
| 	if not mgname then | 	if not mgname then | ||||||
| 		minetest.log("error", "[MOD] Snow Biomes: WARNING! mapgen could not be identifyed!") | 		minetest.log("error", "[MOD] Snow Biomes: WARNING! mapgen could not be identifyed!") | ||||||
| 	end | 	end | ||||||
| 	local path = minetest.get_modpath"snow" | 	local path = minetest.get_modpath("snow") | ||||||
| 	if mgname == "v7" then | 	if mgname == "v6" then | ||||||
| 		--Load mapgen_v7 compatibility. |  | ||||||
| 		dofile(path.."/src/mapgen_v7.lua") |  | ||||||
| 	else |  | ||||||
| 		--Load mapgen_v6 compatibility. | 		--Load mapgen_v6 compatibility. | ||||||
| 		dofile(path.."/src/mapgen_v6.lua") | 		dofile(path.."/src/mapgen_v6.lua") | ||||||
| 	end | 	else]]-- | ||||||
|  | 		--Load mapgen_v7 compatibility. | ||||||
|  | dofile(minetest.get_modpath("snow").."/src/mapgen_v7.lua") | ||||||
|  | --[[	end | ||||||
| end | end | ||||||
|  |  | ||||||
| -- To complete the commenting-out add the *closing* comment under this line. | -- To complete the commenting-out add the *closing* comment under this line. | ||||||
| @@ -80,7 +80,7 @@ local pine_tree = { | |||||||
| 	axiom="TABff", | 	axiom="TABff", | ||||||
| 	rules_a="[&T+f+ff+ff+ff+f]GA", | 	rules_a="[&T+f+ff+ff+ff+f]GA", | ||||||
| 	rules_b="[&T+f+Gf+Gf+Gf]GB", | 	rules_b="[&T+f+Gf+Gf+Gf]GB", | ||||||
| 	trunk="default:pinetree", | 	trunk="default:pine_tree", | ||||||
| 	leaves="snow:needles", | 	leaves="snow:needles", | ||||||
| 	angle=90, | 	angle=90, | ||||||
| 	iterations=1, | 	iterations=1, | ||||||
| @@ -95,7 +95,7 @@ local xmas_tree = { | |||||||
| 	axiom="TABff", | 	axiom="TABff", | ||||||
| 	rules_a="[&T+f+ff+ff+ff+f]GA", | 	rules_a="[&T+f+ff+ff+ff+f]GA", | ||||||
| 	rules_b="[&T+f+Gf+Gf+Gf]GB", | 	rules_b="[&T+f+Gf+Gf+Gf]GB", | ||||||
| 	trunk="default:pinetree", | 	trunk="default:pine_tree", | ||||||
| 	leaves="snow:needles_decorated", | 	leaves="snow:needles_decorated", | ||||||
| 	angle=90, | 	angle=90, | ||||||
| 	iterations=1, | 	iterations=1, | ||||||
| @@ -198,9 +198,9 @@ function snow.voxelmanip_pine(pos,a,data) | |||||||
| 		data[a:index(pos.x,pos.y+7,pos.z)] = c_snow | 		data[a:index(pos.x,pos.y+7,pos.z)] = c_snow | ||||||
| 	end | 	end | ||||||
| end | end | ||||||
|  | ]]-- | ||||||
| -- treecapitator support | -- treecapitator support | ||||||
| if minetest.global_exists"treecapitator" then | if minetest.global_exists("treecapitator") then | ||||||
| 	treecapitator.register_tree{ | 	treecapitator.register_tree{ | ||||||
| 		trees = {"default:pine_tree"}, | 		trees = {"default:pine_tree"}, | ||||||
| 		leaves = {"snow:needles"}, | 		leaves = {"snow:needles"}, | ||||||
|   | |||||||
| @@ -142,10 +142,10 @@ local function define_contents() | |||||||
| end | end | ||||||
|  |  | ||||||
| local smooth = snow.smooth_biomes | local smooth = snow.smooth_biomes | ||||||
| local smooth_rarity_max = mg.smooth_rarity_max | local smooth_rarity_max = mg.smooth_rarity_max or 0 | ||||||
| local smooth_rarity_min = mg.smooth_rarity_min | local smooth_rarity_min = mg.smooth_rarity_min or 0 | ||||||
| local smooth_rarity_dif = mg.smooth_rarity_dif | local smooth_rarity_dif = mg.smooth_rarity_dif or 0 | ||||||
| local nosmooth_rarity = mg.nosmooth_rarity | local nosmooth_rarity = mg.nosmooth_rarity or 0 | ||||||
|  |  | ||||||
| snow.register_on_configuring(function(name, v) | snow.register_on_configuring(function(name, v) | ||||||
| 	if name == "debug" then | 	if name == "debug" then | ||||||
| @@ -201,12 +201,12 @@ minetest.register_on_generated(function(minp, maxp, seed) | |||||||
| 		define_contents() | 		define_contents() | ||||||
| 	end | 	end | ||||||
|  |  | ||||||
| 	local vm, emin, emax = minetest.get_mapgen_object"voxelmanip" | 	local vm, emin, emax = minetest.get_mapgen_object("voxelmanip") | ||||||
| 	local area = VoxelArea:new{MinEdge=emin, MaxEdge=emax} | 	local area = VoxelArea:new{MinEdge=emin, MaxEdge=emax} | ||||||
| 	local data = vm:get_data() | 	local data = vm:get_data() | ||||||
| 	local param2s = vm:get_param2_data() | 	local param2s = vm:get_param2_data() | ||||||
|  |  | ||||||
| 	local heightmap = minetest.get_mapgen_object"heightmap" | 	local heightmap = minetest.get_mapgen_object("heightmap") | ||||||
|  |  | ||||||
| 	local snow_tab,num = {},1 | 	local snow_tab,num = {},1 | ||||||
| 	local pines_tab,pnum = {},1 | 	local pines_tab,pnum = {},1 | ||||||
|   | |||||||
| @@ -1,59 +1,77 @@ | |||||||
| minetest.register_biome({ | --[[minetest.register_biome({ | ||||||
| 	name           = "snow_biome_default", | 	name           = "snow_biome_default", | ||||||
|  | 	node_dust = "default:snow", | ||||||
| 	node_top       = "default:dirt_with_snow", | 	node_top       = "default:dirt_with_snow", | ||||||
| 	depth_top      = 1, | 	depth_top      = 1, | ||||||
| 	node_filler    = "default:dirt", | 	node_filler    = "default:dirt", | ||||||
| 	depth_filler   = 2, | 	depth_filler   = 1, | ||||||
|  | 	node_riverbed = "default:sand", | ||||||
| 	height_min     = snow.min_height, | 	depth_riverbed = 2, | ||||||
| 	height_max     = snow.min_height+60, | 	y_min     = 5, | ||||||
|  | 	y_max     = 31000, | ||||||
| 	heat_point     = 10.0, | 	heat_point     = 10.0, | ||||||
| 	humidity_point = 40.0, | 	humidity_point = 40.0, | ||||||
| }) | }) | ||||||
|  | ]]-- | ||||||
| minetest.register_biome({ | minetest.register_biome({ | ||||||
| 	name           = "snow_biome_forest", | 	name           = "snow_biome_forest", | ||||||
|  | 	node_dust = "default:snow", | ||||||
| 	node_top       = "default:dirt_with_snow", | 	node_top       = "default:dirt_with_snow", | ||||||
| 	depth_top      = 1, | 	depth_top      = 1, | ||||||
| 	node_filler    = "default:dirt", | 	node_filler    = "default:dirt", | ||||||
| 	depth_filler   = 2, | 	depth_filler   = 2, | ||||||
|  | 	node_riverbed = "default:sand", | ||||||
|  | 	depth_riverbed = 2, | ||||||
|  | 	y_min     = 2, | ||||||
|  | 	y_max     = 31000, | ||||||
|  | 	heat_point     = 20.0, | ||||||
|  | 	humidity_point = 70.0, | ||||||
|  | }) | ||||||
|  |  | ||||||
| 	height_min     = snow.min_height, | minetest.register_biome({ | ||||||
| 	height_max     = snow.min_height+60, | 	name = "pine_forest", | ||||||
| 	heat_point     = 10.0, | 	node_top = "default:dirt_with_grass", | ||||||
| 	humidity_point = 55.0, | 	depth_top = 1, | ||||||
|  | 	node_filler = "default:dirt", | ||||||
|  | 	depth_filler = 3, | ||||||
|  | 	node_riverbed = "default:sand", | ||||||
|  | 	depth_riverbed = 2, | ||||||
|  | 	y_min = 60, | ||||||
|  | 	y_max = 31000, | ||||||
|  | 	heat_point = 40, | ||||||
|  | 	humidity_point = 68, | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_biome({ | minetest.register_biome({ | ||||||
| 	name           = "snow_biome_lush", | 	name           = "snow_biome_lush", | ||||||
|  | 	node_dust = "default:snow", | ||||||
| 	node_top       = "default:dirt_with_snow", | 	node_top       = "default:dirt_with_snow", | ||||||
| 	depth_top      = 1, | 	depth_top      = 1, | ||||||
| 	node_filler    = "default:dirt", | 	node_filler    = "default:dirt", | ||||||
| 	depth_filler   = 2, | 	depth_filler   = 2, | ||||||
|  | 	node_riverbed = "default:sand", | ||||||
| 	height_min     = snow.min_height, | 	depth_riverbed = 2, | ||||||
| 	height_max     = snow.min_height+60, | 	y_min     = 2, | ||||||
|  | 	y_max     = 31000, | ||||||
| 	heat_point     = 10.0, | 	heat_point     = 10.0, | ||||||
| 	humidity_point = 70.0, | 	humidity_point = 70.0, | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_biome({ | minetest.register_biome({ | ||||||
| 	name           = "snow_biome_alpine", | 	name           = "snow_biome_alpine", | ||||||
|  | 	node_dust = "default:snow", | ||||||
| 	node_top       = "default:stone", | 	node_top       = "default:dirt_with_snow", | ||||||
| 	depth_top      = 1, | 	depth_top      = 1, | ||||||
| 	node_filler    = "default:stone", | 	node_filler    = "default:stone", | ||||||
|  | 	node_riverbed = "default:gravel", | ||||||
| 	height_min     = snow.min_height+60, | 	depth_riverbed = 2, | ||||||
| 	height_max     = 31000, | 	y_min     = 60, | ||||||
|  | 	y_max     = 31000, | ||||||
| 	heat_point     = 10.0, | 	heat_point     = 10.0, | ||||||
| 	humidity_point = 40.0, | 	humidity_point = 40.0, | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_biome({ | --[[minetest.register_biome({ | ||||||
| 	name           = "snow_biome_sand", | 	name           = "snow_biome_sand", | ||||||
|  |  | ||||||
| 	node_top       = "default:sand", | 	node_top       = "default:sand", | ||||||
| @@ -61,21 +79,51 @@ minetest.register_biome({ | |||||||
| 	node_filler    = "default:stone", | 	node_filler    = "default:stone", | ||||||
| 	depth_filler   = 0, | 	depth_filler   = 0, | ||||||
|  |  | ||||||
| 	height_min     = -31000, | 	y_min     = -2, | ||||||
| 	height_max     = 2, | 	y_max     = 31000, | ||||||
| 	heat_point     = 10.0, | 	heat_point     = 10.0, | ||||||
| 	humidity_point = 40.0, | 	humidity_point = 40.0, | ||||||
| }) | }) | ||||||
|  | ]]-- | ||||||
|  |  | ||||||
| --Pine tree. | --Pine tree. | ||||||
| minetest.register_decoration({ | minetest.register_decoration({ | ||||||
| 	deco_type = "schematic", | 	deco_type = "schematic", | ||||||
| 	place_on = "default:dirt_with_snow", | 	place_on = {"default:dirt_with_snow", "default:dirt_with_grass", "default:dirt_with_coniferous_litter"}, | ||||||
| 	sidelen = 16, | 	sidelen = 16, | ||||||
| 	fill_ratio = 0.005, | 	noise_params = { | ||||||
| 	biomes = {"snow_biome_default"}, | 		offset = -0.004, | ||||||
| 	schematic = minetest.get_modpath("snow").."/schematics/pine.mts", | 		scale = 0.01, | ||||||
|  | 		spread = {x = 100, y = 100, z = 100}, | ||||||
|  | 		seed = 4087, | ||||||
|  | 		octaves = 3, | ||||||
|  | 		persist = 0.7, | ||||||
|  | 	}, | ||||||
|  | 	y_max = 31000, | ||||||
|  | 	y_min = 4, | ||||||
|  | 	biomes = {"snowy_grassland", "coniferous_forest", "taiga", "snow_biome_alpine"}, | ||||||
|  | 	schematic = minetest.get_modpath("snow").."/schematics/snow_pine.mts", | ||||||
|  | 	flags = "place_center_x, place_center_z", | ||||||
|  | }) | ||||||
|  |  | ||||||
|  | minetest.register_decoration({ | ||||||
|  | 	deco_type = "schematic", | ||||||
|  | 	place_on = {"default:dirt_with_snow", "default:dirt_with_grass"}, | ||||||
|  | 	sidelen = 16, | ||||||
|  | 	noise_params = { | ||||||
|  | 		--offset = 0.036, | ||||||
|  | 		offset = 0.020, | ||||||
|  | 		scale = 0.002, | ||||||
|  | 		spread = {x = 250, y = 250, z = 250}, | ||||||
|  | 		seed = 2861, | ||||||
|  | 		octaves = 3, | ||||||
|  | 		persist = 0.66 | ||||||
|  | 	}, | ||||||
|  | --	fill_ratio = 0.0005, | ||||||
|  | 	y_max = 31000, | ||||||
|  | 	y_min = 4, | ||||||
|  | 	biomes = {"snow_biome_forest", "pine_forest"}, | ||||||
|  | 	schematic = minetest.get_modpath("snow").."/schematics/snow_pine.mts", | ||||||
| 	flags = "place_center_x, place_center_z", | 	flags = "place_center_x, place_center_z", | ||||||
| }) | }) | ||||||
|  |  | ||||||
| @@ -84,18 +132,10 @@ minetest.register_decoration({ | |||||||
| 	place_on = "default:dirt_with_snow", | 	place_on = "default:dirt_with_snow", | ||||||
| 	sidelen = 16, | 	sidelen = 16, | ||||||
| 	fill_ratio = 0.05, | 	fill_ratio = 0.05, | ||||||
| 	biomes = {"snow_biome_forest"}, | 	y_max = 31000, | ||||||
| 	schematic = minetest.get_modpath("snow").."/schematics/pine.mts", | 	y_min = 4, | ||||||
| 	flags = "place_center_x, place_center_z", |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| minetest.register_decoration({ |  | ||||||
| 	deco_type = "schematic", |  | ||||||
| 	place_on = "default:dirt_with_snow", |  | ||||||
| 	sidelen = 16, |  | ||||||
| 	fill_ratio = 0.1, |  | ||||||
| 	biomes = {"snow_biome_lush"}, | 	biomes = {"snow_biome_lush"}, | ||||||
| 	schematic = minetest.get_modpath("snow").."/schematics/pine.mts", | 	schematic = minetest.get_modpath("snow").."/schematics/snow_pine.mts", | ||||||
| 	flags = "place_center_x, place_center_z", | 	flags = "place_center_x, place_center_z", | ||||||
| }) | }) | ||||||
|  |  | ||||||
| @@ -104,35 +144,94 @@ minetest.register_decoration({ | |||||||
| 	deco_type = "simple", | 	deco_type = "simple", | ||||||
| 	place_on = "default:dirt_with_snow", | 	place_on = "default:dirt_with_snow", | ||||||
| 	sidelen = 16, | 	sidelen = 16, | ||||||
| 	fill_ratio = 0.005, | 	fill_ratio = 0.001, | ||||||
| 	biomes = {"snow_biome_default"}, | 	y_max = 31000, | ||||||
|  | 	y_min = 1, | ||||||
|  | 	biomes = {"snowy_grassland"}, | ||||||
| 	decoration = "default:dry_shrub", | 	decoration = "default:dry_shrub", | ||||||
| }) | }) | ||||||
|  |  | ||||||
|  | minetest.register_decoration({ | ||||||
|  | 	deco_type = "simple", | ||||||
|  | 	place_on = "default:dirt_with_snow", | ||||||
|  | 	sidelen = 16, | ||||||
|  | 	fill_ratio = 0.01, | ||||||
|  | 	y_max = 31000, | ||||||
|  | 	y_min = 1, | ||||||
|  | 	biomes = {"snow_biome_forest", "snow_biome_lush"}, | ||||||
|  | 	decoration = "default:dry_shrub", | ||||||
|  | }) | ||||||
|  |  | ||||||
|  | --Snow shrubs. | ||||||
|  | minetest.register_decoration({ | ||||||
|  | 	deco_type = "simple", | ||||||
|  | 	place_on = "default:dirt_with_snow", | ||||||
|  | 	sidelen = 16, | ||||||
|  | 	fill_ratio = 0.005, | ||||||
|  | 	y_max = 31000, | ||||||
|  | 	y_min = 1, | ||||||
|  | 	biomes = {"snowy_grassland"}, | ||||||
|  | 	decoration = "snow:shrub_covered", | ||||||
|  | }) | ||||||
|  |  | ||||||
| minetest.register_decoration({ | minetest.register_decoration({ | ||||||
| 	deco_type = "simple", | 	deco_type = "simple", | ||||||
| 	place_on = "default:dirt_with_snow", | 	place_on = "default:dirt_with_snow", | ||||||
| 	sidelen = 16, | 	sidelen = 16, | ||||||
| 	fill_ratio = 0.05, | 	fill_ratio = 0.05, | ||||||
|  | 	y_max = 31000, | ||||||
|  | 	y_min = 1, | ||||||
| 	biomes = {"snow_biome_forest", "snow_biome_lush"}, | 	biomes = {"snow_biome_forest", "snow_biome_lush"}, | ||||||
| 	decoration = "default:dry_shrub", | 	decoration = "snow:shrub_covered", | ||||||
| }) | }) | ||||||
|  |  | ||||||
|  | -- Snow Flowers | ||||||
|  | local function register_flower(seed, name) | ||||||
|  | 	minetest.register_decoration({ | ||||||
|  | 		deco_type = "simple", | ||||||
|  | 		place_on = {"default:dirt_with_snow"}, | ||||||
|  | 		sidelen = 16, | ||||||
|  | 		noise_params = { | ||||||
|  | 			offset = -0.015, | ||||||
|  | 			scale = 0.025, | ||||||
|  | 			spread = {x = 200, y = 200, z = 200}, | ||||||
|  | 			seed = seed, | ||||||
|  | 			octaves = 3, | ||||||
|  | 			persist = 0.6 | ||||||
|  | 		}, | ||||||
|  | 		biomes = {"snow_biome_lush", "snow_biome_forest", "taiga", "snowy_grassland", "tundra"}, | ||||||
|  | 		y_min = 1, | ||||||
|  | 		y_max = 31000, | ||||||
|  | 		decoration = "snow:flower_"..name, | ||||||
|  | 	}) | ||||||
|  | end | ||||||
|  |  | ||||||
|  | register_flower(436,     "rose") | ||||||
|  | register_flower(19822,   "tulip") | ||||||
|  | register_flower(1220999, "dandelion_yellow") | ||||||
|  | register_flower(36662,   "geranium") | ||||||
|  | register_flower(1133,    "viola") | ||||||
|  | register_flower(73133,   "dandelion_white") | ||||||
|  |  | ||||||
| --Snow. | --Snow. | ||||||
| minetest.register_decoration({ | --minetest.register_decoration({ | ||||||
| 	deco_type = "simple", | --	deco_type = "simple", | ||||||
| 	place_on = "default:dirt_with_snow", | --	place_on = "default:dirt_with_snow", | ||||||
| 	sidelen = 16, | --	sidelen = 16, | ||||||
| 	fill_ratio = 10, | --	fill_ratio = 10, | ||||||
| 	biomes = {"snow_biome_default", "snow_biome_forest", "snow_biome_lush"}, | --	y_max = 31000, | ||||||
| 	decoration = "default:snow", | --	y_min = 1, | ||||||
| }) | --	biomes = {"snow_biome_forest", "snow_biome_lush"}, | ||||||
|  | --	decoration = "default:snow", | ||||||
|  | --}) | ||||||
|  |  | ||||||
| minetest.register_decoration({ | --minetest.register_decoration({ | ||||||
| 	deco_type = "simple", | --	deco_type = "simple", | ||||||
| 	place_on = "default:stone", | --	place_on = "default:stone", | ||||||
| 	sidelen = 16, | --	sidelen = 16, | ||||||
| 	fill_ratio = 10, | --	fill_ratio = 10, | ||||||
| 	biomes = {"snow_biome_alpine"}, | --	y_max = 31000, | ||||||
| 	decoration = "default:snow", | --	y_min = 1, | ||||||
| }) | --	biomes = {"snow_biome_alpine"}, | ||||||
|  | --	decoration = "default:snow", | ||||||
|  | --}) | ||||||
|   | |||||||
							
								
								
									
										223
									
								
								src/nodes.lua
									
									
									
									
									
								
							
							
						
						
									
										223
									
								
								src/nodes.lua
									
									
									
									
									
								
							| @@ -1,29 +1,79 @@ | |||||||
| -- NODES | -- NODES | ||||||
|  |  | ||||||
|  | -- Grow sapling | ||||||
|  |  | ||||||
|  | local function grow_pine_tree(pos) | ||||||
|  | 	local path = minetest.get_modpath("snow").."/schematics/snow_pine_from_sapling.mts" | ||||||
|  | 	minetest.place_schematic({x= pos.x -2, y = pos.y - 1, z = pos.z - 2}, path, "0", nil, false) | ||||||
|  | end | ||||||
|  |  | ||||||
|  | local function grow_snowy_pine_tree(pos) | ||||||
|  | 	local path = minetest.get_modpath("snow").."/schematics/snowy_snow_pine_from_sapling.mts" | ||||||
|  | 	minetest.place_schematic({x= pos.x -2, y = pos.y - 1, z = pos.z - 2}, path, "random", nil, false) | ||||||
|  | end | ||||||
|  |  | ||||||
|  | local function grow_xmas_tree(pos) | ||||||
|  | 	local path = minetest.get_modpath("snow").."/schematics/snow_xmas_from_sapling.mts" | ||||||
|  | 	minetest.place_schematic({x= pos.x -2, y = pos.y - 1, z = pos.z - 2}, path, "0", nil, false) | ||||||
|  | end | ||||||
|  |  | ||||||
|  | local function grow_snowy_xmas_tree(pos) | ||||||
|  | 	local path = minetest.get_modpath("snow").."/schematics/snowy_snow_xmas_from_sapling.mts" | ||||||
|  | 	minetest.place_schematic({x= pos.x -2, y = pos.y - 1, z = pos.z - 2}, path, "random", nil, false) | ||||||
|  | end | ||||||
|  |  | ||||||
|  | local function is_snow_nearby(pos) | ||||||
|  | 	return minetest.find_node_near(pos, 1, {"group:snowy"}) | ||||||
|  | end | ||||||
|  |  | ||||||
|  | local function grow_sapling(pos) | ||||||
|  | 	if not default.can_grow(pos) then | ||||||
|  | 		-- try again 5 min later | ||||||
|  | 		minetest.get_node_timer(pos):start(300) | ||||||
|  | 		return | ||||||
|  | 	end | ||||||
|  |  | ||||||
|  | 	local node = minetest.get_node(pos) | ||||||
|  | 	if node.name == "snow:sapling_pine" then | ||||||
|  | 		minetest.log("action", "A Snow Pine sapling grows into a tree at "..minetest.pos_to_string(pos)) | ||||||
|  | 		if is_snow_nearby(pos) then | ||||||
|  | 			grow_snowy_pine_tree(pos) | ||||||
|  | 		else | ||||||
|  | 			grow_pine_tree(pos) | ||||||
|  | 		end | ||||||
|  | 	elseif node.name == "snow:xmas_tree" then | ||||||
|  | 		minetest.log("action", "A Christmas sapling grows into a tree at "..minetest.pos_to_string(pos)) | ||||||
|  | 		if is_snow_nearby(pos) then | ||||||
|  | 			grow_snowy_xmas_tree(pos) | ||||||
|  | 		else | ||||||
|  | 			grow_xmas_tree(pos) | ||||||
|  | 		end | ||||||
|  | 	end | ||||||
|  | end | ||||||
|  |  | ||||||
|  | minetest.register_lbm({ | ||||||
|  | 	name = "snow:convert_saplings_to_node_timer", | ||||||
|  | 	nodenames = {"snow:sapling_pine", "snow:xmas_tree"}, | ||||||
|  | 	action = function(pos) | ||||||
|  | 		minetest.get_node_timer(pos):start(math.random(300, 1500)) | ||||||
|  | 	end | ||||||
|  | }) | ||||||
|  |  | ||||||
| -- Pine Needles | -- Pine Needles | ||||||
| local nodedef = { | local nodedef = table.copy(minetest.registered_nodes["default:pine_needles"]) | ||||||
| 	description = "Pine Needles", | nodedef.description = "Snow Pine Needles" | ||||||
| 	drawtype = "allfaces_optional", | nodedef.drop = { | ||||||
| 	visual_scale = 1.3, | 	max_items = 1, | ||||||
| 	tiles = {"snow_needles.png"}, | 	items = { | ||||||
| 	waving = 1, | 		{ | ||||||
| 	paramtype = "light", | 			-- player will get sapling with 1/20 chance | ||||||
| 	groups = {snappy=3}, | 			items = {'snow:sapling_pine'}, | ||||||
| 	furnace_burntime = 1, | 			rarity = 20, | ||||||
| 	drop = { | 		}, | ||||||
| 		max_items = 1, | 		{ | ||||||
| 		items = { | 			items = {'snow:needles'}, | ||||||
| 			{ |  | ||||||
| 				-- player will get sapling with 1/20 chance |  | ||||||
| 				items = {'snow:sapling_pine'}, |  | ||||||
| 				rarity = 20, |  | ||||||
| 			}, |  | ||||||
| 			{ |  | ||||||
| 				items = {'snow:needles'}, |  | ||||||
| 			} |  | ||||||
| 		} | 		} | ||||||
| 	}, | 	} | ||||||
| 	sounds = default.node_sound_leaves_defaults(), |  | ||||||
| } | } | ||||||
|  |  | ||||||
| --[[ | --[[ | ||||||
| @@ -32,7 +82,7 @@ If christmas_content is enabled, then this next part will override the pine need | |||||||
| The Xmas tree needles are registred and defined a farther down in this nodes.lua file. | The Xmas tree needles are registred and defined a farther down in this nodes.lua file. | ||||||
|  |  | ||||||
| ~ LazyJ | ~ LazyJ | ||||||
| ]] | ]]-- | ||||||
| if snow.christmas_content then | if snow.christmas_content then | ||||||
| 	table.insert(nodedef.drop.items, 1, { | 	table.insert(nodedef.drop.items, 1, { | ||||||
| 		-- player will get xmas tree with 1/120 chance | 		-- player will get xmas tree with 1/120 chance | ||||||
| @@ -43,12 +93,6 @@ end | |||||||
|  |  | ||||||
| minetest.register_node("snow:needles", table.copy(nodedef)) | minetest.register_node("snow:needles", table.copy(nodedef)) | ||||||
|  |  | ||||||
| default.register_leafdecay{ |  | ||||||
| 	trunks = {"default:pine_tree"}, |  | ||||||
| 	leaves = {"snow:needles"}, |  | ||||||
| 	radius = 2, |  | ||||||
| } |  | ||||||
|  |  | ||||||
| snow.register_on_configuring(function(name, v) | snow.register_on_configuring(function(name, v) | ||||||
| 	if name == "christmas_content" then | 	if name == "christmas_content" then | ||||||
| 		local drop = minetest.registered_nodes["snow:needles"].drop | 		local drop = minetest.registered_nodes["snow:needles"].drop | ||||||
| @@ -66,10 +110,10 @@ end) | |||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
| 	-- Christmas egg | -- Christmas egg | ||||||
| 	if minetest.global_exists"skins" then | if minetest.global_exists("skins") then | ||||||
| 		skins.add"character_snow_man" | 	skins.add("character_snow_man") | ||||||
| 	end | end | ||||||
|  |  | ||||||
|  |  | ||||||
| -- Decorated Pine Leaves | -- Decorated Pine Leaves | ||||||
| @@ -90,24 +134,35 @@ else | |||||||
| end | end | ||||||
| nodedef.drop.items[#nodedef.drop.items] = {items = {'snow:needles_decorated'}} | nodedef.drop.items[#nodedef.drop.items] = {items = {'snow:needles_decorated'}} | ||||||
|  |  | ||||||
| minetest.register_node("snow:needles_decorated", nodedef) | minetest.register_node("snow:needles_decorated", table.copy(nodedef)) | ||||||
|  |  | ||||||
|  | -- Leaf decay | ||||||
|  |  | ||||||
|  | default.register_leafdecay{ | ||||||
|  | 	trunks = {"default:pine_tree"}, | ||||||
|  | 	leaves = {"snow:needles", "default:pine_needles", "snow:needles_decorated"}, | ||||||
|  | 	radius = 2, | ||||||
|  | } | ||||||
|  |  | ||||||
| -- Saplings | -- Saplings | ||||||
|  |  | ||||||
| nodedef = { | nodedef = table.copy(minetest.registered_nodes["default:pine_sapling"]) | ||||||
| 	description = "Pine Sapling", | nodedef.description = "Snow Pine Sapling" | ||||||
| 	drawtype = "plantlike", | nodedef.tiles = {"snow_sapling_pine.png"} | ||||||
| 	visual_scale = 1.0, | nodedef.inventory_image = "snow_sapling_pine.png" | ||||||
| 	tiles = {"snow_sapling_pine.png"}, | nodedef.wield_image = "snow_sapling_pine.png" | ||||||
| 	inventory_image = "snow_sapling_pine.png", | nodedef.on_timer = grow_sapling | ||||||
| 	wield_image = "snow_sapling_pine.png", | nodedef.on_place = function(itemstack, placer, pointed_thing) | ||||||
| 	paramtype = "light", | 	itemstack = default.sapling_on_place( | ||||||
| 	walkable = false, | 		itemstack, | ||||||
| 	groups = {snappy=2,dig_immediate=3}, | 		placer, | ||||||
| 	furnace_burntime = 10, | 		pointed_thing, | ||||||
| 	sounds = default.node_sound_defaults(), | 		"snow:sapling_pine", | ||||||
| } | 		{x = -2, y = 1, z = -2}, | ||||||
|  | 		{x = 2, y = 13, z = 2}, | ||||||
|  | 		4) | ||||||
|  | 	return itemstack | ||||||
|  | end | ||||||
|  |  | ||||||
| -- Pine Sapling | -- Pine Sapling | ||||||
| minetest.register_node("snow:sapling_pine", table.copy(nodedef)) | minetest.register_node("snow:sapling_pine", table.copy(nodedef)) | ||||||
| @@ -117,10 +172,21 @@ nodedef.description = "Christmas Tree" | |||||||
| nodedef.tiles = {"snow_xmas_tree.png"} | nodedef.tiles = {"snow_xmas_tree.png"} | ||||||
| nodedef.inventory_image = "snow_xmas_tree.png" | nodedef.inventory_image = "snow_xmas_tree.png" | ||||||
| nodedef.wield_image = "snow_xmas_tree.png" | nodedef.wield_image = "snow_xmas_tree.png" | ||||||
|  | nodedef.on_place = function(itemstack, placer, pointed_thing) | ||||||
|  | 	itemstack = default.sapling_on_place( | ||||||
|  | 		itemstack, | ||||||
|  | 		placer, | ||||||
|  | 		pointed_thing, | ||||||
|  | 		"snow:xmas_tree", | ||||||
|  | 		{x= -2, y = 1, z = -2}, | ||||||
|  | 		{x = 2, y = 14, z = 2}, | ||||||
|  | 		4) | ||||||
|  | 	return itemstack | ||||||
|  | end | ||||||
|  |  | ||||||
| minetest.register_node("snow:xmas_tree", nodedef) | minetest.register_node("snow:xmas_tree", nodedef) | ||||||
|  |  | ||||||
|  | -- Star | ||||||
| nodedef = { | nodedef = { | ||||||
| 	description = "Star", | 	description = "Star", | ||||||
| 	drawtype = "plantlike", | 	drawtype = "plantlike", | ||||||
| @@ -236,7 +302,7 @@ if rawget(_G, "flowers") then | |||||||
| end | end | ||||||
|  |  | ||||||
| -- Leaves | -- Leaves | ||||||
| local leaves = minetest.registered_nodes["default:leaves"] | --[[local leaves = minetest.registered_nodes["default:leaves"] | ||||||
| nodedef = { | nodedef = { | ||||||
| 	description = "Snow Leaves", | 	description = "Snow Leaves", | ||||||
| 	tiles = {"snow_leaves.png"}, | 	tiles = {"snow_leaves.png"}, | ||||||
| @@ -277,10 +343,10 @@ if not snow.disable_mapgen then | |||||||
| 	default.register_leafdecay{ | 	default.register_leafdecay{ | ||||||
| 		trunks = {"default:tree"}, | 		trunks = {"default:tree"}, | ||||||
| 		leaves = {"snow:apple", "snow:leaves"}, | 		leaves = {"snow:apple", "snow:leaves"}, | ||||||
| 		radius = minetest.get_mapgen_setting"mg_name" == "v6" and 2 or 3, | 		radius = minetest.get_mapgen_setting("mg_name") == "v6" and 2 or 3, | ||||||
| 	} | 	} | ||||||
| end | end | ||||||
|  | ]]-- | ||||||
| -- TODO | -- TODO | ||||||
| snow.known_plants[minetest.get_content_id("default:jungleleaves")] = minetest.get_content_id("default:jungleleaves") | snow.known_plants[minetest.get_content_id("default:jungleleaves")] = minetest.get_content_id("default:jungleleaves") | ||||||
|  |  | ||||||
| @@ -291,8 +357,7 @@ local function snow_onto_dirt(pos) | |||||||
| 	local node = minetest.get_node(pos) | 	local node = minetest.get_node(pos) | ||||||
| 	if node.name == "default:dirt_with_grass" | 	if node.name == "default:dirt_with_grass" | ||||||
| 	or node.name == "default:dirt" then | 	or node.name == "default:dirt" then | ||||||
| 		node.name = "default:dirt_with_snow" | 		minetest.set_node(pos, {name = "default:dirt_with_snow"}) | ||||||
| 		minetest.set_node(pos, node) |  | ||||||
| 	end | 	end | ||||||
| end | end | ||||||
|  |  | ||||||
| @@ -312,14 +377,9 @@ nodedef = { | |||||||
| 	-- by player position. ~ LazyJ | 	-- by player position. ~ LazyJ | ||||||
| 	 -- I made this a little harder to dig than snow blocks because | 	 -- I made this a little harder to dig than snow blocks because | ||||||
| 	 -- I imagine snow brick as being much more dense and solid than fluffy snow. ~ LazyJ | 	 -- I imagine snow brick as being much more dense and solid than fluffy snow. ~ LazyJ | ||||||
| 	groups = {cracky=2, crumbly=2, choppy=2, oddly_breakable_by_hand=2, melts=1, icemaker=1, cooks_into_ice=1}, | 	groups = {cracky=2, crumbly=2, choppy=2, oddly_breakable_by_hand=2, melts=1, icemaker=1, cooks_into_ice=1, cools_lava = 1, snowy = 1}, | ||||||
| 	 --Let's use the new snow sounds instead of the old grass sounds. ~ LazyJ | 	 --Let's use the new snow sounds instead of the old grass sounds. ~ LazyJ | ||||||
| 	sounds = default.node_sound_dirt_defaults({ | 	sounds = default.node_sound_snow_defaults(), | ||||||
| 		footstep = {name="default_snow_footstep", gain=0.25}, |  | ||||||
| 		dig = {name="default_dig_crumbly", gain=0.4}, |  | ||||||
| 		dug = {name="default_snow_footstep", gain=0.75}, |  | ||||||
| 		place = {name="default_place_node", gain=1.0} |  | ||||||
| 	}), |  | ||||||
| 	-- The "on_construct" part below, thinking in terms of layers, | 	-- The "on_construct" part below, thinking in terms of layers, | ||||||
| 	-- dirt_with_snow could also double as dirt_with_frost which adds subtlety | 	-- dirt_with_snow could also double as dirt_with_frost which adds subtlety | ||||||
| 	-- to the winterscape. ~ LazyJ | 	-- to the winterscape. ~ LazyJ | ||||||
| @@ -329,17 +389,14 @@ nodedef = { | |||||||
| -- Snow Brick | -- Snow Brick | ||||||
| minetest.register_node("snow:snow_brick", table.copy(nodedef)) | minetest.register_node("snow:snow_brick", table.copy(nodedef)) | ||||||
|  |  | ||||||
|  |  | ||||||
| -- hard Ice Brick, original texture from LazyJ | -- hard Ice Brick, original texture from LazyJ | ||||||
| local ibdef = table.copy(nodedef) | local ibdef = table.copy(nodedef) | ||||||
| ibdef.description = "Ice Brick" | ibdef.description = "Ice Brick" | ||||||
| ibdef.tiles = {"snow_ice_brick.png"} | ibdef.tiles = {"snow_ice_brick.png"} | ||||||
| ibdef.use_texture_alpha = true | ibdef.use_texture_alpha = "blend" | ||||||
| ibdef.drawtype = "glasslike" | ibdef.drawtype = "glasslike" | ||||||
| ibdef.groups = {cracky=1, crumbly=1, choppy=1, melts=1} | ibdef.groups = {cracky=1, crumbly=1, choppy=1, melts=1, cools_lava = 1, slippery = 3} | ||||||
| ibdef.sounds = default.node_sound_glass_defaults({ | ibdef.sounds = default.node_sound_ice_defaults() | ||||||
| 	dug = {name="default_hard_footstep", gain=1} |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| minetest.register_node("snow:ice_brick", ibdef) | minetest.register_node("snow:ice_brick", ibdef) | ||||||
|  |  | ||||||
| @@ -351,44 +408,38 @@ nodedef.tiles = {"snow_snow_cobble.png"} | |||||||
|  |  | ||||||
| minetest.register_node("snow:snow_cobble", nodedef) | minetest.register_node("snow:snow_cobble", nodedef) | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
| -- Override Default Nodes to Add Extra Functions | -- Override Default Nodes to Add Extra Functions | ||||||
|  |  | ||||||
|  | local groups = minetest.registered_nodes["default:ice"].groups | ||||||
|  | groups["melt"] = 1 | ||||||
| minetest.override_item("default:ice", { | minetest.override_item("default:ice", { | ||||||
| 	use_texture_alpha = true, |  | ||||||
| 	param2 = 0, --param2 is reserved for how much ice will freezeover. |  | ||||||
| 	sunlight_propagates = true, -- necessary for dirt_with_grass/snow/just dirt ABMs |  | ||||||
| 	drawtype = "glasslike", | 	drawtype = "glasslike", | ||||||
| 	tiles = {"default_ice.png^[brighten"}, | 	use_texture_alpha = "blend", | ||||||
|  | 	param2 = 0,  --param2 is reserved for how much ice will freezeover. | ||||||
|  | 	sunlight_propagates = true,  -- necessary for dirt_with_grass/snow/just dirt ABMs | ||||||
|  | 	tiles = {"snow_ice.png^[brighten"}, | ||||||
| 	liquidtype = "none", | 	liquidtype = "none", | ||||||
| 	 -- I made this a lot harder to dig than snow blocks because ice is much more dense | 	groups = groups, | ||||||
| 	 -- and solid than fluffy snow. ~ LazyJ |  | ||||||
| 	groups = {cracky=2, crumbly=1, choppy=1, --[[oddly_breakable_by_hand=1,]] melts=1}, |  | ||||||
| 	on_construct = snow_onto_dirt, | 	on_construct = snow_onto_dirt, | ||||||
| 	liquids_pointable = true, | 	liquids_pointable = true, | ||||||
| 	--Make ice freeze over when placed by a maximum of 10 blocks. | 	--Make ice freeze over when placed by a maximum of 10 blocks. | ||||||
| 	after_place_node = function(pos) | 	after_place_node = function(pos) | ||||||
| 		minetest.set_node(pos, {name="default:ice", param2=math.random(0,10)}) | 		minetest.set_node(pos, {name="default:ice", param2=math.random(0,10)}) | ||||||
| 	end | 	end, | ||||||
| }) | }) | ||||||
|  |  | ||||||
|  | groups = minetest.registered_nodes["default:snowblock"].groups | ||||||
|  | for g,v in pairs({melts=1, icemaker=1, cooks_into_ice=1, falling_node=1}) do | ||||||
|  | 	groups[g] = v | ||||||
|  | end | ||||||
| minetest.override_item("default:snowblock", { | minetest.override_item("default:snowblock", { | ||||||
| 	-- LazyJ to make dirt below change to dirt_with_snow (see default, nodes.lua, dirt ABM) |  | ||||||
| 	liquidtype = "none", | 	liquidtype = "none", | ||||||
| 	paramtype = "light", | 	paramtype = "light", | ||||||
| 	sunlight_propagates = true, | 	sunlight_propagates = true, | ||||||
| 	 -- Snow blocks should be easy to dig because they are just fluffy snow. ~ LazyJ | 	on_construct = snow_onto_dirt, | ||||||
| 	groups = {cracky=3, crumbly=3, choppy=3, oddly_breakable_by_hand=3, melts=1, | 	groups = groups, | ||||||
| 		icemaker=1, cooks_into_ice=1, falling_node=1}, |  | ||||||
| 	--drop = "snow:snow_cobble", |  | ||||||
| 	on_construct = snow_onto_dirt |  | ||||||
| 		-- Thinking in terms of layers, dirt_with_snow could also double as |  | ||||||
| 		-- dirt_with_frost which adds subtlety to the winterscape. ~ LazyJ, 2014_04_04 |  | ||||||
| }) | }) | ||||||
|  |  | ||||||
|  |  | ||||||
| minetest.override_item("default:snow", { | minetest.override_item("default:snow", { | ||||||
| 	drop = { | 	drop = { | ||||||
| 		max_items = 2, | 		max_items = 2, | ||||||
|   | |||||||
| @@ -6,13 +6,13 @@ | |||||||
| -- Quite a bit of trial-and-error learning here and it boiled down to a | -- Quite a bit of trial-and-error learning here and it boiled down to a | ||||||
| -- small handful of code lines making the difference. ~ LazyJ | -- small handful of code lines making the difference. ~ LazyJ | ||||||
|  |  | ||||||
| local creative_mode = minetest.settings:get_bool"creative_mode" | local creative_mode = minetest.settings:get_bool("creative_mode") | ||||||
|  |  | ||||||
|  |  | ||||||
| local snowball_velocity, entity_attack_delay | local snowball_velocity, entity_attack_delay | ||||||
| local function update_snowball_vel(v) | local function update_snowball_vel(v) | ||||||
| 	snowball_velocity = v | 	snowball_velocity = v | ||||||
| 	local walkspeed = tonumber(minetest.settings:get"movement_speed_walk") or 4 | 	local walkspeed = tonumber(minetest.settings:get("movement_speed_walk")) or 4 | ||||||
| 	entity_attack_delay = (walkspeed+1)/v | 	entity_attack_delay = (walkspeed+1)/v | ||||||
| end | end | ||||||
| update_snowball_vel(snow.snowball_velocity) | update_snowball_vel(snow.snowball_velocity) | ||||||
| @@ -27,11 +27,11 @@ snow.register_on_configuring(function(name, v) | |||||||
| end) | end) | ||||||
|  |  | ||||||
| local function get_gravity() | local function get_gravity() | ||||||
| 	local grav = tonumber(minetest.settings:get"movement_gravity") or 9.81 | 	local grav = tonumber(minetest.settings:get("movement_gravity")) or 9.81 | ||||||
| 	return grav*snowball_gravity | 	return grav*snowball_gravity | ||||||
| end | end | ||||||
|  |  | ||||||
| local someone_throwing, just_acitvated | local someone_throwing, just_activated | ||||||
|  |  | ||||||
| --Shoot snowball | --Shoot snowball | ||||||
| function snow.shoot_snowball(item, player) | function snow.shoot_snowball(item, player) | ||||||
| @@ -48,7 +48,7 @@ function snow.shoot_snowball(item, player) | |||||||
| 	if creative_mode then | 	if creative_mode then | ||||||
| 		if not someone_throwing then | 		if not someone_throwing then | ||||||
| 			someone_throwing = true | 			someone_throwing = true | ||||||
| 			just_acitvated = true | 			just_activated = true | ||||||
| 		end | 		end | ||||||
| 		return | 		return | ||||||
| 	end | 	end | ||||||
| @@ -82,12 +82,12 @@ if creative_mode then | |||||||
| 		local timer | 		local timer | ||||||
| 		-- only if one holds left click | 		-- only if one holds left click | ||||||
| 		if someone_throwing | 		if someone_throwing | ||||||
| 		and not just_acitvated then | 		and not just_activated then | ||||||
| 			update_step() | 			update_step() | ||||||
| 			timer = 0.006 | 			timer = 0.006 | ||||||
| 		else | 		else | ||||||
| 			timer = 0.5 | 			timer = 0.5 | ||||||
| 			just_acitvated = false | 			just_activated = false | ||||||
| 		end | 		end | ||||||
| 		minetest.after(timer, do_step) | 		minetest.after(timer, do_step) | ||||||
| 	end | 	end | ||||||
|   | |||||||
| @@ -32,8 +32,8 @@ if minetest.get_modpath("moreblocks") and | |||||||
| 		ice_brick   = false, | 		ice_brick   = false, | ||||||
| 		snow_brick  = true, | 		snow_brick  = true, | ||||||
| 		snow_cobble = true, | 		snow_cobble = true, | ||||||
| 		ice = true, | 		ice = false, | ||||||
| 		snowblock = true, | 		snowblock = false, | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	for mod, nodes in pairs(snow_nodes) do | 	for mod, nodes in pairs(snow_nodes) do | ||||||
| @@ -45,7 +45,11 @@ if minetest.get_modpath("moreblocks") and | |||||||
| 			ndef.groups.icemaker = nil | 			ndef.groups.icemaker = nil | ||||||
| 			ndef.groups.cooks_into_ice = nil | 			ndef.groups.cooks_into_ice = nil | ||||||
| 			ndef.after_place_node = nil | 			ndef.after_place_node = nil | ||||||
|  | 			if string.find(name, "ice") then | ||||||
|  | 				ndef.use_texture_alpha = "blend" | ||||||
|  | 			else | ||||||
|  | 				ndef.use_texture_alpha = "opaque" | ||||||
|  | 			end | ||||||
| 			stairsplus:register_all(mod, name, nodename, ndef) | 			stairsplus:register_all(mod, name, nodename, ndef) | ||||||
|  |  | ||||||
| 			if was_in_stairs[name] then | 			if was_in_stairs[name] then | ||||||
|   | |||||||
| @@ -3,7 +3,7 @@ snow = { | |||||||
| 	snowball_gravity = tonumber(minetest.settings:get("snow_snowball_gravity")) or 0.91, | 	snowball_gravity = tonumber(minetest.settings:get("snow_snowball_gravity")) or 0.91, | ||||||
| 	snowball_velocity = tonumber(minetest.settings:get("snow_snowball_velocity")) or 19, | 	snowball_velocity = tonumber(minetest.settings:get("snow_snowball_velocity")) or 19, | ||||||
| 	sleds = minetest.settings:get_bool("snow_sleds", true), | 	sleds = minetest.settings:get_bool("snow_sleds", true), | ||||||
| 	enable_snowfall = minetest.settings:get_bool("snow_enable_snowfall", true), | 	enable_snowfall = minetest.settings:get_bool("snow_enable_snowfall", false), | ||||||
| 	lighter_snowfall = minetest.settings:get_bool("snow_lighter_snowfall", false), | 	lighter_snowfall = minetest.settings:get_bool("snow_lighter_snowfall", false), | ||||||
| 	debug = minetest.settings:get_bool("snow_debug", false), | 	debug = minetest.settings:get_bool("snow_debug", false), | ||||||
| 	smooth_biomes = minetest.settings:get_bool("snow_smooth_biomes", true), | 	smooth_biomes = minetest.settings:get_bool("snow_smooth_biomes", true), | ||||||
| @@ -12,7 +12,7 @@ snow = { | |||||||
| 	min_height = tonumber(minetest.settings:get("snow_min_height")) or 3, | 	min_height = tonumber(minetest.settings:get("snow_min_height")) or 3, | ||||||
| 	mapgen_rarity = tonumber(minetest.settings:get("snow_mapgen_rarity")) or 18, | 	mapgen_rarity = tonumber(minetest.settings:get("snow_mapgen_rarity")) or 18, | ||||||
| 	mapgen_size = tonumber(minetest.settings:get("snow_mapgen_size")) or 210, | 	mapgen_size = tonumber(minetest.settings:get("snow_mapgen_size")) or 210, | ||||||
| 	disable_mapgen =  minetest.settings:get_bool("snow_disable_mapgen", true), | 	disable_mapgen =  minetest.settings:get_bool("snow_disable_mapgen", false), | ||||||
| } | } | ||||||
|  |  | ||||||
|  |  | ||||||
|   | |||||||
| Before Width: | Height: | Size: 643 B After Width: | Height: | Size: 643 B | 
| Before Width: | Height: | Size: 606 B After Width: | Height: | Size: 606 B | 
		Reference in New Issue
	
	Block a user