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 000000000..a24e58f16 Binary files /dev/null and b/mods/ITEMS/mcl_wood/textures/mcl_wood_leaves_acacia.png differ 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 000000000..d83adabc7 Binary files /dev/null and b/mods/ITEMS/mcl_wood/textures/mcl_wood_leaves_birch.png differ diff --git a/mods/ITEMS/mcl_wood/textures/mcl_wood_leaves_dark_oak.png b/mods/ITEMS/mcl_wood/textures/mcl_wood_leaves_dark_oak.png new file mode 100644 index 000000000..859d14ac8 Binary files /dev/null and b/mods/ITEMS/mcl_wood/textures/mcl_wood_leaves_dark_oak.png differ diff --git a/mods/ITEMS/mcl_wood/textures/mcl_wood_leaves_jungle.png b/mods/ITEMS/mcl_wood/textures/mcl_wood_leaves_jungle.png new file mode 100644 index 000000000..d92a6e089 Binary files /dev/null and b/mods/ITEMS/mcl_wood/textures/mcl_wood_leaves_jungle.png differ 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 000000000..7b01275f9 Binary files /dev/null and b/mods/ITEMS/mcl_wood/textures/mcl_wood_leaves_oak.png differ diff --git a/mods/ITEMS/mcl_wood/textures/mcl_wood_leaves_spruce.png b/mods/ITEMS/mcl_wood/textures/mcl_wood_leaves_spruce.png new file mode 100644 index 000000000..1407ff7e3 Binary files /dev/null and b/mods/ITEMS/mcl_wood/textures/mcl_wood_leaves_spruce.png differ 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 000000000..106304997 Binary files /dev/null and b/mods/ITEMS/mcl_wood/textures/mcl_wood_planks_acacia.png differ diff --git a/mods/ITEMS/mcl_wood/textures/mcl_wood_planks_birch.png b/mods/ITEMS/mcl_wood/textures/mcl_wood_planks_birch.png new file mode 100644 index 000000000..ab3ae8f7f Binary files /dev/null and b/mods/ITEMS/mcl_wood/textures/mcl_wood_planks_birch.png differ 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 000000000..422e0eb3b Binary files /dev/null and b/mods/ITEMS/mcl_wood/textures/mcl_wood_planks_dark_oak.png differ 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 000000000..8f180e005 Binary files /dev/null and b/mods/ITEMS/mcl_wood/textures/mcl_wood_planks_jungle.png differ 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 000000000..ee97b8d8a Binary files /dev/null and b/mods/ITEMS/mcl_wood/textures/mcl_wood_planks_oak.png differ diff --git a/mods/ITEMS/mcl_wood/textures/mcl_wood_planks_spruce.png b/mods/ITEMS/mcl_wood/textures/mcl_wood_planks_spruce.png new file mode 100644 index 000000000..74fc6908c Binary files /dev/null and b/mods/ITEMS/mcl_wood/textures/mcl_wood_planks_spruce.png differ 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 000000000..b708c8098 Binary files /dev/null and b/mods/ITEMS/mcl_wood/textures/mcl_wood_sapling_acacia.png differ diff --git a/mods/ITEMS/mcl_wood/textures/mcl_wood_sapling_birch.png b/mods/ITEMS/mcl_wood/textures/mcl_wood_sapling_birch.png new file mode 100644 index 000000000..864b1b6bb Binary files /dev/null and b/mods/ITEMS/mcl_wood/textures/mcl_wood_sapling_birch.png differ diff --git a/mods/ITEMS/mcl_wood/textures/mcl_wood_sapling_dark_oak.png b/mods/ITEMS/mcl_wood/textures/mcl_wood_sapling_dark_oak.png new file mode 100644 index 000000000..1700e5082 Binary files /dev/null and b/mods/ITEMS/mcl_wood/textures/mcl_wood_sapling_dark_oak.png differ diff --git a/mods/ITEMS/mcl_wood/textures/mcl_wood_sapling_jungle.png b/mods/ITEMS/mcl_wood/textures/mcl_wood_sapling_jungle.png new file mode 100644 index 000000000..c66730738 Binary files /dev/null and b/mods/ITEMS/mcl_wood/textures/mcl_wood_sapling_jungle.png differ 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 000000000..54009cf6a Binary files /dev/null and b/mods/ITEMS/mcl_wood/textures/mcl_wood_sapling_oak.png differ 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 000000000..3b6f18b98 Binary files /dev/null and b/mods/ITEMS/mcl_wood/textures/mcl_wood_sapling_spruce.png differ diff --git a/mods/ITEMS/mcl_wood/textures/mcl_wood_stripped_acacia.png b/mods/ITEMS/mcl_wood/textures/mcl_wood_stripped_acacia.png new file mode 100644 index 000000000..2b57a0863 Binary files /dev/null and b/mods/ITEMS/mcl_wood/textures/mcl_wood_stripped_acacia.png differ 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 000000000..bd10499c8 Binary files /dev/null and b/mods/ITEMS/mcl_wood/textures/mcl_wood_stripped_acacia_top.png differ diff --git a/mods/ITEMS/mcl_wood/textures/mcl_wood_stripped_birch.png b/mods/ITEMS/mcl_wood/textures/mcl_wood_stripped_birch.png new file mode 100644 index 000000000..5eed80b39 Binary files /dev/null and b/mods/ITEMS/mcl_wood/textures/mcl_wood_stripped_birch.png differ 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 000000000..69d2e0bfd Binary files /dev/null and b/mods/ITEMS/mcl_wood/textures/mcl_wood_stripped_birch_top.png differ 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 000000000..32a8bfebd Binary files /dev/null and b/mods/ITEMS/mcl_wood/textures/mcl_wood_stripped_dark_oak.png differ diff --git a/mods/ITEMS/mcl_wood/textures/mcl_wood_stripped_dark_oak_top.png b/mods/ITEMS/mcl_wood/textures/mcl_wood_stripped_dark_oak_top.png new file mode 100644 index 000000000..48c6da9af Binary files /dev/null and b/mods/ITEMS/mcl_wood/textures/mcl_wood_stripped_dark_oak_top.png differ 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 000000000..c65669655 Binary files /dev/null and b/mods/ITEMS/mcl_wood/textures/mcl_wood_stripped_jungle.png differ diff --git a/mods/ITEMS/mcl_wood/textures/mcl_wood_stripped_jungle_top.png b/mods/ITEMS/mcl_wood/textures/mcl_wood_stripped_jungle_top.png new file mode 100644 index 000000000..028e37eaf Binary files /dev/null and b/mods/ITEMS/mcl_wood/textures/mcl_wood_stripped_jungle_top.png differ diff --git a/mods/ITEMS/mcl_wood/textures/mcl_wood_stripped_oak.png b/mods/ITEMS/mcl_wood/textures/mcl_wood_stripped_oak.png new file mode 100644 index 000000000..c37220bb6 Binary files /dev/null and b/mods/ITEMS/mcl_wood/textures/mcl_wood_stripped_oak.png differ 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 000000000..e060862e7 Binary files /dev/null and b/mods/ITEMS/mcl_wood/textures/mcl_wood_stripped_oak_top.png differ 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 000000000..55cb4cec3 Binary files /dev/null and b/mods/ITEMS/mcl_wood/textures/mcl_wood_stripped_spruce.png differ diff --git a/mods/ITEMS/mcl_wood/textures/mcl_wood_stripped_spruce_top.png b/mods/ITEMS/mcl_wood/textures/mcl_wood_stripped_spruce_top.png new file mode 100644 index 000000000..ec0dd2da8 Binary files /dev/null and b/mods/ITEMS/mcl_wood/textures/mcl_wood_stripped_spruce_top.png differ 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 000000000..2f62228c9 Binary files /dev/null and b/mods/ITEMS/mcl_wood/textures/mcl_wood_tree_acacia.png differ 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 000000000..471aaa700 Binary files /dev/null and b/mods/ITEMS/mcl_wood/textures/mcl_wood_tree_acacia_top.png differ 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 000000000..b53eb796e Binary files /dev/null and b/mods/ITEMS/mcl_wood/textures/mcl_wood_tree_birch.png differ diff --git a/mods/ITEMS/mcl_wood/textures/mcl_wood_tree_birch_top.png b/mods/ITEMS/mcl_wood/textures/mcl_wood_tree_birch_top.png new file mode 100644 index 000000000..51339550a Binary files /dev/null and b/mods/ITEMS/mcl_wood/textures/mcl_wood_tree_birch_top.png differ diff --git a/mods/ITEMS/mcl_wood/textures/mcl_wood_tree_dark_oak.png b/mods/ITEMS/mcl_wood/textures/mcl_wood_tree_dark_oak.png new file mode 100644 index 000000000..9b7a85ce9 Binary files /dev/null and b/mods/ITEMS/mcl_wood/textures/mcl_wood_tree_dark_oak.png differ diff --git a/mods/ITEMS/mcl_wood/textures/mcl_wood_tree_dark_oak_top.png b/mods/ITEMS/mcl_wood/textures/mcl_wood_tree_dark_oak_top.png new file mode 100644 index 000000000..d4328c328 Binary files /dev/null and b/mods/ITEMS/mcl_wood/textures/mcl_wood_tree_dark_oak_top.png differ 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 000000000..54fd0ccbd Binary files /dev/null and b/mods/ITEMS/mcl_wood/textures/mcl_wood_tree_jungle.png differ 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 000000000..a2fa3a33f Binary files /dev/null and b/mods/ITEMS/mcl_wood/textures/mcl_wood_tree_jungle_top.png differ 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 000000000..1ec7ee20b Binary files /dev/null and b/mods/ITEMS/mcl_wood/textures/mcl_wood_tree_oak.png differ 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 000000000..9a781d7e9 Binary files /dev/null and b/mods/ITEMS/mcl_wood/textures/mcl_wood_tree_oak_top.png differ 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 000000000..3372a36ae Binary files /dev/null and b/mods/ITEMS/mcl_wood/textures/mcl_wood_tree_spruce.png differ 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 000000000..965e2e294 Binary files /dev/null and b/mods/ITEMS/mcl_wood/textures/mcl_wood_tree_spruce_top.png differ diff --git a/mods/ITEMS/mclx_stairs/init.lua b/mods/ITEMS/mclx_stairs/init.lua index effa87f13..f77d0f3fb 100644 --- a/mods/ITEMS/mclx_stairs/init.lua +++ b/mods/ITEMS/mclx_stairs/init.lua @@ -1,6 +1,6 @@ local S = minetest.get_translator(minetest.get_current_modname()) local doc_mod = minetest.get_modpath("doc") - +--[[] local barks = { { "", S("Oak Bark Stairs"), S("Oak Bark Slab"), S("Double Oak Bark Slab") }, @@ -143,3 +143,4 @@ minetest.register_craft({ -- Same as wood slab burntime = 8, }) +--]]