From 51f05ac72a5f5290fc4d365bad0da67856cbab8c Mon Sep 17 00:00:00 2001 From: Mossmanikin Date: Wed, 16 Oct 2013 19:01:50 +0200 Subject: [PATCH] New Roots Sheets instead of complex nodes. Support for More Trees! and Tiny Trees. Now generate. --- trunks/generating.lua | 63 +++++++++++++++++++++++++++++++++++++++++++ trunks/init.lua | 2 +- trunks/nodes.lua | 34 ++++++++++------------- 3 files changed, 78 insertions(+), 21 deletions(-) diff --git a/trunks/generating.lua b/trunks/generating.lua index 8fbf1c5..b31d0f8 100644 --- a/trunks/generating.lua +++ b/trunks/generating.lua @@ -495,4 +495,67 @@ plantslib:register_generate_plant({ }, "abstract_trunks.grow_moss_on_trunk" ) +end + +----------------------------------------------------------------------------------------------- +-- RooTS +----------------------------------------------------------------------------------------------- +if Roots == true then -- see settings.txt + +abstract_trunks.grow_roots = function(pos) + local twig_size = math.random(1,27) + + local right_here = {x=pos.x , y=pos.y , z=pos.z } + local below = {x=pos.x , y=pos.y-1, z=pos.z } + local north = {x=pos.x , y=pos.y , z=pos.z+1} + local east = {x=pos.x+1, y=pos.y , z=pos.z } + local south = {x=pos.x , y=pos.y , z=pos.z-1} + local west = {x=pos.x-1, y=pos.y , z=pos.z } + + local node_here = minetest.get_node(right_here) + local node_below = minetest.get_node(below) + local node_north = minetest.get_node(north) + local node_east = minetest.get_node(east) + local node_south = minetest.get_node(south) + local node_west = minetest.get_node(west) + + for i in pairs(TRuNKS) do + local MoD = TRuNKS[i][1] + local TRuNK = TRuNKS[i][2] + if minetest.get_modpath(MoD) ~= nil + and node_here.name == MoD..":"..TRuNK + and string.find(node_below.name, "dirt") + and node_here.param2 == 0 then + if minetest.registered_nodes[node_north.name].buildable_to then + minetest.add_node(north, {name="trunks:"..TRuNK.."root", param2=2}) + end + if minetest.registered_nodes[node_east.name].buildable_to then + minetest.add_node(east, {name="trunks:"..TRuNK.."root", param2=3}) + end + if minetest.registered_nodes[node_south.name].buildable_to then + minetest.add_node(south, {name="trunks:"..TRuNK.."root", param2=0}) + end + if minetest.registered_nodes[node_west.name].buildable_to then + minetest.add_node(west, {name="trunks:"..TRuNK.."root", param2=1}) + end + end + end +end + +plantslib:register_generate_plant({ + surface = {"group:tree"}, + max_count = 1000, + rarity = 1, + min_elevation = 1, + max_elevation = 40, + near_nodes = {"default:dirt_with_grass"}, + near_nodes_size = 1, + near_nodes_vertical = 1, + near_nodes_count = 1, + plantlife_limit = -1, + check_air = false, + }, + "abstract_trunks.grow_roots" +) + end \ No newline at end of file diff --git a/trunks/init.lua b/trunks/init.lua index b35987f..ee9427d 100644 --- a/trunks/init.lua +++ b/trunks/init.lua @@ -1,6 +1,6 @@ ----------------------------------------------------------------------------------------------- local title = "Trunks" -local version = "0.1.3" +local version = "0.1.4" local mname = "trunks" ----------------------------------------------------------------------------------------------- -- Code by Mossmanikin & Neuromancer diff --git a/trunks/nodes.lua b/trunks/nodes.lua index dd3ff51..b8b8624 100644 --- a/trunks/nodes.lua +++ b/trunks/nodes.lua @@ -293,24 +293,9 @@ end ----------------------------------------------------------------------------------------------- if Roots == true then -- see settings.txt -local roots_cube = {-4/16, -1/2, 3/16, 4/16, -3/16, 1/2} +local roots_cube = {-2/16, -1/2, -3/16, 2/16, 1/16, 1/2} -local trunk_roots = { --- { left , bottom , front , right , top , back } - {-1/16 , -8/16 , 3/16 , 1/16 , -7/16 , 8/16 }, - {-2/16 , -8/16 , 5/16 , 2/16 , -7/16 , 8/16 }, - {-3/16 , -8/16 , 6/16 , 3/16 , -7/16 , 8/16 }, - {-4/16 , -8/16 , 7/16 , 4/16 , -7/16 , 9/16 }, - - {-1/16 , -7/16 , 5/16 , 1/16 , -6/16 , 8/16 }, - {-2/16 , -7/16 , 6/16 , 2/16 , -6/16 , 8/16 }, - {-3/16 , -7/16 , 7/16 , 3/16 , -6/16 , 8/16 }, - - {-1/16 , -6/16 , 6/16 , 1/16 , -5/16 , 8/16 }, - {-2/16 , -6/16 , 7/16 , 2/16 , -5/16 , 8/16 }, - - {-1/16 , -5/16 , 7/16 , 1/16 , -3/16 , 8/16 }, -} +local roots_sheet = {0, -1/2, -1/2, 0, 1/16, 1/2} local TRuNKS = { -- MoD TRuNK @@ -346,17 +331,26 @@ for i in pairs(TRuNKS) do description = des.." Root", paramtype = "light", paramtype2 = "facedir", - tiles = {MoD.."_"..TRuNK..".png"}, + tiles = { +--[[top]] MoD.."_"..TRuNK..".png", +--[[bottom]] MoD.."_"..TRuNK..".png", +--[[right]] MoD.."_"..TRuNK..".png^trunks_root_mask.png^[makealpha:0,0,0", +--[[left]] MoD.."_"..TRuNK..".png^trunks_root_mask.png^[transformFX^[makealpha:0,0,0", +--[[back]] MoD.."_"..TRuNK..".png", +--[[front]] MoD.."_"..TRuNK..".png" + }, drawtype = "nodebox", selection_box = {type = "fixed", fixed = roots_cube}, - node_box = {type = "fixed", fixed = trunk_roots}, + node_box = {type = "fixed", fixed = roots_sheet}, groups = { tree=1, snappy=1, choppy=2, oddly_breakable_by_hand=1, - flammable=2 + flammable=2--, + --not_in_creative_inventory=1 -- atm in inv for testing }, + --drop = "trunks:twig_1", -- not sure about this yet sounds = default.node_sound_wood_defaults(), })