From cc8b8acd81f12cb8da8f8eb86255bfdeee02c9bd Mon Sep 17 00:00:00 2001 From: cora Date: Wed, 10 Aug 2022 01:56:28 +0200 Subject: [PATCH] Add Wood API --- mods/ITEMS/mcl_core/init.lua | 1 - mods/ITEMS/mcl_core/nodes_trees.lua | 275 ------------------ mods/ITEMS/mcl_mangrove/init.lua | 3 +- mods/ITEMS/mcl_wood/api.lua | 232 +++++++++++++++ mods/ITEMS/mcl_wood/init.lua | 42 +++ mods/ITEMS/mcl_wood/mod.conf | 4 + .../textures/mcl_wood_leaves_acacia.png | Bin 0 -> 214 bytes .../textures/mcl_wood_leaves_birch.png | Bin 0 -> 207 bytes .../textures/mcl_wood_leaves_dark_oak.png | Bin 0 -> 196 bytes .../textures/mcl_wood_leaves_jungle.png | Bin 0 -> 232 bytes .../mcl_wood/textures/mcl_wood_leaves_oak.png | Bin 0 -> 226 bytes .../textures/mcl_wood_leaves_spruce.png | Bin 0 -> 207 bytes .../textures/mcl_wood_planks_acacia.png | Bin 0 -> 197 bytes .../textures/mcl_wood_planks_birch.png | Bin 0 -> 210 bytes .../textures/mcl_wood_planks_dark_oak.png | Bin 0 -> 168 bytes .../textures/mcl_wood_planks_jungle.png | Bin 0 -> 192 bytes .../mcl_wood/textures/mcl_wood_planks_oak.png | Bin 0 -> 203 bytes .../textures/mcl_wood_planks_spruce.png | Bin 0 -> 204 bytes .../textures/mcl_wood_sapling_acacia.png | Bin 0 -> 197 bytes .../textures/mcl_wood_sapling_birch.png | Bin 0 -> 203 bytes .../textures/mcl_wood_sapling_dark_oak.png | Bin 0 -> 209 bytes .../textures/mcl_wood_sapling_jungle.png | Bin 0 -> 268 bytes .../textures/mcl_wood_sapling_oak.png | Bin 0 -> 251 bytes .../textures/mcl_wood_sapling_spruce.png | Bin 0 -> 214 bytes .../textures/mcl_wood_stripped_acacia.png | Bin 0 -> 2171 bytes .../textures/mcl_wood_stripped_acacia_top.png | Bin 0 -> 2025 bytes .../textures/mcl_wood_stripped_birch.png | Bin 0 -> 611 bytes .../textures/mcl_wood_stripped_birch_top.png | Bin 0 -> 681 bytes .../textures/mcl_wood_stripped_dark_oak.png | Bin 0 -> 2007 bytes .../mcl_wood_stripped_dark_oak_top.png | Bin 0 -> 695 bytes .../textures/mcl_wood_stripped_jungle.png | Bin 0 -> 650 bytes .../textures/mcl_wood_stripped_jungle_top.png | Bin 0 -> 637 bytes .../textures/mcl_wood_stripped_oak.png | Bin 0 -> 2130 bytes .../textures/mcl_wood_stripped_oak_top.png | Bin 0 -> 729 bytes .../textures/mcl_wood_stripped_spruce.png | Bin 0 -> 2054 bytes .../textures/mcl_wood_stripped_spruce_top.png | Bin 0 -> 733 bytes .../textures/mcl_wood_tree_acacia.png | Bin 0 -> 196 bytes .../textures/mcl_wood_tree_acacia_top.png | Bin 0 -> 212 bytes .../mcl_wood/textures/mcl_wood_tree_birch.png | Bin 0 -> 200 bytes .../textures/mcl_wood_tree_birch_top.png | Bin 0 -> 228 bytes .../textures/mcl_wood_tree_dark_oak.png | Bin 0 -> 204 bytes .../textures/mcl_wood_tree_dark_oak_top.png | Bin 0 -> 214 bytes .../textures/mcl_wood_tree_jungle.png | Bin 0 -> 190 bytes .../textures/mcl_wood_tree_jungle_top.png | Bin 0 -> 216 bytes .../mcl_wood/textures/mcl_wood_tree_oak.png | Bin 0 -> 211 bytes .../textures/mcl_wood_tree_oak_top.png | Bin 0 -> 221 bytes .../textures/mcl_wood_tree_spruce.png | Bin 0 -> 212 bytes .../textures/mcl_wood_tree_spruce_top.png | Bin 0 -> 225 bytes mods/ITEMS/mclx_stairs/init.lua | 3 +- 49 files changed, 282 insertions(+), 278 deletions(-) delete mode 100644 mods/ITEMS/mcl_core/nodes_trees.lua create mode 100644 mods/ITEMS/mcl_wood/api.lua create mode 100644 mods/ITEMS/mcl_wood/init.lua create mode 100644 mods/ITEMS/mcl_wood/mod.conf create mode 100644 mods/ITEMS/mcl_wood/textures/mcl_wood_leaves_acacia.png create mode 100644 mods/ITEMS/mcl_wood/textures/mcl_wood_leaves_birch.png create mode 100644 mods/ITEMS/mcl_wood/textures/mcl_wood_leaves_dark_oak.png create mode 100644 mods/ITEMS/mcl_wood/textures/mcl_wood_leaves_jungle.png create mode 100644 mods/ITEMS/mcl_wood/textures/mcl_wood_leaves_oak.png create mode 100644 mods/ITEMS/mcl_wood/textures/mcl_wood_leaves_spruce.png create mode 100644 mods/ITEMS/mcl_wood/textures/mcl_wood_planks_acacia.png create mode 100644 mods/ITEMS/mcl_wood/textures/mcl_wood_planks_birch.png create mode 100644 mods/ITEMS/mcl_wood/textures/mcl_wood_planks_dark_oak.png create mode 100644 mods/ITEMS/mcl_wood/textures/mcl_wood_planks_jungle.png create mode 100644 mods/ITEMS/mcl_wood/textures/mcl_wood_planks_oak.png create mode 100644 mods/ITEMS/mcl_wood/textures/mcl_wood_planks_spruce.png create mode 100644 mods/ITEMS/mcl_wood/textures/mcl_wood_sapling_acacia.png create mode 100644 mods/ITEMS/mcl_wood/textures/mcl_wood_sapling_birch.png create mode 100644 mods/ITEMS/mcl_wood/textures/mcl_wood_sapling_dark_oak.png create mode 100644 mods/ITEMS/mcl_wood/textures/mcl_wood_sapling_jungle.png create mode 100644 mods/ITEMS/mcl_wood/textures/mcl_wood_sapling_oak.png create mode 100644 mods/ITEMS/mcl_wood/textures/mcl_wood_sapling_spruce.png create mode 100644 mods/ITEMS/mcl_wood/textures/mcl_wood_stripped_acacia.png create mode 100644 mods/ITEMS/mcl_wood/textures/mcl_wood_stripped_acacia_top.png create mode 100644 mods/ITEMS/mcl_wood/textures/mcl_wood_stripped_birch.png create mode 100644 mods/ITEMS/mcl_wood/textures/mcl_wood_stripped_birch_top.png create mode 100644 mods/ITEMS/mcl_wood/textures/mcl_wood_stripped_dark_oak.png create mode 100644 mods/ITEMS/mcl_wood/textures/mcl_wood_stripped_dark_oak_top.png create mode 100644 mods/ITEMS/mcl_wood/textures/mcl_wood_stripped_jungle.png create mode 100644 mods/ITEMS/mcl_wood/textures/mcl_wood_stripped_jungle_top.png create mode 100644 mods/ITEMS/mcl_wood/textures/mcl_wood_stripped_oak.png create mode 100644 mods/ITEMS/mcl_wood/textures/mcl_wood_stripped_oak_top.png create mode 100644 mods/ITEMS/mcl_wood/textures/mcl_wood_stripped_spruce.png create mode 100644 mods/ITEMS/mcl_wood/textures/mcl_wood_stripped_spruce_top.png create mode 100644 mods/ITEMS/mcl_wood/textures/mcl_wood_tree_acacia.png create mode 100644 mods/ITEMS/mcl_wood/textures/mcl_wood_tree_acacia_top.png create mode 100644 mods/ITEMS/mcl_wood/textures/mcl_wood_tree_birch.png create mode 100644 mods/ITEMS/mcl_wood/textures/mcl_wood_tree_birch_top.png create mode 100644 mods/ITEMS/mcl_wood/textures/mcl_wood_tree_dark_oak.png create mode 100644 mods/ITEMS/mcl_wood/textures/mcl_wood_tree_dark_oak_top.png create mode 100644 mods/ITEMS/mcl_wood/textures/mcl_wood_tree_jungle.png create mode 100644 mods/ITEMS/mcl_wood/textures/mcl_wood_tree_jungle_top.png create mode 100644 mods/ITEMS/mcl_wood/textures/mcl_wood_tree_oak.png create mode 100644 mods/ITEMS/mcl_wood/textures/mcl_wood_tree_oak_top.png create mode 100644 mods/ITEMS/mcl_wood/textures/mcl_wood_tree_spruce.png create mode 100644 mods/ITEMS/mcl_wood/textures/mcl_wood_tree_spruce_top.png diff --git a/mods/ITEMS/mcl_core/init.lua b/mods/ITEMS/mcl_core/init.lua index c345d057b..6f345e64a 100644 --- a/mods/ITEMS/mcl_core/init.lua +++ b/mods/ITEMS/mcl_core/init.lua @@ -22,7 +22,6 @@ dofile(modpath.."/functions.lua") dofile(modpath.."/nodes_base.lua") -- Simple solid cubic nodes with simple definitions dofile(modpath.."/nodes_liquid.lua") -- Liquids dofile(modpath.."/nodes_cactuscane.lua") -- Cactus and sugar canes -dofile(modpath.."/nodes_trees.lua") -- Tree nodes: Wood, Planks, Sapling, Leaves dofile(modpath.."/nodes_glass.lua") -- Glass dofile(modpath.."/nodes_climb.lua") -- Climbable nodes dofile(modpath.."/nodes_misc.lua") -- Other and special nodes diff --git a/mods/ITEMS/mcl_core/nodes_trees.lua b/mods/ITEMS/mcl_core/nodes_trees.lua deleted file mode 100644 index 54a43d6bf..000000000 --- a/mods/ITEMS/mcl_core/nodes_trees.lua +++ /dev/null @@ -1,275 +0,0 @@ --- Tree nodes: Wood, Wooden Planks, Sapling, Leaves, Stripped Wood -local S = minetest.get_translator(minetest.get_current_modname()) - -local mod_screwdriver = minetest.get_modpath("screwdriver") - -local on_rotate -if mod_screwdriver then - on_rotate = screwdriver.rotate_3way -end - --- Register tree trunk (wood) and bark -local function register_tree_trunk(subname, description_trunk, description_bark, longdesc, tile_inner, tile_bark, stripped_variant) - minetest.register_node("mcl_core:"..subname, { - description = description_trunk, - _doc_items_longdesc = longdesc, - _doc_items_hidden = false, - tiles = {tile_inner, tile_inner, tile_bark}, - paramtype2 = "facedir", - on_place = mcl_util.rotate_axis, - stack_max = 64, - groups = {handy=1,axey=1, tree=1, flammable=2, building_block=1, material_wood=1, fire_encouragement=5, fire_flammability=5}, - sounds = mcl_sounds.node_sound_wood_defaults(), - on_rotate = on_rotate, - _mcl_blast_resistance = 2, - _mcl_hardness = 2, - _mcl_stripped_variant = stripped_variant, - }) - - minetest.register_node("mcl_core:"..subname.."_bark", { - description = description_bark, - _doc_items_longdesc = S("This is a decorative block surrounded by the bark of a tree trunk."), - tiles = {tile_bark}, - paramtype2 = "facedir", - on_place = mcl_util.rotate_axis, - stack_max = 64, - groups = {handy=1,axey=1, bark=1, flammable=2, building_block=1, material_wood=1, fire_encouragement=5, fire_flammability=5}, - sounds = mcl_sounds.node_sound_wood_defaults(), - is_ground_content = false, - on_rotate = on_rotate, - _mcl_blast_resistance = 2, - _mcl_hardness = 2, - _mcl_stripped_variant = stripped_variant.."_bark", - }) - - minetest.register_craft({ - output = "mcl_core:"..subname.."_bark 3", - recipe = { - { "mcl_core:"..subname, "mcl_core:"..subname }, - { "mcl_core:"..subname, "mcl_core:"..subname }, - } - }) -end - --- Register stripped trunk and stripped wood -local function register_stripped_trunk(subname, description_stripped_trunk, description_stripped_bark, longdesc, longdesc_wood, tile_stripped_inner, tile_stripped_bark) - minetest.register_node("mcl_core:"..subname, { - description = description_stripped_trunk, - _doc_items_longdesc = longdesc, - _doc_items_hidden = false, - tiles = {tile_stripped_inner, tile_stripped_inner, tile_stripped_bark}, - paramtype2 = "facedir", - on_place = mcl_util.rotate_axis, - stack_max = 64, - groups = {handy=1, axey=1, tree=1, flammable=2, building_block=1, material_wood=1, fire_encouragement=5, fire_flammability=5}, - sounds = mcl_sounds.node_sound_wood_defaults(), - on_rotate = on_rotate, - _mcl_blast_resistance = 2, - _mcl_hardness = 2, - }) - - minetest.register_node("mcl_core:"..subname.."_bark", { - description = description_stripped_bark, - _doc_items_longdesc = longdesc_wood, - tiles = {tile_stripped_bark}, - paramtype2 = "facedir", - on_place = mcl_util.rotate_axis, - stack_max = 64, - groups = {handy=1, axey=1, bark=1, flammable=2, building_block=1, material_wood=1, fire_encouragement=5, fire_flammability=5}, - sounds = mcl_sounds.node_sound_wood_defaults(), - is_ground_content = false, - on_rotate = on_rotate, - _mcl_blast_resistance = 2, - _mcl_hardness = 2, - }) - - minetest.register_craft({ - output = "mcl_core:"..subname.."_bark 3", - recipe = { - { "mcl_core:"..subname, "mcl_core:"..subname }, - { "mcl_core:"..subname, "mcl_core:"..subname }, - } - }) -end - -local function register_wooden_planks(subname, description, tiles) - minetest.register_node("mcl_core:"..subname, { - description = description, - _doc_items_longdesc = doc.sub.items.temp.build, - _doc_items_hidden = false, - tiles = tiles, - stack_max = 64, - is_ground_content = false, - groups = {handy=1,axey=1, flammable=3,wood=1,building_block=1, material_wood=1, fire_encouragement=5, fire_flammability=20}, - sounds = mcl_sounds.node_sound_wood_defaults(), - _mcl_blast_resistance = 3, - _mcl_hardness = 2, - }) -end - -local function register_leaves(subname, description, longdesc, tiles, sapling, drop_apples, sapling_chances, leafdecay_distance) - if leafdecay_distance == nil then - leafdecay_distance = 4 - end - local apple_chances = {200, 180, 160, 120, 40} - local stick_chances = {50, 45, 30, 35, 10} - - local function get_drops(fortune_level) - local drop = { - max_items = 1, - items = { - { - items = {sapling}, - rarity = sapling_chances[fortune_level + 1] or sapling_chances[fortune_level] - }, - { - items = {"mcl_core:stick 1"}, - rarity = stick_chances[fortune_level + 1] - }, - { - items = {"mcl_core:stick 2"}, - rarity = stick_chances[fortune_level + 1] - }, - } - } - if drop_apples then - table.insert(drop.items, { - items = {"mcl_core:apple"}, - rarity = apple_chances[fortune_level + 1] - }) - end - return drop - end - - minetest.register_node("mcl_core:"..subname, { - description = description, - _doc_items_longdesc = longdesc, - _doc_items_hidden = false, - drawtype = "allfaces_optional", - waving = 2, - place_param2 = 1, -- Prevent leafdecay for placed nodes - tiles = tiles, - paramtype = "light", - stack_max = 64, - groups = { - handy = 1, hoey = 1, shearsy = 1, swordy = 1, dig_by_piston = 1, - leaves = 1, leafdecay = leafdecay_distance, deco_block = 1, - flammable = 2, fire_encouragement = 30, fire_flammability = 60, - compostability = 30 - }, - drop = get_drops(0), - _mcl_shears_drop = true, - sounds = mcl_sounds.node_sound_leaves_defaults(), - _mcl_blast_resistance = 0.2, - _mcl_hardness = 0.2, - _mcl_silk_touch_drop = true, - _mcl_fortune_drop = { get_drops(1), get_drops(2), get_drops(3), get_drops(4) }, - }) -end - -local function register_sapling(subname, description, longdesc, tt_help, texture, selbox) - minetest.register_node("mcl_core:"..subname, { - description = description, - _tt_help = tt_help, - _doc_items_longdesc = longdesc, - _doc_items_hidden = false, - drawtype = "plantlike", - waving = 1, - visual_scale = 1.0, - tiles = {texture}, - inventory_image = texture, - wield_image = texture, - paramtype = "light", - sunlight_propagates = true, - walkable = false, - selection_box = { - type = "fixed", - fixed = selbox - }, - stack_max = 64, - groups = { - plant = 1, sapling = 1, non_mycelium_plant = 1, attached_node = 1, - deco_block = 1, dig_immediate = 3, dig_by_water = 1, dig_by_piston = 1, - destroy_by_lava_flow = 1, compostability = 30 - }, - sounds = mcl_sounds.node_sound_leaves_defaults(), - on_construct = function(pos) - local meta = minetest.get_meta(pos) - meta:set_int("stage", 0) - end, - on_place = mcl_util.generate_on_place_plant_function(function(pos, node) - local node_below = minetest.get_node_or_nil({x=pos.x,y=pos.y-1,z=pos.z}) - if not node_below then return false end - local nn = node_below.name - return minetest.get_item_group(nn, "grass_block") == 1 or - nn == "mcl_core:podzol" or nn == "mcl_core:podzol_snow" or - nn == "mcl_core:dirt" or nn == "mcl_core:mycelium" or nn == "mcl_core:coarse_dirt" - end), - node_placement_prediction = "", - _mcl_blast_resistance = 0, - _mcl_hardness = 0, - }) -end - ---------------------- - -register_tree_trunk("tree", S("Oak Wood"), S("Oak Bark"), S("The trunk of an oak tree."), "default_tree_top.png", "default_tree.png", "mcl_core:stripped_oak") -register_tree_trunk("darktree", S("Dark Oak Wood"), S("Dark Oak Bark"), S("The trunk of a dark oak tree."), "mcl_core_log_big_oak_top.png", "mcl_core_log_big_oak.png", "mcl_core:stripped_dark_oak") -register_tree_trunk("acaciatree", S("Acacia Wood"), S("Acacia Bark"), S("The trunk of an acacia."), "default_acacia_tree_top.png", "default_acacia_tree.png", "mcl_core:stripped_acacia") -register_tree_trunk("sprucetree", S("Spruce Wood"), S("Spruce Bark"), S("The trunk of a spruce tree."), "mcl_core_log_spruce_top.png", "mcl_core_log_spruce.png", "mcl_core:stripped_spruce") -register_tree_trunk("birchtree", S("Birch Wood"), S("Birch Bark"), S("The trunk of a birch tree."), "mcl_core_log_birch_top.png", "mcl_core_log_birch.png", "mcl_core:stripped_birch") -register_tree_trunk("jungletree", S("Jungle Wood"), S("Jungle Bark"), S("The trunk of a jungle tree."), "default_jungletree_top.png", "default_jungletree.png", "mcl_core:stripped_jungle") - -register_stripped_trunk("stripped_oak", S("Stripped Oak Log"), S("Stripped Oak Wood"), S("The stripped trunk of an oak tree."), S("The stripped wood of an oak tree."), "mcl_core_stripped_oak_top.png", "mcl_core_stripped_oak_side.png") -register_stripped_trunk("stripped_acacia", S("Stripped Acacia Log"), S("Stripped Acacia Wood"), S("The stripped trunk of an acacia tree."), S("The stripped wood of an acacia tree."), "mcl_core_stripped_acacia_top.png", "mcl_core_stripped_acacia_side.png") -register_stripped_trunk("stripped_dark_oak", S("Stripped Dark Oak Log"), S("Stripped Dark Oak Wood"), S("The stripped trunk of a dark oak tree."), S("The stripped wood of a dark oak tree."), "mcl_core_stripped_dark_oak_top.png", "mcl_core_stripped_dark_oak_side.png") -register_stripped_trunk("stripped_birch", S("Stripped Birch Log"), S("Stripped Birch Wood"), S("The stripped trunk of a birch tree."), S("The stripped wood of a birch tree."), "mcl_core_stripped_birch_top.png", "mcl_core_stripped_birch_side.png") -register_stripped_trunk("stripped_spruce", S("Stripped Spruce Log"), S("Stripped Spruce Wood"), S("The stripped trunk of a spruce tree."), S("The stripped wood of a spruce tree."), "mcl_core_stripped_spruce_top.png", "mcl_core_stripped_spruce_side.png") -register_stripped_trunk("stripped_jungle", S("Stripped Jungle Log"), S("Stripped Jungle Wood"), S("The stripped trunk of a jungle tree."), S("The stripped wood of a jungle tree."),"mcl_core_stripped_jungle_top.png", "mcl_core_stripped_jungle_side.png") -register_wooden_planks("wood", S("Oak Wood Planks"), {"default_wood.png"}) -register_wooden_planks("darkwood", S("Dark Oak Wood Planks"), {"mcl_core_planks_big_oak.png"}) -register_wooden_planks("junglewood", S("Jungle Wood Planks"), {"default_junglewood.png"}) -register_wooden_planks("sprucewood", S("Spruce Wood Planks"), {"mcl_core_planks_spruce.png"}) -register_wooden_planks("acaciawood", S("Acacia Wood Planks"), {"default_acacia_wood.png"}) -register_wooden_planks("birchwood", S("Birch Wood Planks"), {"mcl_core_planks_birch.png"}) - - -register_sapling("sapling", S("Oak Sapling"), - S("When placed on soil (such as dirt) and exposed to light, an oak sapling will grow into an oak after some time."), - S("Needs soil and light to grow"), - "default_sapling.png", {-5/16, -0.5, -5/16, 5/16, 0.5, 5/16}) -register_sapling("darksapling", S("Dark Oak Sapling"), - S("Dark oak saplings can grow into dark oaks, but only in groups. A lonely dark oak sapling won't grow. A group of four dark oak saplings grows into a dark oak after some time when they are placed on soil (such as dirt) in a 2×2 square and exposed to light."), - S("Needs soil and light to grow") .. "\n" .. S("2×2 saplings required"), - "mcl_core_sapling_big_oak.png", {-5/16, -0.5, -5/16, 5/16, 7/16, 5/16}) -register_sapling("junglesapling", S("Jungle Sapling"), - S("When placed on soil (such as dirt) and exposed to light, a jungle sapling will grow into a jungle tree after some time. When there are 4 jungle saplings in a 2×2 square, they will grow to a huge jungle tree."), - S("Needs soil and light to grow") .. "\n" .. S("2×2 saplings = large tree"), - "default_junglesapling.png", {-5/16, -0.5, -5/16, 5/16, 0.5, 5/16}) -register_sapling("acaciasapling", S("Acacia Sapling"), - S("When placed on soil (such as dirt) and exposed to light, an acacia sapling will grow into an acacia after some time."), - S("Needs soil and light to grow"), - "default_acacia_sapling.png", {-5/16, -0.5, -5/16, 5/16, 4/16, 5/16}) -register_sapling("sprucesapling", S("Spruce Sapling"), - S("When placed on soil (such as dirt) and exposed to light, a spruce sapling will grow into a spruce after some time. When there are 4 spruce saplings in a 2×2 square, they will grow to a huge spruce."), - S("Needs soil and light to grow") .. "\n" .. S("2×2 saplings = large tree"), - "mcl_core_sapling_spruce.png", {-4/16, -0.5, -4/16, 4/16, 0.5, 4/16}) -register_sapling("birchsapling", S("Birch Sapling"), - S("When placed on soil (such as dirt) and exposed to light, a birch sapling will grow into a birch after some time."), - S("Needs soil and light to grow"), - "mcl_core_sapling_birch.png", {-4/16, -0.5, -4/16, 4/16, 0.5, 4/16}) - - -register_leaves("leaves", S("Oak Leaves"), S("Oak leaves are grown from oak trees."), {"default_leaves.png"}, "mcl_core:sapling", true, {20, 16, 12, 10}) -register_leaves("darkleaves", S("Dark Oak Leaves"), S("Dark oak leaves are grown from dark oak trees."), {"mcl_core_leaves_big_oak.png"}, "mcl_core:darksapling", true, {20, 16, 12, 10}) -register_leaves("jungleleaves", S("Jungle Leaves"), S("Jungle leaves are grown from jungle trees."), {"default_jungleleaves.png"}, "mcl_core:junglesapling", false, {40, 26, 32, 24, 10}) -register_leaves("acacialeaves", S("Acacia Leaves"), S("Acacia leaves are grown from acacia trees."), {"default_acacia_leaves.png"}, "mcl_core:acaciasapling", false, {20, 16, 12, 10}) -register_leaves("spruceleaves", S("Spruce Leaves"), S("Spruce leaves are grown from spruce trees."), {"mcl_core_leaves_spruce.png"}, "mcl_core:sprucesapling", false, {20, 16, 12, 10}) -register_leaves("birchleaves", S("Birch Leaves"), S("Birch leaves are grown from birch trees."), {"mcl_core_leaves_birch.png"}, "mcl_core:birchsapling", false, {20, 16, 12, 10}) - - - --- Node aliases - -minetest.register_alias("default:acacia_tree", "mcl_core:acaciatree") -minetest.register_alias("default:acacia_leaves", "mcl_core:acacialeaves") diff --git a/mods/ITEMS/mcl_mangrove/init.lua b/mods/ITEMS/mcl_mangrove/init.lua index 511faca75..27955c5b6 100644 --- a/mods/ITEMS/mcl_mangrove/init.lua +++ b/mods/ITEMS/mcl_mangrove/init.lua @@ -17,7 +17,7 @@ local propagule_allowed_nodes = { } local propagule_water_nodes = {"mcl_mud:mud","mcl_core:dirt","mcl_core:coarse_dirt","mcl_core:clay"} --"mcl_lush_caves:moss","mcl_lush_caves:rooted_dirt - +--[[] local function get_drops(fortune_level) local apple_chances = {200, 180, 160, 120, 40} local stick_chances = {50, 45, 30, 35, 10} @@ -540,3 +540,4 @@ minetest.register_abm({ end end }) +--]] diff --git a/mods/ITEMS/mcl_wood/api.lua b/mods/ITEMS/mcl_wood/api.lua new file mode 100644 index 000000000..c1661be0a --- /dev/null +++ b/mods/ITEMS/mcl_wood/api.lua @@ -0,0 +1,232 @@ +mcl_wood = {} +-- Tree nodes: Wood, Wooden Planks, Sapling, Leaves, Stripped Wood +local S = minetest.get_translator(minetest.get_current_modname()) + +local mod_screwdriver = minetest.get_modpath("screwdriver") + +local on_rotate +if mod_screwdriver then + on_rotate = screwdriver.rotate_3way +end + +-- Register tree trunk (wood) and bark +local function register_tree_trunk(subname, description_trunk, description_bark, longdesc, tile_inner, tile_bark, stripped_variant) + minetest.register_node("mcl_wood:"..subname, { + description = description_trunk, + _doc_items_longdesc = longdesc, + _doc_items_hidden = false, + tiles = {tile_inner, tile_inner, tile_bark}, + paramtype2 = "facedir", + on_place = mcl_util.rotate_axis, + stack_max = 64, + groups = {handy=1,axey=1, tree=1, flammable=2, building_block=1, material_wood=1, fire_encouragement=5, fire_flammability=5}, + sounds = mcl_sounds.node_sound_wood_defaults(), + on_rotate = on_rotate, + _mcl_blast_resistance = 2, + _mcl_hardness = 2, + _mcl_stripped_variant = stripped_variant, + }) + + minetest.register_node("mcl_wood:"..subname.."_bark", { + description = description_bark, + _doc_items_longdesc = S("This is a decorative block surrounded by the bark of a tree trunk."), + tiles = {tile_bark}, + paramtype2 = "facedir", + on_place = mcl_util.rotate_axis, + stack_max = 64, + groups = {handy=1,axey=1, bark=1, flammable=2, building_block=1, material_wood=1, fire_encouragement=5, fire_flammability=5}, + sounds = mcl_sounds.node_sound_wood_defaults(), + is_ground_content = false, + on_rotate = on_rotate, + _mcl_blast_resistance = 2, + _mcl_hardness = 2, + _mcl_stripped_variant = stripped_variant.."_bark", + }) + + minetest.register_craft({ + output = "mcl_wood:"..subname.."_bark 3", + recipe = { + { "mcl_wood:"..subname, "mcl_wood:"..subname }, + { "mcl_wood:"..subname, "mcl_wood:"..subname }, + } + }) +end + +-- Register stripped trunk and stripped wood +local function register_stripped_trunk(subname, description_stripped_trunk, description_stripped_bark, longdesc, longdesc_wood, tile_stripped_inner, tile_stripped_bark) + minetest.register_node("mcl_wood:"..subname, { + description = description_stripped_trunk, + _doc_items_longdesc = longdesc, + _doc_items_hidden = false, + tiles = {tile_stripped_inner, tile_stripped_inner, tile_stripped_bark}, + paramtype2 = "facedir", + on_place = mcl_util.rotate_axis, + stack_max = 64, + groups = {handy=1, axey=1, tree=1, flammable=2, building_block=1, material_wood=1, fire_encouragement=5, fire_flammability=5}, + sounds = mcl_sounds.node_sound_wood_defaults(), + on_rotate = on_rotate, + _mcl_blast_resistance = 2, + _mcl_hardness = 2, + }) + + minetest.register_node("mcl_wood:"..subname.."_bark", { + description = description_stripped_bark, + _doc_items_longdesc = longdesc_wood, + tiles = {tile_stripped_bark}, + paramtype2 = "facedir", + on_place = mcl_util.rotate_axis, + stack_max = 64, + groups = {handy=1, axey=1, bark=1, flammable=2, building_block=1, material_wood=1, fire_encouragement=5, fire_flammability=5}, + sounds = mcl_sounds.node_sound_wood_defaults(), + is_ground_content = false, + on_rotate = on_rotate, + _mcl_blast_resistance = 2, + _mcl_hardness = 2, + }) + + minetest.register_craft({ + output = "mcl_wood:"..subname.."_bark 3", + recipe = { + { "mcl_wood:"..subname, "mcl_wood:"..subname }, + { "mcl_wood:"..subname, "mcl_wood:"..subname }, + } + }) +end + +local function register_wooden_planks(subname, description, tiles) + minetest.register_node("mcl_wood:"..subname, { + description = description, + _doc_items_longdesc = doc.sub.items.temp.build, + _doc_items_hidden = false, + tiles = tiles, + stack_max = 64, + is_ground_content = false, + groups = {handy=1,axey=1, flammable=3,wood=1,building_block=1, material_wood=1, fire_encouragement=5, fire_flammability=20}, + sounds = mcl_sounds.node_sound_wood_defaults(), + _mcl_blast_resistance = 3, + _mcl_hardness = 2, + }) +end + +local function register_leaves(subname, description, longdesc, tiles, sapling, drop_apples, sapling_chances, leafdecay_distance) + if leafdecay_distance == nil then + leafdecay_distance = 4 + end + local apple_chances = {200, 180, 160, 120, 40} + local stick_chances = {50, 45, 30, 35, 10} + + local function get_drops(fortune_level) + local drop = { + max_items = 1, + items = { + { + items = {sapling}, + rarity = sapling_chances[fortune_level + 1] or sapling_chances[fortune_level] + }, + { + items = {"mcl_core:stick 1"}, + rarity = stick_chances[fortune_level + 1] + }, + { + items = {"mcl_core:stick 2"}, + rarity = stick_chances[fortune_level + 1] + }, + } + } + if drop_apples then + table.insert(drop.items, { + items = {"mcl_core:apple"}, + rarity = apple_chances[fortune_level + 1] + }) + end + return drop + end + + minetest.register_node("mcl_wood:"..subname, { + description = description, + _doc_items_longdesc = longdesc, + _doc_items_hidden = false, + drawtype = "allfaces_optional", + waving = 2, + place_param2 = 1, -- Prevent leafdecay for placed nodes + tiles = tiles, + paramtype = "light", + stack_max = 64, + groups = { + handy = 1, hoey = 1, shearsy = 1, swordy = 1, dig_by_piston = 1, + leaves = 1, leafdecay = leafdecay_distance, deco_block = 1, + flammable = 2, fire_encouragement = 30, fire_flammability = 60, + compostability = 30 + }, + drop = get_drops(0), + _mcl_shears_drop = true, + sounds = mcl_sounds.node_sound_leaves_defaults(), + _mcl_blast_resistance = 0.2, + _mcl_hardness = 0.2, + _mcl_silk_touch_drop = true, + _mcl_fortune_drop = { get_drops(1), get_drops(2), get_drops(3), get_drops(4) }, + }) +end + +local function register_sapling(subname, description, longdesc, tt_help, texture, selbox) + minetest.register_node("mcl_wood:"..subname, { + description = description, + _tt_help = tt_help, + _doc_items_longdesc = longdesc, + _doc_items_hidden = false, + drawtype = "plantlike", + waving = 1, + visual_scale = 1.0, + tiles = {texture}, + inventory_image = texture, + wield_image = texture, + paramtype = "light", + sunlight_propagates = true, + walkable = false, + selection_box = { + type = "fixed", + fixed = selbox + }, + stack_max = 64, + groups = { + plant = 1, sapling = 1, non_mycelium_plant = 1, attached_node = 1, + deco_block = 1, dig_immediate = 3, dig_by_water = 1, dig_by_piston = 1, + destroy_by_lava_flow = 1, compostability = 30 + }, + sounds = mcl_sounds.node_sound_leaves_defaults(), + on_construct = function(pos) + local meta = minetest.get_meta(pos) + meta:set_int("stage", 0) + end, + on_place = mcl_util.generate_on_place_plant_function(function(pos, node) + local node_below = minetest.get_node_or_nil({x=pos.x,y=pos.y-1,z=pos.z}) + if not node_below then return false end + local nn = node_below.name + return minetest.get_item_group(nn, "grass_block") == 1 or + nn == "mcl_core:podzol" or nn == "mcl_core:podzol_snow" or + nn == "mcl_core:dirt" or nn == "mcl_core:mycelium" or nn == "mcl_core:coarse_dirt" + end), + node_placement_prediction = "", + _mcl_blast_resistance = 0, + _mcl_hardness = 0, + }) +end + +function readable_name(str) + str = str:gsub("_", " ") + return (str:gsub("^%l", string.upper)) +end + + +function mcl_wood.register_wood(name) + local rname = readable_name(name) + register_tree_trunk("tree_"..name, S(rname.." Wood"), S(rname.." Bark"), S("The trunk of an "..name.." tree."), "mcl_wood_tree_"..name.."_top.png", "mcl_wood_tree_"..name..".png", "mcl_wood:stripped_"..name) + + register_stripped_trunk("tree_stripped_"..name, S("Stripped "..rname.." Log"), S("Stripped "..rname.." Wood"), S("The stripped trunk of an "..name.." tree."), S("The stripped wood of an "..name.." tree."), "mcl_wood_stripped_"..name.."_top.png", "mcl_wood_stripped_"..name..".png") + + register_wooden_planks("wood_"..name, S(rname.." Wood Planks"), {"mcl_wood_planks_"..name..".png"}) + + register_sapling("sapling_"..name, S(rname.." Sapling"),S("When placed on soil (such as dirt) and exposed to light, an "..name.." sapling will grow into an "..name.." after some time."),S("Needs soil and light to grow"),"mcl_wood_sapling_"..name..".png", {-5/16, -0.5, -5/16, 5/16, 0.5, 5/16}) + + register_leaves("leaves_"..name, S(rname.." Leaves"), S(rname.." leaves are grown from "..name.." trees."), {"mcl_wood_leaves_"..name..".png"}, "mcl_wood:sapling_"..name, true, {20, 16, 12, 10}) +end diff --git a/mods/ITEMS/mcl_wood/init.lua b/mods/ITEMS/mcl_wood/init.lua new file mode 100644 index 000000000..a132ab7d7 --- /dev/null +++ b/mods/ITEMS/mcl_wood/init.lua @@ -0,0 +1,42 @@ +local modname = minetest.get_current_modname() +local modpath = minetest.get_modpath(modname) +dofile(modpath.."/api.lua") + +for _,w in pairs({"oak","dark_oak","jungle","spruce","acacia","birch"}) do + mcl_wood.register_wood(w) +end + +minetest.register_alias("default:acacia_tree", "mcl_core:acaciatree") +minetest.register_alias("default:acacia_leaves", "mcl_core:acacialeaves") + +minetest.register_alias("mcl_core:birchtree","mcl_wood:tree_birch") +minetest.register_alias("mcl_core:big_oaktree","mcl_wood:tree_dark_oak") +minetest.register_alias("mcl_core:acaciatree","mcl_wood:tree_acacia") +minetest.register_alias("mcl_core:jungletree","mcl_wood:tree_jungle") +minetest.register_alias("mcl_core:sprucetree","mcl_wood:tree_spruce") +minetest.register_alias("mcl_core:tree","mcl_wood:tree_oak") +minetest.register_alias("default:tree","mcl_wood:tree_oak") + +minetest.register_alias("mcl_core:birchleaves","mcl_wood:leaves_birch") +minetest.register_alias("mcl_core:big_oakleaves","mcl_wood:leaves_dark_oak") +minetest.register_alias("mcl_core:acacialeaves","mcl_wood:leaves_acacia") +minetest.register_alias("mcl_core:jungleleaves","mcl_wood:leaves_jungle") +minetest.register_alias("mcl_core:spruceleaves","mcl_wood:leaves_spruce") +minetest.register_alias("mcl_core:leaves","mcl_wood:leaves_oak") +minetest.register_alias("default:leaves","mcl_wood:leaves_oak") + +minetest.register_alias("mcl_core:birchwood","mcl_wood:wood_birch") +minetest.register_alias("mcl_core:big_oakwood","mcl_wood:wood_dark_oak") +minetest.register_alias("mcl_core:acaciawood","mcl_wood:wood_acacia") +minetest.register_alias("mcl_core:junglewood","mcl_wood:wood_jungle") +minetest.register_alias("mcl_core:sprucewood","mcl_wood:wood_spruce") +minetest.register_alias("mcl_core:wood","mcl_wood:wood_oak") +minetest.register_alias("default:wood","mcl_wood:wood_oak") + +minetest.register_alias("mcl_core:birchsapling","mcl_sapling:sapling_birch") +minetest.register_alias("mcl_core:big_oaksapling","mcl_sapling:sapling_dark_oak") +minetest.register_alias("mcl_core:acaciasapling","mcl_sapling:sapling_acacia") +minetest.register_alias("mcl_core:junglesapling","mcl_sapling:sapling_jungle") +minetest.register_alias("mcl_core:sprucesapling","mcl_sapling:sapling_spruce") +minetest.register_alias("mcl_core:sapling","mcl_sapling:sapling_oak") +minetest.register_alias("default:sapling","mcl_sapling:sapling_oak") diff --git a/mods/ITEMS/mcl_wood/mod.conf b/mods/ITEMS/mcl_wood/mod.conf new file mode 100644 index 000000000..d2318e097 --- /dev/null +++ b/mods/ITEMS/mcl_wood/mod.conf @@ -0,0 +1,4 @@ +name = mcl_wood +author = cora +depends = mcl_autogroup, mcl_init, mcl_sounds, mcl_particles, mcl_util, mcl_worlds, doc_items, mcl_enchanting, mcl_colors +optional_depends = doc, screwdriver diff --git a/mods/ITEMS/mcl_wood/textures/mcl_wood_leaves_acacia.png b/mods/ITEMS/mcl_wood/textures/mcl_wood_leaves_acacia.png new file mode 100644 index 0000000000000000000000000000000000000000..a24e58f165128f94801d9fbff9c05b24c0db719b GIT binary patch literal 214 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPE^3h)VW-F&z>#zna{%d99$x4qJK z)8XRNz2}60vTP+me!;B&fq=FAPL@AVB-hi$F{FY~^ps;?lY@xs#oxgO>*Z%vvYUPQ z@K8pXd%>cu|JSZauj%0GRtkJ~{PgXXH{2GTZ=PCQjWj-c`w-Kyu*O9XB_FN-VHj;K z7kx>R@zhDB9e;nzP2L#2?Tv$fm+6G7`x9T4pSdpOkk|Q@ab`UKtt6AVc0h|6JYD@< J);T3K0RZ$5R&W3S literal 0 HcmV?d00001 diff --git a/mods/ITEMS/mcl_wood/textures/mcl_wood_leaves_birch.png b/mods/ITEMS/mcl_wood/textures/mcl_wood_leaves_birch.png new file mode 100644 index 0000000000000000000000000000000000000000..d83adabc7a9ded686fa0542a7847d4951469fe98 GIT binary patch literal 207 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPE^3h)VW^_b)?XDcUdE-h&!DXJr? z?56a2!@})AS;mqezhG8_9-Ws!PPV6uV@L%f?`cE6Lk2t!7xRU`nKa!kJl&_oC!n%9 zT6E|C&|80P1%fBDmA&4?8-8Z#REGtdKl?aneM)kQIk08ZwEGM5P4{py)CkAEY%RR; zLMj#DlX)&Bo?Z& zUeIL@P>Qi6$S;`HphxE=kdy4`;uuoFsM;CIc*KCGZGVdJgf-RroEn@KU-DlXd{BPy z^1tQ-Gl!ns$U>D3Gp8|fKRIE3;me)e{dISl9Ck%iy?Ah2@QmQ)DpBUhmYEh0eAcxx qG2Cnn{-(EDc;1!9k~>>0KCoq+6tYqd+xGB|(0{tgO|2XFmaXwVp1HAr*|Q2OYbb4J3|VoUfL$t*^N8 z18?s3jsI_yu3-HBmeu9pR*(1o_ZJ&Zy;yT_=7mps84VjW440akt+sk~f7K;vo7kX# zofqVOSXEz)GuoafY@sXm&E?s~X4eoY>t*3b!prw(efS{VR{Pqhr}3UZ+?35~D?X>& d{SW@hbmW&P+sjYfSAh;;@O1TaS?83{1OUj2T08&% literal 0 HcmV?d00001 diff --git a/mods/ITEMS/mcl_wood/textures/mcl_wood_leaves_oak.png b/mods/ITEMS/mcl_wood/textures/mcl_wood_leaves_oak.png new file mode 100644 index 0000000000000000000000000000000000000000..7b01275f96c5a019980cabcbf48dc588d456d6fd GIT binary patch literal 226 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPE^4e$wZm9do34AStJK#Aj6!N}fYl~siqj`1H)=em{&dami?px*AyPK_O z(u{k*=P!-hkTi87ZmQdD)-)9^Dg z%dpQqz4aMTma!zrFPPP!N9QGwlkMr^7*fH=d+H)5lc50H!;`zd&pXUENtKl&>Og%W zH%HO8`(2e%Y<3M%oE5uYpKOV}q#8Bz$3m4;e9k~?89ZJ6T-G@yGywo^ Cmr4)- literal 0 HcmV?d00001 diff --git a/mods/ITEMS/mcl_wood/textures/mcl_wood_planks_acacia.png b/mods/ITEMS/mcl_wood/textures/mcl_wood_planks_acacia.png new file mode 100644 index 0000000000000000000000000000000000000000..106304997b4d1a8ba8293234d88a76ed55cc62be GIT binary patch literal 197 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPE^3h)VWZSgUhneMiHBYYx2**s4d$B+s}RUcC!CIeHv sU2@>__zz_o>#prOti*LzRl~W`{)e2HR`ot5kn~EP< zuYLASLT6h0t!(JPoD1w~R+SZ*6>-cJ%ejJ6DTy81GJFVdQ I&MBb@00=!*^Z)<= literal 0 HcmV?d00001 diff --git a/mods/ITEMS/mcl_wood/textures/mcl_wood_planks_dark_oak.png b/mods/ITEMS/mcl_wood/textures/mcl_wood_planks_dark_oak.png new file mode 100644 index 0000000000000000000000000000000000000000..422e0eb3b5b3c716ad7ff671104663ab48b6c344 GIT binary patch literal 168 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPHV5AX?bjr6up3G>KH2=sF@vo+Cr zu%%=hP%6aJ#WAFUQP-D~vBg0kNt);SgJli;W(B{~g-V{+GamR+TK=#*h3CfGU1=`w zQ$7@Y5!^i6Tj5EB)A#v?{vtR39xRGD&h|Oc!{+I`39)be>b{;``@vTF5dRs6<6@72 P<}-M@`njxgN@xNA6(K&N literal 0 HcmV?d00001 diff --git a/mods/ITEMS/mcl_wood/textures/mcl_wood_planks_jungle.png b/mods/ITEMS/mcl_wood/textures/mcl_wood_planks_jungle.png new file mode 100644 index 0000000000000000000000000000000000000000..8f180e0050f1eed00c3297a7bd999dd787e610fa GIT binary patch literal 192 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPE^4e$wZ&GWG;3$bgCa}74uj6F;44r;nx~6nNCl(rnS;EC3Nv=&x@z7X)o*5EGw$DHw-FQ(i&)Vu2egsF)78&qol`;+0Jl9y?EnA( literal 0 HcmV?d00001 diff --git a/mods/ITEMS/mcl_wood/textures/mcl_wood_planks_oak.png b/mods/ITEMS/mcl_wood/textures/mcl_wood_planks_oak.png new file mode 100644 index 0000000000000000000000000000000000000000..ee97b8d8a1f26833f881a52d5723a2bf38ff4611 GIT binary patch literal 203 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPGa2=EDUP4c!b40D-S5L6TI)0yQL z>1OU{XW(R_8Del&5vV55)5S5Qg3-puSG38ILq^(yU-$vr1oL>N>0BWP*z#&EPqzMK z&r^BNFz=M@g$MhLwzsT$w{BJ7w!L>{C(UqdRQoLI^4;?O`OH80MKd$|HYi+f>HOj& z`ej#9nV62;lBR%|{g#@IZoE;uuoFDBF9T@sI(JOZ+YSB<4K~Ps0rEhpb(YBjA7F zo<`XE@`U3-r%ujT;=N1aSAxMRegEivQx7M^PN;umdKI;Vst0Qt8| A2LJ#7 literal 0 HcmV?d00001 diff --git a/mods/ITEMS/mcl_wood/textures/mcl_wood_sapling_acacia.png b/mods/ITEMS/mcl_wood/textures/mcl_wood_sapling_acacia.png new file mode 100644 index 0000000000000000000000000000000000000000..b708c8098bb8c8df61fbb3ccd74a5e41113ed849 GIT binary patch literal 197 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFv4DbnY1=9J^+D*A;Kr+NdF)2VT zH_o@IG-X z8Z*1=vJ)fD9N7Hm<~fmRDZha#7)yfuf*Bm1-ADs+qCH(4Ln;`P8JHB=Gy=o~7%z7% zJG3sLEqOsV(~O5gE3z2U40g9HYshd5R-Ep@JfUIbN`V;%54_WPCB%@lp<`LQQG;Y! vE~~&~<68^ELevgOI7oJgOgVUMBA*IltSE0bw^Knm&>99$S3j3^P6sNfoFEzaR91dED7=pW^j0RBMrz&^mK6ysbEZYU~*DmVL8*Jrqsmd zz&3f(!cCKmCoIf(vm{4_BZXrXhqU!721&m|Or}0ra)OgYxOe+HoFy>#kuKc`WbUaOj!+7$6pfU2Q&t#9Ha@v zU|=|M;Oa*puhP@SF{FYq_jD^`LjVU$z$?F;@A232{&MmQTuhz0t5wrM)8>q+&9fTT zB)wFZs&kEjUJAwMl8zaK1To6ZJMCA%8t-;Vsiw7QW65>9Ze0Zfqctn%y4()C)VO5x z`bzeq47~&TUrZZBpRkKb`K>T}F*}WY-Gwi{dzsW<9%IYn+urI2bOeK^tDnm{r-UW| D(HmS3 literal 0 HcmV?d00001 diff --git a/mods/ITEMS/mcl_wood/textures/mcl_wood_sapling_oak.png b/mods/ITEMS/mcl_wood/textures/mcl_wood_sapling_oak.png new file mode 100644 index 0000000000000000000000000000000000000000..54009cf6a4b971f95566a02cac442e2dda3212c9 GIT binary patch literal 251 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFv3GfMV{r~?zkg4adWSOKB(Bvdz zBjTKIoShgE{P!UH-kY6wZ15gK0Pu9PW{XnrgPZ!6K3dZCF z5fP&hK@pLJ1QEXCvOpFiF4r?Lmz#JUd!DF-3Y#k&)(PEu^NeT1!W)`5t{%Cf(zx)% zT3u6BC)dVC!>cDWLU~uT9bBOqbXljfv9VFL_^8Tb2DUb)WlP?L@tP|%H#R1h77NWd qxHY(w@lZxWgF)C~iMw+hq!{=f%cM=Z+s6)c34^DrpUXO@geCw^w^tDW literal 0 HcmV?d00001 diff --git a/mods/ITEMS/mcl_wood/textures/mcl_wood_sapling_spruce.png b/mods/ITEMS/mcl_wood/textures/mcl_wood_sapling_spruce.png new file mode 100644 index 0000000000000000000000000000000000000000..3b6f18b98d42a6b333b1833d4c749b8ed434197c GIT binary patch literal 214 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFv4DbnY1=1e5e!4zp|NsA&)ssyN zv@=#$wAN7riUix4ru#VW{wb*qRK!^l+D|H$hSN4IGo5 ztGW~-#GTU{g{K%cGM;(xpvf>z)Il2!!{EP) zaB^>EX>4U6ba`-PAZ2)IW&i+q+O1b@vLh!9{Ld+J1SAk2$6=VEYHzT|PXiKu&wkme zq~a-iFatvBZb`O#e*YToFT9wjxG1@#nv%yW)>ye=Q2c)FJNdXi^^3Q`w|RFSFs1_T zVSi1Ju5Xx^*M=N*{`x-ea#uS=4Vh&%80N{0fvziRDDa*q{qCynYw=4s`W~IvW4ZRD z_wO+Sj9XwYu;V9C@c1nAlrY~E8t$?_3l>qxXGTK$89R4|Z{VHL8+N|weE1H9^GO$^ zH;i*J1)v$!Sm)${JxI;EZ8yOSm%Lf^l9~ z#Z?eu2V*zbyl{0#l^AFbigZ(>LC?B(>Togg!x?wx4i4sA37ISRFe!-hqQN=TaJx{z zQwM7S(|mlPb#7hfbt*XdCagp=%uZ&cn(-6K03csgYvBg01?g>I70yp_(VY{ zkej8o1FQ|ND5)FMl#8{X)*=|<3lWi4tFo+{>Yn?_^){5e`3x} z>i!Sr+@wyK`{eBh*6y}CN>~KVES#A7Fi_YYgweQQTO4Q$&-&scP>VtWeES;3;!9i4 zlK46&1fAlRy(&6aaiMwP~1 zXB$u+ySj$d-DgH-S?ep>eXDWG3;QQ*Bvd!uw6pWR=@prdsd}6aAyP` z(_SPEI=s{&N^0QRz9t}a?*mJ}M4e!9NxevVWMbASSj!gY9zfSw{V>ofI9sPfkioBw zg%0k7p~7uMdD(7E*OY-ei`;rREx3(YFv2P;`(#)Ljl)0tJc!4jj5}K9*lzdcGnt85 zkj+Hb0p)#6^(TDu%DWUE4c0LC8op@~bdV1EQJ50!y9wA;r3IBEtC&EIj(jpxUey<+ zsvwdy9km(0+dL{XaO)t!7T9>h2CMb#Sk+ZT=pF^0hi1*JA$yp76w4_yTM8SE-PD~X z6!56L)S*%&-2V1)YbNu!r(y6XgQhF#2|YVDCe(z65>23 z*!?l*Hxx5YC9Mmd&SQ;#X-tZ zS2qe?1z|hqmUjk;RX*ZV$1E)0u20|ME{aTON2hX}RJ*GBM(Hu&RA~4udmnT49Lige zQ1uTeWi3+HFuXp(uJTw3RN10yH@CqDms=`$>J5))6Fr-bVxOd(8m=WcY1wfr<+QH4Jcwi<+=$I3O{&q;rE8{mDNp{hdyeL`eO7BqCqI?q)BTe-4Vqri=M@wmi~IPoVD;M? zIJAB#O5VER{ErFG+}~s^+mqQMMvVXf00v@9M??Vs0RI60puMM)00009a7bBm001r{ z001r{0eGc9b^rhX2XskIMF-^t2o?o6%GVSZ00064Nkl}nj9g=3cn*^{2`i2M`P?ZV&_wPS-jDcD4{x*nfLc#HIaDJYsH8P6ht#OQw zHRtQkH?QxLKhGPxqqwdc1Bzn&e2|q`bF3MeMIVk35y?C!0L`7sq5;fInj7miaW_oj z`n>4lKr4uAk#00O>k3M6u3+?r%@w>oI+6gmzF+w0^!EdqkZI3=WK<*tcyr8!_2x7; zkdXEwBB(5oFksyaC=iT~0YGJ8ZdeIcB-$sC32(;zI+^Fq^}IkutVKL0eRLuc6I3J? zD-b(=KN?kHU4hJqnV30w2b4H|4qm@s^v8jjVR9^@$SMF<1XYC}h64JdW6iMUATh56 z68F7my#ZiFa?h1CzLU;-(oE#$U~~y{qcVwW0cC&CCbTM`k}B|{^XATaEo!HwjgCyj zxsVxSILbymFU-KQl4CT?M9dAbYQMC(vDU7X6z=<_?{i{;xdMw!KA&@ITR|15i`VaO z71(?KmKRCY@6$u6riAsFEZjR=(U+)j@Yw|rC xKaTBPF52VZIw$LSaXbc6Q4~THfp;TU@;}m>L&kpLdwu`_002ovPDHLkV1jdt1=|1s literal 0 HcmV?d00001 diff --git a/mods/ITEMS/mcl_wood/textures/mcl_wood_stripped_acacia_top.png b/mods/ITEMS/mcl_wood/textures/mcl_wood_stripped_acacia_top.png new file mode 100644 index 0000000000000000000000000000000000000000..bd10499c811843193bf35170c6ebb4bd8cd290dd GIT binary patch literal 2025 zcmV zaB^>EX>4U6ba`-PAZ2)IW&i+q+O1b<(&Q!#{m&_K1SAm4aaioC+#tu#0|eclyJxB< zm3Fm_Wzh1TkZg1P^Y?B3!jH+a@e)(WAz1u;_L&O?$*$kJlJ)bfH+Bzx$jy1c5IJ1k zx(%1kFObV?LG&uGKjkJi)ss}w)~pKMu*?|fyrha8FFEPG$-1uiw{Y}-H=d8Bu1C*% z9|1-e=yPoNa^x(|X;^XNPp;r9^PDh=TwG(Ez4PC(GiUe!?~ESU*`jjy6AEL4P6!W- zR8I08yNS?)wQc#w1G;Ur@4t8K?w;=ZTG16BfK)IV)DC5iFcENiHw+|I2X{-Sd9Gl9M7Wc=!HshPK|%;Ij2cyPOLyxAXo_o3ILMmPUk}F*C zN>{$hja<9k?Qglm9q)AKyByY()t{`^ExLO z8LerEpmr(rj;c!dv4+6OPk~*6=21rGYSi5U3`Xf?dh6Skz|$Bw%BnE=W6JEw(q~Ml z#%+y;TG_H?4XQM7t5>H{6m${A0=YX?`b6rQXZx{iO~!v~&a89Ip2WAPxAX`ogc%3I zdO@}4hN#c1QQvHktZ`6TP~a8EFE6oWu5GU_9TXn=%})b5Ew#3NZ)NGv<@iHu&_-ii znL)XmIh3Q!w(8bX>-@qBj;RbqIQ6w)Y}vRRr<_`0GpvE}x}U$8eUZJFWOTY`&N;ix z85n!9e3-YfZwF;N7}P;jliC%iLr65T5OW+BoXAyG+ji2hTN2peWyt44wk~tVInta$ zEBT#ky)6+^rzvw*;!?w{8rm>sg#@8q8>Sbs_&B3`KZLAc^C-Nl44{(h(hy!4yzOLC z4^JwD)<-?UOQO#~6B(~Sst+~0^quDKZXe<}ZGRRZL~k``p1NDh;4ex~FDy zQUSZQ?%kT-IDCur;C~|CJFH>S*?xZ^?+g(kFK7#&IaXXt$=G)WHt$A=e zIr-5m4B|f1ibjdIMO77a4`4y<>f*COQdsnt@j0MAYfHh4hpNJ7ftFt+|1L0zWWkP? z`4g=<0p$(F?o}19smHOp9ZQ!|_h@>ijIU7bZ1v$h`Jk&v+X-{uY@F`!1tY(0XeLO~ zuFbpcVf4%hzvwkcYApt@PD1XZwbx&_f6eS~`;ir+)6RpMO8U}6NjsXQzB8Nl+fP6Hd}wxjn45nA_2JIY2>7#~00006VoOIv0RI600RN!9r;`8x z010qNS#tmYE+YT{E+YYWr9XB6000McNliru~QHb3pV>&RM=_Bwayccg-28IqbO^HK%m&FgqsuMW>R?=S1IV<_{`I8p} zEkYC-z%xNa0Eo0=7zX_LDl!IurgIph4L7O1Na)(0XkqZ)BO=(;a>xs!#hB>Nm721` z;0FNKH|x;(kQa1qkBM}6oMuV512B;WKxw7uJ2wWam}tEUkEe5OW3-Ja4`rAFz~fQE z8?+K$zU3@8mfgc$ptb+{j1nRFuw#3lUC=eth}y<}ORR}D&u`ls{u;eD`HL`buQG)u5|w`}h-Y-$k^y!V$BfS|Zq#bF;N8?_Sl z-}5k~h@g}jM|Wk7J#XZ%$Da&U9r(Jk#+5b4r+wH;05^EdHPxg;`PT1tIZ0TIW;vko%2Ce?>%kP(f2(~-Li}qW5K~w zoEuz!C26>~03h7@@0bT^8P ztis*sD#C+okPl~!z}=yX%wlB{9+(-mCS$wt>*r5Af~q1SFd8tlMPLRr%$1zy3Bbw) zz+5LEj}NvH&>%AawtXYQ&vKyV}!X>JT#^~;+!$xJ&U01AYVkRPjs!MT%qgBmZi|R&Z zR2gP4k3SfYRTzeKBZ;bfrf}g!7j8llS#AICMi7)yDC7&=}`Rwr!BrR5x+8 x?PVP7+Xi|O0VclO--xkM>qHXP&6?M)`~`88C+khq9Z3KH002ovPDHLkV1j_E3-bT~ literal 0 HcmV?d00001 diff --git a/mods/ITEMS/mcl_wood/textures/mcl_wood_stripped_birch_top.png b/mods/ITEMS/mcl_wood/textures/mcl_wood_stripped_birch_top.png new file mode 100644 index 0000000000000000000000000000000000000000..69d2e0bfdffc760bed2d9936723cbe5d8803207b GIT binary patch literal 681 zcmV;a0#^NrP) zKI-R>@1nIrDTSvr+S3?M^S@Wu4FH$AK@i$jFrKFg{2Tm%=?kY5+sB*CUFBPsb7vDa znWNZO7_C$qRCo3db-A0Z>|@)vI_oj@Ul0xHQt`{teTK z#nT?=^BJ31c4f)XAF^7eOeYqF!WiQ*omke(l>5g|9LpWm>BQl1KzkmSy2iihJc`1u zvxu*;h5`JiTJU9~kEAEpZexpFOc!%m7#~Q*2@p z0bMs8U88{p5nl3wBb$!)Tb#p1P`6 zVH8G;!swl6Ev9W+M1;Dj5fSntzk=rt=kC-Yt3}F(`;W}h8BNoo1vnfl1_PfYPS8p- z3_^xM$Y|Vk(@HT4BUX!)IEtwbCDVyT0MoWD`{RkGZ7KH$?k1M%P?8rpNt}@71-CZg zSng;v#fBw>h%bQ~N{7pilO@jS}ob3b~%-ykBma@{lX#==W+K-!i+SU4n=LjB=M P00000NkvXXu0mjfM+!1R literal 0 HcmV?d00001 diff --git a/mods/ITEMS/mcl_wood/textures/mcl_wood_stripped_dark_oak.png b/mods/ITEMS/mcl_wood/textures/mcl_wood_stripped_dark_oak.png new file mode 100644 index 0000000000000000000000000000000000000000..32a8bfebd2cd0b3954d8c6a0c35e28a25673e9bd GIT binary patch literal 2007 zcmV;|2PpW7P) zaB^>EX>4U6ba`-PAZ2)IW&i+q+O1bxvg{@d{AU$e0uqSFaxgYk*+G_{220G?_vBV3 zm2sUhBZFSuG(PV7>(Al-z=wTGE=n$`rsVO7HCApI6n}s2JNdZ2^@q2?!|wJ2hAH44 z?w{$>`3-jYEXYyq$J6d|S3gA^nP+tvW@N@d=M{An__mY&c2(E4_*IVnjn3<_9QUL5 z@0ihyQ{XSK<10|`_%1U_n12)+?y|lsCQ(Qj$58Rjq5j-Ew}-Fh?a`}uzNtMtTj6}t z3F*}%wUhkZyVao=Y8LtNVDug0*WQh@jB(x7wV2SUhF-uN4=aOq~C6rjCq>@W1wY17LK*FS^nq4im z*47ZT!F9vxh8e9Le1sz&a-<_4<)}yNpihrodg{5CUVA(F3@5h#na=Faa@Mn5bb(4& zyyQw(zRFdvHo&zJMjSHI$fJxp+D1)LeWFG$#YB1+)E@;Y$Ow527 zM*`w`A^<}3#LO3pktcE!GhZ2-LKvu#OmI$`hylTP5zC;B-3Phf;^rj&E8O^>kaH8d z{{uNUp;P33#q9^w&bCgJumGC7aQ4)P0b#p5;&W*|o~5QWgp9R$pNGZ~g`xziVcrQn z3A`pjjn8Gl-WGCe2#npAA&>Y?b8SI6bJU&GDXs7z)}N8t*x|i7w5TKDWu`LB^;x(Fw9yN=i5V}aIb?& z%TwRQk9P;8xx3y<8mwd;^s2QnAGfJ{t5(xSj)%o+PV)xU@6@QKUHSQ}7u~VkvejmT z;`C99;px$vAGr3K(z}!FKiN734DGU6a#;t4dMcu`lT~ui6S(<)WIajmE*Yt)+?)iD zPa~(b)OW+ybwz;8R-g|`0ZnPXO=6;ObtjKI>*Jf>#7rEHr-j7&WQ;VZ$ zQ8wJl?w;7H)h!q;$6)xy&2G2T)+CXU?g?83Y=UjCoxi#ElJ1lobkkDtnq@yW1I9DT z&dsNgo+&x-?y$i0+8m}KAb=rAe&=+lOIdr$t!;T2<+ns+BdQb=reO(Z6DG-@&37}~ zd)u+m$auc`2ws+QwRM{Y47k4F+5vQ$vm+$e9S^`LwKoSVtVP4pQ7y)@Mt2yFVRM8tRqql zl3+-FqG@R#5ekOQrgeP6w*HsV!9J=;9f1=56%FUHbwmzLpc{a`T*hld$%#2g&E#9b ziTri`-Mtkf;MU&51jeM+H+cyzma``9y_aI~cNd7riptl4fV8Jjqd=T6(&noM@U?|qiy{D4^000SaNLh0L04^f{04^f|c%?sf00007bV*G`2jv9` z6)_!v1L~Uq00G-cL_t(I%T1HXb=@!wMK3^*`mzhkHU*^rN)lTlF=RpIpX`A*0`lwU zkLrE!`EjD6^wEh3A`>%1fXqZhm}~KQo?Q3M?>}E$_ZOB~wAMfbZH@2iLRHB~tQp_; z%`ihvsVpK3K^S8o0@|%1A^>78(7ORbJyina(*gpcA81if1r(zhBCwW&2=2l0)V194<){jgK^3?!G!sgMtj#J2 z=j%l`BQk-VfvN&KJb*1!P#y(qO(GKyXU-caj?r1}d|%faWVvsf1-XM2+cp29bd_;V;khDq^!P4y^zH002ovPDHLkV1ff@Cm~v{cabNrkHfe z>G2t}`Mf5$f-xCIRpPoXp0!HgJGib#J01|Vnz)XOs%4XBoF1P6aM*vq;jqVH@moT#kmQDxMbt;Oq(q zjTWvO;CUf8w>Na+h>P=cs;XjX5=4aQ!(yvwf@)cZ3Xquk#m^rW>B1u?f8JD9Wd7kZi#l#I2!c#%kvzk z$7kIAy#-*sDe*kFwqVlLeqF7tXh#udmEnj`Rux522P-0+ot$qU`t$Ues>)*06?vZF zI1aylU(=3T9QJwyzDKrR6GttUi9uD#)+vq%2zaXCID!Z~7Q3}m5|fgcbT5B0oncj} dc{N!r{09N8D$|RsG+h7y002ovPDHLkV1nVIG|vD4 literal 0 HcmV?d00001 diff --git a/mods/ITEMS/mcl_wood/textures/mcl_wood_stripped_jungle.png b/mods/ITEMS/mcl_wood/textures/mcl_wood_stripped_jungle.png new file mode 100644 index 0000000000000000000000000000000000000000..c656696558567389d95946817c7f4eeaa03f6d21 GIT binary patch literal 650 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 IM6N<$f@A3O?EnA( literal 0 HcmV?d00001 diff --git a/mods/ITEMS/mcl_wood/textures/mcl_wood_stripped_oak_top.png b/mods/ITEMS/mcl_wood/textures/mcl_wood_stripped_oak_top.png new file mode 100644 index 0000000000000000000000000000000000000000..e060862e7a66b485affc10e0f6d74f20bdc2b298 GIT binary patch literal 729 zcmV;~0w(>5P) zK~y-)Rg+&+(@+q_e|wXr3GGnpGy>BRWspJCXL)k;gZNGSdc64OQ9ux>B9%V@N=log zZF1L#v{m+H@9fN;yL--A`SAX&A^_kxE&_;@1qICX4WO!6Ys;*Ps>Kx%0?)xQf~r#W zeLSy9HqJpOtUYS*^C}^zdW^>zX_BF;jPim>A-G}$#|VDlv)OI}5H@N=@sQ)o1kZIa z6uf@cB8rD}qLe%@u>F|a7PyXa0PZ#K?44q95X~_r0N|oGV5wOL;K#)f#~6$#2EY$| z_Pc!mcJ@wr+^VzHUPMIrb)6w197hRJJOp5Usm5ZX0V0?gVO#A*c2BOE^zDxjE3j>TX zCBQ7aio^PHo#lshF5{HjyNs{DZ)w*3Qf6bwi-Jy+a?tGo;LgxauVRkQZt<%DR+WAn zQ&_kgBz*pHg@~|wa)mJlwK?%%^bg?Uw=))em-XcbIF6xN_xXI3Q?)s@1)ry3ox^UA zm#Zy0Q976O)4_SU!uInOUaqz{?@t&_a+1-6cdyz2JZaVDT+GIf;vxIpKB`k0J5h=; z!uCeUpWcY$%Y?I=J1P~gWPIw6*}7q)hVNBSz*SYo;|vJ6=nZ)DVuiw5j0lI*9}l`c zI#GIWihg{HT3Z5SX~x%+9$W3k+$;b=u)vqY3tn$7&ujmKSZhlX^TJYODM#m}CuXr0 z21GY8ohY4~3Lr}}a;qqcYprFhf-y3cW;6$gZsL0xps*IE=M2JMna@6R%Q>@N00000 LNkvXXu0mjf^cP7D literal 0 HcmV?d00001 diff --git a/mods/ITEMS/mcl_wood/textures/mcl_wood_stripped_spruce.png b/mods/ITEMS/mcl_wood/textures/mcl_wood_stripped_spruce.png new file mode 100644 index 0000000000000000000000000000000000000000..55cb4cec3fdd8d2c466b30ddbf75a2aa6748b050 GIT binary patch literal 2054 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 literal 0 HcmV?d00001 diff --git a/mods/ITEMS/mcl_wood/textures/mcl_wood_tree_acacia.png b/mods/ITEMS/mcl_wood/textures/mcl_wood_tree_acacia.png new file mode 100644 index 0000000000000000000000000000000000000000..2f62228c90f5227c0700f4f230d49532a0e35d25 GIT binary patch literal 196 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPE^3h)VW&5iT*w9#)WO^Nogp4MJ$ zp`-LO?Xo*iHrLa|F{FZ#*LS-hvjIoV(x{!+8>?B*ZJqpW{>hLJk{&fTX7d!^*tJ`G zQ|kUVY^$E`UT4=J{aSm`l$eD}LVoWRS7nx2wwS-CykrMkh)`{j`yx}8-K(GW%zvuB s#_z6?)tU%*$zLJb{Bv1^wn+Ts{~XS{+Ai($3!udep00i_>zopr0Mo5V?f?J) literal 0 HcmV?d00001 diff --git a/mods/ITEMS/mcl_wood/textures/mcl_wood_tree_acacia_top.png b/mods/ITEMS/mcl_wood/textures/mcl_wood_tree_acacia_top.png new file mode 100644 index 0000000000000000000000000000000000000000..471aaa700c423dfd1cc31eacb77af797325a066d GIT binary patch literal 212 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPGa2=EDUwa`)Ww9!vCS7`Foof&Pl zqQGNoV`yKX@j=J#%|JEfo-U3d6^yJ04^C`0;BmO9KXc~Zn?}(N3z~g?y;sydP|znB zbAna-J>yjafw|fKmHEwk7v)Yiv0b{V$3HM)xlCS`>i$}G(SOgs9GIf;&ezGa{K4Zz z*0ZuQLlZTxuHm`3Yx?4a2Q#vdO)a*wdpB=Mz5f5t-U7^r>fiDiwwAoE_5?bC!PC{x JWt~$(696a%Q7ixe literal 0 HcmV?d00001 diff --git a/mods/ITEMS/mcl_wood/textures/mcl_wood_tree_birch.png b/mods/ITEMS/mcl_wood/textures/mcl_wood_tree_birch.png new file mode 100644 index 0000000000000000000000000000000000000000..b53eb796eedb587c67df898ff1a51b17dddfd764 GIT binary patch literal 200 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPE^3h)VWo!MRY=;pb%&mU$dMw~gY zdDVhx0_L2DfwG03E{-7;jG{i`8yf_`_-MPIdhS0ooU}-`RH;GEZmxdZ>!Q z#eT6llT8%=JvY|OTdjHKDlt>f@~$YZt6j}soef{@n?umn}t$%kPQqJqKJm|Dkx^AkDpmCGu!VsY444$rjF6*2UngIW~PZaiKVwD@| z-Cr2zY^t}SCGFtsnylS+d_ZL_o-U3d6^y*Trc8$zczDbnuldn)zVzmXmM`o*5vu$v zY-jJd@3?sVwi#a+KCR;KpCh})_E)M?bVjhKu(;ZqMLc_5aw0oltkj;n+tjS5V z)YH&u6R$|?682<$Km&SA-3x>>ntaD zT@qOo?8}{etd=*o=V9#8?!!)Ymv=jBt&|PgEYQ!+81-e-<8?Qh%BrixmZj$FbOgC_ z{1;DOUCbVF?veAx+P9kbg4b>2+AiWcWzTjs#Xl zpM(EaPpdjn>tbmhROGT+sMOef&&#ii-HNAdt+{gfkT09;=TnJGi&*~NXNo>)T*xV) z?KkUtlS|=)4>}#1pXx8}_;Kx*Ci9JCC*k@HaSt^v{by>_ynkH$f}-@NOJ<9%1Kq*k M>FVdQ&MBb@0DERs!2kdN literal 0 HcmV?d00001 diff --git a/mods/ITEMS/mcl_wood/textures/mcl_wood_tree_jungle.png b/mods/ITEMS/mcl_wood/textures/mcl_wood_tree_jungle.png new file mode 100644 index 0000000000000000000000000000000000000000..54fd0ccbdc07e26ac111df895aa55917c2726ac9 GIT binary patch literal 190 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPHV5AX?b4Kq*IBscF4%)n_8JQo}E7LyTYFryVM)*=j}Qw`Z>>Ez^VLox|4XXr`1IrnW=&; lx|(c{mi3=u+?T=EXRr92+r9b58y=vo44$rjF6*2UngH=LLrVYv literal 0 HcmV?d00001 diff --git a/mods/ITEMS/mcl_wood/textures/mcl_wood_tree_jungle_top.png b/mods/ITEMS/mcl_wood/textures/mcl_wood_tree_jungle_top.png new file mode 100644 index 0000000000000000000000000000000000000000..a2fa3a33faa253c33427a9d1ee8dceed08a8a942 GIT binary patch literal 216 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPE^4e$wZwbD@wGf_?Su+9l|>Q4(; zR~~VwB{?LkzXPbC&eO#)q=J#>>{iAWpw~mZ$4dqg~RII^mE_8o>TkwQn=y2Jcj`TLz=wQ_Ww2ivw<#Q N@O1TaS?83{1OQ$7RZ{=} literal 0 HcmV?d00001 diff --git a/mods/ITEMS/mcl_wood/textures/mcl_wood_tree_oak.png b/mods/ITEMS/mcl_wood/textures/mcl_wood_tree_oak.png new file mode 100644 index 0000000000000000000000000000000000000000..1ec7ee20b4b63462f981055056508c6fca1a1599 GIT binary patch literal 211 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPE^4e$wZjc_w{GuJLp@aoI+PYbj& z)lytl7rs;O$v&WhN>3NZkP1d!pRJ6C9Rwz?{9ir)?yT1r7}RQS7090ZC*7jGkwNqA z6g4M<#qj|wh4+6RU17V$ye{q*+qMWM`9*&Z&B>5ml3w-b9^)Yk|7-7ePN~y#{`^m} z=GB9H_Qw`q+8Z8wa&_ID;|sWpE36l1XmaNG|E`z26r8(AT;EwZ;x%vecAz5|JYD@< J);T3K0RZC>QdIx| literal 0 HcmV?d00001 diff --git a/mods/ITEMS/mcl_wood/textures/mcl_wood_tree_oak_top.png b/mods/ITEMS/mcl_wood/textures/mcl_wood_tree_oak_top.png new file mode 100644 index 0000000000000000000000000000000000000000..9a781d7e92ceed1c39d22ab9d3f2737d90b3ff47 GIT binary patch literal 221 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPGa2=EDUbu-tFa5GH{v@42somLXk zm*>B|Gxp4k46j8S-vQM$c)B=-R50@TZ52K2!1K3_F)7EFxn;fCZr zf${^EZUqj8?RVzN$Id)#n)LGa>qF~}J9P!_@{}r@cVwiWjh_DFw%}=t*N2Yp{-V9) z%JahQtO-wQj4$_G`P7|hqcklpJkaugoXISvcfGl%mI#L0|GKNjF2K@v?FaL14|(Tu T-;4&JTNpfD{an^LB{Ts5x4~Cj literal 0 HcmV?d00001 diff --git a/mods/ITEMS/mcl_wood/textures/mcl_wood_tree_spruce.png b/mods/ITEMS/mcl_wood/textures/mcl_wood_tree_spruce.png new file mode 100644 index 0000000000000000000000000000000000000000..3372a36ae1f783c45b162d72d766a4eeb48a5c66 GIT binary patch literal 212 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPE^4e$wZ)mD_V)z|c~HYx~pH&$1U z^RThfRqwmDLKLW=%G1R$q=J$4prKTg0T0^+`8?z(FME!Jr@Bd)H!OlKwi2 zXAZ~L-2PbCRMMSUt}vgw@~hlr-y>5+jjTGqcEx|(aklU;<2ob3Xy&U|wgO$j;OXk; Jvd$@?2>>vJP?G=v literal 0 HcmV?d00001 diff --git a/mods/ITEMS/mcl_wood/textures/mcl_wood_tree_spruce_top.png b/mods/ITEMS/mcl_wood/textures/mcl_wood_tree_spruce_top.png new file mode 100644 index 0000000000000000000000000000000000000000..965e2e294bf9c916ae43410bb5c5912e31d5b77b GIT binary patch literal 225 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPGa4)6(a)mD@