Imported dryplants and ferns mods and all components of the Undergrowth modpack
							
								
								
									
										5
									
								
								LICENSE
									
									
									
									
									
								
							
							
						
						@@ -1,6 +1,9 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
For the code, Ironzorg's textures, and everything else:  WTFPL
 | 
					For the code, Ironzorg's textures, and everything else:  WTFPL
 | 
				
			||||||
For all of my own textures:  CC-By-SA 3.0
 | 
					
 | 
				
			||||||
 | 
					For Mossmannikin's mods (Ferns, Dryplans, and the components
 | 
				
			||||||
 | 
					from the Undergrowth modpack), and all of my own textures: 
 | 
				
			||||||
 | 
					CC-By-SA 3.0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
----------
 | 
					----------
 | 
				
			||||||
            DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
 | 
					            DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										3
									
								
								along_shore/depends.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,3 @@
 | 
				
			|||||||
 | 
					default
 | 
				
			||||||
 | 
					plants_lib
 | 
				
			||||||
 | 
					flowers_plus?
 | 
				
			||||||
							
								
								
									
										9
									
								
								along_shore/init.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,9 @@
 | 
				
			|||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					local title		= "Along the Shore"
 | 
				
			||||||
 | 
					local version 	= "0.0.4"
 | 
				
			||||||
 | 
					local mname		= "along_shore"
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					print("[Mod] "..title.." ["..version.."] ["..mname.."] Loaded...")
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
							
								
								
									
										
											BIN
										
									
								
								along_shore/textures/along_shore_seaweed_1Darker.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 377 B  | 
							
								
								
									
										30
									
								
								along_shore/textures/credit_textures.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,30 @@
 | 
				
			|||||||
 | 
					-------------------------------------------------------------
 | 
				
			||||||
 | 
					Credit for textures of "along_shore"
 | 
				
			||||||
 | 
					-------------------------------------------------------------
 | 
				
			||||||
 | 
					(If more than one author is listed the names are in alphabetical order)
 | 
				
			||||||
 | 
					----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					FOLDER									TEXTURE							AUTHORS
 | 
				
			||||||
 | 
					----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					../along_shore/textures				    along_shore_seaweed_1Darker.png	Neuromancer, VanessaE
 | 
				
			||||||
 | 
					----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					../along_shore/textures/old            (along_shore_empty.png) 		   (Mossmanikin)
 | 
				
			||||||
 | 
															along_shore_lilypads_1.png		Mossmanikin, Neuromancer
 | 
				
			||||||
 | 
															along_shore_lilypads_2.png		Mossmanikin, Neuromancer
 | 
				
			||||||
 | 
															along_shore_lilypads_3.png		Mossmanikin, Neuromancer
 | 
				
			||||||
 | 
															along_shore_lilypads_4.png		Mossmanikin, Neuromancer
 | 
				
			||||||
 | 
															along_shore_pondscum_1.png		Neuromancer
 | 
				
			||||||
 | 
															along_shore_seaweed_1.png		Neuromancer, VanessaE
 | 
				
			||||||
 | 
															along_shore_seaweed_2.png		Mossmanikin, Neuromancer, VanessaE
 | 
				
			||||||
 | 
															along_shore_seaweed_3.png		Mossmanikin, Neuromancer, VanessaE
 | 
				
			||||||
 | 
															along_shore_seaweed_4.png		Mossmanikin, Neuromancer, VanessaE
 | 
				
			||||||
 | 
															flowers_seaweed.png				Neuromancer, VanessaE
 | 
				
			||||||
 | 
															flowers_waterlily.png			Mossmanikin, VanessaE
 | 
				
			||||||
 | 
															flowers_waterlily_22.5.png		Mossmanikin, VanessaE
 | 
				
			||||||
 | 
															flowers_waterlily_45.png		Mossmanikin, VanessaE
 | 
				
			||||||
 | 
															flowers_waterlily_67.5.png		Mossmanikin, VanessaE
 | 
				
			||||||
 | 
															lillypad3Flower16x.png			Neuromancer	
 | 
				
			||||||
 | 
															LillyPad3x16.png				Neuromancer		
 | 
				
			||||||
 | 
															lillyPad5x16.png				Neuromancer			
 | 
				
			||||||
 | 
															MultiLilly16x.png				Neuromancer
 | 
				
			||||||
 | 
															pondscum16xc.png				Neuromancer
 | 
				
			||||||
 | 
					----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 | 
				
			||||||
							
								
								
									
										
											BIN
										
									
								
								along_shore/textures/old/LillyPad3x16.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 589 B  | 
							
								
								
									
										
											BIN
										
									
								
								along_shore/textures/old/MultiLilly16x.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 462 B  | 
							
								
								
									
										
											BIN
										
									
								
								along_shore/textures/old/along_shore_empty.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 153 B  | 
							
								
								
									
										
											BIN
										
									
								
								along_shore/textures/old/along_shore_lilypads_1.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 499 B  | 
							
								
								
									
										
											BIN
										
									
								
								along_shore/textures/old/along_shore_lilypads_2.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 568 B  | 
							
								
								
									
										
											BIN
										
									
								
								along_shore/textures/old/along_shore_lilypads_3.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 509 B  | 
							
								
								
									
										
											BIN
										
									
								
								along_shore/textures/old/along_shore_lilypads_4.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 347 B  | 
							
								
								
									
										
											BIN
										
									
								
								along_shore/textures/old/along_shore_pondscum_1.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 703 B  | 
							
								
								
									
										
											BIN
										
									
								
								along_shore/textures/old/along_shore_seaweed_1.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 358 B  | 
							
								
								
									
										
											BIN
										
									
								
								along_shore/textures/old/along_shore_seaweed_2.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 364 B  | 
							
								
								
									
										
											BIN
										
									
								
								along_shore/textures/old/along_shore_seaweed_3.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 383 B  | 
							
								
								
									
										
											BIN
										
									
								
								along_shore/textures/old/along_shore_seaweed_4.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 301 B  | 
							
								
								
									
										
											BIN
										
									
								
								along_shore/textures/old/flowers_seaweed.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 358 B  | 
							
								
								
									
										
											BIN
										
									
								
								along_shore/textures/old/flowers_waterlily.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 491 B  | 
							
								
								
									
										
											BIN
										
									
								
								along_shore/textures/old/flowers_waterlily_22.5.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 519 B  | 
							
								
								
									
										
											BIN
										
									
								
								along_shore/textures/old/flowers_waterlily_45.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 507 B  | 
							
								
								
									
										
											BIN
										
									
								
								along_shore/textures/old/flowers_waterlily_67.5.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 512 B  | 
							
								
								
									
										
											BIN
										
									
								
								along_shore/textures/old/lillyPad5x16.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 460 B  | 
							
								
								
									
										
											BIN
										
									
								
								along_shore/textures/old/lillypad3Flower16x.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 556 B  | 
							
								
								
									
										
											BIN
										
									
								
								along_shore/textures/old/pondscum16xc.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 703 B  | 
							
								
								
									
										2
									
								
								bushes/depends.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,2 @@
 | 
				
			|||||||
 | 
					default
 | 
				
			||||||
 | 
					plants_lib
 | 
				
			||||||
							
								
								
									
										258
									
								
								bushes/init.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,258 @@
 | 
				
			|||||||
 | 
					-- Bushes Mod by Mossmanikin, Evergreen, & Neuromancer
 | 
				
			||||||
 | 
					-- The initial code for this was taken from Mossmanikin's Grasses Mod, then heavilly modified by Neuromancer for this mod.
 | 
				
			||||||
 | 
					-- Mossmanikin also greatly helped with providing samples for coding.
 | 
				
			||||||
 | 
					-- bush leaf textures are cc-by-sa 3.0.  from VannessaE's moretrees mod.  (Leaf texture created by RealBadAngel or VanessaE)
 | 
				
			||||||
 | 
					-- Branch textures created by Neuromancer.
 | 
				
			||||||
 | 
					-- Licence for Code and Non-Bush leaf code is WTFPL.
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					  abstract_bushes = {} 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  minetest.register_node("bushes:youngtree2_bottom", {
 | 
				
			||||||
 | 
						description = "youngtree2Bottom", 
 | 
				
			||||||
 | 
					 drawtype="nodebox",
 | 
				
			||||||
 | 
					 tiles = {"youngtree2trunk.png"},
 | 
				
			||||||
 | 
					 	inventory_image = "youngtree2trunk.png",
 | 
				
			||||||
 | 
						wield_image = "youngtree2trunk.png", 
 | 
				
			||||||
 | 
					paramtype = "light",
 | 
				
			||||||
 | 
						walkable = false,
 | 
				
			||||||
 | 
						is_ground_content = true,
 | 
				
			||||||
 | 
					node_box = {
 | 
				
			||||||
 | 
						type = "fixed",
 | 
				
			||||||
 | 
						fixed = {
 | 
				
			||||||
 | 
							--{0.375000,-0.500000,-0.500000,0.500000,0.500000,-0.375000}, --NodeBox 1
 | 
				
			||||||
 | 
							{-0.0612,-0.500000,-0.500000,0.0612,0.500000,-0.375000}, --NodeBox 1
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					},
 | 
				
			||||||
 | 
						groups = {snappy=3,flammable=2},
 | 
				
			||||||
 | 
						sounds = default.node_sound_leaves_defaults(),
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					  local BushBranchCenter 			= { {1,1}, {3,2} }
 | 
				
			||||||
 | 
					for i in pairs(BushBranchCenter) do
 | 
				
			||||||
 | 
						local Num 		= BushBranchCenter[i][1]
 | 
				
			||||||
 | 
						local TexNum 	= BushBranchCenter[i][2]
 | 
				
			||||||
 | 
						minetest.register_node("bushes:bushbranches"..Num, {
 | 
				
			||||||
 | 
							description = "Bush Branches "..Num,
 | 
				
			||||||
 | 
							drawtype = "nodebox",
 | 
				
			||||||
 | 
							tiles = {
 | 
				
			||||||
 | 
								"bushes_leaves_"..TexNum..".png",
 | 
				
			||||||
 | 
								"bushes_branches_center_"..TexNum..".png"
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
							node_box = {
 | 
				
			||||||
 | 
								type = "fixed",
 | 
				
			||||||
 | 
								fixed = {
 | 
				
			||||||
 | 
									{0, -1/2, -1/2, -1/4, 1/2, 1/2},
 | 
				
			||||||
 | 
									{0, -1/2, -1/2, 1/4, 1/2, 1/2}
 | 
				
			||||||
 | 
								},
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
							selection_box = {
 | 
				
			||||||
 | 
								type = "fixed",
 | 
				
			||||||
 | 
								fixed = {-1/2, -1/2, -1/2, 1/2, 1/2, 1/2},
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
							inventory_image = "bushes_branches_center_"..TexNum..".png",
 | 
				
			||||||
 | 
							paramtype = "light",
 | 
				
			||||||
 | 
								paramtype2 = "facedir",
 | 
				
			||||||
 | 
									sunlight_propagates = true,
 | 
				
			||||||
 | 
							groups = {
 | 
				
			||||||
 | 
							--	tree=1, -- MM: disabled because some recipes use group:tree for trunks
 | 
				
			||||||
 | 
								snappy=3, 
 | 
				
			||||||
 | 
								flammable=2, 
 | 
				
			||||||
 | 
								leaves=1
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
							sounds = default.node_sound_leaves_defaults(),
 | 
				
			||||||
 | 
						})
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					local BushBranchSide 			= { {2,1}, {4,2} }
 | 
				
			||||||
 | 
					for i in pairs(BushBranchSide) do
 | 
				
			||||||
 | 
						local Num 		= BushBranchSide[i][1]
 | 
				
			||||||
 | 
						local TexNum 	= BushBranchSide[i][2]
 | 
				
			||||||
 | 
						minetest.register_node("bushes:bushbranches"..Num, {
 | 
				
			||||||
 | 
							description = "Bush Branches "..Num,
 | 
				
			||||||
 | 
							drawtype = "nodebox",
 | 
				
			||||||
 | 
							tiles = {
 | 
				
			||||||
 | 
					--[[top]] 	"bushes_leaves_"..TexNum..".png",
 | 
				
			||||||
 | 
					--[[bottom]]"bushes_branches_center_"..TexNum..".png",
 | 
				
			||||||
 | 
					--[[right]]	"bushes_branches_left_"..TexNum..".png",
 | 
				
			||||||
 | 
					--[[left]]	"bushes_branches_right_"..TexNum..".png", -- MM: We could also mirror the previous here,
 | 
				
			||||||
 | 
					--[[back]]	"bushes_branches_center_"..TexNum..".png",--     unless U really want 'em 2 B different 
 | 
				
			||||||
 | 
					--[[front]]	"bushes_branches_right_"..TexNum..".png"  
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
							node_box = {
 | 
				
			||||||
 | 
								type = "fixed",
 | 
				
			||||||
 | 
								fixed = {
 | 
				
			||||||
 | 
					--				{ left	 , bottom  , front, right   , top     , back    }
 | 
				
			||||||
 | 
									{0.137748,-0.491944, 0.5  ,-0.125000,-0.179444,-0.007790}, --NodeBox 1
 | 
				
			||||||
 | 
									{0.262748,-0.185995, 0.5  ,-0.237252, 0.126505,-0.260269}, --NodeBox 2
 | 
				
			||||||
 | 
									{0.500000, 0.125000, 0.5  ,-0.500000, 0.500000,-0.500000}, --NodeBox 3
 | 
				
			||||||
 | 
								},
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
							selection_box = {
 | 
				
			||||||
 | 
								type = "fixed",
 | 
				
			||||||
 | 
								fixed = {-1/2, -1/2, -1/2, 1/2, 1/2, 1/2},
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
							inventory_image = "bushes_branches_right_"..TexNum..".png",
 | 
				
			||||||
 | 
							paramtype = "light",
 | 
				
			||||||
 | 
								paramtype2 = "facedir",
 | 
				
			||||||
 | 
									sunlight_propagates = true,
 | 
				
			||||||
 | 
							groups = {
 | 
				
			||||||
 | 
							--	tree=1, -- MM: disabled because some recipes use group:tree for trunks
 | 
				
			||||||
 | 
								snappy=3, 
 | 
				
			||||||
 | 
								flammable=2, 
 | 
				
			||||||
 | 
								leaves=1
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
							sounds = default.node_sound_leaves_defaults(),
 | 
				
			||||||
 | 
						})
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					local BushLeafNode 			= { {1}, {2}}
 | 
				
			||||||
 | 
					for i in pairs(BushLeafNode) do
 | 
				
			||||||
 | 
						local Num = BushLeafNode[i][1]	
 | 
				
			||||||
 | 
						minetest.register_node("bushes:BushLeaves"..Num, {
 | 
				
			||||||
 | 
							description = "Bush Leaves "..Num,
 | 
				
			||||||
 | 
							drawtype = "allfaces_optional",
 | 
				
			||||||
 | 
							tiles = {"bushes_leaves_"..Num..".png"},
 | 
				
			||||||
 | 
							inventory_image = "bushes_leaves_"..Num..".png",
 | 
				
			||||||
 | 
							paramtype = "light",
 | 
				
			||||||
 | 
							groups = {	-- MM: Should we add leafdecay?	
 | 
				
			||||||
 | 
								snappy=3,
 | 
				
			||||||
 | 
								flammable=2,
 | 
				
			||||||
 | 
								attached_node=1
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
							sounds = default.node_sound_leaves_defaults(),    
 | 
				
			||||||
 | 
						})	
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					abstract_bushes.grow_bush = function(pos)
 | 
				
			||||||
 | 
						local leaf_type = math.random(1,2)	
 | 
				
			||||||
 | 
						local bush_side_height = math.random(0,1)
 | 
				
			||||||
 | 
							local chance_of_bush_node_right = math.random(1,10)
 | 
				
			||||||
 | 
							if chance_of_bush_node_right> 5 then
 | 
				
			||||||
 | 
								local right_pos = {x=pos.x+1, y=pos.y+bush_side_height, z=pos.z}
 | 
				
			||||||
 | 
								abstract_bushes.grow_bush_node(right_pos,3,leaf_type)
 | 
				
			||||||
 | 
							end
 | 
				
			||||||
 | 
							local chance_of_bush_node_left = math.random(1,10)
 | 
				
			||||||
 | 
							if chance_of_bush_node_left> 5 then
 | 
				
			||||||
 | 
								bush_side_height = math.random(0,1)
 | 
				
			||||||
 | 
								local left_pos = {x=pos.x-1, y=pos.y+bush_side_height, z=pos.z}
 | 
				
			||||||
 | 
								abstract_bushes.grow_bush_node(left_pos,1,leaf_type)
 | 
				
			||||||
 | 
							end
 | 
				
			||||||
 | 
							local chance_of_bush_node_front = math.random(1,10)
 | 
				
			||||||
 | 
							if chance_of_bush_node_front> 5 then
 | 
				
			||||||
 | 
								bush_side_height = math.random(0,1)
 | 
				
			||||||
 | 
								local front_pos = {x=pos.x, y=pos.y+bush_side_height, z=pos.z+1}
 | 
				
			||||||
 | 
								abstract_bushes.grow_bush_node(front_pos,2,leaf_type)
 | 
				
			||||||
 | 
							end		
 | 
				
			||||||
 | 
							local chance_of_bush_node_back = math.random(1,10)
 | 
				
			||||||
 | 
							if chance_of_bush_node_back> 5 then
 | 
				
			||||||
 | 
								bush_side_height = math.random(0,1)
 | 
				
			||||||
 | 
								local back_pos = {x=pos.x, y=pos.y+bush_side_height, z=pos.z-1}
 | 
				
			||||||
 | 
								abstract_bushes.grow_bush_node(back_pos,0,leaf_type)
 | 
				
			||||||
 | 
							end
 | 
				
			||||||
 | 
							
 | 
				
			||||||
 | 
					abstract_bushes.grow_bush_node(pos,5,leaf_type)
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					abstract_bushes.grow_bush_node = function(pos,dir, leaf_type)
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						local right_here = {x=pos.x, y=pos.y+1, z=pos.z}
 | 
				
			||||||
 | 
						local above_right_here = {x=pos.x, y=pos.y+2, z=pos.z}
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						--local bush_branch_type = math.random(1,3)
 | 
				
			||||||
 | 
						--local bush_branch_type = 2
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						-- MM: I'm not sure if it's slower now than before...
 | 
				
			||||||
 | 
						if dir ~= 5 and leaf_type == 1 then
 | 
				
			||||||
 | 
							bush_branch_type = 2
 | 
				
			||||||
 | 
						end
 | 
				
			||||||
 | 
						if dir ~= 5 and leaf_type == 2 then
 | 
				
			||||||
 | 
							bush_branch_type = 4
 | 
				
			||||||
 | 
						end
 | 
				
			||||||
 | 
						if dir == 5 and leaf_type == 1 then
 | 
				
			||||||
 | 
							bush_branch_type = 1
 | 
				
			||||||
 | 
							dir = 1
 | 
				
			||||||
 | 
						end
 | 
				
			||||||
 | 
						if dir == 5 and leaf_type == 2 then
 | 
				
			||||||
 | 
							bush_branch_type = 3
 | 
				
			||||||
 | 
							dir = 1
 | 
				
			||||||
 | 
						end
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						if minetest.get_node(right_here).name == "air"  -- instead of check_air = true,
 | 
				
			||||||
 | 
						or minetest.get_node(right_here).name == "default:junglegrass" then
 | 
				
			||||||
 | 
							minetest.add_node(right_here, {name="bushes:bushbranches"..bush_branch_type , param2=dir})
 | 
				
			||||||
 | 
											--minetest.chat_send_all("leaf_type: (" .. leaf_type .. ")")
 | 
				
			||||||
 | 
							minetest.add_node(above_right_here, {name="bushes:BushLeaves"..leaf_type})
 | 
				
			||||||
 | 
							local chance_of_high_leaves = math.random(1,10)
 | 
				
			||||||
 | 
							if chance_of_high_leaves> 5 then
 | 
				
			||||||
 | 
								local two_above_right_here = {x=pos.x, y=pos.y+3, z=pos.z}
 | 
				
			||||||
 | 
												--minetest.chat_send_all("leaf_type: (" .. leaf_type .. ")")
 | 
				
			||||||
 | 
								minetest.add_node(two_above_right_here, {name="bushes:BushLeaves"..leaf_type})
 | 
				
			||||||
 | 
							end
 | 
				
			||||||
 | 
						end
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					plantslib:register_generate_plant({
 | 
				
			||||||
 | 
					    surface = {
 | 
				
			||||||
 | 
							"default:dirt_with_grass", 
 | 
				
			||||||
 | 
							"stoneage:grass_with_silex",
 | 
				
			||||||
 | 
							"sumpf:peat",
 | 
				
			||||||
 | 
							"sumpf:sumpf"
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
					    max_count = 15,  --10,15
 | 
				
			||||||
 | 
					    rarity = 101 - 4,  --3,4
 | 
				
			||||||
 | 
					    min_elevation = 1, -- above sea level
 | 
				
			||||||
 | 
						plantlife_limit = -0.9,
 | 
				
			||||||
 | 
						check_air = false,
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  "abstract_bushes.grow_bush"
 | 
				
			||||||
 | 
					)		
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 abstract_bushes.grow_youngtree2 = function(pos)
 | 
				
			||||||
 | 
						local height = math.random(4,5)	
 | 
				
			||||||
 | 
						abstract_bushes.grow_youngtree_node2(pos,height)
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					abstract_bushes.grow_youngtree_node2 = function(pos, height)
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						local right_here = {x=pos.x, y=pos.y+1, z=pos.z}
 | 
				
			||||||
 | 
						local above_right_here = {x=pos.x, y=pos.y+2, z=pos.z}
 | 
				
			||||||
 | 
						local two_above_right_here = {x=pos.x, y=pos.y+3, z=pos.z}
 | 
				
			||||||
 | 
						local three_above_right_here = {x=pos.x, y=pos.y+4, z=pos.z}
 | 
				
			||||||
 | 
						 
 | 
				
			||||||
 | 
						if minetest.get_node(right_here).name == "air"  -- instead of check_air = true,
 | 
				
			||||||
 | 
						or minetest.get_node(right_here).name == "default:junglegrass" then
 | 
				
			||||||
 | 
							if height == 4 then
 | 
				
			||||||
 | 
									local two_above_right_here_south = {x=pos.x, y=pos.y+3, z=pos.z-1}
 | 
				
			||||||
 | 
									local three_above_right_here_south = {x=pos.x, y=pos.y+4, z=pos.z-1}
 | 
				
			||||||
 | 
									minetest.add_node(right_here, {name="bushes:youngtree2_bottom"})
 | 
				
			||||||
 | 
									minetest.add_node(above_right_here, {name="bushes:youngtree2_bottom"})
 | 
				
			||||||
 | 
									minetest.add_node(two_above_right_here, {name="bushes:bushbranches2"  , param2=2})
 | 
				
			||||||
 | 
									minetest.add_node(two_above_right_here_south, {name="bushes:bushbranches2"  , param2=0})
 | 
				
			||||||
 | 
									minetest.add_node(three_above_right_here, {name="bushes:BushLeaves1" })
 | 
				
			||||||
 | 
									minetest.add_node(three_above_right_here_south, {name="bushes:BushLeaves1" })
 | 
				
			||||||
 | 
							end
 | 
				
			||||||
 | 
							 
 | 
				
			||||||
 | 
						end
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					plantslib:register_generate_plant({
 | 
				
			||||||
 | 
					    surface = {
 | 
				
			||||||
 | 
							"default:dirt_with_grass", 
 | 
				
			||||||
 | 
							"stoneage:grass_with_silex",
 | 
				
			||||||
 | 
							"sumpf:peat",
 | 
				
			||||||
 | 
							"sumpf:sumpf"
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
					    max_count = 55,  --10,15
 | 
				
			||||||
 | 
					    rarity = 101 - 4,  --3,4
 | 
				
			||||||
 | 
					    min_elevation = 1, -- above sea level
 | 
				
			||||||
 | 
						plantlife_limit = -0.9,
 | 
				
			||||||
 | 
						check_air = false,
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  "abstract_bushes.grow_youngtree2"
 | 
				
			||||||
 | 
					)	
 | 
				
			||||||
 | 
						 
 | 
				
			||||||
 | 
							--http://dev.minetest.net/Node_Drawtypes
 | 
				
			||||||
							
								
								
									
										
											BIN
										
									
								
								bushes/textures/bushes_branches_center_1.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 473 B  | 
							
								
								
									
										
											BIN
										
									
								
								bushes/textures/bushes_branches_center_2.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 487 B  | 
							
								
								
									
										
											BIN
										
									
								
								bushes/textures/bushes_branches_left_1.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 695 B  | 
							
								
								
									
										
											BIN
										
									
								
								bushes/textures/bushes_branches_left_2.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 689 B  | 
							
								
								
									
										
											BIN
										
									
								
								bushes/textures/bushes_branches_right_1.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 712 B  | 
							
								
								
									
										
											BIN
										
									
								
								bushes/textures/bushes_branches_right_2.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 719 B  | 
							
								
								
									
										
											BIN
										
									
								
								bushes/textures/bushes_leaves_1.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 225 B  | 
							
								
								
									
										
											BIN
										
									
								
								bushes/textures/bushes_leaves_2.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 225 B  | 
							
								
								
									
										
											BIN
										
									
								
								bushes/textures/old & unused/BlockBranch1.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 90 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								bushes/textures/old & unused/BlockBranch1L.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 42 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								bushes/textures/old & unused/BlockBranch1R.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 49 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								bushes/textures/old & unused/BushBranches1.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 60 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								bushes/textures/old & unused/BushBranches1sm.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 702 B  | 
							
								
								
									
										
											BIN
										
									
								
								bushes/textures/old & unused/BushBranches1sm2.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 714 B  | 
							
								
								
									
										
											BIN
										
									
								
								bushes/textures/old & unused/BushBranches1sm3.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 536 B  | 
							
								
								
									
										
											BIN
										
									
								
								bushes/textures/old & unused/BushBranches1sm4.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 649 B  | 
							
								
								
									
										
											BIN
										
									
								
								bushes/textures/old & unused/BushBranchesCenter.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 445 B  | 
							
								
								
									
										
											BIN
										
									
								
								bushes/textures/old & unused/BushBranchesSide1.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 770 B  | 
							
								
								
									
										
											BIN
										
									
								
								bushes/textures/old & unused/BushBranchesSide2.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 801 B  | 
							
								
								
									
										
											BIN
										
									
								
								bushes/textures/old & unused/blank.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 199 B  | 
							
								
								
									
										
											BIN
										
									
								
								bushes/textures/old & unused/moretrees_pine_leaves3.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 647 B  | 
							
								
								
									
										
											BIN
										
									
								
								bushes/textures/youngtree2trunk.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 1.1 KiB  | 
							
								
								
									
										2
									
								
								cavestuff/depends.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,2 @@
 | 
				
			|||||||
 | 
					default
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										12
									
								
								cavestuff/init.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,12 @@
 | 
				
			|||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					local title		= "Cave Stuff"
 | 
				
			||||||
 | 
					local version 	= "0.0.3"
 | 
				
			||||||
 | 
					local mname		= "cavestuff"
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					dofile(minetest.get_modpath("cavestuff").."/nodes.lua")
 | 
				
			||||||
 | 
					dofile(minetest.get_modpath("cavestuff").."/mapgen.lua")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					print("[Mod] "..title.." ["..version.."] ["..mname.."] Loaded...")
 | 
				
			||||||
							
								
								
									
										52
									
								
								cavestuff/mapgen.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,52 @@
 | 
				
			|||||||
 | 
					--Map Generation Stuff
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					minetest.register_on_generated(function(minp, maxp, seed)
 | 
				
			||||||
 | 
						if maxp.y >= 2 and minp.y <= 0 then
 | 
				
			||||||
 | 
							-- Generate pebbles
 | 
				
			||||||
 | 
							local perlin1 = minetest.get_perlin(329, 3, 0.6, 100)
 | 
				
			||||||
 | 
							-- Assume X and Z lengths are equal
 | 
				
			||||||
 | 
							local divlen = 16
 | 
				
			||||||
 | 
							local divs = (maxp.x-minp.x)/divlen+1;
 | 
				
			||||||
 | 
							for divx=0,divs-1 do
 | 
				
			||||||
 | 
							for divz=0,divs-1 do
 | 
				
			||||||
 | 
								local x0 = minp.x + math.floor((divx+0)*divlen)
 | 
				
			||||||
 | 
								local z0 = minp.z + math.floor((divz+0)*divlen)
 | 
				
			||||||
 | 
								local x1 = minp.x + math.floor((divx+1)*divlen)
 | 
				
			||||||
 | 
								local z1 = minp.z + math.floor((divz+1)*divlen)
 | 
				
			||||||
 | 
								-- Determine pebble amount from perlin noise
 | 
				
			||||||
 | 
								local pebble_amount = math.floor(perlin1:get2d({x=x0, y=z0}) ^ 2 * 2)
 | 
				
			||||||
 | 
								-- Find random positions for pebbles based on this random
 | 
				
			||||||
 | 
								local pr = PseudoRandom(seed+1)
 | 
				
			||||||
 | 
								for i=0,pebble_amount do
 | 
				
			||||||
 | 
									local x = pr:next(x0, x1)
 | 
				
			||||||
 | 
									local z = pr:next(z0, z1)
 | 
				
			||||||
 | 
									-- Find ground level (0...15)
 | 
				
			||||||
 | 
									local ground_y = nil
 | 
				
			||||||
 | 
									for y=30,0,-1 do
 | 
				
			||||||
 | 
										if minetest.get_node({x=x,y=y,z=z}).name ~= "air" then
 | 
				
			||||||
 | 
											ground_y = y
 | 
				
			||||||
 | 
											break
 | 
				
			||||||
 | 
										end
 | 
				
			||||||
 | 
									end
 | 
				
			||||||
 | 
									
 | 
				
			||||||
 | 
									if ground_y then
 | 
				
			||||||
 | 
										local p = {x=x,y=ground_y+1,z=z}
 | 
				
			||||||
 | 
										local nn = minetest.get_node(p).name
 | 
				
			||||||
 | 
										-- Check if the node can be replaced
 | 
				
			||||||
 | 
										if minetest.registered_nodes[nn] and
 | 
				
			||||||
 | 
											minetest.registered_nodes[nn].buildable_to then
 | 
				
			||||||
 | 
											nn = minetest.get_node({x=x,y=ground_y,z=z}).name
 | 
				
			||||||
 | 
											-- If desert sand, add dry shrub
 | 
				
			||||||
 | 
											if nn == "default:dirt_with_grass" then
 | 
				
			||||||
 | 
												minetest.set_node(p,{name="cavestuff:pebble_"..pr:next(1,2), param2=math.random(0,3)})
 | 
				
			||||||
 | 
											elseif nn == "default:desert_sand" then
 | 
				
			||||||
 | 
												minetest.set_node(p,{name="cavestuff:desert_pebble_"..pr:next(1,2), param2=math.random(0,3)})
 | 
				
			||||||
 | 
										    end
 | 
				
			||||||
 | 
										end
 | 
				
			||||||
 | 
									end
 | 
				
			||||||
 | 
									
 | 
				
			||||||
 | 
								end
 | 
				
			||||||
 | 
							end
 | 
				
			||||||
 | 
							end
 | 
				
			||||||
 | 
						end
 | 
				
			||||||
 | 
					end)
 | 
				
			||||||
							
								
								
									
										243
									
								
								cavestuff/nodes.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,243 @@
 | 
				
			|||||||
 | 
					--Rocks
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					minetest.register_node("cavestuff:pebble_1",{
 | 
				
			||||||
 | 
						drawtype = "nodebox",
 | 
				
			||||||
 | 
						description = "Pebble",
 | 
				
			||||||
 | 
					    tiles = {"undergrowth_pebble.png"},
 | 
				
			||||||
 | 
					    paramtype = "light",
 | 
				
			||||||
 | 
						paramtype2 = "facedir",
 | 
				
			||||||
 | 
					    groups = {cracky=3, stone=1},
 | 
				
			||||||
 | 
					    node_box = {
 | 
				
			||||||
 | 
					        type = "fixed",
 | 
				
			||||||
 | 
					        fixed = {
 | 
				
			||||||
 | 
					--			{ left, bottom, front,  right, top ,  back}
 | 
				
			||||||
 | 
								{-5/16, -2/16, -3/16,  1/16, -1/16, -1/16},
 | 
				
			||||||
 | 
								{-4/16, -2/16, -4/16,  0   , -1/16,  0   },
 | 
				
			||||||
 | 
					--			{ left, bottom, front,  right, top ,  back}
 | 
				
			||||||
 | 
								{-7/16, -7/16, -3/16, -6/16, -3/16,  1/16},
 | 
				
			||||||
 | 
								{-6/16, -7/16, -4/16, -5/16, -3/16,  2/16},
 | 
				
			||||||
 | 
								{-5/16, -7/16, -5/16,  3/16, -3/16,  3/16},
 | 
				
			||||||
 | 
								{-4/16, -7/16, -6/16,  1/16, -3/16, -5/16},
 | 
				
			||||||
 | 
								{-3/16, -7/16,  3/16,  3/16, -3/16,  4/16},
 | 
				
			||||||
 | 
								{ 0   , -7/16,  4/16,  3/16, -3/16,  5/16},
 | 
				
			||||||
 | 
								{ 3/16, -7/16, -4/16,  4/16, -3/16,  5/16},
 | 
				
			||||||
 | 
								{ 4/16, -7/16, -3/16,  5/16, -3/16,  4/16},
 | 
				
			||||||
 | 
								{ 5/16, -7/16, -1/16,  6/16, -3/16,  2/16},
 | 
				
			||||||
 | 
					--			{ left, bottom, front,  right, top ,  back}
 | 
				
			||||||
 | 
								{-6/16, -8/16, -3/16,  3/16, -2/16,  0   },
 | 
				
			||||||
 | 
								{-5/16, -8/16, -4/16,  2/16, -2/16,  1/16},
 | 
				
			||||||
 | 
								{-4/16, -8/16, -5/16,  0   , -2/16,  2/16},
 | 
				
			||||||
 | 
								{-2/16, -8/16, -2/16,  4/16, -2/16,  3/16},
 | 
				
			||||||
 | 
								{ 0   , -8/16,  3/16,  3/16, -2/16,  4/16},
 | 
				
			||||||
 | 
								{ 4/16, -8/16, -1/16,  5/16, -2/16,  2/16},
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    selection_box = {
 | 
				
			||||||
 | 
					        type = "fixed",
 | 
				
			||||||
 | 
					        fixed = {-7/16, -1/2, -6/16, 6/16, -1/16, 5/16},
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    on_place = function(itemstack, placer, pointed_thing)
 | 
				
			||||||
 | 
							-- place a random pebble node
 | 
				
			||||||
 | 
							local stack = ItemStack("cavestuff:pebble_"..math.random(1,2))
 | 
				
			||||||
 | 
							local ret = minetest.item_place(stack, placer, pointed_thing)
 | 
				
			||||||
 | 
							return ItemStack("cavestuff:pebble_1 "..itemstack:get_count()-(1-ret:get_count()))
 | 
				
			||||||
 | 
						end,
 | 
				
			||||||
 | 
					    sounds = default.node_sound_stone_defaults(),
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					minetest.register_node("cavestuff:pebble_2",{
 | 
				
			||||||
 | 
						drawtype = "nodebox",
 | 
				
			||||||
 | 
						drop = "cavestuff:pebble_1",
 | 
				
			||||||
 | 
					    tiles = {"undergrowth_pebble.png"},
 | 
				
			||||||
 | 
					    paramtype = "light",
 | 
				
			||||||
 | 
						paramtype2 = "facedir",
 | 
				
			||||||
 | 
					    groups = {cracky=3, stone=1, not_in_creative_inventory=1},
 | 
				
			||||||
 | 
					    node_box = {
 | 
				
			||||||
 | 
					        type = "fixed",
 | 
				
			||||||
 | 
					        fixed = {
 | 
				
			||||||
 | 
					--			{ left, bottom, front,  right, top ,  back}
 | 
				
			||||||
 | 
								{-5/16, -1/16, -3/16,  1/16,  0   , -1/16},
 | 
				
			||||||
 | 
								{-4/16, -1/16, -4/16,  0   ,  0   ,  0   },
 | 
				
			||||||
 | 
					--			{ left, bottom, front,  right, top ,  back}
 | 
				
			||||||
 | 
								{-7/16, -7/16, -3/16, -6/16, -2/16,  1/16},
 | 
				
			||||||
 | 
								{-6/16, -7/16, -4/16, -5/16, -2/16,  2/16},
 | 
				
			||||||
 | 
								{-5/16, -7/16, -5/16,  3/16, -2/16,  3/16},
 | 
				
			||||||
 | 
								{-4/16, -7/16, -6/16,  1/16, -2/16, -5/16},
 | 
				
			||||||
 | 
								{-3/16, -7/16,  3/16,  3/16, -2/16,  4/16},
 | 
				
			||||||
 | 
								{ 0   , -7/16,  4/16,  3/16, -2/16,  5/16},
 | 
				
			||||||
 | 
								{ 3/16, -7/16, -4/16,  4/16, -2/16,  5/16},
 | 
				
			||||||
 | 
								{ 4/16, -7/16, -3/16,  5/16, -2/16,  4/16},
 | 
				
			||||||
 | 
								{ 5/16, -7/16, -1/16,  6/16, -2/16,  2/16},
 | 
				
			||||||
 | 
					--			{ left, bottom, front,  right, top ,  back}
 | 
				
			||||||
 | 
								{-6/16, -8/16, -3/16,  3/16, -1/16,  0   },
 | 
				
			||||||
 | 
								{-5/16, -8/16, -4/16,  2/16, -1/16,  1/16},
 | 
				
			||||||
 | 
								{-4/16, -8/16, -5/16,  0   , -1/16,  2/16},
 | 
				
			||||||
 | 
								{-2/16, -8/16, -2/16,  4/16, -1/16,  3/16},
 | 
				
			||||||
 | 
								{ 0   , -8/16,  3/16,  3/16, -1/16,  4/16},
 | 
				
			||||||
 | 
								{ 4/16, -8/16, -1/16,  5/16, -1/16,  2/16},
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    selection_box = {
 | 
				
			||||||
 | 
					        type = "fixed",
 | 
				
			||||||
 | 
					        fixed = {-7/16, -1/2, -6/16, 6/16, 0, 5/16},
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    sounds = default.node_sound_stone_defaults(),
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					minetest.register_node("cavestuff:desert_pebble_1",{
 | 
				
			||||||
 | 
						drawtype = "nodebox",
 | 
				
			||||||
 | 
						description = "Desert Pebble",
 | 
				
			||||||
 | 
					    tiles = {"default_desert_stone.png"},
 | 
				
			||||||
 | 
					    paramtype = "light",
 | 
				
			||||||
 | 
						paramtype2 = "facedir",
 | 
				
			||||||
 | 
					    groups = {cracky=3, stone=1},
 | 
				
			||||||
 | 
					    node_box = {
 | 
				
			||||||
 | 
					        type = "fixed",
 | 
				
			||||||
 | 
					        fixed = {
 | 
				
			||||||
 | 
					--			{ left, bottom, front,  right, top ,  back}
 | 
				
			||||||
 | 
								{-5/16, -2/16, -3/16,  1/16, -1/16, -1/16},
 | 
				
			||||||
 | 
								{-4/16, -2/16, -4/16,  0   , -1/16,  0   },
 | 
				
			||||||
 | 
					--			{ left, bottom, front,  right, top ,  back}
 | 
				
			||||||
 | 
								{-7/16, -7/16, -3/16, -6/16, -3/16,  1/16},
 | 
				
			||||||
 | 
								{-6/16, -7/16, -4/16, -5/16, -3/16,  2/16},
 | 
				
			||||||
 | 
								{-5/16, -7/16, -5/16,  3/16, -3/16,  3/16},
 | 
				
			||||||
 | 
								{-4/16, -7/16, -6/16,  1/16, -3/16, -5/16},
 | 
				
			||||||
 | 
								{-3/16, -7/16,  3/16,  3/16, -3/16,  4/16},
 | 
				
			||||||
 | 
								{ 0   , -7/16,  4/16,  3/16, -3/16,  5/16},
 | 
				
			||||||
 | 
								{ 3/16, -7/16, -4/16,  4/16, -3/16,  5/16},
 | 
				
			||||||
 | 
								{ 4/16, -7/16, -3/16,  5/16, -3/16,  4/16},
 | 
				
			||||||
 | 
								{ 5/16, -7/16, -1/16,  6/16, -3/16,  2/16},
 | 
				
			||||||
 | 
					--			{ left, bottom, front,  right, top ,  back}
 | 
				
			||||||
 | 
								{-6/16, -8/16, -3/16,  3/16, -2/16,  0   },
 | 
				
			||||||
 | 
								{-5/16, -8/16, -4/16,  2/16, -2/16,  1/16},
 | 
				
			||||||
 | 
								{-4/16, -8/16, -5/16,  0   , -2/16,  2/16},
 | 
				
			||||||
 | 
								{-2/16, -8/16, -2/16,  4/16, -2/16,  3/16},
 | 
				
			||||||
 | 
								{ 0   , -8/16,  3/16,  3/16, -2/16,  4/16},
 | 
				
			||||||
 | 
								{ 4/16, -8/16, -1/16,  5/16, -2/16,  2/16},
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    selection_box = {
 | 
				
			||||||
 | 
					        type = "fixed",
 | 
				
			||||||
 | 
					        fixed = {-7/16, -1/2, -6/16, 6/16, -1/16, 5/16},
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    on_place = function(itemstack, placer, pointed_thing)
 | 
				
			||||||
 | 
							-- place a random pebble node
 | 
				
			||||||
 | 
							local stack = ItemStack("cavestuff:desert_pebble_"..math.random(1,2))
 | 
				
			||||||
 | 
							local ret = minetest.item_place(stack, placer, pointed_thing)
 | 
				
			||||||
 | 
							return ItemStack("cavestuff:desert_pebble_1 "..itemstack:get_count()-(1-ret:get_count()))
 | 
				
			||||||
 | 
						end,
 | 
				
			||||||
 | 
					    sounds = default.node_sound_stone_defaults(),
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					minetest.register_node("cavestuff:desert_pebble_2",{
 | 
				
			||||||
 | 
						drawtype = "nodebox",
 | 
				
			||||||
 | 
						drop = "cavestuff:desert_pebble_1",
 | 
				
			||||||
 | 
					    tiles = {"default_desert_stone.png"},
 | 
				
			||||||
 | 
					    paramtype = "light",
 | 
				
			||||||
 | 
						paramtype2 = "facedir",
 | 
				
			||||||
 | 
					    groups = {cracky=3, stone=1, not_in_creative__inventory=1},
 | 
				
			||||||
 | 
					    node_box = {
 | 
				
			||||||
 | 
					        type = "fixed",
 | 
				
			||||||
 | 
					        fixed = {
 | 
				
			||||||
 | 
					--			{ left, bottom, front,  right, top ,  back}
 | 
				
			||||||
 | 
								{-5/16, -1/16, -3/16,  1/16,  0   , -1/16},
 | 
				
			||||||
 | 
								{-4/16, -1/16, -4/16,  0   ,  0   ,  0   },
 | 
				
			||||||
 | 
					--			{ left, bottom, front,  right, top ,  back}
 | 
				
			||||||
 | 
								{-7/16, -7/16, -3/16, -6/16, -2/16,  1/16},
 | 
				
			||||||
 | 
								{-6/16, -7/16, -4/16, -5/16, -2/16,  2/16},
 | 
				
			||||||
 | 
								{-5/16, -7/16, -5/16,  3/16, -2/16,  3/16},
 | 
				
			||||||
 | 
								{-4/16, -7/16, -6/16,  1/16, -2/16, -5/16},
 | 
				
			||||||
 | 
								{-3/16, -7/16,  3/16,  3/16, -2/16,  4/16},
 | 
				
			||||||
 | 
								{ 0   , -7/16,  4/16,  3/16, -2/16,  5/16},
 | 
				
			||||||
 | 
								{ 3/16, -7/16, -4/16,  4/16, -2/16,  5/16},
 | 
				
			||||||
 | 
								{ 4/16, -7/16, -3/16,  5/16, -2/16,  4/16},
 | 
				
			||||||
 | 
								{ 5/16, -7/16, -1/16,  6/16, -2/16,  2/16},
 | 
				
			||||||
 | 
					--			{ left, bottom, front,  right, top ,  back}
 | 
				
			||||||
 | 
								{-6/16, -8/16, -3/16,  3/16, -1/16,  0   },
 | 
				
			||||||
 | 
								{-5/16, -8/16, -4/16,  2/16, -1/16,  1/16},
 | 
				
			||||||
 | 
								{-4/16, -8/16, -5/16,  0   , -1/16,  2/16},
 | 
				
			||||||
 | 
								{-2/16, -8/16, -2/16,  4/16, -1/16,  3/16},
 | 
				
			||||||
 | 
								{ 0   , -8/16,  3/16,  3/16, -1/16,  4/16},
 | 
				
			||||||
 | 
								{ 4/16, -8/16, -1/16,  5/16, -1/16,  2/16},
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    selection_box = {
 | 
				
			||||||
 | 
					        type = "fixed",
 | 
				
			||||||
 | 
					        fixed = {-7/16, -1/2, -6/16, 6/16, 0, 5/16},
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    sounds = default.node_sound_stone_defaults(),
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					--Staclactites
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					minetest.register_node("cavestuff:stalactite_1",{
 | 
				
			||||||
 | 
						drawtype="nodebox",
 | 
				
			||||||
 | 
						tiles = {"undergrowth_pebble.png"},
 | 
				
			||||||
 | 
						groups = {cracky=3,attached_node=1},
 | 
				
			||||||
 | 
						description = "Stalactite",
 | 
				
			||||||
 | 
						paramtype = "light",
 | 
				
			||||||
 | 
						paramtype2 = "wallmounted",
 | 
				
			||||||
 | 
						node_box = {
 | 
				
			||||||
 | 
							type = "fixed",
 | 
				
			||||||
 | 
							fixed = {
 | 
				
			||||||
 | 
								{-0.187500,0.425000,-0.150003,0.162500,0.500000,0.162500},
 | 
				
			||||||
 | 
								{-0.112500,0.162500,-0.100000,0.087500,0.475000,0.087500},
 | 
				
			||||||
 | 
								{-0.062500,-0.275000,-0.062500,0.062500,0.500000,0.062500},
 | 
				
			||||||
 | 
								{-0.037500,-0.837500,0.037500,0.037500,0.500000,-0.025000},
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						on_place = function(itemstack, placer, pointed_thing)
 | 
				
			||||||
 | 
							local pt = pointed_thing
 | 
				
			||||||
 | 
							if minetest.get_node(pt.under).name=="default:stone" 
 | 
				
			||||||
 | 
							and minetest.get_node({x=pt.under.x, y=pt.under.y-1, z=pt.under.z}).name=="air"
 | 
				
			||||||
 | 
							and minetest.get_node({x=pt.under.x, y=pt.under.y-2, z=pt.under.z}).name=="air" then
 | 
				
			||||||
 | 
								minetest.set_node({x=pt.under.x, y=pt.under.y-1, z=pt.under.z}, {name="cavestuff:stalactite_"..math.random(1,3)})
 | 
				
			||||||
 | 
								if not minetest.setting_getbool("creative_mode") then
 | 
				
			||||||
 | 
									itemstack:take_item()
 | 
				
			||||||
 | 
								end
 | 
				
			||||||
 | 
							end
 | 
				
			||||||
 | 
							return itemstack
 | 
				
			||||||
 | 
						end,
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					minetest.register_node("cavestuff:stalactite_2",{
 | 
				
			||||||
 | 
						drawtype="nodebox",
 | 
				
			||||||
 | 
						tiles = {"undergrowth_pebble.png"},
 | 
				
			||||||
 | 
						groups = {cracky=3,attached_node=1,not_in_creative_inventory=1},
 | 
				
			||||||
 | 
						drop = "cavestuff:stalactite_1",
 | 
				
			||||||
 | 
						paramtype = "light",
 | 
				
			||||||
 | 
						paramtype2 = "wallmounted",
 | 
				
			||||||
 | 
						node_box = {
 | 
				
			||||||
 | 
							type = "fixed",
 | 
				
			||||||
 | 
							fixed = {
 | 
				
			||||||
 | 
									{-0.187500,0.387500,-0.150003,0.162500,0.500000,0.162500},
 | 
				
			||||||
 | 
						            {-0.112500,0.112500,-0.100000,0.087500,0.475000,0.087500},
 | 
				
			||||||
 | 
						            {-0.062500,-0.675000,-0.062500,0.062500,0.500000,0.062500},
 | 
				
			||||||
 | 
						            {-0.037500,-0.975000,0.037500,0.037500,0.500000,-0.025000},
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					minetest.register_node("cavestuff:stalactite_3",{
 | 
				
			||||||
 | 
						drawtype="nodebox",
 | 
				
			||||||
 | 
						tiles = {"undergrowth_pebble.png"},
 | 
				
			||||||
 | 
						groups = {cracky=3,attached_node=1,not_in_creative_inventory=1},
 | 
				
			||||||
 | 
						drop = "cavestuff:stalactite_1",
 | 
				
			||||||
 | 
						paramtype = "light",
 | 
				
			||||||
 | 
						paramtype2 = "wallmounted",
 | 
				
			||||||
 | 
						node_box = {
 | 
				
			||||||
 | 
						   type = "fixed",
 | 
				
			||||||
 | 
						   fixed = {
 | 
				
			||||||
 | 
							   {-0.187500,0.387500,-0.150003,0.162500,0.500000,0.162500},
 | 
				
			||||||
 | 
							   {-0.112500,0.037500,-0.100000,0.087500,0.475000,0.087500},
 | 
				
			||||||
 | 
							   {-0.062500,-0.437500,-0.062500,0.062500,0.500000,0.062500},
 | 
				
			||||||
 | 
							   {-0.037500,-1.237500,0.037500,0.037500,0.500000,-0.025000},
 | 
				
			||||||
 | 
						    }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					--Stalagmites
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										
											BIN
										
									
								
								cavestuff/textures/undergrowth_desert_pebble.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 1.2 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								cavestuff/textures/undergrowth_pebble.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 1.2 KiB  | 
							
								
								
									
										360
									
								
								dryplants/crafting.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,360 @@
 | 
				
			|||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					-- Dry Plants - Recipes 0.1.0 -- Short Grass -> Dirt
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					-- by Mossmanikin
 | 
				
			||||||
 | 
					-- License (everything): 	WTFPL		
 | 
				
			||||||
 | 
					-- Looked at code from:		darkage, default, farming, sickle, stairs
 | 
				
			||||||
 | 
					-- Dependencies: 			default, farming
 | 
				
			||||||
 | 
					-- Supports:				flint, stoneage, sumpf			
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					-- Short Grass
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					minetest.register_craft({
 | 
				
			||||||
 | 
						output = "default:dirt",
 | 
				
			||||||
 | 
						recipe = {
 | 
				
			||||||
 | 
							{"dryplants:grass_short"},
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					-- Cut Grass
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					-- grass recipes (remove roots)
 | 
				
			||||||
 | 
					minetest.register_craft({
 | 
				
			||||||
 | 
						output = "dryplants:grass",
 | 
				
			||||||
 | 
						recipe = {
 | 
				
			||||||
 | 
							{"default:grass_1"},
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					minetest.register_craft({
 | 
				
			||||||
 | 
						output = "dryplants:grass",
 | 
				
			||||||
 | 
						recipe = {
 | 
				
			||||||
 | 
							{"default:junglegrass"},
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					if minetest.get_modpath("sumpf") ~= nil then
 | 
				
			||||||
 | 
						minetest.register_craft({
 | 
				
			||||||
 | 
							output = "dryplants:grass",
 | 
				
			||||||
 | 
							recipe = {
 | 
				
			||||||
 | 
								{"sumpf:gras"},
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						})
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					-- Sickle
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					minetest.register_craft({
 | 
				
			||||||
 | 
						output = "dryplants:sickle",
 | 
				
			||||||
 | 
						recipe = {
 | 
				
			||||||
 | 
							{"group:stone",""},
 | 
				
			||||||
 | 
							{"", "default:stick"},
 | 
				
			||||||
 | 
							{"default:stick",""}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					if minetest.get_modpath("flint") ~= nil then
 | 
				
			||||||
 | 
						minetest.register_craft({
 | 
				
			||||||
 | 
							output = "dryplants:sickle",
 | 
				
			||||||
 | 
							recipe = {
 | 
				
			||||||
 | 
								{"flint:flintstone",""},
 | 
				
			||||||
 | 
								{"", "default:stick"},
 | 
				
			||||||
 | 
								{"default:stick",""}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						})
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
 | 
					if minetest.get_modpath("stoneage") ~= nil then
 | 
				
			||||||
 | 
						minetest.register_craft({
 | 
				
			||||||
 | 
							output = "dryplants:sickle",
 | 
				
			||||||
 | 
							recipe = {
 | 
				
			||||||
 | 
								{"stoneage:silex",""},
 | 
				
			||||||
 | 
								{"", "default:stick"},
 | 
				
			||||||
 | 
								{"default:stick",""}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						})
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					-- Hay
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					--cooking
 | 
				
			||||||
 | 
					minetest.register_craft({
 | 
				
			||||||
 | 
						type = "cooking",
 | 
				
			||||||
 | 
						output = "dryplants:hay",
 | 
				
			||||||
 | 
						recipe = "dryplants:grass",
 | 
				
			||||||
 | 
						cooktime = 2,
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					minetest.register_craft({
 | 
				
			||||||
 | 
						type = "fuel",
 | 
				
			||||||
 | 
						recipe = "dryplants:hay",
 | 
				
			||||||
 | 
						burntime = 1,
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					-- Wet Reed
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					minetest.register_craft({ -- papyrus -> wetreed
 | 
				
			||||||
 | 
						output = "dryplants:wetreed 2",
 | 
				
			||||||
 | 
						recipe = {
 | 
				
			||||||
 | 
							{"default:papyrus","default:papyrus"},
 | 
				
			||||||
 | 
							{"default:papyrus","default:papyrus"},
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					minetest.register_craft({ -- reedmace_sapling -> wetreed
 | 
				
			||||||
 | 
						output = "dryplants:wetreed 2",
 | 
				
			||||||
 | 
						recipe = {
 | 
				
			||||||
 | 
							{"dryplants:reedmace_sapling","dryplants:reedmace_sapling"},
 | 
				
			||||||
 | 
							{"dryplants:reedmace_sapling","dryplants:reedmace_sapling"},
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					minetest.register_craft({ -- reedmace_top -> wetreed
 | 
				
			||||||
 | 
						output = "dryplants:wetreed 2",
 | 
				
			||||||
 | 
						recipe = {
 | 
				
			||||||
 | 
							{"dryplants:reedmace_top","dryplants:reedmace_top"},
 | 
				
			||||||
 | 
							{"dryplants:reedmace_top","dryplants:reedmace_top"},
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					minetest.register_craft({ -- reedmace -> wetreed
 | 
				
			||||||
 | 
						output = "dryplants:wetreed 2",
 | 
				
			||||||
 | 
						recipe = {
 | 
				
			||||||
 | 
							{"dryplants:reedmace","dryplants:reedmace"},
 | 
				
			||||||
 | 
							{"dryplants:reedmace","dryplants:reedmace"},
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					minetest.register_craft({ -- reedmace_bottom -> wetreed
 | 
				
			||||||
 | 
						output = "dryplants:wetreed 2",
 | 
				
			||||||
 | 
						recipe = {
 | 
				
			||||||
 | 
							{"dryplants:reedmace_bottom","dryplants:reedmace_bottom"},
 | 
				
			||||||
 | 
							{"dryplants:reedmace_bottom","dryplants:reedmace_bottom"},
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					local ReeD = {
 | 
				
			||||||
 | 
						{"wetreed"},
 | 
				
			||||||
 | 
						{"reed"}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					for i in pairs(ReeD) do
 | 
				
			||||||
 | 
						local reed = "dryplants:"..ReeD[i][1]
 | 
				
			||||||
 | 
						local slab = reed.."_slab"
 | 
				
			||||||
 | 
						local roof = reed.."_roof"
 | 
				
			||||||
 | 
						local corner = roof.."_corner"
 | 
				
			||||||
 | 
						local corner_2 = corner.."_2"
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					-- Block
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
						minetest.register_craft({ -- slab -> block
 | 
				
			||||||
 | 
							output = reed,
 | 
				
			||||||
 | 
							recipe = {
 | 
				
			||||||
 | 
								{slab},
 | 
				
			||||||
 | 
								{slab},
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						})
 | 
				
			||||||
 | 
						minetest.register_craft({ -- roof -> block
 | 
				
			||||||
 | 
							output = reed,
 | 
				
			||||||
 | 
							recipe = {
 | 
				
			||||||
 | 
								{roof},
 | 
				
			||||||
 | 
								{roof},
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						})
 | 
				
			||||||
 | 
						minetest.register_craft({ -- corner -> block
 | 
				
			||||||
 | 
							type = "shapeless",
 | 
				
			||||||
 | 
							output = reed.." 3",
 | 
				
			||||||
 | 
							recipe = {corner,corner,corner,corner,corner,corner,corner,corner}, -- 8x
 | 
				
			||||||
 | 
						})
 | 
				
			||||||
 | 
						minetest.register_craft({ -- corner_2 -> block
 | 
				
			||||||
 | 
							type = "shapeless",
 | 
				
			||||||
 | 
							output = reed.." 3",
 | 
				
			||||||
 | 
							recipe = {corner_2,corner_2,corner_2,corner_2,corner_2,corner_2,corner_2,corner_2}, -- 8x
 | 
				
			||||||
 | 
						})
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					-- Slab
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
						minetest.register_craft({ -- block -> slab
 | 
				
			||||||
 | 
							output = slab.." 6",
 | 
				
			||||||
 | 
							recipe = {
 | 
				
			||||||
 | 
								{reed,reed,reed},
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						})
 | 
				
			||||||
 | 
						minetest.register_craft({ -- roof -> slab
 | 
				
			||||||
 | 
							output = slab,
 | 
				
			||||||
 | 
							recipe = {
 | 
				
			||||||
 | 
								{roof},
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						})
 | 
				
			||||||
 | 
						minetest.register_craft({ -- corner -> slab
 | 
				
			||||||
 | 
							output = slab.." 3",
 | 
				
			||||||
 | 
							recipe = {
 | 
				
			||||||
 | 
								{corner,corner},
 | 
				
			||||||
 | 
								{corner,corner},
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						})
 | 
				
			||||||
 | 
						minetest.register_craft({ -- corner_2 -> slab
 | 
				
			||||||
 | 
							output = slab.." 3",
 | 
				
			||||||
 | 
							recipe = {
 | 
				
			||||||
 | 
								{corner_2,corner_2},
 | 
				
			||||||
 | 
								{corner_2,corner_2},
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						})
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					-- Roof
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
						minetest.register_craft({ -- block -> roof
 | 
				
			||||||
 | 
							output = roof.." 4",
 | 
				
			||||||
 | 
							recipe = {
 | 
				
			||||||
 | 
								{reed,""},
 | 
				
			||||||
 | 
								{"",reed},
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						})
 | 
				
			||||||
 | 
						minetest.register_craft({ -- block -> roof
 | 
				
			||||||
 | 
							output = roof.." 4",
 | 
				
			||||||
 | 
							recipe = {
 | 
				
			||||||
 | 
								{"",reed},
 | 
				
			||||||
 | 
								{reed,""},
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						})
 | 
				
			||||||
 | 
						minetest.register_craft({ -- slab -> roof
 | 
				
			||||||
 | 
							output = roof,
 | 
				
			||||||
 | 
							recipe = {
 | 
				
			||||||
 | 
								{slab},
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						})	
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					-- Roof Corner
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
						minetest.register_craft({ -- block -> corner
 | 
				
			||||||
 | 
							output = corner.." 8",
 | 
				
			||||||
 | 
							recipe = {
 | 
				
			||||||
 | 
								{"",reed,""},
 | 
				
			||||||
 | 
								{reed,"",reed},
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						})
 | 
				
			||||||
 | 
						minetest.register_craft({ -- corner_2 -> corner
 | 
				
			||||||
 | 
							output = corner,
 | 
				
			||||||
 | 
							recipe = {
 | 
				
			||||||
 | 
								{corner_2},
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						})
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					-- Roof Corner 2
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
						minetest.register_craft({ -- block -> corner_2
 | 
				
			||||||
 | 
							output = corner_2.." 8",
 | 
				
			||||||
 | 
							recipe = {
 | 
				
			||||||
 | 
								{reed,"",reed},
 | 
				
			||||||
 | 
								{"",reed,""},
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						})
 | 
				
			||||||
 | 
						minetest.register_craft({ -- corner -> corner_2
 | 
				
			||||||
 | 
							output = corner_2,
 | 
				
			||||||
 | 
							recipe = {
 | 
				
			||||||
 | 
								{corner},
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						})
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					-- Reed
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					minetest.register_craft({ -- hay -> reed
 | 
				
			||||||
 | 
						output = "dryplants:reed 2",
 | 
				
			||||||
 | 
						recipe = {
 | 
				
			||||||
 | 
							{"dryplants:hay","dryplants:hay"},
 | 
				
			||||||
 | 
							{"dryplants:hay","dryplants:hay"},
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					--cooking
 | 
				
			||||||
 | 
					minetest.register_craft({ -- wetreed -> reed
 | 
				
			||||||
 | 
						type = "cooking",
 | 
				
			||||||
 | 
						output = "dryplants:reed",
 | 
				
			||||||
 | 
						recipe = "dryplants:wetreed",
 | 
				
			||||||
 | 
						cooktime = 2,
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					--fuel
 | 
				
			||||||
 | 
					minetest.register_craft({
 | 
				
			||||||
 | 
						type = "fuel",
 | 
				
			||||||
 | 
						recipe = "dryplants:reed",
 | 
				
			||||||
 | 
						burntime = 4,
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					-- Reed Slab
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					--cooking
 | 
				
			||||||
 | 
					minetest.register_craft({ -- wetreed_slab -> reed_slab
 | 
				
			||||||
 | 
						type = "cooking",
 | 
				
			||||||
 | 
						output = "dryplants:reed_slab",
 | 
				
			||||||
 | 
						recipe = "dryplants:wetreed_slab",
 | 
				
			||||||
 | 
						cooktime = 1,
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					--fuel
 | 
				
			||||||
 | 
					minetest.register_craft({
 | 
				
			||||||
 | 
						type = "fuel",
 | 
				
			||||||
 | 
						recipe = "dryplants:reed_slab",
 | 
				
			||||||
 | 
						burntime = 2,
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					-- Reed Roof
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					--cooking
 | 
				
			||||||
 | 
					minetest.register_craft({ -- wetreed_roof -> reed_roof
 | 
				
			||||||
 | 
						type = "cooking",
 | 
				
			||||||
 | 
						output = "dryplants:reed_roof",
 | 
				
			||||||
 | 
						recipe = "dryplants:wetreed_roof",
 | 
				
			||||||
 | 
						cooktime = 1,
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					--fuel
 | 
				
			||||||
 | 
					minetest.register_craft({
 | 
				
			||||||
 | 
						type = "fuel",
 | 
				
			||||||
 | 
						recipe = "dryplants:reed_roof",
 | 
				
			||||||
 | 
						burntime = 2,
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					-- Reed Roof Corner
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					--cooking
 | 
				
			||||||
 | 
					minetest.register_craft({ -- wetreed_roof_corner -> reed_roof_corner
 | 
				
			||||||
 | 
						type = "cooking",
 | 
				
			||||||
 | 
						output = "dryplants:reed_roof_corner",
 | 
				
			||||||
 | 
						recipe = "dryplants:wetreed_roof_corner",
 | 
				
			||||||
 | 
						cooktime = 1,
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					--fuel
 | 
				
			||||||
 | 
					minetest.register_craft({
 | 
				
			||||||
 | 
						type = "fuel",
 | 
				
			||||||
 | 
						recipe = "dryplants:reed_roof_corner",
 | 
				
			||||||
 | 
						burntime = 2,
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					-- Wet Reed Roof Corner 2
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					--cooking
 | 
				
			||||||
 | 
					minetest.register_craft({ -- wetreed_roof_corner -> reed_roof_corner
 | 
				
			||||||
 | 
						type = "cooking",
 | 
				
			||||||
 | 
						output = "dryplants:reed_roof_corner_2",
 | 
				
			||||||
 | 
						recipe = "dryplants:wetreed_roof_corner_2",
 | 
				
			||||||
 | 
						cooktime = 1,
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					--fuel
 | 
				
			||||||
 | 
					minetest.register_craft({
 | 
				
			||||||
 | 
						type = "fuel",
 | 
				
			||||||
 | 
						recipe = "dryplants:reed_roof_corner_2",
 | 
				
			||||||
 | 
						burntime = 2,
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					-- Dandelion Leave 
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					--[[minetest.register_craftitem("dryplants:dandelion_leave", {
 | 
				
			||||||
 | 
						description = "Dandelion Leave",
 | 
				
			||||||
 | 
						inventory_image = "dryplants_dandelion_leave.png",
 | 
				
			||||||
 | 
						on_use = minetest.item_eat(1),
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					minetest.register_craft({
 | 
				
			||||||
 | 
						type = "shapeless",
 | 
				
			||||||
 | 
						output = "dryplants:dandelion_leave 4",
 | 
				
			||||||
 | 
						recipe = {"flowers:dandelion_yellow"},
 | 
				
			||||||
 | 
						replacements = {
 | 
				
			||||||
 | 
							{"flowers:dandelion_yellow", "dye:yellow"}
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
					})]]
 | 
				
			||||||
							
								
								
									
										3
									
								
								dryplants/depends.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,3 @@
 | 
				
			|||||||
 | 
					default
 | 
				
			||||||
 | 
					farming
 | 
				
			||||||
 | 
					plants_lib
 | 
				
			||||||
							
								
								
									
										185
									
								
								dryplants/init.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,185 @@
 | 
				
			|||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					local title		= "Grasses" -- former "Dry plants"
 | 
				
			||||||
 | 
					local version 	= "0.1.5"
 | 
				
			||||||
 | 
					local mname		= "dryplants"
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					-- by Mossmanikin
 | 
				
			||||||
 | 
					-- textures & ideas partly by Neuromancer
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-- License (everything): 	WTFPL
 | 
				
			||||||
 | 
					-- Contains code from: 		default, farming 
 | 
				
			||||||
 | 
					-- Looked at code from:		darkage, sickle, stairs
 | 
				
			||||||
 | 
					-- Dependencies: 			default, farming, plants_lib
 | 
				
			||||||
 | 
					-- Supports:				
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					abstract_dryplants = {}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					dofile(minetest.get_modpath("dryplants").."/crafting.lua")
 | 
				
			||||||
 | 
					dofile(minetest.get_modpath("dryplants").."/settings.txt")
 | 
				
			||||||
 | 
					dofile(minetest.get_modpath("dryplants").."/reed.lua")
 | 
				
			||||||
 | 
					if REEDMACE_GENERATES == true then
 | 
				
			||||||
 | 
					dofile(minetest.get_modpath("dryplants").."/reedmace.lua")
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
 | 
					if SMALL_JUNCUS_GENERATES == true then
 | 
				
			||||||
 | 
					dofile(minetest.get_modpath("dryplants").."/juncus.lua")
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
 | 
					if EXTRA_TALL_GRASS_GENERATES == true then
 | 
				
			||||||
 | 
					dofile(minetest.get_modpath("dryplants").."/moregrass.lua")
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
 | 
					--dofile(minetest.get_modpath("dryplants").."/meadowvariation.lua")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					-- Sickle
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					-- turns nodes with group flora=1 & flower=0 into cut grass
 | 
				
			||||||
 | 
					local function sickle_on_use(itemstack, user, pointed_thing, uses)
 | 
				
			||||||
 | 
						local pt = pointed_thing
 | 
				
			||||||
 | 
						-- check if pointing at a node
 | 
				
			||||||
 | 
						if not pt then
 | 
				
			||||||
 | 
							return
 | 
				
			||||||
 | 
						end
 | 
				
			||||||
 | 
						if pt.type ~= "node" then
 | 
				
			||||||
 | 
							return
 | 
				
			||||||
 | 
						end
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						local under = minetest.get_node(pt.under)
 | 
				
			||||||
 | 
						local p = {x=pt.under.x, y=pt.under.y+1, z=pt.under.z}
 | 
				
			||||||
 | 
						local above = minetest.get_node(p)
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						-- return if any of the nodes is not registered
 | 
				
			||||||
 | 
						if not minetest.registered_nodes[under.name] then
 | 
				
			||||||
 | 
							return
 | 
				
			||||||
 | 
						end
 | 
				
			||||||
 | 
						if not minetest.registered_nodes[above.name] then
 | 
				
			||||||
 | 
							return
 | 
				
			||||||
 | 
						end
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						local node = minetest.env:get_node(pt.under)
 | 
				
			||||||
 | 
						-- check if something that can be cut using fine tools
 | 
				
			||||||
 | 
						if minetest.get_item_group(under.name, "snappy") > 0 then
 | 
				
			||||||
 | 
							-- check if flora but no flower
 | 
				
			||||||
 | 
							if minetest.get_item_group(under.name, "flora") == 1 and minetest.get_item_group(under.name, "flower") == 0 then
 | 
				
			||||||
 | 
								-- turn the node into cut grass, wear out item and play sound
 | 
				
			||||||
 | 
								minetest.set_node(pt.under, {name="dryplants:grass"})
 | 
				
			||||||
 | 
							else -- otherwise get the drop
 | 
				
			||||||
 | 
								local inv = user:get_inventory()
 | 
				
			||||||
 | 
								local name = minetest.env: get_node(pt.under).name
 | 
				
			||||||
 | 
								
 | 
				
			||||||
 | 
								local the_drop = minetest.registered_nodes[name].drop
 | 
				
			||||||
 | 
								
 | 
				
			||||||
 | 
								if the_drop ~= nil then
 | 
				
			||||||
 | 
									if inv:room_for_item("main", the_drop) then
 | 
				
			||||||
 | 
										inv:add_item("main", the_drop)
 | 
				
			||||||
 | 
									end
 | 
				
			||||||
 | 
								else
 | 
				
			||||||
 | 
									if inv:room_for_item("main", name) then
 | 
				
			||||||
 | 
										inv:add_item("main", name)
 | 
				
			||||||
 | 
									end
 | 
				
			||||||
 | 
								end
 | 
				
			||||||
 | 
								minetest.env:remove_node(pt.under)
 | 
				
			||||||
 | 
							end
 | 
				
			||||||
 | 
							minetest.sound_play("default_dig_crumbly", {
 | 
				
			||||||
 | 
								pos = pt.under,
 | 
				
			||||||
 | 
								gain = 0.5,
 | 
				
			||||||
 | 
							})
 | 
				
			||||||
 | 
							itemstack:add_wear(65535/(uses-1))
 | 
				
			||||||
 | 
							return itemstack
 | 
				
			||||||
 | 
						elseif string.find(node.name, "default:dirt_with_grass") then
 | 
				
			||||||
 | 
							minetest.set_node(pt.under, {name="dryplants:grass_short"})
 | 
				
			||||||
 | 
							minetest.set_node(pt.above, {name="dryplants:grass"})
 | 
				
			||||||
 | 
							minetest.sound_play("default_dig_crumbly", {
 | 
				
			||||||
 | 
								pos = pt.under,
 | 
				
			||||||
 | 
								gain = 0.5,
 | 
				
			||||||
 | 
							})
 | 
				
			||||||
 | 
							itemstack:add_wear(65535/(uses-1))
 | 
				
			||||||
 | 
							return itemstack
 | 
				
			||||||
 | 
						end
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
 | 
					-- the tool
 | 
				
			||||||
 | 
					minetest.register_tool("dryplants:sickle", {
 | 
				
			||||||
 | 
						description = "Sickle",
 | 
				
			||||||
 | 
						inventory_image = "dryplants_sickle.png",
 | 
				
			||||||
 | 
						on_use = function(itemstack, user, pointed_thing)
 | 
				
			||||||
 | 
							return sickle_on_use(itemstack, user, pointed_thing, 220)
 | 
				
			||||||
 | 
						end,
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					-- Cut Grass
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					minetest.register_node("dryplants:grass", {
 | 
				
			||||||
 | 
						description = "Cut Grass",
 | 
				
			||||||
 | 
						inventory_image = "dryplants_grass.png",
 | 
				
			||||||
 | 
						wield_image = "dryplants_grass.png",
 | 
				
			||||||
 | 
						paramtype = "light",
 | 
				
			||||||
 | 
						sunlight_propagates = true,
 | 
				
			||||||
 | 
						tiles = {"dryplants_grass.png"},
 | 
				
			||||||
 | 
						drawtype = "nodebox",
 | 
				
			||||||
 | 
						node_box = {
 | 
				
			||||||
 | 
						    type = "fixed",
 | 
				
			||||||
 | 
					        fixed = {-0.5   , -0.5   , -0.5   ,   0.5   , -0.4375,  0.5   },
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
						groups = {snappy=3, flammable=2},
 | 
				
			||||||
 | 
						sounds = default.node_sound_leaves_defaults(),
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					-- Cut Grass becomes Hay over time
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					minetest.register_abm({
 | 
				
			||||||
 | 
						nodenames = {"dryplants:grass"},
 | 
				
			||||||
 | 
						interval = HAY_DRYING_TIME, --1200, -- 20 minutes: a minetest-day/night-cycle
 | 
				
			||||||
 | 
						chance = 1,
 | 
				
			||||||
 | 
						action = function(pos)
 | 
				
			||||||
 | 
							minetest.env:add_node(pos, {name="dryplants:hay"})
 | 
				
			||||||
 | 
						end,
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					-- Hay
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					minetest.register_node("dryplants:hay", {
 | 
				
			||||||
 | 
						description = "Hay",
 | 
				
			||||||
 | 
						inventory_image = "dryplants_hay.png",
 | 
				
			||||||
 | 
						wield_image = "dryplants_hay.png",
 | 
				
			||||||
 | 
						paramtype = "light",
 | 
				
			||||||
 | 
						sunlight_propagates = true,
 | 
				
			||||||
 | 
						tiles = {"dryplants_hay.png"},
 | 
				
			||||||
 | 
						drawtype = "nodebox",
 | 
				
			||||||
 | 
						node_box = {
 | 
				
			||||||
 | 
						    type = "fixed",
 | 
				
			||||||
 | 
					        fixed = {-0.5   , -0.5   , -0.5   ,   0.5   , -0.4375,  0.5   },
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
						groups = {snappy=3, flammable=2},
 | 
				
			||||||
 | 
						sounds = default.node_sound_leaves_defaults(),
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					-- Short Grass
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					minetest.register_node("dryplants:grass_short", {
 | 
				
			||||||
 | 
						description = "Short Grass",
 | 
				
			||||||
 | 
						tiles = {"default_grass.png^dryplants_grass_short.png", "default_dirt.png", "default_dirt.png^default_grass_side.png^dryplants_grass_short_side.png"},
 | 
				
			||||||
 | 
						is_ground_content = true,
 | 
				
			||||||
 | 
						groups = {crumbly=3,soil=1,not_in_creative_inventory=1},
 | 
				
			||||||
 | 
						--drop = 'default:dirt',
 | 
				
			||||||
 | 
						sounds = default.node_sound_dirt_defaults({
 | 
				
			||||||
 | 
							footstep = {name="default_grass_footstep", gain=0.4},
 | 
				
			||||||
 | 
						}),
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					-- Short Grass becomes Dirt with Grass over time
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					minetest.register_abm({
 | 
				
			||||||
 | 
						nodenames = {"dryplants:grass_short"},
 | 
				
			||||||
 | 
						interval = GRASS_REGROWING_TIME, --1200, -- 20 minutes: a minetest-day/night-cycle
 | 
				
			||||||
 | 
						chance = 100/GRASS_REGROWING_CHANCE,
 | 
				
			||||||
 | 
						action = function(pos)
 | 
				
			||||||
 | 
							minetest.env:add_node(pos, {name="default:dirt_with_grass"})
 | 
				
			||||||
 | 
						end,
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					print("[Mod] "..title.." ["..version.."] ["..mname.."] Loaded...")
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
							
								
								
									
										127
									
								
								dryplants/juncus.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,127 @@
 | 
				
			|||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					-- Grasses - Juncus 0.0.5
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					-- by Mossmanikin
 | 
				
			||||||
 | 
					-- textures & ideas partly by Neuromancer
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-- License (everything): 	WTFPL
 | 
				
			||||||
 | 
					-- Contains code from: 		plants_lib
 | 
				
			||||||
 | 
					-- Looked at code from:		default			
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					abstract_dryplants.grow_juncus = function(pos)
 | 
				
			||||||
 | 
						local juncus_type = math.random(2,3)
 | 
				
			||||||
 | 
						local right_here = {x=pos.x, y=pos.y+1, z=pos.z}
 | 
				
			||||||
 | 
						if minetest.env:get_node(right_here).name == "air"  -- instead of check_air = true,
 | 
				
			||||||
 | 
						or minetest.env:get_node(right_here).name == "default:junglegrass" then
 | 
				
			||||||
 | 
							if juncus_type == 2 then
 | 
				
			||||||
 | 
								minetest.env:add_node(right_here, {name="dryplants:juncus_02"})
 | 
				
			||||||
 | 
							else
 | 
				
			||||||
 | 
								minetest.env:add_node(right_here, {name="dryplants:juncus"})
 | 
				
			||||||
 | 
							end
 | 
				
			||||||
 | 
						end
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					minetest.register_node("dryplants:juncus", {
 | 
				
			||||||
 | 
						description = "Juncus",
 | 
				
			||||||
 | 
						drawtype = "plantlike",
 | 
				
			||||||
 | 
						visual_scale = 2,
 | 
				
			||||||
 | 
						paramtype = "light",
 | 
				
			||||||
 | 
						tiles = {"dryplants_juncus_03.png"},
 | 
				
			||||||
 | 
						inventory_image = "dryplants_juncus_inv.png",
 | 
				
			||||||
 | 
						walkable = false,
 | 
				
			||||||
 | 
						groups = {
 | 
				
			||||||
 | 
							snappy=3,
 | 
				
			||||||
 | 
							flammable=2,
 | 
				
			||||||
 | 
							attached_node=1,
 | 
				
			||||||
 | 
							flora=1
 | 
				
			||||||
 | 
							--not_in_creative_inventory=1
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
						sounds = default.node_sound_leaves_defaults(),
 | 
				
			||||||
 | 
						selection_box = {
 | 
				
			||||||
 | 
							type = "fixed",
 | 
				
			||||||
 | 
							fixed = {-7/16, -1/2, -7/16, 7/16, 0, 7/16},
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
						on_place = function(itemstack, placer, pointed_thing)
 | 
				
			||||||
 | 
							local pos = pointed_thing.under
 | 
				
			||||||
 | 
							local juncus_type = math.random(2,3)
 | 
				
			||||||
 | 
							local right_here = {x=pos.x, y=pos.y+1, z=pos.z}
 | 
				
			||||||
 | 
							if juncus_type == 2 then
 | 
				
			||||||
 | 
								minetest.env:add_node(right_here, {name="dryplants:juncus_02"})
 | 
				
			||||||
 | 
							else
 | 
				
			||||||
 | 
								minetest.env:add_node(right_here, {name="dryplants:juncus"})
 | 
				
			||||||
 | 
							end
 | 
				
			||||||
 | 
							if not minetest.setting_getbool("creative_mode") then
 | 
				
			||||||
 | 
								itemstack:take_item()
 | 
				
			||||||
 | 
							end
 | 
				
			||||||
 | 
							return itemstack
 | 
				
			||||||
 | 
						end,
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					minetest.register_node("dryplants:juncus_02", {
 | 
				
			||||||
 | 
						description = "Juncus",
 | 
				
			||||||
 | 
						drawtype = "plantlike",
 | 
				
			||||||
 | 
						visual_scale = 2,
 | 
				
			||||||
 | 
						paramtype = "light",
 | 
				
			||||||
 | 
						tiles = {"dryplants_juncus_02.png"},
 | 
				
			||||||
 | 
						walkable = false,
 | 
				
			||||||
 | 
						groups = {
 | 
				
			||||||
 | 
							snappy=3,
 | 
				
			||||||
 | 
							flammable=2,
 | 
				
			||||||
 | 
							attached_node=1,
 | 
				
			||||||
 | 
							flora=1,
 | 
				
			||||||
 | 
							not_in_creative_inventory=1
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
						sounds = default.node_sound_leaves_defaults(),
 | 
				
			||||||
 | 
						selection_box = {
 | 
				
			||||||
 | 
							type = "fixed",
 | 
				
			||||||
 | 
							fixed = {-7/16, -1/2, -7/16, 7/16, 0, 7/16},
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
						drop = "dryplants:juncus",
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					-- GENERATE SMALL JUNCUS
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					-- near water or swamp
 | 
				
			||||||
 | 
					plantslib:register_generate_plant({
 | 
				
			||||||
 | 
					    surface = {
 | 
				
			||||||
 | 
							"default:dirt_with_grass", 
 | 
				
			||||||
 | 
							--"default:desert_sand",
 | 
				
			||||||
 | 
							--"default:sand",
 | 
				
			||||||
 | 
							"stoneage:grass_with_silex",
 | 
				
			||||||
 | 
							"sumpf:peat",
 | 
				
			||||||
 | 
							"sumpf:sumpf"
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
					    max_count = JUNCUS_NEAR_WATER_PER_MAPBLOCK,
 | 
				
			||||||
 | 
					    rarity = 101 - JUNCUS_NEAR_WATER_RARITY,
 | 
				
			||||||
 | 
					    min_elevation = 1, -- above sea level
 | 
				
			||||||
 | 
						near_nodes = {"default:water_source","sumpf:dirtywater_source","sumpf:sumpf"},
 | 
				
			||||||
 | 
						near_nodes_size = 2,
 | 
				
			||||||
 | 
						near_nodes_vertical = 1,
 | 
				
			||||||
 | 
						near_nodes_count = 1,
 | 
				
			||||||
 | 
					    plantlife_limit = -0.9,
 | 
				
			||||||
 | 
						check_air = false,
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  "abstract_dryplants.grow_juncus"
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					-- at dunes/beach
 | 
				
			||||||
 | 
					plantslib:register_generate_plant({
 | 
				
			||||||
 | 
					    surface = {
 | 
				
			||||||
 | 
							--"default:dirt_with_grass", 
 | 
				
			||||||
 | 
							--"default:desert_sand",
 | 
				
			||||||
 | 
							"default:sand",
 | 
				
			||||||
 | 
							--"stoneage:grass_with_silex",
 | 
				
			||||||
 | 
							--"sumpf:peat",
 | 
				
			||||||
 | 
							--"sumpf:sumpf"
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
					    max_count = JUNCUS_AT_BEACH_PER_MAPBLOCK,
 | 
				
			||||||
 | 
					    rarity = 101 - JUNCUS_AT_BEACH_RARITY,
 | 
				
			||||||
 | 
					    min_elevation = 1, -- above sea level
 | 
				
			||||||
 | 
						near_nodes = {"default:dirt_with_grass"},
 | 
				
			||||||
 | 
						near_nodes_size = 2,
 | 
				
			||||||
 | 
						near_nodes_vertical = 1,
 | 
				
			||||||
 | 
						near_nodes_count = 1,
 | 
				
			||||||
 | 
					    plantlife_limit = -0.9,
 | 
				
			||||||
 | 
						check_air = false,
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  "abstract_dryplants.grow_juncus"
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
							
								
								
									
										27
									
								
								dryplants/meadowvariation.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,27 @@
 | 
				
			|||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					-- Grasses - Meadow Variation 0.0.1
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					-- by Mossmanikin
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-- License (everything): 	WTFPL
 | 
				
			||||||
 | 
					-- Contains code from: 		plants_lib
 | 
				
			||||||
 | 
					-- Looked at code from:		default				
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					abstract_dryplants.grow_grass_variation = function(pos)
 | 
				
			||||||
 | 
						local right_here = {x=pos.x, y=pos.y, z=pos.z}
 | 
				
			||||||
 | 
						minetest.add_node(right_here, {name="dryplants:grass_short"})
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					plantslib:register_generate_plant({
 | 
				
			||||||
 | 
					    surface = {
 | 
				
			||||||
 | 
							"default:dirt_with_grass",
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
					    max_count = 4800,
 | 
				
			||||||
 | 
					    rarity = 25,
 | 
				
			||||||
 | 
					    min_elevation = 1, -- above sea level
 | 
				
			||||||
 | 
						plantlife_limit = -0.9,
 | 
				
			||||||
 | 
						check_air = false,
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  "abstract_dryplants.grow_grass_variation"
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
							
								
								
									
										35
									
								
								dryplants/moregrass.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,35 @@
 | 
				
			|||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					-- Grasses - More Tall Grass 0.0.2
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					-- by Mossmanikin
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-- License (everything): 	WTFPL
 | 
				
			||||||
 | 
					-- Contains code from: 		plants_lib
 | 
				
			||||||
 | 
					-- Looked at code from:		default				
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					abstract_dryplants.grow_grass = function(pos)
 | 
				
			||||||
 | 
						local right_here = {x=pos.x, y=pos.y+1, z=pos.z}
 | 
				
			||||||
 | 
						local grass_size = math.random(1,5)
 | 
				
			||||||
 | 
						if minetest.get_node(right_here).name == "air"  -- instead of check_air = true,
 | 
				
			||||||
 | 
						or minetest.get_node(right_here).name == "default:junglegrass" then
 | 
				
			||||||
 | 
							minetest.add_node(right_here, {name="default:grass_"..grass_size})
 | 
				
			||||||
 | 
						end
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					plantslib:register_generate_plant({
 | 
				
			||||||
 | 
					    surface = {
 | 
				
			||||||
 | 
							"default:dirt_with_grass",
 | 
				
			||||||
 | 
							"dryplants:grass_short",
 | 
				
			||||||
 | 
							"stoneage:grass_with_silex",
 | 
				
			||||||
 | 
							"sumpf:peat",
 | 
				
			||||||
 | 
							"sumpf:sumpf"
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
					    max_count = TALL_GRASS_PER_MAPBLOCK,
 | 
				
			||||||
 | 
					    rarity = 101 - TALL_GRASS_RARITY,
 | 
				
			||||||
 | 
					    min_elevation = 1, -- above sea level
 | 
				
			||||||
 | 
						plantlife_limit = -0.9,
 | 
				
			||||||
 | 
						check_air = false,
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  "abstract_dryplants.grow_grass"
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
							
								
								
									
										380
									
								
								dryplants/reed.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,380 @@
 | 
				
			|||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					-- Dry Plants - Reed 0.0.5
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					-- by Mossmanikin
 | 
				
			||||||
 | 
					-- License (everything): 	WTFPL
 | 
				
			||||||
 | 
					-- Looked at code from:		darkage, default, stairs
 | 
				
			||||||
 | 
					-- Dependencies: 			default			
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					minetest.register_alias("stairs:stair_wetreed",				"dryplants:wetreed_roof")
 | 
				
			||||||
 | 
					minetest.register_alias("stairs:slab_wetreed",				"dryplants:wetreed_slab")
 | 
				
			||||||
 | 
					minetest.register_alias("stairs:stair_reed",				"dryplants:reed_roof")
 | 
				
			||||||
 | 
					minetest.register_alias("stairs:slab_reed",					"dryplants:reed_slab")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					-- Wet Reed
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					minetest.register_node("dryplants:wetreed", {
 | 
				
			||||||
 | 
						description = "Wet Reed",
 | 
				
			||||||
 | 
						paramtype = "light",
 | 
				
			||||||
 | 
						paramtype2 = "facedir",
 | 
				
			||||||
 | 
						tiles = {"dryplants_reed_wet.png"},
 | 
				
			||||||
 | 
						groups = {snappy=3, flammable=2},
 | 
				
			||||||
 | 
						sounds = default.node_sound_leaves_defaults(),
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					-- Wet Reed Slab
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					minetest.register_node("dryplants:wetreed_slab", {
 | 
				
			||||||
 | 
						description = "Wet Reed Slab",
 | 
				
			||||||
 | 
						drawtype = "nodebox",
 | 
				
			||||||
 | 
						paramtype = "light",
 | 
				
			||||||
 | 
						paramtype2 = "facedir",
 | 
				
			||||||
 | 
						tiles = {"dryplants_reed_wet.png"},
 | 
				
			||||||
 | 
						node_box = {
 | 
				
			||||||
 | 
							type = "fixed",
 | 
				
			||||||
 | 
							fixed = {-1/2, -1/2, -1/2, 1/2, 0, 1/2},
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
						selection_box = {
 | 
				
			||||||
 | 
							type = "fixed",
 | 
				
			||||||
 | 
							fixed = {-1/2, -1/2, -1/2, 1/2, 0, 1/2},
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
						groups = {snappy=3, flammable=2},
 | 
				
			||||||
 | 
						sounds = default.node_sound_leaves_defaults(),
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					-- Wet Reed Roof
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					minetest.register_node("dryplants:wetreed_roof", {
 | 
				
			||||||
 | 
						description = "Wet Reed Roof",
 | 
				
			||||||
 | 
						drawtype = "nodebox",
 | 
				
			||||||
 | 
						paramtype = "light",
 | 
				
			||||||
 | 
						paramtype2 = "facedir",
 | 
				
			||||||
 | 
						tiles = {"dryplants_reed_wet.png"},
 | 
				
			||||||
 | 
						node_box = {
 | 
				
			||||||
 | 
							type = "fixed",
 | 
				
			||||||
 | 
					--				{ left	, bottom , front  ,  right ,  top   ,  back  }
 | 
				
			||||||
 | 
							fixed = {
 | 
				
			||||||
 | 
								{-1/2, 0, 0, 1/2, 1/2, 1/2},
 | 
				
			||||||
 | 
								{-1/2, -1/2, -1/2, 1/2, 0, 0},
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
						selection_box = {
 | 
				
			||||||
 | 
							type = "fixed",
 | 
				
			||||||
 | 
							fixed = {
 | 
				
			||||||
 | 
								{-1/2, 0, 0, 1/2, 1/2, 1/2},
 | 
				
			||||||
 | 
								{-1/2, -1/2, -1/2, 1/2, 0, 0},
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
						groups = {snappy=3, flammable=2},
 | 
				
			||||||
 | 
						sounds = default.node_sound_leaves_defaults(),
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if AUTO_ROOF_CORNER == true then
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						local CoRNeR = {
 | 
				
			||||||
 | 
					--		  MaTeRiaL
 | 
				
			||||||
 | 
							{"wetreed"},
 | 
				
			||||||
 | 
							{"reed"}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						for i in pairs(CoRNeR) do
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							local MaTeRiaL = CoRNeR[i][1]
 | 
				
			||||||
 | 
							local roof = "dryplants:"..MaTeRiaL.."_roof"
 | 
				
			||||||
 | 
							local corner = "dryplants:"..MaTeRiaL.."_roof_corner"
 | 
				
			||||||
 | 
							local corner_2 = "dryplants:"..MaTeRiaL.."_roof_corner_2"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							minetest.register_abm({
 | 
				
			||||||
 | 
								nodenames = {roof},
 | 
				
			||||||
 | 
								interval = 1,
 | 
				
			||||||
 | 
								chance = 1,
 | 
				
			||||||
 | 
								action = function(pos)
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
									local node_east = 			minetest.env:get_node({x=pos.x+1, y=pos.y, z=pos.z  })
 | 
				
			||||||
 | 
									local node_west = 			minetest.env:get_node({x=pos.x-1, y=pos.y, z=pos.z  })
 | 
				
			||||||
 | 
									local node_north = 			minetest.env:get_node({x=pos.x,   y=pos.y, z=pos.z+1})
 | 
				
			||||||
 | 
									local node_south = 			minetest.env:get_node({x=pos.x,   y=pos.y, z=pos.z-1})
 | 
				
			||||||
 | 
							-- corner 1
 | 
				
			||||||
 | 
									if ((node_west.name == roof and node_west.param2 == 0)
 | 
				
			||||||
 | 
									or (node_west.name == corner and node_west.param2 == 1))
 | 
				
			||||||
 | 
									and ((node_north.name == roof and node_north.param2 == 3)
 | 
				
			||||||
 | 
									or (node_north.name == corner and node_north.param2 == 3))
 | 
				
			||||||
 | 
									then
 | 
				
			||||||
 | 
										minetest.env:add_node(pos, {name=corner, param2=0})
 | 
				
			||||||
 | 
									end
 | 
				
			||||||
 | 
							
 | 
				
			||||||
 | 
									if ((node_north.name == roof and node_north.param2 == 1)
 | 
				
			||||||
 | 
									or (node_north.name == corner and node_north.param2 == 2))
 | 
				
			||||||
 | 
									and ((node_east.name == roof and node_east.param2 == 0)
 | 
				
			||||||
 | 
									or (node_east.name == corner and node_east.param2 == 0))
 | 
				
			||||||
 | 
									then
 | 
				
			||||||
 | 
										minetest.env:add_node(pos, {name=corner, param2=1})
 | 
				
			||||||
 | 
									end
 | 
				
			||||||
 | 
							
 | 
				
			||||||
 | 
									if ((node_east.name == roof and node_east.param2 == 2)
 | 
				
			||||||
 | 
									or (node_east.name == corner and node_east.param2 == 3))
 | 
				
			||||||
 | 
									and ((node_south.name == roof and node_south.param2 == 1)
 | 
				
			||||||
 | 
									or (node_south.name == corner and node_south.param2 == 1))
 | 
				
			||||||
 | 
									then
 | 
				
			||||||
 | 
										minetest.env:add_node(pos, {name=corner, param2=2})
 | 
				
			||||||
 | 
									end
 | 
				
			||||||
 | 
							
 | 
				
			||||||
 | 
									if ((node_south.name == roof and node_south.param2 == 3)
 | 
				
			||||||
 | 
									or (node_south.name == corner and node_south.param2 == 0))
 | 
				
			||||||
 | 
									and ((node_west.name == roof and node_west.param2 == 2)
 | 
				
			||||||
 | 
									or (node_west.name == corner and node_west.param2 == 2))
 | 
				
			||||||
 | 
									then
 | 
				
			||||||
 | 
										minetest.env:add_node(pos, {name=corner, param2=3})
 | 
				
			||||||
 | 
									end
 | 
				
			||||||
 | 
							-- corner 2
 | 
				
			||||||
 | 
									if ((node_west.name == roof and node_west.param2 == 2)
 | 
				
			||||||
 | 
									or (node_west.name == corner_2 and node_west.param2 == 1))
 | 
				
			||||||
 | 
									and ((node_north.name == roof and node_north.param2 == 1)
 | 
				
			||||||
 | 
									or (node_north.name == corner_2 and node_north.param2 == 3))
 | 
				
			||||||
 | 
									then
 | 
				
			||||||
 | 
										minetest.env:add_node(pos, {name=corner_2, param2=0})
 | 
				
			||||||
 | 
									end
 | 
				
			||||||
 | 
							
 | 
				
			||||||
 | 
									if ((node_north.name == roof and node_north.param2 == 3)
 | 
				
			||||||
 | 
									or (node_north.name == corner_2 and node_north.param2 == 2))
 | 
				
			||||||
 | 
									and ((node_east.name == roof and node_east.param2 == 2)
 | 
				
			||||||
 | 
									or (node_east.name == corner_2 and node_east.param2 == 0))
 | 
				
			||||||
 | 
									then
 | 
				
			||||||
 | 
										minetest.env:add_node(pos, {name=corner_2, param2=1})
 | 
				
			||||||
 | 
									end
 | 
				
			||||||
 | 
							
 | 
				
			||||||
 | 
									if ((node_east.name == roof and node_east.param2 == 0)
 | 
				
			||||||
 | 
									or (node_east.name == corner_2 and node_east.param2 == 3))
 | 
				
			||||||
 | 
									and ((node_south.name == roof and node_south.param2 == 3)
 | 
				
			||||||
 | 
									or (node_south.name == corner_2 and node_south.param2 == 1))
 | 
				
			||||||
 | 
									then
 | 
				
			||||||
 | 
										minetest.env:add_node(pos, {name=corner_2, param2=2})
 | 
				
			||||||
 | 
									end
 | 
				
			||||||
 | 
							
 | 
				
			||||||
 | 
									if ((node_south.name == roof and node_south.param2 == 1)
 | 
				
			||||||
 | 
									or (node_south.name == corner_2 and node_south.param2 == 0))
 | 
				
			||||||
 | 
									and ((node_west.name == roof and node_west.param2 == 0)
 | 
				
			||||||
 | 
									or (node_west.name == corner_2 and node_west.param2 == 2))
 | 
				
			||||||
 | 
									then
 | 
				
			||||||
 | 
										minetest.env:add_node(pos, {name=corner_2, param2=3})
 | 
				
			||||||
 | 
									end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								end,
 | 
				
			||||||
 | 
							})
 | 
				
			||||||
 | 
						end
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					-- Wet Reed Roof Corner
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					minetest.register_node("dryplants:wetreed_roof_corner", {
 | 
				
			||||||
 | 
						description = "Wet Reed Roof Corner",
 | 
				
			||||||
 | 
						drawtype = "nodebox",
 | 
				
			||||||
 | 
						paramtype = "light",
 | 
				
			||||||
 | 
						paramtype2 = "facedir",
 | 
				
			||||||
 | 
						tiles = {"dryplants_reed_wet.png"},
 | 
				
			||||||
 | 
						node_box = {
 | 
				
			||||||
 | 
							type = "fixed",
 | 
				
			||||||
 | 
					--				{ left	, bottom , front  ,  right ,  top   ,  back  }
 | 
				
			||||||
 | 
							fixed = {
 | 
				
			||||||
 | 
								{-1/2, 0, 0, 0, 1/2, 1/2},
 | 
				
			||||||
 | 
								{0, -1/2, 0, 1/2, 0, 1/2},
 | 
				
			||||||
 | 
								{-1/2, -1/2, -1/2, 0, 0, 0},
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
						selection_box = {
 | 
				
			||||||
 | 
							type = "fixed",
 | 
				
			||||||
 | 
							fixed = {
 | 
				
			||||||
 | 
								{-1/2, 0, 0, 0, 1/2, 1/2},
 | 
				
			||||||
 | 
								{0, -1/2, 0, 1/2, 0, 1/2},
 | 
				
			||||||
 | 
								{-1/2, -1/2, -1/2, 0, 0, 0},
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
						groups = {snappy=3, flammable=2},
 | 
				
			||||||
 | 
						sounds = default.node_sound_leaves_defaults(),
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					-- Wet Reed Roof Corner 2
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					minetest.register_node("dryplants:wetreed_roof_corner_2", {
 | 
				
			||||||
 | 
						description = "Wet Reed Roof Corner 2",
 | 
				
			||||||
 | 
						drawtype = "nodebox",
 | 
				
			||||||
 | 
						paramtype = "light",
 | 
				
			||||||
 | 
						paramtype2 = "facedir",
 | 
				
			||||||
 | 
						tiles = {"dryplants_reed_wet.png"},
 | 
				
			||||||
 | 
						node_box = {
 | 
				
			||||||
 | 
							type = "fixed",
 | 
				
			||||||
 | 
					--				{ left	, bottom , front  ,  right ,  top   ,  back  }
 | 
				
			||||||
 | 
							fixed = {
 | 
				
			||||||
 | 
								{-1/2, -1/2, 0, 0, 0, 1/2},
 | 
				
			||||||
 | 
								{0, 0, 0, 1/2, 1/2, 1/2},
 | 
				
			||||||
 | 
								{-1/2, 0, -1/2, 0, 1/2, 0},
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
						selection_box = {
 | 
				
			||||||
 | 
							type = "fixed",
 | 
				
			||||||
 | 
							fixed = {
 | 
				
			||||||
 | 
								{-1/2, -1/2, 0, 0, 0, 1/2},
 | 
				
			||||||
 | 
								{0, 0, 0, 1/2, 1/2, 1/2},
 | 
				
			||||||
 | 
								{-1/2, 0, -1/2, 0, 1/2, 0},
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
						groups = {snappy=3, flammable=2},
 | 
				
			||||||
 | 
						sounds = default.node_sound_leaves_defaults(),
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
							
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					-- Wet Reed becomes (dry) Reed over time
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					if REED_WILL_DRY == true then
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						local DRyiNG = {
 | 
				
			||||||
 | 
					--	  	  WeT									 DRy
 | 
				
			||||||
 | 
							{"dryplants:wetreed",					"dryplants:reed"},
 | 
				
			||||||
 | 
							{"dryplants:wetreed_slab",				"dryplants:reed_slab"},
 | 
				
			||||||
 | 
							{"dryplants:wetreed_roof",				"dryplants:reed_roof"},
 | 
				
			||||||
 | 
							{"dryplants:wetreed_roof_corner",		"dryplants:reed_roof_corner"},
 | 
				
			||||||
 | 
							{"dryplants:wetreed_roof_corner_2",		"dryplants:reed_roof_corner_2"}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						for i in pairs(DRyiNG) do
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							local WeT = DRyiNG[i][1]
 | 
				
			||||||
 | 
							local DRy = DRyiNG[i][2]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							minetest.register_abm({
 | 
				
			||||||
 | 
								nodenames = {WeT},
 | 
				
			||||||
 | 
								interval = REED_DRYING_TIME, --1200, -- 20 minutes: a minetest-day/night-cycle
 | 
				
			||||||
 | 
								chance = 1,
 | 
				
			||||||
 | 
								action = function(pos)
 | 
				
			||||||
 | 
									local direction = minetest.get_node(pos).param2
 | 
				
			||||||
 | 
									minetest.env:add_node(pos, {name=DRy, param2=direction})
 | 
				
			||||||
 | 
								end,
 | 
				
			||||||
 | 
							})
 | 
				
			||||||
 | 
						end
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					-- Reed
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					minetest.register_node("dryplants:reed", {
 | 
				
			||||||
 | 
						description = "Reed",
 | 
				
			||||||
 | 
						paramtype = "light",
 | 
				
			||||||
 | 
						paramtype2 = "facedir",
 | 
				
			||||||
 | 
						tiles = {"dryplants_reed.png"},
 | 
				
			||||||
 | 
						groups = {snappy=3, flammable=2},
 | 
				
			||||||
 | 
						sounds = default.node_sound_leaves_defaults(),
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					-- Reed Slab
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					minetest.register_node("dryplants:reed_slab", {
 | 
				
			||||||
 | 
						description = "Reed Slab",
 | 
				
			||||||
 | 
						drawtype = "nodebox",
 | 
				
			||||||
 | 
						paramtype = "light",
 | 
				
			||||||
 | 
						paramtype2 = "facedir",
 | 
				
			||||||
 | 
						tiles = {"dryplants_reed.png"},
 | 
				
			||||||
 | 
						node_box = {
 | 
				
			||||||
 | 
							type = "fixed",
 | 
				
			||||||
 | 
							fixed = {-1/2, -1/2, -1/2, 1/2, 0, 1/2},
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
						selection_box = {
 | 
				
			||||||
 | 
							type = "fixed",
 | 
				
			||||||
 | 
							fixed = {-1/2, -1/2, -1/2, 1/2, 0, 1/2},
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
						groups = {snappy=3, flammable=2},
 | 
				
			||||||
 | 
						sounds = default.node_sound_leaves_defaults(),
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					-- Reed Roof
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					minetest.register_node("dryplants:reed_roof", {
 | 
				
			||||||
 | 
						description = "Reed Roof",
 | 
				
			||||||
 | 
						drawtype = "nodebox",
 | 
				
			||||||
 | 
						paramtype = "light",
 | 
				
			||||||
 | 
						paramtype2 = "facedir",
 | 
				
			||||||
 | 
						tiles = {"dryplants_reed.png"},
 | 
				
			||||||
 | 
						node_box = {
 | 
				
			||||||
 | 
							type = "fixed",
 | 
				
			||||||
 | 
					--				{ left	, bottom , front  ,  right ,  top   ,  back  }
 | 
				
			||||||
 | 
							fixed = {
 | 
				
			||||||
 | 
								{-1/2, 0, 0, 1/2, 1/2, 1/2},
 | 
				
			||||||
 | 
								{-1/2, -1/2, -1/2, 1/2, 0, 0},
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
						selection_box = {
 | 
				
			||||||
 | 
							type = "fixed",
 | 
				
			||||||
 | 
							fixed = {
 | 
				
			||||||
 | 
								{-1/2, 0, 0, 1/2, 1/2, 1/2},
 | 
				
			||||||
 | 
								{-1/2, -1/2, -1/2, 1/2, 0, 0},
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
						groups = {snappy=3, flammable=2},
 | 
				
			||||||
 | 
						sounds = default.node_sound_leaves_defaults(),
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					-- Reed Roof Corner
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					minetest.register_node("dryplants:reed_roof_corner", {
 | 
				
			||||||
 | 
						description = "Reed Roof Corner",
 | 
				
			||||||
 | 
						drawtype = "nodebox",
 | 
				
			||||||
 | 
						paramtype = "light",
 | 
				
			||||||
 | 
						paramtype2 = "facedir",
 | 
				
			||||||
 | 
						tiles = {"dryplants_reed.png"},
 | 
				
			||||||
 | 
						node_box = {
 | 
				
			||||||
 | 
							type = "fixed",
 | 
				
			||||||
 | 
					--				{ left	, bottom , front  ,  right ,  top   ,  back  }
 | 
				
			||||||
 | 
							fixed = {
 | 
				
			||||||
 | 
								{-1/2, 0, 0, 0, 1/2, 1/2},
 | 
				
			||||||
 | 
								{0, -1/2, 0, 1/2, 0, 1/2},
 | 
				
			||||||
 | 
								{-1/2, -1/2, -1/2, 0, 0, 0},
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
						selection_box = {
 | 
				
			||||||
 | 
							type = "fixed",
 | 
				
			||||||
 | 
							fixed = {
 | 
				
			||||||
 | 
								{-1/2, 0, 0, 0, 1/2, 1/2},
 | 
				
			||||||
 | 
								{0, -1/2, 0, 1/2, 0, 1/2},
 | 
				
			||||||
 | 
								{-1/2, -1/2, -1/2, 0, 0, 0},
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
						groups = {snappy=3, flammable=2},
 | 
				
			||||||
 | 
						sounds = default.node_sound_leaves_defaults(),
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					-- Reed Roof Corner 2
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					minetest.register_node("dryplants:reed_roof_corner_2", {
 | 
				
			||||||
 | 
						description = "Reed Roof Corner 2",
 | 
				
			||||||
 | 
						drawtype = "nodebox",
 | 
				
			||||||
 | 
						paramtype = "light",
 | 
				
			||||||
 | 
						paramtype2 = "facedir",
 | 
				
			||||||
 | 
						tiles = {"dryplants_reed.png"},
 | 
				
			||||||
 | 
						node_box = {
 | 
				
			||||||
 | 
							type = "fixed",
 | 
				
			||||||
 | 
					--				{ left	, bottom , front  ,  right ,  top   ,  back  }
 | 
				
			||||||
 | 
							fixed = {
 | 
				
			||||||
 | 
								{-1/2, -1/2, 0, 0, 0, 1/2},
 | 
				
			||||||
 | 
								{0, 0, 0, 1/2, 1/2, 1/2},
 | 
				
			||||||
 | 
								{-1/2, 0, -1/2, 0, 1/2, 0},
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
						selection_box = {
 | 
				
			||||||
 | 
							type = "fixed",
 | 
				
			||||||
 | 
							fixed = {
 | 
				
			||||||
 | 
								{-1/2, -1/2, 0, 0, 0, 1/2},
 | 
				
			||||||
 | 
								{0, 0, 0, 1/2, 1/2, 1/2},
 | 
				
			||||||
 | 
								{-1/2, 0, -1/2, 0, 1/2, 0},
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
						groups = {snappy=3, flammable=2},
 | 
				
			||||||
 | 
						sounds = default.node_sound_leaves_defaults(),
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
							
								
								
									
										410
									
								
								dryplants/reedmace.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,410 @@
 | 
				
			|||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					-- Grasses - Reedmace 0.1.1
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					-- by Mossmanikin
 | 
				
			||||||
 | 
					-- textures & ideas partly by Neuromancer
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-- License (everything): 	WTFPL
 | 
				
			||||||
 | 
					-- Contains code from: 		plants_lib
 | 
				
			||||||
 | 
					-- Looked at code from:		default, trees				
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-- NOTES (from wikipedia, some of this might get implemented)
 | 
				
			||||||
 | 
					-- rhizomes are edible
 | 
				
			||||||
 | 
					-- outer portion of young plants can be peeled and the heart can be eaten raw or boiled and eaten like asparagus
 | 
				
			||||||
 | 
					-- leaf bases can be eaten raw or cooked
 | 
				
			||||||
 | 
					-- sheath can be removed from the developing green flower spike, which can then be boiled and eaten like corn on the cob
 | 
				
			||||||
 | 
					-- pollen can be collected and used as a flour supplement or thickener
 | 
				
			||||||
 | 
					-- Typha stems and leaves can be used to make paper
 | 
				
			||||||
 | 
					-- The seed hairs were used by some Native American groups as tinder for starting fires
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					-- REEDMACE SHAPES
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					abstract_dryplants.grow_reedmace = function(pos)
 | 
				
			||||||
 | 
						local size = math.random(1,3)
 | 
				
			||||||
 | 
						local spikes = math.random(1,3)
 | 
				
			||||||
 | 
						local pos_01 = {x = pos.x, y = pos.y + 1, z = pos.z}
 | 
				
			||||||
 | 
						local pos_02 = {x = pos.x, y = pos.y + 2, z = pos.z}
 | 
				
			||||||
 | 
						local pos_03 = {x = pos.x, y = pos.y + 3, z = pos.z}
 | 
				
			||||||
 | 
						if minetest.env:get_node(pos_01).name == "air"  -- bug fix
 | 
				
			||||||
 | 
						or minetest.env:get_node(pos_01).name == "dryplants:reedmace_sapling" then
 | 
				
			||||||
 | 
							if minetest.env:get_node(pos_02).name ~= "air" then
 | 
				
			||||||
 | 
								minetest.env:add_node(pos_01, {name="dryplants:reedmace_top"})
 | 
				
			||||||
 | 
							elseif minetest.env:get_node(pos_03).name ~= "air" then
 | 
				
			||||||
 | 
								minetest.env:add_node(pos_01, {name="dryplants:reedmace_height_2"})
 | 
				
			||||||
 | 
							elseif size == 1 then
 | 
				
			||||||
 | 
								minetest.env:add_node(pos_01, {name="dryplants:reedmace_top"})
 | 
				
			||||||
 | 
							elseif size == 2 then
 | 
				
			||||||
 | 
								minetest.env:add_node(pos_01, {name="dryplants:reedmace_height_2"})
 | 
				
			||||||
 | 
							elseif size == 3 then
 | 
				
			||||||
 | 
								if spikes == 1 then
 | 
				
			||||||
 | 
									minetest.env:add_node(pos_01, {name="dryplants:reedmace_height_3_spikes"})
 | 
				
			||||||
 | 
								else
 | 
				
			||||||
 | 
									minetest.env:add_node(pos_01, {name="dryplants:reedmace_height_3"})
 | 
				
			||||||
 | 
								end
 | 
				
			||||||
 | 
							end
 | 
				
			||||||
 | 
						end
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					abstract_dryplants.grow_reedmace_water = function(pos)
 | 
				
			||||||
 | 
						local size = math.random(1,3)
 | 
				
			||||||
 | 
						local spikes = math.random(1,3)
 | 
				
			||||||
 | 
						local pos_01 = {x = pos.x, y = pos.y + 1, z = pos.z}
 | 
				
			||||||
 | 
						local pos_02 = {x = pos.x, y = pos.y + 2, z = pos.z}
 | 
				
			||||||
 | 
						local pos_03 = {x = pos.x, y = pos.y + 3, z = pos.z}
 | 
				
			||||||
 | 
						local pos_04 = {x = pos.x, y = pos.y + 4, z = pos.z}
 | 
				
			||||||
 | 
						minetest.add_entity(pos_01, "dryplants:reedmace_water_entity")
 | 
				
			||||||
 | 
						if minetest.env:get_node(pos_02).name == "air" then -- bug fix
 | 
				
			||||||
 | 
						if minetest.env:get_node(pos_03).name ~= "air" then
 | 
				
			||||||
 | 
							minetest.env:add_node(pos_02, {name="dryplants:reedmace_top"})
 | 
				
			||||||
 | 
						elseif minetest.env:get_node(pos_04).name ~= "air" then
 | 
				
			||||||
 | 
							minetest.env:add_node(pos_02, {name="dryplants:reedmace_height_2"})
 | 
				
			||||||
 | 
						elseif size == 1 then
 | 
				
			||||||
 | 
							minetest.env:add_node(pos_02, {name="dryplants:reedmace_top"})
 | 
				
			||||||
 | 
						elseif size == 2 then
 | 
				
			||||||
 | 
							minetest.env:add_node(pos_02, {name="dryplants:reedmace_height_2"})
 | 
				
			||||||
 | 
						elseif size == 3 then
 | 
				
			||||||
 | 
							if spikes == 1 then
 | 
				
			||||||
 | 
								minetest.env:add_node(pos_02, {name="dryplants:reedmace_height_3_spikes"})
 | 
				
			||||||
 | 
							else
 | 
				
			||||||
 | 
								minetest.env:add_node(pos_02, {name="dryplants:reedmace_height_3"})
 | 
				
			||||||
 | 
							end	
 | 
				
			||||||
 | 
						end
 | 
				
			||||||
 | 
						end
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					-- REEDMACE SPIKES
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					minetest.register_node("dryplants:reedmace_spikes", {
 | 
				
			||||||
 | 
						description = "Reedmace",
 | 
				
			||||||
 | 
						drawtype = "plantlike",
 | 
				
			||||||
 | 
						paramtype = "light",
 | 
				
			||||||
 | 
						tiles = {"dryplants_reedmace_spikes.png"},
 | 
				
			||||||
 | 
						inventory_image = "dryplants_reedmace_spikes.png",
 | 
				
			||||||
 | 
						walkable = false,
 | 
				
			||||||
 | 
						groups = {
 | 
				
			||||||
 | 
							snappy=3,
 | 
				
			||||||
 | 
							flammable=2,
 | 
				
			||||||
 | 
							not_in_creative_inventory=1
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
						drop = 'dryplants:reedmace_sapling',
 | 
				
			||||||
 | 
						sounds = default.node_sound_leaves_defaults(),
 | 
				
			||||||
 | 
						selection_box = {
 | 
				
			||||||
 | 
							type = "fixed",
 | 
				
			||||||
 | 
							fixed = {-0.3, -0.5, -0.3, 0.3, 0.5, 0.3}
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					-- REEDMACE height: 1
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					minetest.register_node("dryplants:reedmace_top", {
 | 
				
			||||||
 | 
						description = "Reedmace, height: 1",
 | 
				
			||||||
 | 
						drawtype = "plantlike",
 | 
				
			||||||
 | 
						paramtype = "light",
 | 
				
			||||||
 | 
						tiles = {"dryplants_reedmace_top.png"},
 | 
				
			||||||
 | 
						inventory_image = "dryplants_reedmace_top.png",
 | 
				
			||||||
 | 
						walkable = false,
 | 
				
			||||||
 | 
						groups = {
 | 
				
			||||||
 | 
							snappy=3,
 | 
				
			||||||
 | 
							flammable=2,
 | 
				
			||||||
 | 
							not_in_creative_inventory=1
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
						drop = 'dryplants:reedmace_sapling',
 | 
				
			||||||
 | 
						sounds = default.node_sound_leaves_defaults(),
 | 
				
			||||||
 | 
						selection_box = {
 | 
				
			||||||
 | 
							type = "fixed",
 | 
				
			||||||
 | 
							fixed = {-0.3, -0.5, -0.3, 0.3, 0.5, 0.3}
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					-- REEDMACE height: 2
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					minetest.register_node("dryplants:reedmace_height_2", {
 | 
				
			||||||
 | 
						description = "Reedmace, height: 2",
 | 
				
			||||||
 | 
						drawtype = "plantlike",
 | 
				
			||||||
 | 
						visual_scale = 2,
 | 
				
			||||||
 | 
						paramtype = "light",
 | 
				
			||||||
 | 
						tiles = {"dryplants_reedmace_height_2.png"},
 | 
				
			||||||
 | 
						inventory_image = "dryplants_reedmace_top.png",
 | 
				
			||||||
 | 
						walkable = false,
 | 
				
			||||||
 | 
						groups = {
 | 
				
			||||||
 | 
							snappy=3,
 | 
				
			||||||
 | 
							flammable=2--,
 | 
				
			||||||
 | 
							--not_in_creative_inventory=1
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
						drop = 'dryplants:reedmace_sapling',
 | 
				
			||||||
 | 
						sounds = default.node_sound_leaves_defaults(),
 | 
				
			||||||
 | 
						selection_box = {
 | 
				
			||||||
 | 
							type = "fixed",
 | 
				
			||||||
 | 
							fixed = {-0.3, -0.5, -0.3, 0.3, 0.5, 0.3}
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					-- REEDMACE height: 3
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					minetest.register_node("dryplants:reedmace_height_3", {
 | 
				
			||||||
 | 
						description = "Reedmace, height: 3",
 | 
				
			||||||
 | 
						drawtype = "plantlike",
 | 
				
			||||||
 | 
						visual_scale = 2,
 | 
				
			||||||
 | 
						paramtype = "light",
 | 
				
			||||||
 | 
						tiles = {"dryplants_reedmace_height_3.png"},
 | 
				
			||||||
 | 
						inventory_image = "dryplants_reedmace_top.png",
 | 
				
			||||||
 | 
						walkable = false,
 | 
				
			||||||
 | 
						groups = {
 | 
				
			||||||
 | 
							snappy=3,
 | 
				
			||||||
 | 
							flammable=2--,
 | 
				
			||||||
 | 
							--not_in_creative_inventory=1
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
						drop = 'dryplants:reedmace_sapling',
 | 
				
			||||||
 | 
						sounds = default.node_sound_leaves_defaults(),
 | 
				
			||||||
 | 
						selection_box = {
 | 
				
			||||||
 | 
							type = "fixed",
 | 
				
			||||||
 | 
							fixed = {-0.3, -0.5, -0.3, 0.3, 0.5, 0.3}
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					-- REEDMACE height: 3 & Spikes
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					minetest.register_node("dryplants:reedmace_height_3_spikes", {
 | 
				
			||||||
 | 
						description = "Reedmace, height: 3 & Spikes",
 | 
				
			||||||
 | 
						drawtype = "plantlike",
 | 
				
			||||||
 | 
						visual_scale = 2,
 | 
				
			||||||
 | 
						paramtype = "light",
 | 
				
			||||||
 | 
						tiles = {"dryplants_reedmace_height_3_spikes.png"},
 | 
				
			||||||
 | 
						inventory_image = "dryplants_reedmace_top.png",
 | 
				
			||||||
 | 
						walkable = false,
 | 
				
			||||||
 | 
						groups = {
 | 
				
			||||||
 | 
							snappy=3,
 | 
				
			||||||
 | 
							flammable=2--,
 | 
				
			||||||
 | 
							--not_in_creative_inventory=1
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
						drop = 'dryplants:reedmace_sapling',
 | 
				
			||||||
 | 
						sounds = default.node_sound_leaves_defaults(),
 | 
				
			||||||
 | 
						selection_box = {
 | 
				
			||||||
 | 
							type = "fixed",
 | 
				
			||||||
 | 
							fixed = {-0.3, -0.5, -0.3, 0.3, 0.5, 0.3}
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					-- REEDMACE STEMS
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					minetest.register_node("dryplants:reedmace", {
 | 
				
			||||||
 | 
						description = "Reedmace",
 | 
				
			||||||
 | 
						drawtype = "plantlike",
 | 
				
			||||||
 | 
						paramtype = "light",
 | 
				
			||||||
 | 
						tiles = {"dryplants_reedmace.png"},
 | 
				
			||||||
 | 
						inventory_image = "dryplants_reedmace.png",
 | 
				
			||||||
 | 
						walkable = false,
 | 
				
			||||||
 | 
						groups = {
 | 
				
			||||||
 | 
							snappy=3,
 | 
				
			||||||
 | 
							flammable=2,
 | 
				
			||||||
 | 
							not_in_creative_inventory=1
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
						drop = 'dryplants:reedmace_sapling',
 | 
				
			||||||
 | 
						sounds = default.node_sound_leaves_defaults(),
 | 
				
			||||||
 | 
						selection_box = {
 | 
				
			||||||
 | 
							type = "fixed",
 | 
				
			||||||
 | 
							fixed = {-0.3, -0.5, -0.3, 0.3, 0.5, 0.3}
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
						after_destruct = function(pos,oldnode)
 | 
				
			||||||
 | 
					        local node = minetest.get_node({x=pos.x,y=pos.y+1,z=pos.z})
 | 
				
			||||||
 | 
					        if node.name == "dryplants:reedmace_top"
 | 
				
			||||||
 | 
							or node.name == "dryplants:reedmace_spikes" then 
 | 
				
			||||||
 | 
					            minetest.dig_node({x=pos.x,y=pos.y+1,z=pos.z}) 
 | 
				
			||||||
 | 
					            minetest.add_item(pos,"dryplants:reedmace_sapling")
 | 
				
			||||||
 | 
					        end
 | 
				
			||||||
 | 
					    end,
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					-- REEDMACE BOTTOM
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					minetest.register_node("dryplants:reedmace_bottom", {
 | 
				
			||||||
 | 
						description = "Reedmace",
 | 
				
			||||||
 | 
						drawtype = "plantlike",
 | 
				
			||||||
 | 
						paramtype = "light",
 | 
				
			||||||
 | 
						tiles = {"dryplants_reedmace_bottom.png"},
 | 
				
			||||||
 | 
						inventory_image = "dryplants_reedmace_bottom.png",
 | 
				
			||||||
 | 
						walkable = false,
 | 
				
			||||||
 | 
						groups = {
 | 
				
			||||||
 | 
							snappy=3,
 | 
				
			||||||
 | 
							flammable=2,
 | 
				
			||||||
 | 
							not_in_creative_inventory=1
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
						drop = 'dryplants:reedmace_sapling',
 | 
				
			||||||
 | 
						sounds = default.node_sound_leaves_defaults(),
 | 
				
			||||||
 | 
						selection_box = {
 | 
				
			||||||
 | 
							type = "fixed",
 | 
				
			||||||
 | 
							fixed = {-0.3, -0.5, -0.3, 0.3, 0.5, 0.3}
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
						after_destruct = function(pos,oldnode)
 | 
				
			||||||
 | 
					        local node = minetest.get_node({x=pos.x,y=pos.y+1,z=pos.z})
 | 
				
			||||||
 | 
					        if node.name == "dryplants:reedmace" 
 | 
				
			||||||
 | 
							or node.name == "dryplants:reedmace_top"
 | 
				
			||||||
 | 
							or node.name == "dryplants:reedmace_spikes" then 
 | 
				
			||||||
 | 
					            minetest.dig_node({x=pos.x,y=pos.y+1,z=pos.z}) 
 | 
				
			||||||
 | 
					            minetest.add_item(pos,"dryplants:reedmace_sapling")
 | 
				
			||||||
 | 
					        end
 | 
				
			||||||
 | 
					    end,
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					-- REEDMACE "SAPLING" (the drop from the above)
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					minetest.register_node("dryplants:reedmace_sapling", {
 | 
				
			||||||
 | 
						description = "Reedmace",
 | 
				
			||||||
 | 
						drawtype = "plantlike",
 | 
				
			||||||
 | 
						paramtype = "light",
 | 
				
			||||||
 | 
						tiles = {"dryplants_reedmace_sapling.png"},
 | 
				
			||||||
 | 
						inventory_image = "dryplants_reedmace_sapling.png",
 | 
				
			||||||
 | 
						walkable = false,
 | 
				
			||||||
 | 
						groups = {
 | 
				
			||||||
 | 
							snappy=3,
 | 
				
			||||||
 | 
							flammable=2,
 | 
				
			||||||
 | 
							attached_node=1
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
						sounds = default.node_sound_leaves_defaults(),
 | 
				
			||||||
 | 
						selection_box = {
 | 
				
			||||||
 | 
							type = "fixed",
 | 
				
			||||||
 | 
							fixed = {-0.3, -0.5, -0.3, 0.3, 0.5, 0.3}
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					-- abm
 | 
				
			||||||
 | 
					minetest.register_abm({
 | 
				
			||||||
 | 
						nodenames = "dryplants:reedmace_sapling",
 | 
				
			||||||
 | 
						interval = REEDMACE_GROWING_TIME,
 | 
				
			||||||
 | 
						chance = 100/REEDMACE_GROWING_CHANCE,
 | 
				
			||||||
 | 
						action = function(pos, node, _, _)
 | 
				
			||||||
 | 
							if string.find(minetest.env:get_node({x = pos.x + 1, y = pos.y, z = pos.z	 }).name, "default:water")
 | 
				
			||||||
 | 
							or string.find(minetest.env:get_node({x = pos.x, 	 y = pos.y, z = pos.z + 1}).name, "default:water")
 | 
				
			||||||
 | 
							or string.find(minetest.env:get_node({x = pos.x - 1, y = pos.y, z = pos.z	 }).name, "default:water")
 | 
				
			||||||
 | 
							or string.find(minetest.env:get_node({x = pos.x, 	 y = pos.y, z = pos.z - 1}).name, "default:water") then
 | 
				
			||||||
 | 
								if minetest.env:get_node({x = pos.x, y = pos.y + 1, z = pos.z}).name == "air" then
 | 
				
			||||||
 | 
									abstract_dryplants.grow_reedmace_water({x = pos.x, y = pos.y - 1, z = pos.z})
 | 
				
			||||||
 | 
								end
 | 
				
			||||||
 | 
								minetest.env:add_node({x=pos.x, y=pos.y, z=pos.z}, {name="default:water_source"})
 | 
				
			||||||
 | 
							else
 | 
				
			||||||
 | 
								abstract_dryplants.grow_reedmace({x = pos.x, y = pos.y - 1, z = pos.z})
 | 
				
			||||||
 | 
							end
 | 
				
			||||||
 | 
					    end
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					-- REEDMACE WATER (for entity)
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					minetest.register_node("dryplants:reedmace_water", {
 | 
				
			||||||
 | 
						description = "Reedmace",
 | 
				
			||||||
 | 
						drawtype = "plantlike",
 | 
				
			||||||
 | 
						paramtype = "light",
 | 
				
			||||||
 | 
						tiles = {"dryplants_reedmace_water.png"},
 | 
				
			||||||
 | 
						inventory_image = "dryplants_reedmace_water.png",
 | 
				
			||||||
 | 
						groups = {not_in_creative_inventory=1},
 | 
				
			||||||
 | 
						selection_box = {
 | 
				
			||||||
 | 
							type = "fixed",
 | 
				
			||||||
 | 
							fixed = {-0.3, -0.5, -0.3, 0.3, 0.5, 0.3}
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					-- REEDMACE WATER ENTITY
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					minetest.register_entity("dryplants:reedmace_water_entity",{
 | 
				
			||||||
 | 
						visual = "wielditem",
 | 
				
			||||||
 | 
						visual_size = {x=2/3, y=2/3, z=2/3},
 | 
				
			||||||
 | 
						textures = {"dryplants:reedmace_water"},
 | 
				
			||||||
 | 
						collisionbox = {-0.3, -0.5, -0.3, 0.3, 0.5, 0.3},
 | 
				
			||||||
 | 
						on_punch = function(self, puncher)
 | 
				
			||||||
 | 
							if puncher:is_player() and puncher:get_inventory() then
 | 
				
			||||||
 | 
								if not minetest.setting_getbool("creative_mode") then
 | 
				
			||||||
 | 
									puncher:get_inventory():add_item("main", "dryplants:reedmace_sapling")
 | 
				
			||||||
 | 
								end
 | 
				
			||||||
 | 
								self.object:remove()
 | 
				
			||||||
 | 
							end
 | 
				
			||||||
 | 
						end,
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					-- SPAWN REEDMACE
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					--[[plantslib:spawn_on_surfaces({
 | 
				
			||||||
 | 
						spawn_delay = 1200,
 | 
				
			||||||
 | 
						spawn_plants = {"dryplants:reedmace_sapling"},
 | 
				
			||||||
 | 
						spawn_chance = 400,
 | 
				
			||||||
 | 
						spawn_surfaces = {
 | 
				
			||||||
 | 
							"default:dirt_with_grass",
 | 
				
			||||||
 | 
							"default:desert_sand",
 | 
				
			||||||
 | 
							"default:sand",
 | 
				
			||||||
 | 
							"dryplants:grass_short",
 | 
				
			||||||
 | 
							"stoneage:grass_with_silex"
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
						seed_diff = 329,
 | 
				
			||||||
 | 
						near_nodes = {"default:water_source"},
 | 
				
			||||||
 | 
						near_nodes_size = 2,
 | 
				
			||||||
 | 
						near_nodes_vertical = 1,
 | 
				
			||||||
 | 
						near_nodes_count = 1,
 | 
				
			||||||
 | 
					})]]
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					-- GENERATE REEDMACE
 | 
				
			||||||
 | 
					-----------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					-- near water or swamp
 | 
				
			||||||
 | 
					plantslib:register_generate_plant({
 | 
				
			||||||
 | 
					    surface = {
 | 
				
			||||||
 | 
							"default:dirt_with_grass", 
 | 
				
			||||||
 | 
							"default:desert_sand",
 | 
				
			||||||
 | 
							"stoneage:grass_with_silex",
 | 
				
			||||||
 | 
							"sumpf:peat",
 | 
				
			||||||
 | 
							"sumpf:sumpf"
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
					    max_count = REEDMACE_NEAR_WATER_PER_MAPBLOCK,
 | 
				
			||||||
 | 
					    rarity = 101 - REEDMACE_NEAR_WATER_RARITY,
 | 
				
			||||||
 | 
						--rarity = 60,
 | 
				
			||||||
 | 
					    min_elevation = 1, -- above sea level
 | 
				
			||||||
 | 
						near_nodes = {"default:water_source","sumpf:dirtywater_source","sumpf:sumpf"},
 | 
				
			||||||
 | 
						near_nodes_size = 2,
 | 
				
			||||||
 | 
						near_nodes_vertical = 1,
 | 
				
			||||||
 | 
						near_nodes_count = 1,
 | 
				
			||||||
 | 
					    plantlife_limit = -0.9,
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  "abstract_dryplants.grow_reedmace"
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					-- in water
 | 
				
			||||||
 | 
					plantslib:register_generate_plant({
 | 
				
			||||||
 | 
					    surface = {
 | 
				
			||||||
 | 
							"default:dirt",
 | 
				
			||||||
 | 
							"default:dirt_with_grass", 
 | 
				
			||||||
 | 
							--"default:desert_sand",
 | 
				
			||||||
 | 
							--"stoneage:grass_with_silex",
 | 
				
			||||||
 | 
							"stoneage:sand_with_silex",
 | 
				
			||||||
 | 
							"sumpf:peat",
 | 
				
			||||||
 | 
							"sumpf:sumpf"
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
					    max_count = REEDMACE_IN_WATER_PER_MAPBLOCK,
 | 
				
			||||||
 | 
						rarity = 101 - REEDMACE_IN_WATER_RARITY,
 | 
				
			||||||
 | 
					    --rarity = 35,
 | 
				
			||||||
 | 
					    min_elevation = 0, -- a bit below sea level
 | 
				
			||||||
 | 
						max_elevation = 0, -- ""
 | 
				
			||||||
 | 
						near_nodes = {"default:water_source","sumpf:dirtywater_source"},
 | 
				
			||||||
 | 
						near_nodes_size = 1,
 | 
				
			||||||
 | 
						near_nodes_count = 1,
 | 
				
			||||||
 | 
					    plantlife_limit = -0.9,
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  "abstract_dryplants.grow_reedmace_water"
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					-- for oases & tropical beaches & tropical swamps
 | 
				
			||||||
 | 
					plantslib:register_generate_plant({
 | 
				
			||||||
 | 
					    surface = {
 | 
				
			||||||
 | 
							"default:sand",
 | 
				
			||||||
 | 
							"sumpf:sumpf"
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
					    max_count = REEDMACE_FOR_OASES_PER_MAPBLOCK,
 | 
				
			||||||
 | 
					    rarity = 101 - REEDMACE_FOR_OASES_RARITY,
 | 
				
			||||||
 | 
						--rarity = 10,
 | 
				
			||||||
 | 
					    neighbors = {"default:water_source","sumpf:dirtywater_source","sumpf:sumpf"},
 | 
				
			||||||
 | 
						ncount = 1,
 | 
				
			||||||
 | 
					    min_elevation = 1, -- above sea level
 | 
				
			||||||
 | 
						near_nodes = {"default:desert_sand","sumpf:sumpf"},
 | 
				
			||||||
 | 
						near_nodes_size = 2,
 | 
				
			||||||
 | 
						near_nodes_vertical = 1,
 | 
				
			||||||
 | 
						near_nodes_count = 1,
 | 
				
			||||||
 | 
					    plantlife_limit = -0.9,
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  "abstract_dryplants.grow_reedmace"
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
							
								
								
									
										52
									
								
								dryplants/settings.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,52 @@
 | 
				
			|||||||
 | 
					-- Here you can enable/disable the different plants
 | 
				
			||||||
 | 
					REEDMACE_GENERATES 					= 	true
 | 
				
			||||||
 | 
					SMALL_JUNCUS_GENERATES 				= 	true
 | 
				
			||||||
 | 
					EXTRA_TALL_GRASS_GENERATES 			= 	true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-- Amount of Reedmace near water or swamp
 | 
				
			||||||
 | 
					REEDMACE_NEAR_WATER_PER_MAPBLOCK	=	35		-- plants per 80x80x80 nodes (absolute maximum number)
 | 
				
			||||||
 | 
					REEDMACE_NEAR_WATER_RARITY			=	40		-- percent
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-- Amount of Reedmace in water
 | 
				
			||||||
 | 
					REEDMACE_IN_WATER_PER_MAPBLOCK		=	35		-- plants per 80x80x80 nodes (absolute maximum number)
 | 
				
			||||||
 | 
					REEDMACE_IN_WATER_RARITY			=	65		-- percent
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-- Amount of Reedmace for oases, tropical beaches and tropical swamps
 | 
				
			||||||
 | 
					REEDMACE_FOR_OASES_PER_MAPBLOCK		=	35		-- plants per 80x80x80 nodes (absolute maximum number)
 | 
				
			||||||
 | 
					REEDMACE_FOR_OASES_RARITY			=	90		-- percent
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-- growing of reedmace sapling
 | 
				
			||||||
 | 
					REEDMACE_GROWING_TIME 				= 	16800  	-- seconds
 | 
				
			||||||
 | 
					REEDMACE_GROWING_CHANCE 			= 	5		-- percent
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-- Amount of small Juncus near water or swamp
 | 
				
			||||||
 | 
					JUNCUS_NEAR_WATER_PER_MAPBLOCK		=	70		-- plants per 80x80x80 nodes (absolute maximum number)
 | 
				
			||||||
 | 
					JUNCUS_NEAR_WATER_RARITY			=	75		-- percent
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-- Amount of small Juncus at dunes/beach
 | 
				
			||||||
 | 
					JUNCUS_AT_BEACH_PER_MAPBLOCK		=	70		-- plants per 80x80x80 nodes (absolute maximum number)
 | 
				
			||||||
 | 
					JUNCUS_AT_BEACH_RARITY				=	75		-- percent
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-- Tall Grass on dirt with grass
 | 
				
			||||||
 | 
					TALL_GRASS_PER_MAPBLOCK				=	4800	-- plants per 80x80x80 nodes (absolute maximum number)
 | 
				
			||||||
 | 
					TALL_GRASS_RARITY					=	75		-- percent
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-- short grass becomes dirt with grass again
 | 
				
			||||||
 | 
					GRASS_REGROWING_TIME 				= 	16800 	-- seconds
 | 
				
			||||||
 | 
					GRASS_REGROWING_CHANCE 				= 	0.5		-- percent
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					HAY_DRYING_TIME 					= 	3600 	-- seconds
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					REED_WILL_DRY 						= 	false	-- wet reed nodes will become dry reed nodes
 | 
				
			||||||
 | 
					REED_DRYING_TIME 					= 	3600 	-- seconds
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					AUTO_ROOF_CORNER 					= 	true
 | 
				
			||||||
 | 
						
 | 
				
			||||||
							
								
								
									
										
											BIN
										
									
								
								dryplants/textures/default_grass_1.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 313 B  | 
							
								
								
									
										
											BIN
										
									
								
								dryplants/textures/default_grass_2.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 419 B  | 
							
								
								
									
										
											BIN
										
									
								
								dryplants/textures/default_grass_3.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 530 B  | 
							
								
								
									
										
											BIN
										
									
								
								dryplants/textures/default_grass_4.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 624 B  | 
							
								
								
									
										
											BIN
										
									
								
								dryplants/textures/default_grass_5.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 710 B  | 
							
								
								
									
										
											BIN
										
									
								
								dryplants/textures/dryplants_grass.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 571 B  | 
							
								
								
									
										
											BIN
										
									
								
								dryplants/textures/dryplants_grass_short.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 868 B  | 
							
								
								
									
										
											BIN
										
									
								
								dryplants/textures/dryplants_grass_short_side.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 502 B  | 
							
								
								
									
										
											BIN
										
									
								
								dryplants/textures/dryplants_hay.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 605 B  | 
							
								
								
									
										
											BIN
										
									
								
								dryplants/textures/dryplants_juncus_02.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 929 B  | 
							
								
								
									
										
											BIN
										
									
								
								dryplants/textures/dryplants_juncus_03.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 963 B  | 
							
								
								
									
										
											BIN
										
									
								
								dryplants/textures/dryplants_juncus_inv.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 685 B  | 
							
								
								
									
										
											BIN
										
									
								
								dryplants/textures/dryplants_reed.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 795 B  | 
							
								
								
									
										
											BIN
										
									
								
								dryplants/textures/dryplants_reed_wet.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 767 B  | 
							
								
								
									
										
											BIN
										
									
								
								dryplants/textures/dryplants_reedmace.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 734 B  | 
							
								
								
									
										
											BIN
										
									
								
								dryplants/textures/dryplants_reedmace_bottom.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 864 B  | 
							
								
								
									
										
											BIN
										
									
								
								dryplants/textures/dryplants_reedmace_height_2.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 1.5 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								dryplants/textures/dryplants_reedmace_height_3.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 2.3 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								dryplants/textures/dryplants_reedmace_height_3_spikes.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 2.5 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								dryplants/textures/dryplants_reedmace_sapling.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 582 B  | 
							
								
								
									
										
											BIN
										
									
								
								dryplants/textures/dryplants_reedmace_spikes.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 575 B  | 
							
								
								
									
										
											BIN
										
									
								
								dryplants/textures/dryplants_reedmace_top.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 446 B  | 
							
								
								
									
										
											BIN
										
									
								
								dryplants/textures/dryplants_reedmace_water.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 675 B  | 
							
								
								
									
										
											BIN
										
									
								
								dryplants/textures/dryplants_sickle.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 260 B  | 
							
								
								
									
										
											BIN
										
									
								
								dryplants/textures/not_in_use/big_pic_8.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 2.2 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								dryplants/textures/not_in_use/big_pic_9.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 2.4 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								dryplants/textures/not_in_use/dryplants_cattailsG_m2.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 1.6 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								dryplants/textures/not_in_use/dryplants_juncus_02_left.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 444 B  | 
							
								
								
									
										
											BIN
										
									
								
								dryplants/textures/not_in_use/dryplants_juncus_02_right.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 477 B  | 
							
								
								
									
										
											BIN
										
									
								
								dryplants/textures/not_in_use/dryplants_juncus_02_whole2.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 712 B  | 
							
								
								
									
										
											BIN
										
									
								
								dryplants/textures/not_in_use/dryplants_juncus_03_left.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 497 B  | 
							
								
								
									
										
											BIN
										
									
								
								dryplants/textures/not_in_use/dryplants_juncus_03_right.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 473 B  | 
							
								
								
									
										
											BIN
										
									
								
								dryplants/textures/not_in_use/dryplants_juncus_03_whole2.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 768 B  | 
							
								
								
									
										
											BIN
										
									
								
								dryplants/textures/not_in_use/dryplants_reedmace_01.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 487 B  | 
							
								
								
									
										
											BIN
										
									
								
								dryplants/textures/not_in_use/dryplants_reedmace_02.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 910 B  | 
							
								
								
									
										
											BIN
										
									
								
								dryplants/textures/not_in_use/dryplants_reedmace_03.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 1.3 KiB  |