Acacia and pine wood. Varying sandline, dunes, dune grass. Lavacooling abm. New appletree
This commit is contained in:
		| @@ -1,4 +1,4 @@ | ||||
| watershed 0.3.8 by paramat | ||||
| watershed 0.3.9 by paramat | ||||
| For latest stable Minetest back to 0.4.8 | ||||
| Depends default bucket | ||||
| Licenses: code WTFPL, textures CC BY-SA | ||||
|   | ||||
| @@ -3,29 +3,30 @@ function watershed_appletree(x, y, z, area, data) | ||||
| 	local c_apple = minetest.get_content_id("default:apple") | ||||
| 	local c_wsappleaf = minetest.get_content_id("watershed:appleleaf") | ||||
| 	for j = -2, 4 do | ||||
| 		if j == 2 or j == 3 then | ||||
| 		if j == 3 or j == 4 then | ||||
| 			for i = -2, 2 do | ||||
| 			for k = -2, 2 do | ||||
| 				local vil = area:index(x + i, y + j + 1, z + k) | ||||
| 				if math.random(48) == 2 then | ||||
| 				local vil = area:index(x + i, y + j, z + k) | ||||
| 				if math.random(64) == 2 then | ||||
| 					data[vil] = c_apple | ||||
| 				elseif math.random(5) ~= 2 then | ||||
| 					data[vil] = c_wsappleaf | ||||
| 				end | ||||
| 			end | ||||
| 			end | ||||
| 		elseif j == 1 or j == 4 then | ||||
| 		elseif j == 2 then | ||||
| 			for i = -1, 1 do | ||||
| 			for k = -1, 1 do | ||||
| 				if math.random(5) ~= 2 then | ||||
| 					local vil = area:index(x + i, y + j + 1, z + k) | ||||
| 					data[vil] = c_wsappleaf | ||||
| 				if math.abs(i) + math.abs(k) == 2 then | ||||
| 					local vit = area:index(x + i, y + j, z + k) | ||||
| 					data[vit] = c_tree | ||||
| 				end | ||||
| 			end | ||||
| 			end | ||||
| 		else | ||||
| 			local vit = area:index(x, y + j, z) | ||||
| 			data[vit] = c_tree | ||||
| 		end | ||||
| 		local vit = area:index(x, y + j, z) | ||||
| 		data[vit] = c_tree | ||||
| 	end | ||||
| end | ||||
|  | ||||
| @@ -345,4 +346,17 @@ minetest.register_abm({ | ||||
| 		minetest.remove_node(pos) | ||||
| 		minetest.place_node(pos, {name="watershed:luxoreon"}) | ||||
| 	end, | ||||
| }) | ||||
|  | ||||
| -- Lava water cooling | ||||
|  | ||||
| minetest.register_abm({ | ||||
| 	nodenames = {"group:lava"}, | ||||
| 	neighbors = {"group:water"}, | ||||
| 	interval = 11, | ||||
| 	chance = 64, | ||||
| 	action = function(pos, node, active_object_count, active_object_count_wider) | ||||
| 		minetest.add_node(pos, {name="default:obsidian"}) | ||||
| 		minetest.sound_play("default_cool_lava", {pos = pos,  gain = 0.25}) | ||||
| 	end, | ||||
| }) | ||||
							
								
								
									
										30
									
								
								init.lua
									
									
									
									
									
								
							
							
						
						
									
										30
									
								
								init.lua
									
									
									
									
									
								
							| @@ -1,16 +1,13 @@ | ||||
