From c5fafbb2ce5415af893b6b9bf26d8f7200700106 Mon Sep 17 00:00:00 2001 From: rudzik8 Date: Thu, 28 Apr 2022 20:37:39 +0700 Subject: [PATCH] Split api/register.lua into separate files (fixes #3) --- api.lua | 352 ---------------------------------------------------- colored.lua | 214 ++++++++++++++++++++++++++++++++ init.lua | 5 +- misc.lua | 67 ++++++++++ paths.lua | 116 +++++++++++++++++ wooden.lua | 172 +++++++++++++++++++++++++ 6 files changed, 573 insertions(+), 353 deletions(-) create mode 100644 colored.lua create mode 100644 misc.lua create mode 100644 paths.lua create mode 100644 wooden.lua diff --git a/api.lua b/api.lua index 71d0312..12ab0f9 100644 --- a/api.lua +++ b/api.lua @@ -49,355 +49,3 @@ if not minetest.get_modpath("mcl_cozy") then end end) end - - - -function mcl_decor.register_path(name, desc, material, tiles, sgroup, sounds) - minetest.register_node(name, { - description = desc, - tiles = {tiles}, - wield_image = "mcl_decor_path_alpha.png^"..tiles.."^" .. - "mcl_decor_path_alpha.png^[makealpha:255,126,126", - inventory_image = "mcl_decor_path_alpha.png^"..tiles.."^" .. - "mcl_decor_path_alpha.png^[makealpha:255,126,126", - groups = {handy=1, [sgroup]=1, attached_node=1, dig_by_piston=1, deco_block=1}, - drawtype = "nodebox", - paramtype = "light", - sunlight_propagates = true, - buildable_to = true, - walkable = true, - node_box = { - type = "fixed", - fixed = { - {-0.4375, -0.5, -0.4375, -0.125, -0.4375, -0.125}, - {-0.125, -0.5, -0.0625, 0.0625, -0.4375, 0.125}, - {-0.3125, -0.5, 0.1875, -0.0625, -0.4375, 0.4375}, - {0.0625, -0.5, -0.375, 0.25, -0.4375, -0.1875}, - {0.125, -0.5, 0.125, 0.375, -0.4375, 0.375}, - {0.25, -0.5, -0.125, 0.375, -0.4375, 0}, - {-0.4375, -0.5, 0, -0.3125, -0.4375, 0.125}, - } - }, - selection_box = { - type = "fixed", - fixed = { - {-0.5, -0.5, -0.5, 0.5, -0.4375, 0.5}, - } - }, - collision_box = { - type = "fixed", - fixed = { - {-0.5, -0.5, -0.5, 0.5, -0.4375, 0.5}, - } - }, - _mcl_blast_resistance = 0.3, - _mcl_hardness = 0.3, - sounds = sounds - }) - minetest.register_craft({ - output = name.." 16", - recipe = { - {material, "", material}, - {"", material, ""}, - {material, "", material} - } - }) -end - - - -function mcl_decor.register_chair_and_table(name, desc, desc2, material, tiles, groups) - if group == nil then - group = {handy=1, axey=1, attached_node=1, material_wood=1, deco_block=1, flammable=-1} - else - group = {handy=1, axey=1, attached_node=1, material_wood=1, deco_block=1} - end - - -- chair part - minetest.register_node("mcl_decor:"..name.."_chair", { - description = desc, - drawtype = "nodebox", - node_box = { - type = "fixed", - fixed = { - {-0.25, 0, 0.125, 0.25, 0.5, 0.25}, - {-0.25, -0.125, -0.25, 0.25, 0, 0.25}, - {-0.25, -0.5, 0.125, -0.125, -0.125, 0.25}, - {0.125, -0.5, -0.25, 0.25, -0.125, -0.125}, - {0.125, -0.5, 0.125, 0.25, -0.125, 0.25}, - {-0.25, -0.5, -0.25, -0.125, -0.125, -0.125}, - } - }, - tiles = {tiles}, - is_ground_content = false, - paramtype = "light", - paramtype2 = "facedir", - stack_max = 64, - sunlight_propagates = true, - selection_box = { - type = "fixed", - fixed = { -0.25, -0.5, -0.25, 0.25, 0.5, 0.25 }, - }, - groups = group, - _mcl_hardness = 1, - _mcl_blast_resistance = 1, - sounds = mcl_sounds.node_sound_wood_defaults(), - on_rightclick = mcl_decor.sit - }) - minetest.register_craft({ - output = "mcl_decor:"..name.."_chair", - recipe = { - {"", "", "mcl_core:stick"}, - {material, material, material}, - {"mcl_core:stick", "", "mcl_core:stick"} - } - }) - minetest.register_craft({ - output = "mcl_decor:"..name.."_chair", - recipe = { - {"mcl_core:stick", "", ""}, - {material, material, material}, - {"mcl_core:stick", "", "mcl_core:stick"} - } - }) - minetest.register_craft({ - type = "fuel", - recipe = "mcl_decor:"..name.."_chair", - burntime = 8, - }) - - -- table part - minetest.register_node("mcl_decor:"..name.."_table", { - description = desc2, - drawtype = "nodebox", - node_box = { - type = "fixed", - fixed = { - { -0.5, 0.375, -0.5, 0.5, 0.5, 0.5 }, - { -0.4375, -0.5, -0.4375, -0.3125, 0.375, -0.3125 }, - { 0.3125, -0.5, -0.4375, 0.4375, 0.375, -0.3125 }, - { 0.3125, -0.5, 0.3125, 0.4375, 0.375, 0.4375 }, - { -0.4375, -0.5, 0.3125, -0.3125, 0.375, 0.4375 }, - } - }, - selection_box = { - type = "fixed", - fixed = { -0.5, -0.5, -0.5, 0.5, 0.5, 0.5 }, - }, - tiles = {tiles}, - is_ground_content = false, - paramtype = "light", - stack_max = 64, - sunlight_propagates = true, - groups = group, - _mcl_hardness = 2, - _mcl_blast_resistance = 3, - sounds = mcl_sounds.node_sound_wood_defaults(), - }) - minetest.register_craft({ - output = "mcl_decor:"..name.."_table".." 2", - recipe = { - {material, material, material}, - {"mcl_core:stick", "", "mcl_core:stick"}, - {"mcl_core:stick", "", "mcl_core:stick"} - } - }) - minetest.register_craft({ - type = "fuel", - recipe = "mcl_decor:"..name.."_table", - burntime = 10, - }) -end - -function mcl_decor.register_slab_table(name, desc, material, tiles, group) - if group == nil then - group = {handy=1, axey=1, attached_node=1, material_wood=1, deco_block=1, flammable=-1} - else - group = {handy=1, axey=1, attached_node=1, material_wood=1, deco_block=1} - end - minetest.register_node("mcl_decor:"..name.."_stable", { - description = desc, - drawtype = "nodebox", - node_box = { - type = "fixed", - fixed = { - {-0.125, -0.5, -0.125, 0.125, 0, 0.125}, - {-0.5, 0, -0.5, 0.5, 0.5, 0.5}, - } - }, - tiles = {tiles}, - is_ground_content = false, - paramtype = "light", - stack_max = 64, - sunlight_propagates = true, - groups = group, - _mcl_hardness = 2, - _mcl_blast_resistance = 3, - sounds = mcl_sounds.node_sound_wood_defaults(), - }) - minetest.register_craft({ - output = "mcl_decor:"..name.."_stable".." 3", - recipe = { - {material, material, material}, - {"", "mcl_core:stick", ""} - } - }) - minetest.register_craft({ - type = "fuel", - recipe = "mcl_decor:"..name.."_stable", - burntime = 10, - }) -end - -function mcl_decor.register_armchair(color, desc, tiles, dye, colorgroup) - minetest.register_node("mcl_decor:"..color.."_armchair", { - description = desc, - drawtype = "nodebox", - node_box = { - type = "fixed", - fixed = { - {-0.4375, -0.5, -0.5, 0.4375, -0.0625, 0.1875}, - {-0.5, -0.4375, -0.5, -0.3125, 0.125, 0.1875}, - {0.3125, -0.4375, -0.5, 0.5, 0.125, 0.1875}, - {-0.5, -0.5, 0.1875, 0.5, 0.5, 0.5}, - {-0.5, -0.5, -0.4375, 0.5, -0.4375, 0.5}, - } - }, - tiles = {tiles}, - is_ground_content = false, - paramtype = "light", - paramtype2 = "facedir", - stack_max = 64, - selection_box = { - type = "fixed", - fixed = { -0.5, -0.5, -0.5, 0.5, 0.5, 0.5 }, - }, - groups = {handy=1, shearsy_wool=1, attached_node=1, deco_block=1, armchair=1, flammable=1, fire_encouragement=30, fire_flammability=60, [colorgroup]=1}, - _mcl_hardness = 1, - _mcl_blast_resistance = 1, - sounds = mcl_sounds.node_sound_wood_defaults(), - on_rightclick = mcl_decor.sit - }) - minetest.register_craft({ - output = "mcl_decor:"..color.."_armchair", - recipe = { - {"", "", "mcl_wool:"..color}, - {"mcl_wool:"..color, "mcl_wool:"..color, "mcl_wool:"..color}, - {"mcl_core:stick", "mcl_core:stick", "mcl_core:stick"} - } - }) - minetest.register_craft({ - output = "mcl_decor:"..color.."_armchair", - recipe = { - {"mcl_wool:"..color, "", ""}, - {"mcl_wool:"..color, "mcl_wool:"..color, "mcl_wool:"..color}, - {"mcl_core:stick", "mcl_core:stick", "mcl_core:stick"} - } - }) - minetest.register_craft({ - type = "shapeless", - output = "mcl_decor:"..color.."_armchair", - recipe = {"group:armchair", "mcl_dye:"..dye}, - }) - minetest.register_craft({ - type = "fuel", - recipe = "mcl_decor:"..color.."_armchair", - burntime = 10, - }) -end - -function mcl_decor.register_dyed_planks(color, desc, hexcolor, dye, colorgroup) - minetest.register_node("mcl_decor:"..color.."_planks", { - description = desc, - tiles = {"mcl_decor_dyed_planks.png^[colorize:" .. hexcolor .. ":125"}, - 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, [colorgroup]=1}, - sounds = mcl_sounds.node_sound_wood_defaults(), - _mcl_blast_resistance = 3, - _mcl_hardness = 2, - }) - minetest.register_craft({ - type = "shapeless", - output = "mcl_decor:"..color.."_planks", - recipe = {"group:wood", "mcl_dye:"..dye} - }) - -- maybe descriptions of slabs/stairs after that workaround will be VERY CRAPPY (especially with translations via locales), but at least it works - mcl_stairs.register_stair_and_slab_simple( - color.."_planks", "mcl_decor:"..color.."_planks", desc..S(" Stair"), desc..S(" Slab"), S("Double")..desc..S(" Slab"), "woodlike" - ) -end - -function mcl_decor.register_curtains(color, desc, wool, wooltile, dye, colorgroup) - minetest.register_node("mcl_decor:curtain_"..color, { - description = desc, - tiles = { - wooltile.."^mcl_decor_curtain_alpha.png^[makealpha:255,126,126^mcl_decor_curtain_overlay.png", -- front - wooltile.."^mcl_decor_curtain_alpha.png^[makealpha:255,126,126^mcl_decor_curtain_overlay.png^[transformFY", -- back - wooltile.."^mcl_decor_curtain_overlay.png^[transformR270", -- side - wooltile.."^mcl_decor_curtain_overlay.png^[transformR90", -- side - wooltile.."^mcl_decor_curtain_overlay.png^[transformFY", -- top - wooltile.."^mcl_decor_curtain_alpha.png^[makealpha:255,126,126^mcl_decor_curtain_overlay.png", -- bottom - }, - stack_max = 64, - inventory_image = wooltile.."^mcl_decor_curtain_alpha.png^[makealpha:255,126,126^mcl_decor_curtain_overlay.png", - wield_image = wooltile.."^mcl_decor_curtain_alpha.png^[makealpha:255,126,126^mcl_decor_curtain_overlay.png", - walkable = false, - sunlight_propagates = true, - drawtype = "nodebox", - paramtype = "light", - paramtype2 = "wallmounted", - groups = {handy=1, flammable=-1, curtain=1, attached_node=1, dig_by_piston=1, deco_block=1, material_wool=1, [colorgroup]=1}, - sounds = mcl_sounds.node_sound_wood_defaults(), - node_box = { - type = "wallmounted", - }, - _mcl_blast_resistance = 0.2, - _mcl_hardness = 0.2, - on_rightclick = function(pos, node, _, itemstack) - minetest.set_node(pos, {name="mcl_decor:curtain_"..color.."_closed", param2=node.param2}) - return itemstack - end - }) - minetest.register_node("mcl_decor:curtain_"..color.."_closed", { - description = desc..S(" (closed)"), - tiles = { - wooltile.."^mcl_decor_curtain_overlay.png", -- front - wooltile.."^mcl_decor_curtain_overlay.png^[transformFY", -- back - wooltile.."^mcl_decor_curtain_overlay.png^[transformR270", -- side - wooltile.."^mcl_decor_curtain_overlay.png^[transformR90", -- side - wooltile.."^mcl_decor_curtain_overlay.png^[transformFY", -- top - wooltile.."^mcl_decor_curtain_overlay.png", -- bottom - }, - walkable = false, - sunlight_propagates = true, - drawtype = "nodebox", - paramtype = "light", - paramtype2 = "wallmounted", - groups = {handy=1, flammable=-1, attached_node=1, dig_by_piston=1, not_in_creative_inventory=1}, - sounds = mcl_sounds.node_sound_wood_defaults(), - node_box = { - type = "wallmounted", - }, - drop = "mcl_decor:curtain_"..color, - _mcl_blast_resistance = 0.2, - _mcl_hardness = 0.2, - on_rightclick = function(pos, node, clicker, itemstack) - minetest.set_node(pos, {name="mcl_decor:curtain_"..color, param2=node.param2}) - return itemstack - end - }) - minetest.register_craft({ - output = "mcl_decor:curtain_"..color, - recipe = { - {"mcl_core:iron_ingot", "mcl_core:stick", "mcl_core:iron_ingot"}, - {wool, wool, wool}, - {wool, "", wool} - } - }) - minetest.register_craft({ - type = "shapeless", - output = "mcl_decor:curtain_"..color, - recipe = {"group:curtain", "mcl_dye:"..dye}, - }) -end diff --git a/colored.lua b/colored.lua new file mode 100644 index 0000000..5a3eb53 --- /dev/null +++ b/colored.lua @@ -0,0 +1,214 @@ +-- mcl_decor/colored.lua + +local S = minetest.get_translator(minetest.get_current_modname()) + +--=-- API --=-- +function mcl_decor.register_armchair(color, desc, tiles, dye, colorgroup) + minetest.register_node("mcl_decor:"..color.."_armchair", { + description = desc, + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + {-0.4375, -0.5, -0.5, 0.4375, -0.0625, 0.1875}, + {-0.5, -0.4375, -0.5, -0.3125, 0.125, 0.1875}, + {0.3125, -0.4375, -0.5, 0.5, 0.125, 0.1875}, + {-0.5, -0.5, 0.1875, 0.5, 0.5, 0.5}, + {-0.5, -0.5, -0.4375, 0.5, -0.4375, 0.5}, + } + }, + tiles = {tiles}, + is_ground_content = false, + paramtype = "light", + paramtype2 = "facedir", + stack_max = 64, + selection_box = { + type = "fixed", + fixed = { -0.5, -0.5, -0.5, 0.5, 0.5, 0.5 }, + }, + groups = {handy=1, shearsy_wool=1, attached_node=1, deco_block=1, armchair=1, flammable=1, fire_encouragement=30, fire_flammability=60, [colorgroup]=1}, + _mcl_hardness = 1, + _mcl_blast_resistance = 1, + sounds = mcl_sounds.node_sound_wood_defaults(), + on_rightclick = mcl_decor.sit + }) + minetest.register_craft({ + output = "mcl_decor:"..color.."_armchair", + recipe = { + {"", "", "mcl_wool:"..color}, + {"mcl_wool:"..color, "mcl_wool:"..color, "mcl_wool:"..color}, + {"mcl_core:stick", "mcl_core:stick", "mcl_core:stick"} + } + }) + minetest.register_craft({ + output = "mcl_decor:"..color.."_armchair", + recipe = { + {"mcl_wool:"..color, "", ""}, + {"mcl_wool:"..color, "mcl_wool:"..color, "mcl_wool:"..color}, + {"mcl_core:stick", "mcl_core:stick", "mcl_core:stick"} + } + }) + minetest.register_craft({ + type = "shapeless", + output = "mcl_decor:"..color.."_armchair", + recipe = {"group:armchair", "mcl_dye:"..dye}, + }) + minetest.register_craft({ + type = "fuel", + recipe = "mcl_decor:"..color.."_armchair", + burntime = 10, + }) +end + +function mcl_decor.register_dyed_planks(color, desc, hexcolor, dye, colorgroup) + minetest.register_node("mcl_decor:"..color.."_planks", { + description = desc, + tiles = {"mcl_decor_dyed_planks.png^[colorize:" .. hexcolor .. ":125"}, + 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, [colorgroup]=1}, + sounds = mcl_sounds.node_sound_wood_defaults(), + _mcl_blast_resistance = 3, + _mcl_hardness = 2, + }) + minetest.register_craft({ + type = "shapeless", + output = "mcl_decor:"..color.."_planks", + recipe = {"group:wood", "mcl_dye:"..dye} + }) + -- maybe descriptions of slabs/stairs after that workaround will be VERY CRAPPY (especially with translations via locales), but at least it works + mcl_stairs.register_stair_and_slab_simple( + color.."_planks", "mcl_decor:"..color.."_planks", desc..S(" Stair"), desc..S(" Slab"), S("Double")..desc..S(" Slab"), "woodlike" + ) +end + +function mcl_decor.register_curtains(color, desc, wool, wooltile, dye, colorgroup) + minetest.register_node("mcl_decor:curtain_"..color, { + description = desc, + tiles = { + wooltile.."^mcl_decor_curtain_alpha.png^[makealpha:255,126,126^mcl_decor_curtain_overlay.png", -- front + wooltile.."^mcl_decor_curtain_alpha.png^[makealpha:255,126,126^mcl_decor_curtain_overlay.png^[transformFY", -- back + wooltile.."^mcl_decor_curtain_overlay.png^[transformR270", -- side + wooltile.."^mcl_decor_curtain_overlay.png^[transformR90", -- side + wooltile.."^mcl_decor_curtain_overlay.png^[transformFY", -- top + wooltile.."^mcl_decor_curtain_alpha.png^[makealpha:255,126,126^mcl_decor_curtain_overlay.png", -- bottom + }, + stack_max = 64, + inventory_image = wooltile.."^mcl_decor_curtain_alpha.png^[makealpha:255,126,126^mcl_decor_curtain_overlay.png", + wield_image = wooltile.."^mcl_decor_curtain_alpha.png^[makealpha:255,126,126^mcl_decor_curtain_overlay.png", + walkable = false, + sunlight_propagates = true, + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "wallmounted", + groups = {handy=1, flammable=-1, curtain=1, attached_node=1, dig_by_piston=1, deco_block=1, material_wool=1, [colorgroup]=1}, + sounds = mcl_sounds.node_sound_wood_defaults(), + node_box = { + type = "wallmounted", + }, + _mcl_blast_resistance = 0.2, + _mcl_hardness = 0.2, + on_rightclick = function(pos, node, _, itemstack) + minetest.set_node(pos, {name="mcl_decor:curtain_"..color.."_closed", param2=node.param2}) + return itemstack + end + }) + minetest.register_node("mcl_decor:curtain_"..color.."_closed", { + description = desc..S(" (closed)"), + tiles = { + wooltile.."^mcl_decor_curtain_overlay.png", -- front + wooltile.."^mcl_decor_curtain_overlay.png^[transformFY", -- back + wooltile.."^mcl_decor_curtain_overlay.png^[transformR270", -- side + wooltile.."^mcl_decor_curtain_overlay.png^[transformR90", -- side + wooltile.."^mcl_decor_curtain_overlay.png^[transformFY", -- top + wooltile.."^mcl_decor_curtain_overlay.png", -- bottom + }, + walkable = false, + sunlight_propagates = true, + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "wallmounted", + groups = {handy=1, flammable=-1, attached_node=1, dig_by_piston=1, not_in_creative_inventory=1}, + sounds = mcl_sounds.node_sound_wood_defaults(), + node_box = { + type = "wallmounted", + }, + drop = "mcl_decor:curtain_"..color, + _mcl_blast_resistance = 0.2, + _mcl_hardness = 0.2, + on_rightclick = function(pos, node, clicker, itemstack) + minetest.set_node(pos, {name="mcl_decor:curtain_"..color, param2=node.param2}) + return itemstack + end + }) + minetest.register_craft({ + output = "mcl_decor:curtain_"..color, + recipe = { + {"mcl_core:iron_ingot", "mcl_core:stick", "mcl_core:iron_ingot"}, + {wool, wool, wool}, + {wool, "", wool} + } + }) + minetest.register_craft({ + type = "shapeless", + output = "mcl_decor:curtain_"..color, + recipe = {"group:curtain", "mcl_dye:"..dye}, + }) +end + + + +--=-- REGISTER --=-- +--- Armchairs --- +mcl_decor.register_armchair("white", S("White Armchair"), "wool_white.png", "white", "unicolor_white") +mcl_decor.register_armchair("grey", S("Grey Armchair"), "wool_dark_grey.png", "dark_grey", "unicolor_darkgrey") +mcl_decor.register_armchair("silver", S("Light Grey Armchair"), "wool_grey.png", "grey", "unicolor_grey") +mcl_decor.register_armchair("black", S("Black Armchair"), "wool_black.png", "black", "unicolor_black") +mcl_decor.register_armchair("red", S("Red Armchair"), "wool_red.png", "red", "unicolor_red") +mcl_decor.register_armchair("yellow", S("Yellow Armchair"), "wool_yellow.png", "yellow", "unicolor_yellow") +mcl_decor.register_armchair("green", S("Green Armchair"), "wool_dark_green.png", "dark_green", "unicolor_dark_green") +mcl_decor.register_armchair("cyan", S("Cyan Armchair"), "wool_cyan.png", "cyan", "unicolor_cyan") +mcl_decor.register_armchair("blue", S("Blue Armchair"), "wool_blue.png", "blue", "unicolor_blue") +mcl_decor.register_armchair("magenta", S("Magenta Armchair"), "wool_magenta.png", "magenta", "unicolor_red_violet") +mcl_decor.register_armchair("orange", S("Orange Armchair"), "wool_orange.png", "orange", "unicolor_orange") +mcl_decor.register_armchair("purple", S("Purple Armchair"), "wool_violet.png", "violet", "unicolor_violet") +mcl_decor.register_armchair("brown", S("Brown Armchair"), "wool_brown.png", "brown", "unicolor_dark_orange") +mcl_decor.register_armchair("pink", S("Pink Armchair"), "wool_pink.png", "pink", "unicolor_light_red") +mcl_decor.register_armchair("lime", S("Lime Armchair"), "mcl_wool_lime.png", "green", "unicolor_green") +mcl_decor.register_armchair("light_blue", S("Light Blue Armchair"), "mcl_wool_light_blue.png", "lightblue", "unicolor_light_blue") + +--- Curtains --- +mcl_decor.register_curtains("white", S("White Curtains"), "mcl_wool:white", "wool_white.png", "white", "unicolor_white") +mcl_decor.register_curtains("grey", S("Grey Curtains"), "mcl_wool:grey", "wool_dark_grey.png", "dark_grey", "unicolor_darkgrey") +mcl_decor.register_curtains("silver", S("Light Grey Curtains"), "mcl_wool:silver", "wool_grey.png", "grey", "unicolor_grey") +mcl_decor.register_curtains("black", S("Black Curtains"), "mcl_wool:black", "wool_black.png", "black", "unicolor_black") +mcl_decor.register_curtains("red", S("Red Curtains"), "mcl_wool:red", "wool_red.png", "red", "unicolor_red") +mcl_decor.register_curtains("yellow", S("Yellow Curtains"), "mcl_wool:yellow", "wool_yellow.png", "yellow", "unicolor_yellow") +mcl_decor.register_curtains("green", S("Green Curtains"), "mcl_wool:green", "wool_dark_green.png", "dark_green", "unicolor_dark_green") +mcl_decor.register_curtains("cyan", S("Cyan Curtains"), "mcl_wool:cyan", "wool_cyan.png", "cyan", "unicolor_cyan") +mcl_decor.register_curtains("blue", S("Blue Curtains"), "mcl_wool:blue", "wool_blue.png", "blue", "unicolor_blue") +mcl_decor.register_curtains("magenta", S("Magenta Curtains"), "mcl_wool:magenta", "wool_magenta.png", "magenta", "unicolor_red_violet") +mcl_decor.register_curtains("orange", S("Orange Curtains"), "mcl_wool:orange", "wool_orange.png", "orange", "unicolor_orange") +mcl_decor.register_curtains("purple", S("Purple Curtains"), "mcl_wool:purple", "wool_violet.png", "violet", "unicolor_violet") +mcl_decor.register_curtains("brown", S("Brown Curtains"), "mcl_wool:brown", "wool_brown.png", "brown", "unicolor_dark_orange") +mcl_decor.register_curtains("pink", S("Pink Curtains"), "mcl_wool:pink", "wool_pink.png", "pink", "unicolor_light_red") +mcl_decor.register_curtains("lime", S("Lime Curtains"), "mcl_wool:lime", "mcl_wool_lime.png", "green", "unicolor_green") +mcl_decor.register_curtains("light_blue", S("Light Blue Curtains"), "mcl_wool:light_blue", "mcl_wool_light_blue.png", "lightblue", "unicolor_light_blue") + +--- Dyed Planks --- +mcl_decor.register_dyed_planks("white", S("White Planks"), "#EDEDED", "white", "unicolor_white") +mcl_decor.register_dyed_planks("grey", S("Grey Planks"), "#5F5F5F", "dark_grey", "unicolor_darkgrey") +mcl_decor.register_dyed_planks("silver", S("Light Grey Planks"), "#8C8C8C", "grey", "unicolor_grey") +mcl_decor.register_dyed_planks("black", S("Black Planks"), "#030303", "black", "unicolor_black") +mcl_decor.register_dyed_planks("red", S("Red Planks"), "#BD0000", "red", "unicolor_red") +mcl_decor.register_dyed_planks("yellow", S("Yellow Planks"), "#EBD800", "yellow", "unicolor_yellow") +mcl_decor.register_dyed_planks("green", S("Green Planks"), "#086400", "dark_green", "unicolor_dark_green") +mcl_decor.register_dyed_planks("cyan", S("Cyan Planks"), "#00C4B4", "cyan", "unicolor_cyan") +mcl_decor.register_dyed_planks("blue", S("Blue Planks"), "#0B1E80", "blue", "unicolor_blue") +mcl_decor.register_dyed_planks("magenta", S("Magenta Planks"), "#954395", "magenta", "unicolor_red_violet") +mcl_decor.register_dyed_planks("orange", S("Orange Planks"), "#E68200", "orange", "unicolor_orange") +mcl_decor.register_dyed_planks("purple", S("Purple Planks"), "#461A6D", "violet", "unicolor_violet") +mcl_decor.register_dyed_planks("brown", S("Brown Planks"), "#432209", "brown", "unicolor_dark_orange") +mcl_decor.register_dyed_planks("pink", S("Pink Planks"), "#ED9BB4", "pink", "unicolor_light_red") +mcl_decor.register_dyed_planks("lime", S("Lime Planks"), "#B3DF86", "green", "unicolor_green") +mcl_decor.register_dyed_planks("light_blue", S("Light Blue Planks"), "#72A4D4", "lightblue", "unicolor_light_blue") diff --git a/init.lua b/init.lua index 4f331db..21ee432 100644 --- a/init.lua +++ b/init.lua @@ -5,4 +5,7 @@ local modpath = minetest.get_modpath(minetest.get_current_modname()) -- load files dofile(modpath.."/api.lua") -dofile(modpath.."/register.lua") +dofile(modpath.."/wooden.lua") +dofile(modpath.."/colored.lua") +dofile(modpath.."/paths.lua") +dofile(modpath.."/misc.lua") diff --git a/misc.lua b/misc.lua new file mode 100644 index 0000000..3d80c40 --- /dev/null +++ b/misc.lua @@ -0,0 +1,67 @@ +-- mcl_decor/misc.lua + +local S = minetest.get_translator(minetest.get_current_modname()) + +--- Coalquartz Tile --- +minetest.register_node("mcl_decor:coalquartz_tile", { + description = S("Coalquartz Tile"), + tiles = {"mcl_decor_coalquartz_tile.png"}, + is_ground_content = false, + groups = {pickaxey=1, flammable=1, quartz_block=1, building_block=1, material_stone=1, fire_encouragement=5, fire_flammability=5}, + sounds = mcl_sounds.node_sound_stone_defaults(), + _mcl_blast_resistance = 4, + _mcl_hardness = 3, +}) +minetest.register_craft({ + output = "mcl_decor:coalquartz_tile", + recipe = { + {"mcl_core:coal_lump", "mcl_nether:quartz"}, + {"mcl_nether:quartz", "mcl_core:coal_lump"} + } +}) +minetest.register_craft({ + output = "mcl_decor:coalquartz_tile", + recipe = { + {"mcl_nether:quartz", "mcl_core:coal_lump"}, + {"mcl_core:coal_lump", "mcl_nether:quartz"} + } +}) +mcl_stairs.register_stair_and_slab_simple("coalquartz_tile", "mcl_decor:coalquartz_tile", S("Coalquartz Stair"), S("Coalquartz Slab"), S("Double Coalquartz Slab")) + + + +--- Table Lamp --- +minetest.register_node("mcl_decor:table_lamp", { + description = S("Table Lamp"), + tiles = {"mcl_decor_table_lamp.png", "mcl_decor_table_lamp_bottom.png", "mcl_decor_table_lamp_side.png", + "mcl_decor_table_lamp_side.png", "mcl_decor_table_lamp_side.png", "mcl_decor_table_lamp_side.png"}, + drawtype = "nodebox", + paramtype = "light", + stack_max = 64, + node_box = { + type = "fixed", + fixed = { + {-0.25, -0.5, -0.25, 0.25, -0.375, 0.25}, + {-0.0625, -0.375, -0.0625, 0.0625, 0, 0.0625}, + {-0.3125, 0, -0.3125, 0.3125, 0.5, 0.3125}, + } + }, + selection_box = { + type = "fixed", + fixed = {-0.3125, -0.5, -0.3125, 0.3125, 0.5, 0.3125}, + }, + is_ground_content = false, + light_source = minetest.LIGHT_MAX, + groups = {handy=1, axey=1, attached_node=1, material_wood=1, deco_block=1, flammable=-1}, + sounds = mcl_sounds.node_sound_wood_defaults(), + _mcl_blast_resistance = 0.9, + _mcl_hardness = 0.9, +}) +minetest.register_craft({ + output = "mcl_decor:table_lamp 3", + recipe = { + {"group:wool", "group:wool", "group:wool"}, + {"group:wool", "mcl_torches:torch", "group:wool"}, + {"mcl_core:cobble", "mcl_core:cobble", "mcl_core:cobble"} + } +}) diff --git a/paths.lua b/paths.lua new file mode 100644 index 0000000..fe74307 --- /dev/null +++ b/paths.lua @@ -0,0 +1,116 @@ +-- mcl_decor/paths.lua + +local S = minetest.get_translator(minetest.get_current_modname()) + +--=-- API --=-- +function mcl_decor.register_path(name, desc, material, tiles, sgroup, sounds) + minetest.register_node(name, { + description = desc, + tiles = {tiles}, + wield_image = "mcl_decor_path_alpha.png^"..tiles.."^" .. + "mcl_decor_path_alpha.png^[makealpha:255,126,126", + inventory_image = "mcl_decor_path_alpha.png^"..tiles.."^" .. + "mcl_decor_path_alpha.png^[makealpha:255,126,126", + groups = {handy=1, [sgroup]=1, attached_node=1, dig_by_piston=1, deco_block=1}, + drawtype = "nodebox", + paramtype = "light", + sunlight_propagates = true, + buildable_to = true, + walkable = true, + node_box = { + type = "fixed", + fixed = { + {-0.4375, -0.5, -0.4375, -0.125, -0.4375, -0.125}, + {-0.125, -0.5, -0.0625, 0.0625, -0.4375, 0.125}, + {-0.3125, -0.5, 0.1875, -0.0625, -0.4375, 0.4375}, + {0.0625, -0.5, -0.375, 0.25, -0.4375, -0.1875}, + {0.125, -0.5, 0.125, 0.375, -0.4375, 0.375}, + {0.25, -0.5, -0.125, 0.375, -0.4375, 0}, + {-0.4375, -0.5, 0, -0.3125, -0.4375, 0.125}, + } + }, + selection_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, -0.4375, 0.5}, + } + }, + collision_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, -0.4375, 0.5}, + } + }, + _mcl_blast_resistance = 0.3, + _mcl_hardness = 0.3, + sounds = sounds + }) + minetest.register_craft({ + output = name.." 16", + recipe = { + {material, "", material}, + {"", material, ""}, + {material, "", material} + } + }) +end + + + +--=-- REGISTER --=-- +mcl_decor.register_path( + "mcl_decor:gravel_path", + S("Gravel Path"), + "mcl_core:gravel", + "default_gravel.png", + "shovely", + mcl_sounds.node_sound_dirt_defaults({footstep = {name="default_gravel_footstep", gain=0.45}}) +) +mcl_decor.register_path( + "mcl_decor:cobble_path", + S("Cobblestone Path"), + "mcl_core:cobble", + "default_cobble.png", + "pickaxey", + mcl_sounds.node_sound_stone_defaults() +) +mcl_decor.register_path( + "mcl_decor:stone_path", + S("Stone Path"), + "mcl_core:stone", + "default_stone.png", + "pickaxey", + mcl_sounds.node_sound_stone_defaults() +) +mcl_decor.register_path( + "mcl_decor:granite_path", + S("Granite Path"), + "mcl_core:granite", + "mcl_core_granite.png", + "pickaxey", + mcl_sounds.node_sound_stone_defaults() +) +mcl_decor.register_path( + "mcl_decor:andesite_path", + S("Andesite Path"), + "mcl_core:andesite", + "mcl_core_andesite.png", + "pickaxey", + mcl_sounds.node_sound_stone_defaults() +) +mcl_decor.register_path( + "mcl_decor:diorite_path", + S("Diorite Path"), + "mcl_core:diorite", + "mcl_core_diorite.png", + "pickaxey", + mcl_sounds.node_sound_stone_defaults() +) +mcl_decor.register_path( + "mcl_decor:netherrack_path", + S("Netherrack Path"), + "mcl_nether:netherrack", + "mcl_nether_netherrack.png", + "pickaxey", + mcl_sounds.node_sound_stone_defaults() +) diff --git a/wooden.lua b/wooden.lua new file mode 100644 index 0000000..8e4482f --- /dev/null +++ b/wooden.lua @@ -0,0 +1,172 @@ +-- mcl_decor/wooden.lua + +local S = minetest.get_translator(minetest.get_current_modname()) + +--=-- API --=-- +function mcl_decor.register_chair_and_table(name, desc, desc2, material, tiles, groups) + if group == nil then + group = {handy=1, axey=1, attached_node=1, material_wood=1, deco_block=1, flammable=-1} + else + group = {handy=1, axey=1, attached_node=1, material_wood=1, deco_block=1} + end + + -- chair part + minetest.register_node("mcl_decor:"..name.."_chair", { + description = desc, + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + {-0.25, 0, 0.125, 0.25, 0.5, 0.25}, + {-0.25, -0.125, -0.25, 0.25, 0, 0.25}, + {-0.25, -0.5, 0.125, -0.125, -0.125, 0.25}, + {0.125, -0.5, -0.25, 0.25, -0.125, -0.125}, + {0.125, -0.5, 0.125, 0.25, -0.125, 0.25}, + {-0.25, -0.5, -0.25, -0.125, -0.125, -0.125}, + } + }, + tiles = {tiles}, + is_ground_content = false, + paramtype = "light", + paramtype2 = "facedir", + stack_max = 64, + sunlight_propagates = true, + selection_box = { + type = "fixed", + fixed = { -0.25, -0.5, -0.25, 0.25, 0.5, 0.25 }, + }, + groups = group, + _mcl_hardness = 1, + _mcl_blast_resistance = 1, + sounds = mcl_sounds.node_sound_wood_defaults(), + on_rightclick = mcl_decor.sit + }) + minetest.register_craft({ + output = "mcl_decor:"..name.."_chair", + recipe = { + {"", "", "mcl_core:stick"}, + {material, material, material}, + {"mcl_core:stick", "", "mcl_core:stick"} + } + }) + minetest.register_craft({ + output = "mcl_decor:"..name.."_chair", + recipe = { + {"mcl_core:stick", "", ""}, + {material, material, material}, + {"mcl_core:stick", "", "mcl_core:stick"} + } + }) + minetest.register_craft({ + type = "fuel", + recipe = "mcl_decor:"..name.."_chair", + burntime = 8, + }) + + -- table part + minetest.register_node("mcl_decor:"..name.."_table", { + description = desc2, + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + { -0.5, 0.375, -0.5, 0.5, 0.5, 0.5 }, + { -0.4375, -0.5, -0.4375, -0.3125, 0.375, -0.3125 }, + { 0.3125, -0.5, -0.4375, 0.4375, 0.375, -0.3125 }, + { 0.3125, -0.5, 0.3125, 0.4375, 0.375, 0.4375 }, + { -0.4375, -0.5, 0.3125, -0.3125, 0.375, 0.4375 }, + } + }, + selection_box = { + type = "fixed", + fixed = { -0.5, -0.5, -0.5, 0.5, 0.5, 0.5 }, + }, + tiles = {tiles}, + is_ground_content = false, + paramtype = "light", + stack_max = 64, + sunlight_propagates = true, + groups = group, + _mcl_hardness = 2, + _mcl_blast_resistance = 3, + sounds = mcl_sounds.node_sound_wood_defaults(), + }) + minetest.register_craft({ + output = "mcl_decor:"..name.."_table".." 2", + recipe = { + {material, material, material}, + {"mcl_core:stick", "", "mcl_core:stick"}, + {"mcl_core:stick", "", "mcl_core:stick"} + } + }) + minetest.register_craft({ + type = "fuel", + recipe = "mcl_decor:"..name.."_table", + burntime = 10, + }) +end + +function mcl_decor.register_slab_table(name, desc, material, tiles, group) + if group == nil then + group = {handy=1, axey=1, attached_node=1, material_wood=1, deco_block=1, flammable=-1} + else + group = {handy=1, axey=1, attached_node=1, material_wood=1, deco_block=1} + end + minetest.register_node("mcl_decor:"..name.."_stable", { + description = desc, + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + {-0.125, -0.5, -0.125, 0.125, 0, 0.125}, + {-0.5, 0, -0.5, 0.5, 0.5, 0.5}, + } + }, + tiles = {tiles}, + is_ground_content = false, + paramtype = "light", + stack_max = 64, + sunlight_propagates = true, + groups = group, + _mcl_hardness = 2, + _mcl_blast_resistance = 3, + sounds = mcl_sounds.node_sound_wood_defaults(), + }) + minetest.register_craft({ + output = "mcl_decor:"..name.."_stable".." 3", + recipe = { + {material, material, material}, + {"", "mcl_core:stick", ""} + } + }) + minetest.register_craft({ + type = "fuel", + recipe = "mcl_decor:"..name.."_stable", + burntime = 10, + }) +end + + + +--=-- REGISTER --=-- +mcl_decor.register_chair_and_table("wooden", S("Oak Chair"), S("Oak Table"), "mcl_core:wood", "default_wood.png") +mcl_decor.register_chair_and_table("dark_oak", S("Dark Oak Chair"), S("Dark Oak Table"), "mcl_core:darkwood", "mcl_core_planks_big_oak.png") +mcl_decor.register_chair_and_table("jungle", S("Jungle Chair"), S("Jungle Table"), "mcl_core:junglewood", "default_junglewood.png") +mcl_decor.register_chair_and_table("spruce", S("Spruce Chair"), S("Spruce Table"), "mcl_core:sprucewood", "mcl_core_planks_spruce.png") +mcl_decor.register_chair_and_table("acacia", S("Acacia Chair"), S("Acacia Table"), "mcl_core:acaciawood", "default_acacia_wood.png") +mcl_decor.register_chair_and_table("birch", S("Birch Chair"), S("Birch Table"), "mcl_core:birchwood", "mcl_core_planks_birch.png") + +mcl_decor.register_slab_table("wooden", S("Oak Slab Table"), "mcl_core:wood", "default_wood.png") +mcl_decor.register_slab_table("dark_oak", S("Dark Oak Slab Table"), "mcl_core:darkwood", "mcl_core_planks_big_oak.png") +mcl_decor.register_slab_table("jungle", S("Jungle Slab Table"), "mcl_core:junglewood", "default_junglewood.png") +mcl_decor.register_slab_table("spruce", S("Spruce Slab Table"), "mcl_core:sprucewood", "mcl_core_planks_spruce.png") +mcl_decor.register_slab_table("acacia", S("Acacia Slab Table"), "mcl_core:acaciawood", "default_acacia_wood.png") +mcl_decor.register_slab_table("birch", S("Birch Slab Table"), "mcl_core:birchwood", "mcl_core_planks_birch.png") + +-- support for MineClone 5 +if minetest.get_modpath("mcl_mushroom") then + mcl_decor.register_chair_and_table("crimson", S("Crimson Chair"), S("Crimson Table"), "mcl_mushroom:crimson_hyphae_wood", "crimson_hyphae_wood.png", "1") + mcl_decor.register_chair_and_table("warped", S("Warped Chair"), S("Warped Table"), "mcl_mushroom:warped_hyphae_wood", "warped_hyphae_wood.png", "1") + mcl_decor.register_slab_table("crimson", S("Crimson Slab Table"), "mcl_mushroom:crimson_hyphae_wood", "crimson_hyphae_wood.png", "1") + mcl_decor.register_slab_table("warped", S("Warped Slab Table"), "mcl_mushroom:warped_hyphae_wood", "warped_hyphae_wood.png", "1") +end