ShadowNinja
2013-04-26 00328622d9cc38a7768a7bf449f5c52ddba666f7
commit | author | age
82cba9 1 -- Code of rubber tree by PilzAdam
R 2
3 minetest.register_node("technic:rubber_sapling", {
4     description = "Rubber Tree Sapling",
5     drawtype = "plantlike",
6     tiles = {"technic_rubber_sapling.png"},
7     inventory_image = "technic_rubber_sapling.png",
8     wield_image = "technic_rubber_sapling.png",
9     paramtype = "light",
10     walkable = false,
11     groups = {dig_immediate=3,flammable=2},
12     sounds = default.node_sound_defaults(),
13 })
14
15 minetest.register_node("technic:rubber_tree_full", {
16     description = "Rubber Tree",
17     tiles = {"default_tree_top.png", "default_tree_top.png", "technic_rubber_tree_full.png"},
18     groups = {tree=1,snappy=1,choppy=2,oddly_breakable_by_hand=1,flammable=2},
19     drop = "default:tree",
20     sounds = default.node_sound_wood_defaults(),
21     
22     on_dig = function(pos, node, digger)
23         minetest.node_dig(pos, node, digger)
24         minetest.env:remove_node(pos)
25     end,
26     
27     after_destruct = function(pos, oldnode)
28         oldnode.name = "technic:rubber_tree_empty"
29         minetest.env:set_node(pos, oldnode)
30     end
31 })
32
33
34 minetest.register_node("technic:rubber_tree_empty", {
35     tiles = {"default_tree_top.png", "default_tree_top.png", "technic_rubber_tree_empty.png"},
36     groups = {tree=1,snappy=1,choppy=2,oddly_breakable_by_hand=1,flammable=2, not_in_creative_inventory=1},
37     drop = "default:tree",
38     sounds = default.node_sound_wood_defaults(),
39 })
40
41 minetest.register_abm({
42     nodenames = {"technic:rubber_tree_empty"},
43     interval = 60,
44     chance = 15,
45     action = function(pos, node)
46         node.name = "technic:rubber_tree_full"
47         minetest.env:set_node(pos, node)
48     end
49 })
50
51 minetest.register_node("technic:rubber_leaves", {
52     drawtype = "allfaces_optional",
53     visual_scale = 1.3,
54     tiles = {"technic_rubber_leaves.png"},
55     paramtype = "light",
56     groups = {snappy=3, leafdecay=3, flammable=2, not_in_creative_inventory=1},
57     drop = {
58         max_items = 1,
59         items = {
60             {
61                 items = {'technic:rubber_sapling'},
62                 rarity = 20,
63             },
64         }
65     },
66     sounds = default.node_sound_leaves_defaults(),
67 })
68
69 minetest.register_abm({
70     nodenames = {"technic:rubber_sapling"},
71     interval = 60,
72     chance = 20,
73     action = function(pos, node)
74         rubber_tree={
75             axiom="FFFFA",
76             rules_a="[&FFBFA]////[&BFFFA]////[&FBFFA]",
77             rules_b="[&FFA]////[&FFA]////[&FFA]",
78             trunk="technic:rubber_tree_full",
79             leaves="technic:rubber_leaves",
80             angle=35,
81             iterations=3,
82             random_level=1,
83             thin_trunks=false;
84             fruit_tree=false,
85             fruit=""
86             }
87             minetest.env:spawn_tree(pos,rubber_tree)
88     end
89 })
90
003286 91 if technic.config:getBool("enable_rubber_tree_generation") then
S 92     minetest.register_on_generated(function(minp, maxp, blockseed)
93         if math.random(1, 100) > 5 then
94             return
95         end
96         local rubber_tree={
82cba9 97             axiom="FFFFA",
R 98             rules_a="[&FFBFA]////[&BFFFA]////[&FBFFA]",
99             rules_b="[&FFA]////[&FFA]////[&FFA]",
100             trunk="technic:rubber_tree_full",
101             leaves="technic:rubber_leaves",
102             angle=35,
103             iterations=3,
104             random_level=1,
105             thin_trunks=false;
106             fruit_tree=false,
107             fruit=""
003286 108         }
S 109         local tmp = {x=(maxp.x-minp.x)/2+minp.x, y=(maxp.y-minp.y)/2+minp.y, z=(maxp.z-minp.z)/2+minp.z}
110         local pos = minetest.env:find_node_near(tmp, maxp.x-minp.x, {"default:dirt_with_grass"})
111         if pos ~= nil then
112             minetest.env:spawn_tree({x=pos.x, y=pos.y+1, z=pos.z}, rubber_tree)
113         end
114     end)
115 end
82cba9 116
R 117
118 -- ========= FUEL =========
119 minetest.register_craft({
120     type = "fuel",
121     recipe = "technic:rubber_sapling",
122     burntime = 10
123 })