From d6fcb1b2b2034b76e8394d25a54c1946cec54e0c Mon Sep 17 00:00:00 2001 From: root Date: Fri, 20 Aug 2021 13:40:05 +0200 Subject: [PATCH] Cacao Tree and related stuff added --- baldcypress/init.lua | 13 +- bamboo/init.lua | 12 +- birch/init.lua | 13 +- cacaotree/init.lua | 532 ++++++++++++++++++ cacaotree/locale/cacaotree.es.tr | 20 + cacaotree/mod.conf | 4 + cacaotree/schematics/cacaotree.lua | 189 +++++++ cacaotree/schematics/cacaotree.mts | Bin 0 -> 236 bytes cacaotree/textures/cacaotree_bean_front.png | Bin 0 -> 950 bytes cacaotree/textures/cacaotree_bean_right.png | Bin 0 -> 929 bytes cacaotree/textures/cacaotree_bean_top.png | Bin 0 -> 882 bytes cacaotree/textures/cacaotree_cacao_beans.png | Bin 0 -> 1386 bytes cacaotree/textures/cacaotree_choco_cake.png | Bin 0 -> 2188 bytes cacaotree/textures/cacaotree_cocoa_powder.png | Bin 0 -> 981 bytes cacaotree/textures/cacaotree_door_wood.png | Bin 0 -> 3383 bytes .../textures/cacaotree_flower_creeper.png | Bin 0 -> 3867 bytes cacaotree/textures/cacaotree_leaves.png | Bin 0 -> 11542 bytes cacaotree/textures/cacaotree_liana.png | Bin 0 -> 2758 bytes cacaotree/textures/cacaotree_milk_choco.png | Bin 0 -> 6483 bytes cacaotree/textures/cacaotree_sapling.png | Bin 0 -> 2457 bytes cacaotree/textures/cacaotree_trunk.png | Bin 0 -> 11151 bytes cacaotree/textures/cacaotree_trunk_top.png | Bin 0 -> 5332 bytes cacaotree/textures/cacaotree_wood.png | Bin 0 -> 4531 bytes cherrytree/init.lua | 13 +- chestnuttree/init.lua | 13 +- clementinetree/init.lua | 13 +- ebony/init.lua | 12 - hollytree/init.lua | 13 +- jacaranda/init.lua | 13 +- larch/init.lua | 10 - lemontree/init.lua | 12 +- mahogany/init.lua | 12 - maple/init.lua | 13 +- oak/init.lua | 13 +- palm/init.lua | 12 +- pineapple/init.lua | 8 - plumtree/init.lua | 13 +- pomegranate/init.lua | 12 +- willow/init.lua | 13 +- 39 files changed, 774 insertions(+), 204 deletions(-) create mode 100644 cacaotree/init.lua create mode 100644 cacaotree/locale/cacaotree.es.tr create mode 100644 cacaotree/mod.conf create mode 100644 cacaotree/schematics/cacaotree.lua create mode 100644 cacaotree/schematics/cacaotree.mts create mode 100644 cacaotree/textures/cacaotree_bean_front.png create mode 100644 cacaotree/textures/cacaotree_bean_right.png create mode 100644 cacaotree/textures/cacaotree_bean_top.png create mode 100644 cacaotree/textures/cacaotree_cacao_beans.png create mode 100644 cacaotree/textures/cacaotree_choco_cake.png create mode 100644 cacaotree/textures/cacaotree_cocoa_powder.png create mode 100644 cacaotree/textures/cacaotree_door_wood.png create mode 100644 cacaotree/textures/cacaotree_flower_creeper.png create mode 100644 cacaotree/textures/cacaotree_leaves.png create mode 100644 cacaotree/textures/cacaotree_liana.png create mode 100644 cacaotree/textures/cacaotree_milk_choco.png create mode 100644 cacaotree/textures/cacaotree_sapling.png create mode 100644 cacaotree/textures/cacaotree_trunk.png create mode 100644 cacaotree/textures/cacaotree_trunk_top.png create mode 100644 cacaotree/textures/cacaotree_wood.png diff --git a/baldcypress/init.lua b/baldcypress/init.lua index 6219830..b0544f1 100644 --- a/baldcypress/init.lua +++ b/baldcypress/init.lua @@ -25,8 +25,8 @@ end -- if mg_name ~= "v6" and mg_name ~= "singlenode" then - name = "baldcypress:baldcypress_tree", minetest.register_decoration({ + name = "baldcypress:baldcypress_tree", deco_type = "schematic", place_on = {"default:sand"}, sidelen = 16, @@ -140,7 +140,6 @@ minetest.register_node("baldcypress:dry_branches", { paramtype = "light", paramtype2 = "facedir", tiles = {"baldcypress_dry_branches.png"}, - use_texture_alpha = "clip", inventory_image = "baldcypress_dry_branches.png", wield_image = "baldcypress_dry_branches.png", node_box = { @@ -160,7 +159,6 @@ minetest.register_node("baldcypress:liana", { paramtype = "light", paramtype2 = "facedir", tiles = {"baldcypress_liana.png"}, - use_texture_alpha = "clip", inventory_image = "baldcypress_liana.png", wield_image = "baldcypress_liana.png", is_ground_content = false, @@ -200,15 +198,6 @@ minetest.register_craft({ burntime = 7, }) - -minetest.register_lbm({ - name = "baldcypress:convert_baldcypress_saplings_to_node_timer", - nodenames = {"baldcypress:sapling"}, - action = function(pos) - minetest.get_node_timer(pos):start(math.random(1200, 2400)) - end -}) - default.register_leafdecay({ trunks = {"baldcypress:trunk"}, leaves = {"baldcypress:leaves"}, diff --git a/bamboo/init.lua b/bamboo/init.lua index 4334c58..8bced2a 100644 --- a/bamboo/init.lua +++ b/bamboo/init.lua @@ -234,14 +234,6 @@ default.register_leafdecay({ radius = 3, }) -minetest.register_lbm({ - name = "bamboo:convert_bambootree_sprouts_to_node_timer", - nodenames = {"bamboo:sprout"}, - action = function(pos) - minetest.get_node_timer(pos):start(math.random(1200, 2400)) - end -}) - if minetest.get_modpath("bonemeal") ~= nil then bonemeal:add_sapling({ {"bamboo:sprout", grow_new_bambootree_tree, "soil"}, @@ -257,10 +249,10 @@ if minetest.settings:get_bool("cool_fences", true) then groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}, sounds = default.node_sound_wood_defaults(), } - default.register_fence("bamboo:fence", table.copy(fence)) + default.register_fence("bamboo:fence", table.copy(fence)) fence.description = S("Bamboo Fence Rail") default.register_fence_rail("bamboo:fence_rail", table.copy(fence)) - + if minetest.get_modpath("doors") ~= nil then fence.description = S("Bamboo Fence Gate") doors.register_fencegate("bamboo:gate", table.copy(fence)) diff --git a/birch/init.lua b/birch/init.lua index ad14b9b..965e15d 100644 --- a/birch/init.lua +++ b/birch/init.lua @@ -233,15 +233,6 @@ minetest.register_craft({ burntime = 7, }) - -minetest.register_lbm({ - name = "birch:convert_birch_saplings_to_node_timer", - nodenames = {"birch:sapling"}, - action = function(pos) - minetest.get_node_timer(pos):start(math.random(1200, 2400)) - end -}) - default.register_leafdecay({ trunks = {"birch:trunk"}, leaves = {"birch:leaves"}, @@ -257,10 +248,10 @@ if minetest.settings:get_bool("cool_fences", true) then groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}, sounds = default.node_sound_wood_defaults(), } - default.register_fence("birch:fence", table.copy(fence)) + default.register_fence("birch:fence", table.copy(fence)) fence.description = S("Birch Fence Rail") default.register_fence_rail("birch:fence_rail", table.copy(fence)) - + if minetest.get_modpath("doors") ~= nil then fence.description = S("Birch Fence Gate") doors.register_fencegate("birch:gate", table.copy(fence)) diff --git a/cacaotree/init.lua b/cacaotree/init.lua new file mode 100644 index 0000000..916441e --- /dev/null +++ b/cacaotree/init.lua @@ -0,0 +1,532 @@ +schematic = { + size = {x=5, y=7, z=5}, + yslice_prob = { + {ypos=0, prob=254}, + {ypos=1, prob=254}, + {ypos=2, prob=254}, + {ypos=3, prob=254}, + {ypos=4, prob=254}, + {ypos=5, prob=254}, + {ypos=6, prob=254}, + }, + data = { + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="cacaotree:liana", prob=254, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="cacaotree:leaves", prob=254, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="cacaotree:flower_creeper", prob=254, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="cacaotree:flower_creeper", prob=254, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="cacaotree:flower_creeper", prob=254, param2=0}, + {name="air", prob=0, param2=0}, + {name="cacaotree:liana", prob=254, param2=0}, + {name="cacaotree:liana", prob=254, param2=0}, + {name="air", prob=0, param2=0}, + {name="cacaotree:pod", prob=254, param2=4}, + {name="air", prob=0, param2=0}, + {name="cacaotree:leaves", prob=254, param2=0}, + {name="cacaotree:leaves", prob=254, param2=0}, + {name="cacaotree:leaves", prob=254, param2=0}, + {name="cacaotree:leaves", prob=254, param2=0}, + {name="cacaotree:leaves", prob=254, param2=0}, + {name="cacaotree:leaves", prob=254, param2=0}, + {name="cacaotree:leaves", prob=254, param2=0}, + {name="air", prob=0, param2=0}, + {name="cacaotree:leaves", prob=254, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="cacaotree:trunk", prob=254, param2=3}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="cacaotree:trunk", prob=254, param2=3}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="cacaotree:pod", prob=254, param2=2}, + {name="cacaotree:trunk", prob=254, param2=2}, + {name="cacaotree:pod", prob=254, param2=3}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="cacaotree:liana", prob=254, param2=1}, + {name="cacaotree:trunk", prob=254, param2=1}, + {name="cacaotree:liana", prob=254, param2=0}, + {name="air", prob=0, param2=0}, + {name="cacaotree:leaves", prob=254, param2=0}, + {name="cacaotree:leaves", prob=254, param2=0}, + {name="cacaotree:leaves", prob=254, param2=0}, + {name="cacaotree:leaves", prob=254, param2=0}, + {name="cacaotree:leaves", prob=254, param2=0}, + {name="air", prob=0, param2=0}, + {name="cacaotree:leaves", prob=254, param2=0}, + {name="cacaotree:leaves", prob=254, param2=0}, + {name="cacaotree:leaves", prob=254, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="cacaotree:leaves", prob=254, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="cacaotree:pod", prob=254, param2=5}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="cacaotree:flower_creeper", prob=254, param2=2}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="cacaotree:flower_creeper", prob=254, param2=2}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="cacaotree:leaves", prob=254, param2=0}, + {name="cacaotree:leaves", prob=254, param2=0}, + {name="cacaotree:leaves", prob=254, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="cacaotree:leaves", prob=254, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="cacaotree:liana", prob=254, param2=2}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="cacaotree:leaves", prob=254, param2=0}, + {name="cacaotree:liana", prob=254, param2=2}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="cacaotree:leaves", prob=254, param2=0}, + {name="cacaotree:leaves", prob=254, param2=0}, + {name="cacaotree:leaves", prob=254, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="cacaotree:leaves", prob=254, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + }, +} + + + +-- +-- Cacao Tree +-- + +local modname = "cacaotree" +local modpath = minetest.get_modpath(modname) +local mg_name = minetest.get_mapgen_setting("mg_name") + +-- internationalization boilerplate +local S = minetest.get_translator(minetest.get_current_modname()) + +local grow_time_min = 2400 +local grow_time_max = 4800 +local retry_grow_time_min = 240 +local retry_grow_time_max = 600 + +--Pod + +minetest.register_node("cacaotree:pod", { + description = S("Cacao Pod"), + drawtype = "nodebox", + tiles = { + "cacaotree_bean_top.png", + "cacaotree_bean_top.png^[transformFY", + "cacaotree_bean_right.png", + "cacaotree_bean_right.png^[transformFX", + "cacaotree_bean_front.png", + }, + paramtype = "light", + paramtype2 = "wallmounted", + node_box = { + type = "fixed", + fixed = { + {-0.25, -0.5, 0, 0.25, 0.0625, 0.5}, + }, + }, + drop = "cacaotree:cacao_beans 10", + groups = {fleshy = 3, dig_immediate = 3, flammable = 2, + leafdecay = 3, leafdecay_drop = 1}, + sounds = default.node_sound_leaves_defaults(), + walkable = false, + is_ground_content = false, +}) + +--Cacao Beans + +minetest.register_craftitem("cacaotree:cacao_beans", { + description = S("Cacao Beans"), + inventory_image = "cacaotree_cacao_beans.png" +}) + +--Cocoa Powder + +minetest.register_craftitem("cacaotree:cocoa_powder", { + description = S("Cocoa Powder"), + inventory_image = "cacaotree_cocoa_powder.png" +}) + +minetest.register_craft({ + type = "cooking", + output = "cacaotree:cocoa_powder", + recipe = "cacaotree:cacao_beans", + cooktime = 2, +}) + +--Chocolate + +minetest.register_craftitem("cacaotree:milk_chocolate", { + description = S("Milk Chocolate"), + inventory_image = "cacaotree_milk_choco.png", + on_use = minetest.item_eat(4), + groups = {flammable = 2, food = 2, food_chocolate = 1}, +}) + +minetest.register_craft({ + type = "shapeless", + output = "cacaotree:milk_chocolate 6", + recipe = {"cacaotree:cocoa_powder", "group:milk_bucket"}, + replacements = {{"group:milk_bucket", "bucket:bucket_empty"}}, +}) + +--Chocolate Cake + +minetest.register_craftitem("cacaotree:choco_cake", { + description = S("Choco Cake"), + inventory_image = "cacaotree_choco_cake.png", + on_use = minetest.item_eat(7), + groups = {flammable = 2, food = 2, food_chocolate = 1}, +}) + +minetest.register_craft({ + type = "shapeless", + output = "cacaotree:choco_cake", + recipe = {"cacaotree:cocoa_powder", "group:food_egg", "farming:wheat"}, +}) + +--Cacao Grow Function + +local function grow_new_cacao_tree(pos) + if not default.can_grow(pos) then + -- try a bit later again + minetest.get_node_timer(pos):start(math.random(retry_grow_time_min, retry_grow_time_max)) + return + end + minetest.remove_node(pos) + minetest.place_schematic({x = pos.x-2, y = pos.y, z = pos.z-2}, modpath.."/schematics/cacaotree.mts", "0", nil, false) +end + +-- +-- Decoration +-- + +if mg_name ~= "v6" and mg_name ~= "singlenode" then + + minetest.register_decoration({ + name = "cacao:cacaotree", + deco_type = "schematic", + place_on = {"default:dirt_with_rainforest_litter"}, + sidelen = 16, + noise_params = { + offset = 0.001, + scale = 0.001, + spread = {x = 250, y = 250, z = 250}, + seed = 6431, + octaves = 3, + persist = 0.66 + }, + biomes = {"rainforest"}, + y_min = 1, + y_max = 31000, + schematic = modpath.."/schematics/cacaotree.mts", + flags = "place_center_x, place_center_z, force_placement", + rotation = "random", + place_offset_y = 1, + }) +end + +-- +-- Nodes +-- + +minetest.register_node("cacaotree:sapling", { + description = S("Cacao Tree Sapling"), + drawtype = "plantlike", + tiles = {"cacaotree_sapling.png"}, + inventory_image = "cacaotree_sapling.png", + wield_image = "cacaotree_sapling.png", + paramtype = "light", + sunlight_propagates = true, + walkable = false, + on_timer = grow_new_cacao_tree, + selection_box = { + type = "fixed", + fixed = {-4 / 16, -0.5, -4 / 16, 4 / 16, 7 / 16, 4 / 16} + }, + groups = {snappy = 2, dig_immediate = 3, flammable = 2, + attached_node = 1, sapling = 1}, + sounds = default.node_sound_leaves_defaults(), + + on_construct = function(pos) + minetest.get_node_timer(pos):start(math.random(grow_time_min, grow_time_max)) + end, + + on_place = function(itemstack, placer, pointed_thing) + itemstack = default.sapling_on_place(itemstack, placer, pointed_thing, + "cacaotree:sapling", + -- minp, maxp to be checked, relative to sapling pos + -- minp_relative.y = 1 because sapling pos has been checked + {x = -2, y = 1, z = -2}, + {x = 2, y = 6, z = 2}, + -- maximum interval of interior volume check + 4) + + return itemstack + end, +}) + +minetest.register_node("cacaotree:trunk", { + description = S("Cacao Tree Trunk"), + tiles = { + "cacaotree_trunk_top.png", + "cacaotree_trunk_top.png", + "cacaotree_trunk.png" + }, + groups = {tree = 1, choppy = 2, oddly_breakable_by_hand = 1, flammable = 2}, + sounds = default.node_sound_wood_defaults(), + paramtype2 = "facedir", + on_place = minetest.rotate_node, +}) + +-- cacao wood +minetest.register_node("cacaotree:wood", { + description = S("Cacao Tree Wood"), + tiles = {"cacaotree_wood.png"}, + is_ground_content = false, + groups = {wood = 1, choppy = 2, oddly_breakable_by_hand = 1, flammable = 3}, + sounds = default.node_sound_wood_defaults(), +}) + +-- cacao tree leaves +minetest.register_node("cacaotree:leaves", { + description = S("Cacao Tree Leaves"), + drawtype = "allfaces_optional", + tiles = {"cacaotree_leaves.png"}, + paramtype = "light", + walkable = true, + waving = 1, + groups = {snappy = 3, leafdecay = 3, leaves = 1, flammable = 2}, + drop = { + max_items = 1, + items = { + {items = {"cacaotree:sapling"}, rarity = 20}, + {items = {"cacaotree:leaves"}} + } + }, + sounds = default.node_sound_leaves_defaults(), + after_place_node = default.after_place_leaves, +}) + +--Liana + +minetest.register_node("cacaotree:liana", { + description = S("Cacao Tree Liana"), + drawtype = "nodebox", + walkable = true, + paramtype = "light", + paramtype2 = "facedir", + tiles = {"cacaotree_liana.png"}, + inventory_image = "cacaotree_liana.png", + wield_image = "cacaotree_liana.png", + node_box = { + type = "fixed", + fixed = {-0.5, -0.5, 0.0, 0.5, 0.5, 0.0} + }, + groups = { + snappy = 2, flammable = 3, oddly_breakable_by_hand = 3, choppy = 2, carpet = 1, leafdecay = 3, leaves = 1, + }, + sounds = default.node_sound_leaves_defaults(), +}) + +minetest.register_node("cacaotree:flower_creeper", { + description = S("Cacaotree Flower Creeper"), + drawtype = "nodebox", + walkable = true, + paramtype = "light", + paramtype2 = "facedir", + tiles = {"cacaotree_flower_creeper.png"}, + inventory_image = "cacaotree_flower_creeper.png", + wield_image = "cacaotree_flower_creeper.png", + node_box = { + type = "fixed", + fixed = {-0.5, -0.5, 0.49, 0.5, 0.5, 0.5} + }, + groups = { + snappy = 2, flammable = 3, oddly_breakable_by_hand = 3, choppy = 2, carpet = 1, leafdecay = 3, leaves = 1 + }, + sounds = default.node_sound_leaves_defaults(), +}) + +-- +-- Craftitems +-- + +-- +-- Recipes +-- + +minetest.register_craft({ + output = "cacaotree:wood 4", + recipe = {{"cacaotree:trunk"}} +}) + +minetest.register_craft({ + type = "fuel", + recipe = "cacaotree:trunk", + burntime = 30, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "cacaotree:wood", + burntime = 7, +}) + +default.register_leafdecay({ + trunks = {"cacaotree:trunk"}, + leaves = {"cacaotree:leaves"}, + radius = 3, +}) + +-- Fence +if minetest.settings:get_bool("cool_fences", true) then + local fence = { + description = S("Cacao Tree Wood Fence"), + texture = "cacaotree_wood.png", + material = "cacaotree:wood", + groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}, + sounds = default.node_sound_wood_defaults(), + } + default.register_fence("cacaotree:fence", table.copy(fence)) + fence.description = S("Cacao Tree Fence Rail") + default.register_fence_rail("cacaotree:fence_rail", table.copy(fence)) + + if minetest.get_modpath("doors") ~= nil then + fence.description = S("Cacao Tree Fence Gate") + doors.register_fencegate("cacaotree:gate", table.copy(fence)) + end +end + +--Stairs + +if minetest.get_modpath("stairs") ~= nil then + stairs.register_stair_and_slab( + "cacaotree_trunk", + "cacaotree:trunk", + {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}, + {"cacaotree_wood.png"}, + S("Cacao Tree Stair"), + S("Cacao Tree Slab"), + default.node_sound_wood_defaults() + ) +end + +-- stairsplus/moreblocks +if minetest.get_modpath("moreblocks") then + stairsplus:register_all("cacaotree", "wood", "cacaotree:wood", { + description = "Cacao Tree", + tiles = {"cacaotree_wood.png"}, + groups = {choppy = 2, oddly_breakable_by_hand = 1, flammable = 3}, + sounds = default.node_sound_wood_defaults(), + }) +end + +-- Bonemeal + +if minetest.get_modpath("bonemeal") ~= nil then + bonemeal:add_sapling({ + {"cacaotree:sapling", grow_new_cacao_tree, "soil"}, + }) +end diff --git a/cacaotree/locale/cacaotree.es.tr b/cacaotree/locale/cacaotree.es.tr new file mode 100644 index 0000000..bcad774 --- /dev/null +++ b/cacaotree/locale/cacaotree.es.tr @@ -0,0 +1,20 @@ +# textdomain: cacaotree +Cacao Tree Sapling=Retoño de árbol de cacao +Cacao Tree Trunk=Madera de árbol de cacao +Cacao Tree Wood=Tablas de árbol de cacao +Cacao Tree Liana=Liana de árbol de cacao +Cacaotree Flower Creeper=Enredadera de árbol de cacao +Cacao Tree Inner Stair=Escalera interior de árbol de cacao +Cacao Tree Leaves=Hojas de árbol de cacao +Cacao Tree Outer Stair=Escalera exterior de árbol de cacao +Cacao Tree Slab=Losa de árbol de cacao +Cacao Tree Stair=Escalera de árbol de cacao +Cacao Tree Wood Fence=Cerca de madera de cacao +Cacao Tree Fence Gate=Puerta de cerca de madera de cacao +Cacao Tree Fence Rail=Listones de madera de cacao para cerca +Cacao Pod=Vaina de cacao +Cacao Beans=Granos de cacao +Cocoa Powder=Cacao en polvo +Milk Chocolate=Chocolate con leche +Choco Cake=Tarta de chocolate +Cacao Tree Wood Door=Puerta de madera de cacao diff --git a/cacaotree/mod.conf b/cacaotree/mod.conf new file mode 100644 index 0000000..bdc031d --- /dev/null +++ b/cacaotree/mod.conf @@ -0,0 +1,4 @@ +name = cacaotree +description = Cacao Tree +depends = default +optional_depends = stairs, bonemeal, doors, moreblocks diff --git a/cacaotree/schematics/cacaotree.lua b/cacaotree/schematics/cacaotree.lua new file mode 100644 index 0000000..e175b8f --- /dev/null +++ b/cacaotree/schematics/cacaotree.lua @@ -0,0 +1,189 @@ +schematic = { + size = {x=5, y=7, z=5}, + yslice_prob = { + {ypos=0, prob=254}, + {ypos=1, prob=254}, + {ypos=2, prob=254}, + {ypos=3, prob=254}, + {ypos=4, prob=254}, + {ypos=5, prob=254}, + {ypos=6, prob=254}, + }, + data = { + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="cacaotree:liana", prob=254, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="cacaotree:leaves", prob=254, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="cacaotree:flower_creeper", prob=254, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="cacaotree:flower_creeper", prob=254, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="cacaotree:flower_creeper", prob=254, param2=0}, + {name="air", prob=0, param2=0}, + {name="cacaotree:liana", prob=254, param2=0}, + {name="cacaotree:liana", prob=254, param2=0}, + {name="air", prob=0, param2=0}, + {name="cacaotree:pod", prob=254, param2=4}, + {name="air", prob=0, param2=0}, + {name="cacaotree:leaves", prob=254, param2=0}, + {name="cacaotree:leaves", prob=254, param2=0}, + {name="cacaotree:leaves", prob=254, param2=0}, + {name="cacaotree:leaves", prob=254, param2=0}, + {name="cacaotree:leaves", prob=254, param2=0}, + {name="cacaotree:leaves", prob=254, param2=0}, + {name="cacaotree:leaves", prob=254, param2=0}, + {name="air", prob=0, param2=0}, + {name="cacaotree:leaves", prob=254, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="cacaotree:trunk", prob=254, param2=3}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="cacaotree:trunk", prob=254, param2=3}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="cacaotree:pod", prob=254, param2=2}, + {name="cacaotree:trunk", prob=254, param2=2}, + {name="cacaotree:pod", prob=254, param2=3}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="cacaotree:liana", prob=254, param2=1}, + {name="cacaotree:trunk", prob=254, param2=1}, + {name="cacaotree:liana", prob=254, param2=0}, + {name="air", prob=0, param2=0}, + {name="cacaotree:leaves", prob=254, param2=0}, + {name="cacaotree:leaves", prob=254, param2=0}, + {name="cacaotree:leaves", prob=254, param2=0}, + {name="cacaotree:leaves", prob=254, param2=0}, + {name="cacaotree:leaves", prob=254, param2=0}, + {name="air", prob=0, param2=0}, + {name="cacaotree:leaves", prob=254, param2=0}, + {name="cacaotree:leaves", prob=254, param2=0}, + {name="cacaotree:leaves", prob=254, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="cacaotree:leaves", prob=254, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="cacaotree:pod", prob=254, param2=5}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="cacaotree:flower_creeper", prob=254, param2=2}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="cacaotree:flower_creeper", prob=254, param2=2}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="cacaotree:leaves", prob=254, param2=0}, + {name="cacaotree:leaves", prob=254, param2=0}, + {name="cacaotree:leaves", prob=254, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="cacaotree:leaves", prob=254, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="cacaotree:liana", prob=254, param2=2}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="cacaotree:leaves", prob=254, param2=0}, + {name="cacaotree:liana", prob=254, param2=2}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="cacaotree:leaves", prob=254, param2=0}, + {name="cacaotree:leaves", prob=254, param2=0}, + {name="cacaotree:leaves", prob=254, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="cacaotree:leaves", prob=254, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + {name="air", prob=0, param2=0}, + }, +} diff --git a/cacaotree/schematics/cacaotree.mts b/cacaotree/schematics/cacaotree.mts new file mode 100644 index 0000000000000000000000000000000000000000..d58591e3fce0f02ed75612dcc763b11fc66d074d GIT binary patch literal 236 zcmeYb3HD`RVPIuoXJD;|00uS&=ETe*2L9y4#yRMK&{Z-Z_ zlP53Es91H`o}8xLeIz5`&GE_KuWDv`-^vfVXj<0sJ*9Tn&ik3=VSmKmcpmz;@A#cf zGbc*&aLrNvE^&=>^TP9KKYnkWUNN!fr?zj}Q^SeR&Tuk4Y(1K*x=>~(L+@?zM*v`= BWWE3Z literal 0 HcmV?d00001 diff --git a/cacaotree/textures/cacaotree_bean_front.png b/cacaotree/textures/cacaotree_bean_front.png new file mode 100644 index 0000000000000000000000000000000000000000..b80e21dd08fdc5fc689ca656cedf731ad89a4e36 GIT binary patch literal 950 zcmV;n14;aeP)59D-iB%xEcTe02y>e zSad^gZEa<4bO1wgWnpw>WFU8GbZ8()Nlj2!fese{00SOLL_t(o!|jwyZzDw%g}+ZqfRI_jwZyJVN)o3Eb5+6Trt6q%4|MOngP6X=7W1Xd<+Jykp}N3^!(W?^u> zkfp-6-{1b{AIUC&(^Sx+xEy6%4=cuH!gsHhJS#QRVTuxXIp31H6o5~Mr;Lk|yV_!1 z+?jydW$0Dp!?TPpE>AgsQt)Tn5+pDkrj(`PWT2T2Qs%YgqEM`?@ur{9QFhfL`lo00*0Nl8Xb0m`G5KUlay0?x zsEVAjNZ59c*?q(K`Xi*&hXY8pK=0|Dr>YWM1i8}i``@r^a9vB53t6uD>%JwKj)++1 zxX#nPy?@m3M*;K!bdvF;%JDAZ5c$H24-`jJQsSK{!bj;v<#v^u603;MY}4&^g7I z1FohexAjBm8XI6NgaOoTVCft_L@E(N1g$mO-tG^O059CJ0EbUI73A02y>e zSad^gZEa<4bO1wgWnpw>WFU8GbZ8()Nlj2!fese{00Rk0L_t(o!|jyWZd+9pK-WI! zj=qj#Cy`sy76KAO#3N7q89&Dl@P^bd3L&btp|zcQxYu_$!{#CI1@;?W&qqf~doOJ` zapJ^@6DR)f$e|y6_suh{Lu8smkqMbKlqIZoks%63VADlz=Z5Fygx0m(tvdW5WT}uG zDsY|(Rt(pZjN5U=v`qN^)tYCeWj;Rt?)O zFdt`#2(vOH0;%n>0?RIvTi9jFMOFdL;S&HzFULq~X`SP~85kuAliW~#@q)>>U-IIr z;?r5qqH#>lD`N0SkpUb>V0uv^&avM1SP#?EF#Bvyax(+(sfwJkNZ9wD#Y4mN_7kME z#}i1czz`UGpsEtQg4|g6{cl(|_`W5}g)F!H_0W>cC#aR<2+YSR-C~Cy2JUw~XZd4R z?&mGqIK)^)ghYhI2&q`=AO9fq4l}C`7dS60-Lj$EwB#nCut1E&tw-Ak8UgUCqzWyb zZoQ{?ddXy39cKkWAt1bKdU9jv21Qk2WQk4x_$DeYD9$Us5A^RIFvn_Oh+vb9Csj`H ziboiRfzZ{^2Q(_33+!Wn0Av=w4>&!-A=-2S?*oZ_{A%3?W+O}MBbp18mLWt4Pk&8elDG9^bd8HJ72*i$HnR4f z5S2=Vs9>#SKe)pMQsDK6n(l5-*E%wUyG2bscy_<+aqFIFBCFbwTOlcgU=;5h%QhS? zkfny#i!FUw&|Aa&ECUN~KJ+X$9j_J*+cvQAk?S%?qEKcTi)P^M@(2xN3eBMW@Y5T- zQ?deDr!+otzwg-4^K#kXV#MTusPJ~z@!O(d=K}u#vv8Sy!K`Dt00000NkvXXu0mjf DHUOXk literal 0 HcmV?d00001 diff --git a/cacaotree/textures/cacaotree_bean_top.png b/cacaotree/textures/cacaotree_bean_top.png new file mode 100644 index 0000000000000000000000000000000000000000..264acfdc1a7c39a148f4be8ddafe422b479c9164 GIT binary patch literal 882 zcmV-&1C9KNP)59CLhav+r|I@02y>e zSad^gZEa<4bO1wgWnpw>WFU8GbZ8()Nlj2!fese{00P=cL_t(o!|jyKZX87vM$fIP zuI`>ckMYEY#K{7ouw})A@ff@u3sx);BqXsN$M%e;f2*tN@&*jjWI1Pj_37x-rz;%b zm!Dqg<)-58iv{c2(+q(>zwCLp3#G@8rIGer^J_LWJpS{>3D&e6V|0?%E~`u;zORWs%Xp@ zl*i`*S$Vt&eNu8%R^D>%43A?teglOylvWUdDJnS$s9`%q-amBw{N{{h>4;geRw$gH z3S&~Hl#g#udo+ktZ@ygu`IYq@U%A9o|$s7&bb0&i9& zA`TCvoVk5$2^mUjSj-9r1;6k#W5P>jRXOTn!4M*uudsn1HVbCnbKeH;_B}B~=GL-Y zmHa&_DS<%{BQzmX32bUlJ@@R#?)VKXYtMRCU_|i7@M=}@Vp&4YxSTL4(Ki7LtY;1< zLKiX^LB$;3z*86LLt+Y%O<6FnED!y}hh0xqIBEmiE@AP!y;|U`;dURm*$2kM8~h)C z;I6@t`EFUUS(d0O{TLadvMdE}gf|DF6Tf literal 0 HcmV?d00001 diff --git a/cacaotree/textures/cacaotree_cacao_beans.png b/cacaotree/textures/cacaotree_cacao_beans.png new file mode 100644 index 0000000000000000000000000000000000000000..c24e12e0347f619ada1afbbe15bd59134e8c6e1b GIT binary patch literal 1386 zcmV-w1(o`VP)vPWeJ?H$+`8~i> z`;U!V&7qIZon!(ZfMh!OvrA@0@;xZSC$va&r%CyN1b$~YSLFubdmtrY-%r5}PFK`>cFIbVPfj$mvo2QI*)7>Gi3 z{U)G~KIbxNTz!!JTh&<+z{qdo2rC67de)(q6VVY2;M3bV*sh1NVRMg?Up_kof#;!2 zjYHWQhR49JKU_VC6#?AImN>~UnO&bjEEb1dcac}Bjlc`ZFP+$r%;X%_cMH(;DoUCK zv7)R^3l=Qt~+lqB9&t-EmO&9E5{G+?+@)Iv4XI#%|t#5D1{Cn^YMcrD_egGBhQM z*+_7F?{4;D|7O5-5e}4aVJhv=>Q-iyy zn!)bRmpR$6Ft1w_G=iCe1UD4H9m#4+et2LzJF;^V>b3!0GvG%A^!N246r3kKjNQ!^ zxF!J4@7Tm%-=9QT(NJ?-ICSd`U17M?`^oeyHYE~JO>^<=Xinnty2&^qrt5exYc34O zZ7Qv#s+dlv&>fFsu42##+Xz#&IyerxWiM@kWz{h;n?i{5P$@Hr)K4k~x@ZcjoIvEF zTRgTlM9pf+^r@oCN!1$7L=lWJgau)d2OZSPa@B75HU;Th-^Kc(0c_vA5thRss~S1* zaHs_j#1dq~UXt|knPFBa6cOv}ghRdNDS@sk`1XEkRioI%ft;*yIU@Xcsmdae@FH@9 zcpy;!lx31%7~01!pMD8KGzM`ljd&~qy`sUXl)*fQeK(P73u4(R&}$Aye~s@Jk#0E? z#XK@&_u$dljlBt&stuhuBp1v0V0a(=K!{x(n{5fAc*FTRp z0y0kJAvV|+bR5zE;adX?TN7f-JWQJkU-<>`$!k1C*#0t2a@dLi)WEfWne23Dvp7X z=`5bzxdWrq8RT?(iBGm-JeEvvTl$s&G)2XaUwwh9%aBoZm`s3VInZ)tT$?GPs8!eO zL9$|?XA(AYy!z9x=m`Z8B2{#V^#(m$ zJxZq)>46|bQ1{#4?;nvV5$j|_dv?GgcKfuI{ivR!s07*qoM6N<$f~=H^v;Y7A literal 0 HcmV?d00001 diff --git a/cacaotree/textures/cacaotree_choco_cake.png b/cacaotree/textures/cacaotree_choco_cake.png new file mode 100644 index 0000000000000000000000000000000000000000..1c7ba8ea3ca44e2fde6c7c57065f629639669cf7 GIT binary patch literal 2188 zcmV;72y^#|P)7}IxIh0+WY_j02y>e zSad^gZEa<4bO1wgWnpw>WFU8GbZ8()Nlj2!fese{00;C*L_t(o!>yNVh;C&S$A8at z@BLopbvox*D%rt63=7PHup$sD2#TcWLV@Ln!cq)ElfDRLV0MW5U{M-mg;th9AF?Qp z2&sjkS(&%gb1cX4a?YHYc`y6&Tvi|6nPJ8mQ=tW$7xugN^Q^tr|FRxLgjaHH4-w&p z?|)<0y;pLn7cTl@p_JnKLti8R=TTJGklLDQ3^Xy*3xPNoF?!uWF8<25dAVx>*sV;I zLMgT9#sELR_DY_8>QVG~6*WFV+tuh4kT%eWCWelM;gDZncP&aOa?U&6->XUhHl>7! zV2s)Iuu_Wp&xiTmkAA?~lTR>^NFbtZ#%95LhxZ1FiI^LT=^Cq#KL|id38fUqm|Y3v zoVOBCF-AlLtuAGbObS@;)Y8<#mci!QLjABfzr?$4tXf{M6a)*CUXo(icH&p5ltK{ z@PW6Sp<>F+q9ylFWYJiu_6d;rOc34_wm zt9n$!ihF17NZ%D5)pbW7K#HOXCz!n8cfdPur5mZNL zTSNq>Gf2bI$`o%5w%@0!^q#7?i>OK~B&RJ5{PW2r9{$hsEU&E7iJ-m1^#-`!0?PNv zu0&jg@$*VJ=djLGdBxgvDo?MjaAf%@ZoU7XFQ10>+8QAwQf%q>3%nK9CKHaYuA`J< zFj(WHg$1f!Md1xbDO3og7&ipSP!xUx1Emy;2h`i&`Sx9Ypp=?>!KM*ymdN>nuyz8Q zTU=$a-eA2V3&fO}))Q9OR*?+WT6$HQ%9Bzigut{OGaj#_ltyWd^Ny-4 z>3hG0fhUg~-SPEXZkaadvsnQ_&`R^Ub5EDk214mQWJOZY<-jaP!j{#}6-Go*Sukc^ z!IU!y2#PjA(k1UW|9tg{Yi`_a$J;pxpqMW*X#-24WpPo_^NvCZL+copB~41yA<~78 zD9p9PD8w3^7D@xoI-D~!T_*VbnBHhhmbbTiPY{X-A3F0CqIC54mssB;NWy7Ff6 zYbmv+C@iJ*Xs3wT5R)c$kxYb`N%e%|$Ch8(jJBo}rMUI)kEsuzeYzZ5nbM4B6kg-( zd}xuJ2^#9q0fOF8(V}*EV{uyJl|~sw(eIIcffUu2-0wLLhzOg2+#VOc?QF^Q7#(W7 zP83d2IE}R$YaQBZ1jquC1(CV)S*@^IGpH(x(ITJy<)2g;1+}3QdtzWaNH%|OzW0$W z{rvcw&X8GGQ-pxk0p}9E(&4?sXuYAU0th(^O-|I4F@+hhpe!MT7jJ=53T@1msq8f; z{Oli3sLf|T`sUY*G*g;!pl~g{(&60vtCdn%Em)Hw;w6!r~&uXg_!T`}gDeBU&=eiD$6R zQ1wsZuER%p{E&Qiq zDo^o)5%qY+YtDKDp_#C}yh7r0QLZNaO~Jd5Rr{!X)YoRiNwha{TgOHZMJ zs<+6i4<6*12k$|7hjtYU2To>nea3q)ym;&IqBk|Uuo|a3R5u~kk?Ha0DT;#8;y$b` z(5dC5lNT8sSVR zQDMgVv1NozsB31E2{CJQ62?WJS#Lnsb@Kz!;lqb{;DHBt_ZPp8AB>QYQNtcsOS^KM zC+@zJcYX2_5IB6%75wAQKeBqq--y#GPyYU9>gOJ2Iu?`?P=O0B|0-Tu9=`id9{lUw z)HyIyp180dbdL}epS|?*`S@oo>h{}j-?CxvJ?EWw9{=yyK8n4NRsRK!Sc7w@{K+f; O00005BH7F6Q>oouX02y>e zSad^gZEa<4bO1wgWnpw>WFU8GbZ8()Nlj2!fese{00TWqL_t(o!|j&OYh6VY$3JI& zynF9^_xWNpZGxx^DM}Y2DESc5HKBsg-~_xE`h%RT z$VoP%clZH$`i*!0TYzuQo@C?lvevspHm+@@x0>FAdkdG2s_tbWrf;v6RLGyCu(^2D*zw-4~? zYYSYt_?_Cef)qiN6cjOnwL+F#rUp47Ci2XZ5~xCvIdG0P>oI%es66@7Tl>F+AHO`$ z+R7!hVZ6C90tjjpP*PN?Q6QFyJo8u!)<8^3ObH1A%aHYzpLDF(KF09#(~JDFvaF15 zP;|gKA+(7U6-@~Nj5QR6qbMBS3-u_FR0(au7$L^UaA!!WcDeB8!v1_b#5m3g5Q3Vl*3Uw0+QAsEvD%M#-P*fplLPEp()m8oB%;Mewep|kzS_d>KAtVq` z)mv>C7jK(LH4NOm*&qVmTa18r;Jv{bA=33pACiaxF!fb}%C#NRth?DWx2K{B4!^%%O6?O^vd zhWE`Jmd(v|6%WyR)OQI*iSK534RrD@y+ilQpF5k{Z2pd9Ih)>NcebdbL8j+$%?7UH zaoZaVu@pxillha2`!k|XPQA{J>+86(%b~eBo?3Y2ANj97e2*W`zpvsP{kew(>v&=5 z?BDqd=T0!(9&vpu^4#0+9Q-kwd`Kn$6MzZ8{}F!yG&_e0hkJ3X00000NkvXXu0mjf D3v9Zm literal 0 HcmV?d00001 diff --git a/cacaotree/textures/cacaotree_door_wood.png b/cacaotree/textures/cacaotree_door_wood.png new file mode 100644 index 0000000000000000000000000000000000000000..7a9a8546aae0af638a1181ee4d99a6a7d9e8072e GIT binary patch literal 3383 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 literal 0 HcmV?d00001 diff --git a/cacaotree/textures/cacaotree_liana.png b/cacaotree/textures/cacaotree_liana.png new file mode 100644 index 0000000000000000000000000000000000000000..edc843358eb170f2f9b210d0f321241d68916cd2 GIT binary patch literal 2758 zcmV;%3OV(OP)5A8#?IM`DOqB02y>e zSad^gZEa<4bO1wgWnpw>WFU8GbZ8()Nlj2!fese{017TiL_t(o!*!Q?jNH|A$3OS} z9`k8Ba}?%aDm=iGC? z_l$@}qW~zS5JDh?KuXD9d~c(g&sB-Vf@JF!Q==IwH$38@yOQcNTRJ#Dn&FKbF6ney zG}mdG#`yRIFTDI^b*Wh6{Lcyu^%M#2iSh2)4C#~eLQ5}^kH=d!0VL~&Qi?n896`E@ zV!lSQKgi}C?F{bf;hW>*l*)BV#TpyBBP6_4gb)C&&)2h1MlpG#M8qu8(H*2vtRoaC zpx)iqa<;jq1+jWF+m17JZjL=$I~ct*hhsZLlObjv+^xFXLcIF!G#*pqp4|!h_61b` zJwc^u8bS!(Kl*^m6skdx=D)Q%Z?B3bQ z`x}pG>QD^xL4bgs{y2xeEZvfgl-$eBR<;ve*7U1N+~iEIjjMbTHVF;)p+JF6*D1$ zUkK($mylAj|MTGSXym3V?A;RQ^;6^2T^C0QbW31p60c#jY_%e>n&{xcgLIXa=x-~i zP;Zd<{hgdRG0EnUIN5X#J7IFJk|jNDi{4D9I`+FUZoZyIPSp`Y5RQRF5bF=~_KjPF z!(+m#*;uwiMN{;|0~m(3#%WE{kea3;r9?`}wor=Myi$u{i>+Vi;oWyq)CzTcC5w{d zP|Q{7-QCg1pGiaHPu9g&AEGDj0pQm^98nP=2x+je(Zjnphsfuu1VSD{-2uF&4s{P- z&187wkqm}mpzAuaN%QEVkD~QjoSn}wd`CAYPfjs;bBPb%sfqK)CTUCfx$xd3)k+BG3jS^EQ?YK-OxyM1enupJYJ25?(0)qkKE4AozJ6b z8XpCr5e1*mM{%ak{s%X4>Eay4=@PkXQYfWh1$uNH(`!%?mqio6aU2}SVIZN2SHAW& zdOE@^&6j!eREq3$u`##jq!>u}naLJOc7-^7l)^Lx0aM3k8f0Eg;<|2Y4&W!REpTSjCc<6=Z`8~De3_epjIeE+S_MKr z1A$_;$0pS4p_Jm#-`pbH6(FQcI$|-kUf6^X zeEservU#b7c6LxG)^XjnkWc?rAFiX=I~3+>YMGz@(;%;np5m#e4q}=nx~6H3v$6d6 zd^+BMi5amO84Ro5cdm%`(7mdvTtZ$GJsx5qXE0x>uv%%$m7-d)9E_rma<0Zo(IL1| zQ?*GcnmL!blt+e5R*E$URMqLzz2ZQ~=EWCZY*fdgLx)J6h$_R-@OdQ>pNDq8#oS%H zl(ph8HIXM(DdY3##M^wWXh~E_MT8nf1Z5uNoq?j zfq;Qhim1ozwJKKC!mCL#xn=wj zFN=kWfLVkP9KN@Wkl*C+vorYp2FZaapWWR}Z^Vn13bgX##(S@G=YattaX+T6v8gkF z5CWwXKmYmV21Hx;G`{!dxq-SAwO7cOi^6M29{;y@gmRh;jcuc2*1zIQyMhb_{E6Q zG!5xE4t>K?tkaiIfE+oJOG zQZo*@d=*2Jyis8d#Ci~=6gvi@q6u;M@L@`t!-==1n44U}ah%32+M7t>nu0<$sazDN z#uh$de8=}qZhPEId?ZNPXHm2r0QTet)q3OWqxkFh8^+>)R;BARC{JI2M8IV6yellr zYUG4fgV~83JHjCf=O;ztLSoH1-~TUF0yjdcH`S)113o_czz~U;kHKhwoqsY!>MJQ+ z*X92kLI}S5uNgMGNwsx2&gAJCE*zf~wrykEHqy3jj{SQl-`SlMo6Hcqx;LoR0AGKi zNI17$_4h^S)O5zLW%=#@TxR0>BHQV1CP*a$OG~guw8Es}zfu^ORC`T=j8J zqB~9_tmDeh%YT>5ffn`@Qd9@&Nj+g6a^XQhV zEZbpjB8Tg)Ez#9~Ev1x9d~ln}WsAf#4No*cylW7D=P<{QA8+V{>$<%3(lu<`=C0dE z#QCwJl2TG%8c~KvW4>sSNCZ)4R4iI10N;3g3|9)Or8?!CLVOy)nus_Gk4NX!+#>Oy zD>ijhId<$=qdHdWf#W#*!!swTTQ*85iiJASsE^@86;XMxE}R2p(odz4Qeu@Mn<{YS z_a*UZrMx~#t%^mU%}XHa;p~Pg)%MS|?CPsGa9tNECC*1+UQbHg@#Pc;JrKP1OvxFw;x2oYrpU1TdH z?8?;cqFtzs=ptRnH3?g7I%|eq_Bow>PS11Bf6epE%=*6X{k`9Bz3csb-};hVo$cq! zEtW$d5Ob*xwr=o0Qv8*j4gd0@qCOxHv-wdT-h4M80?FaB1LzD0$&chfNJu~rKp+II zeMdK@w-FU6pDUC7X3SZjnJ(?z`9U#iY{$wv=TnD^g^go-JyoG(>6pVd&h+7S&Ni@v$P0*8t>9P{_*yB^7AdjRn77z3>tsA^&o3tf?^q8OD@^J zO)G!P^Hq|4YMe`~m6`tC(W)_V5bv^O4#+X+GZnB)%POIFOwbN!oMR=j$o%T5UV7Ql6E~aDkuJ>oh zS<&^F@qV;Wjl~YXKUQ|J`eNbE*F(x>Lr=Fg)ijG%uT?)f)c5FNT2E5wxNT2XTBY2U z;o+H|Htjo$N|HLTVp-27olD4Tmu=(--Yvl9K3Qqy)KyaU^VMTkYv!n6v-S$EId#hU zIx<3MRNau$Le;!4UB0QUJfv#AzQzMrt=>7SR5RXRH5?_xk66UXU2pa}SF(10V@U^6 zEp8|lKrR^3@~D~dNAH;Pl*+7 zc9F21w`Vc;9py&aJXzW-q==tHC6&zd%v`i`Doe}o-r-EYgXk!Tb>F&$(?H7~Y>*en^VcgxTto6XW?%YKu zU%>iQT6%Hy-7{y=ZLZ8)IpzJ;b;VVcOw1#e_ti>^Sf9)5Q{{^YCDpF^6-PQ3ybvmr zGh!Ec%3iCpM%wCfu|vkfWiplVnd~@y53HLKk)V0Q3VR-TMI>K^xm}bpHroCMv1X?X zx8G`1`Sy;Kwo%t(;VM@IOZhZGT(?el8}mZ2Tc5{WCEw9}Da*Erja^=9-2}sY#3~2+ z^1kx&vNY)ee9sV;FwOv)7HhurPCd#)-jm z#vU~{A4d#9!J1%d%l(l##nm6>$MMb)xWY|MPcF>ub~`86+D3dc7@_Fl)$>Qye(j1Y zXS($_cOEwjuD~8T>U+8^`D6<-<@}raq+rGdjqK0Ciyta$_av88`!oXiE%!|Dw?w$q zG^$0YFciak<6LXy>rU-uChX|j;`s7WSfx$y$C5DZxm&fgV!b18Ccb|MY}~|5Wwk!S zIfQJc;$P)cC)9r~%H*!(ys8{;&($HGH?8f4*2QM5` zT@pXFy{qVQz$t5%H$7bFyeH?z>4Wz{M_rBci}L_va-+s}$G1Wt1K6jZ)xK$#l4;3? zycX#^f%QSv_FbijJeju?j_82Xo1OK~ZXMEokX_&3R5S2P*= zP13N(owv7p13bLn>a3{LcJK2)GPZH6i}ha5I%`PEx~i|^&2H<}_YQ`+zKC9w!7N?5 zj4QkASa$3Y?;G*5yMd*G*G(?Lh!v_hy`+#D`kA@(PMOM>ZIsXMR|F5Q40N5$PkE_e zeT=d#J4y1}igS$R2f3~_~XG7{yo%)c5 zyAj+4TXm6Zn~6@Ad5GmbSD(u#BzxhFpL_*va~@KrBAxwFMq zxk-5Q(%Dxz@xGavycXvfZH~tZ^FEY-c`Md$tgsmiPb=al2MZ0^jr(jTMAC#t-O$aN zuV+`U4E{a(6oZ4sDHG)s9myL+9{8@%}@m-kBSNRrnMrXXnt7C+s=6^Y`KF6SZe%mNUitrV2@YTbX2b?eBv@xd0E|gSQ<^mE-z=Ze!Qov-ecq9QCCE+E(*Wzvr3Mql`L&zv^Cs(8mn+qY042=x2 zXo`Ryjz?L@AK z8%FT`zyJ&$izTA5cr@M&Gd&(2b#nR=&Eid|22Q%aTf`{Y31bp*$B;*pINVaS+Ow2;HC8NX% zkZ5d>P9sS!amFSP!NeFsn?e4jXd@6uKoiZN05k!Bh{h&3kVXUir%_Q^JU+kzAu$z9 zZb*lDh%^&C1mj@}QxI(g;R4VA1QO9krZ~_TGBGkW!4sxYxNzyPwE@QTti)6_n99u5 z$P@&zMrayD!=a4`1S7PW2>}1lOd-g`pMZt%cnOtQSdz6Xm5jn0V!!sdG5~%6o697l z*3nsEg0BM}bSC7^2gIV`Oz=bk0gE>_GbI=kiN;?+8z3$ZcCDBbhczTh252D34kiR( z^U#?p@YMu}5GiX$bZfHa>nIcXgm1jNN40Yfx#olI5A z8XyoOX_{mH4*V}n?m_Gb)_=$I75at6n#+%1b3|vVMKX#9ghMpRBY<_B90G#? zRv-kgl2aw}XFvTLZUv1Arl$S`Gc?u&2f-E#z@dpaJQi&V5CTk$U;`S1lWzUO&SMAg zBLFUB9SGMD{G8zml00Xmp2TD;|C&og5CkV_fW?!rSk&a>MVe#83*n!)XD(hUoSaD0 z1uz#cB_yiYVeVlZ4ucMH|0>L%M)^0mY4KC0{7>Q2VUy7|Y)&Lxn?Zb+2-e?D{|(?I z!#X+$v3TsiOMNv^!*{% z54pZef$swUaMusHzDt4c0{?K=|4c5quP0-O1;6M;z~^2{;FfOq%sktFt-Y<}^o$s@ zsfvcL=5QP~@(>6^9r0I6aLO_q?v&wEohUM|Wo71=>BgUOt$@4K`4n%y4Vx)G8zH7% z&yf*yeh^apF7FkqsD?nyh^E?Fdw7fb(%JiUjOW?so@GQ-RRt1O`4`vDAu6i1J7~uC zyaQ&6dJU;0>L-^>rCzC0x3#h>2SUbaWY08)C|*Ws0(?R~ksJN-rw0wno`YwqcSHrs z-kmoCReSX1p~x(RcVpa*+nB2p;mwaHj@L(-&o78c!aF6s9J~#DaM&xvg_>zmLw;gX$#JK{?`W(^Qt6{pOY?eJ&4VQ3eku-hD*voL>_<{~ik^IS_C9@i zNY;n4*M~(b%LQ5rxzb3)Zk@}s$9F<>|6CPtKptr6J1N;dho4#h2tUP z8qeaY?Ao{c6G|Ent;7lwLi%VSw`K9miq9)^MM{V2%KHpr^eX*=PG9bsbwM#C!AGNW zD6@ZSovGvS9!s6*f*rHsM(>Gg7fJ&e#2kyEY`bdxI&S;$1yjXDC4uKJK*y(}+9N83 zzqa`N(ty*t?YlIkzQ)Zlpf0l`&1Y`GzSh?JtMjA=XuYv3FpOro%)*Up^PRTiI QA$B;G;%r;IW^3F(09bYv*#H0l literal 0 HcmV?d00001 diff --git a/cacaotree/textures/cacaotree_sapling.png b/cacaotree/textures/cacaotree_sapling.png new file mode 100644 index 0000000000000000000000000000000000000000..75ffb49c72044b2fad1a6409e87d9ce593b90739 GIT binary patch literal 2457 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

lCAp#0eT7dun2x&<~K~z}7 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