| -- watershed 0.3.8 by paramat | ||||
| -- watershed 0.3.9 by paramat | ||||
| -- For latest stable Minetest and back to 0.4.8 | ||||
| -- Depends default bucket | ||||
| -- License: code WTFPL, textures CC BY-SA | ||||
| -- Red cobble texture CC BY-SA by brunob.santos minetestbr.blogspot.com | ||||
|  | ||||
| -- pine, acacia tree trunks | ||||
| -- bugfix spawning function | ||||
| -- temperature / humidity randomness for biome blend | ||||
| -- TODO | ||||
| -- pine wood | ||||
| -- acacia wood | ||||
| -- better appletree design with branches | ||||
| -- acacia, pine wood | ||||
| -- vary sandline, dunes with golden grass | ||||
| -- lavacooling | ||||
| -- new appletree design | ||||
|  | ||||
| -- Parameters | ||||
|  | ||||
| @@ -18,7 +15,9 @@ local YMIN = -33000 -- Approximate base of realm stone | ||||
| local YMAX = 33000 -- Approximate top of atmosphere / mountains / floatlands | ||||
| local TERCEN = -160 -- Terrain 'centre', average seabed level | ||||
| local YWAT = 1 -- Sea surface y | ||||
| local YCLOMIN = 287 -- Minimum height of mod clouds | ||||
| local YSAV = 5 -- Average sandline y, dune grasses above this | ||||
| local SAMP = 3 -- Sandline amplitude | ||||
| local YCLOMIN = 207 -- Minimum height of mod clouds | ||||
| local CLOUDS = true -- Mod clouds? | ||||
|  | ||||
| local TERSCA = 512 -- Vertical terrain scale | ||||
| @@ -56,6 +55,7 @@ local DRYCHA = 169 -- Dry shrub | ||||
| local PAPCHA = 2 -- Papyrus | ||||
| local ACACHA = 529 -- Acacia tree | ||||
| local GOGCHA = 4 -- Golden grass | ||||
| local DUGCHA = 4 -- Dune grass | ||||
|  | ||||
| -- 3D noise for rough terrain | ||||
|  | ||||
| @@ -290,6 +290,7 @@ minetest.register_on_generated(function(minp, maxp, seed) | ||||
| 				local tsand = TSAND * (1 - terblen) | ||||
| 				local tstone = TSTONE * (1 + grad * 0.5) | ||||
| 				local tlava = TLAVA * (1 - n_magma ^ 4 * terblen ^ 16 * 0.5) | ||||
| 				local ysand = YSAV + n_fissure * SAMP + math.random() * 2 | ||||
| 				 | ||||
| 				local nofis = false -- set fissure bool | ||||
| 				if math.abs(n_fissure) > math.sqrt(density) * FISEXP then | ||||
| @@ -410,7 +411,7 @@ minetest.register_on_generated(function(minp, maxp, seed) | ||||
| 					elseif density >= 0 and density < tstone and stable[si] >= 2 then -- fine materials | ||||
| 						if y == YWAT - 2 and math.abs(n_temp) < 0.05 then -- clay | ||||
| 							data[vi] = c_clay | ||||
| 						elseif y <= YWAT + 1 + math.random(2) then -- seabed/beach sand not cut by fissures | ||||
| 						elseif y <= ysand then -- seabed/beach/dune sand not cut by fissures | ||||
| 							data[vi] = c_sand | ||||
| 							under[si] = 10 -- beach/dunes | ||||
| 						elseif densitybase >= tsand + math.random() * 0.003 then -- river sand not cut by fissures | ||||
| @@ -465,7 +466,7 @@ minetest.register_on_generated(function(minp, maxp, seed) | ||||
| 						end | ||||
| 						stable[si] = 0 | ||||
| 						under[si] = 0 | ||||
| 					elseif CLOUDS and y == y1 and y >= YCLOMIN then -- clouds at chunk top | ||||
| 					elseif CLOUDS and y == y1 and y >= YCLOMIN then -- clouds | ||||
| 						local xrq = 16 * math.floor((x - x0) / 16) -- quantise to 16x16 lattice | ||||
| 						local zrq = 16 * math.floor((z - z0) / 16) | ||||
| 						local yrq = 79 | ||||
| @@ -477,7 +478,7 @@ minetest.register_on_generated(function(minp, maxp, seed) | ||||
| 						under[si] = 0 | ||||
| 					else -- possible above surface air node | ||||
| 						if y >= YWAT and under[si] ~= 0 then | ||||
| 							local fnoise = nvals_fissure[nixyz] | ||||
| 							local fnoise = n_fissure -- noise for flower colours | ||||
| 							if under[si] == 1 then | ||||
| 								if math.random(121) == 2 then | ||||
| 									data[viu] = c_snowblock | ||||
| @@ -552,6 +553,11 @@ minetest.register_on_generated(function(minp, maxp, seed) | ||||
| 										data[vi] = c_jungrass | ||||
| 									end | ||||
| 								end | ||||
| 							elseif under[si] == 10 then | ||||
| 								if math.random(DUGCHA) == 2 and y > YSAV  | ||||
| 								and biome >= 4 then | ||||
| 									data[vi] = c_wsgoldengrass | ||||
| 								end | ||||
| 							elseif under[si] == 11 and n_temp > HITET then | ||||
| 								if math.random(PAPCHA) == 2 then | ||||
| 									watershed_papyrus(x, y, z, area, data) | ||||
|   | ||||
							
								
								
									
										28
									
								
								nodes.lua
									
									
									
									
									
								
							
							
						
						
									
										28
									
								
								nodes.lua
									
									
									
									
									
								
							| @@ -216,6 +216,20 @@ minetest.register_node("watershed:light", { | ||||
| 	sounds = default.node_sound_glass_defaults(), | ||||
| }) | ||||
|  | ||||
| minetest.register_node("watershed:acaciawood", { | ||||
| 	description = "WS Acacia Wood Planks", | ||||
| 	tiles = {"watershed_acaciawood.png"}, | ||||
| 	groups = {choppy=2,oddly_breakable_by_hand=2,flammable=3,wood=1}, | ||||
| 	sounds = default.node_sound_wood_defaults(), | ||||
| }) | ||||
|  | ||||
| minetest.register_node("watershed:pinewood", { | ||||
| 	description = "WS Pine Wood Planks", | ||||
| 	tiles = {"watershed_pinewood.png"}, | ||||
| 	groups = {choppy=2,oddly_breakable_by_hand=2,flammable=3,wood=1}, | ||||
| 	sounds = default.node_sound_wood_defaults(), | ||||
| }) | ||||
|  | ||||
| minetest.register_node("watershed:freshwater", { | ||||
| 	description = "WS Fresh Water Source", | ||||
| 	inventory_image = minetest.inventorycube("watershed_freshwater.png"), | ||||
| @@ -389,6 +403,20 @@ minetest.register_craft({ | ||||
|     }, | ||||
| }) | ||||
|  | ||||
| minetest.register_craft({ | ||||
| 	output = "watershed:acaciawood 4", | ||||
| 	recipe = { | ||||
| 		{"watershed:acaciatree"}, | ||||
| 	} | ||||
| }) | ||||
|  | ||||
| minetest.register_craft({ | ||||
| 	output = "watershed:pinewood 4", | ||||
| 	recipe = { | ||||
| 		{"watershed:pinetree"}, | ||||
| 	} | ||||
| }) | ||||
|  | ||||
| -- Buckets | ||||
|  | ||||
| bucket.register_liquid( | ||||
|   | ||||
							
								
								
									
										
											BIN
										
									
								
								textures/watershed_acaciawood.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								textures/watershed_acaciawood.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 364 B | 
							
								
								
									
										
											BIN
										
									
								
								textures/watershed_pinewood.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								textures/watershed_pinewood.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 366 B | 
		Reference in New Issue
	
	Block a user