diff --git a/api.lua b/api.lua new file mode 100644 index 0000000..8859a84 --- /dev/null +++ b/api.lua @@ -0,0 +1,69 @@ +-- mcl_decor/api.lua + +function mcl_decor:register_chair(name, def) + minetest.register_node(name, { + description = def.description, + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + {-0.25, 0, 0.125, 0.25, 0.5, 0.25}, -- back + {-0.25, -0.125, -0.25, 0.25, 0, 0.25}, -- seat + {-0.25, -0.5, 0.125, -0.125, -0.125, 0.25}, -- 1st leg + {0.125, -0.5, -0.25, 0.25, -0.125, -0.125}, -- 2nd leg + {0.125, -0.5, 0.125, 0.25, -0.125, 0.25}, -- 3rd leg + {-0.25, -0.5, -0.25, -0.125, -0.125, -0.125}, -- 4th leg + } + }, + tiles = def.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 }, + }, + collision_box = { + type = "fixed", + fixed = { -0.25, -0.5, -0.25, 0.25, 0.5, 0.25 }, + }, + groups = def.groups, + _mcl_hardness = def._mcl_hardness, + _mcl_blast_resistance = def._mcl_blast_resistance, + sounds = def.sounds, + -- TODO: make player sit on the chair by rightclick (maybe via homedecor funcs?) + }) +end + +function mcl_decor:register_table(name, def) + minetest.register_node(name, { + description = def.description, + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + { -0.5, 0.375, -0.5, 0.5, 0.5, 0.5 }, -- top + { -0.4375, -0.5, -0.4375, -0.3125, 0.375, -0.3125 }, -- 1st leg + { 0.3125, -0.5, -0.4375, 0.4375, 0.375, -0.3125 }, -- 2nd leg + { 0.3125, -0.5, 0.3125, 0.4375, 0.375, 0.4375 }, -- 3rd leg + { -0.4375, -0.5, 0.3125, -0.3125, 0.375, 0.4375 }, -- 4th leg + } + }, + selection_box = { + type = "fixed", + fixed = { -0.5, -0.5, -0.5, 0.5, 0.5, 0.5 }, -- default 1x1 selection box (to override that weird selection of just the nodebox itself) + }, + tiles = def.tiles, + is_ground_content = false, + paramtype = "light", + stack_max = 64, + sunlight_propagates = true, + groups = def.groups, + _mcl_hardness = def._mcl_hardness, + _mcl_blast_resistance = def._mcl_blast_resistance, + sounds = def.sounds, + -- TODO: make tables connect with each other??? + }) +end diff --git a/init.lua b/init.lua new file mode 100644 index 0000000..85fa90b --- /dev/null +++ b/init.lua @@ -0,0 +1,7 @@ +-- mcl_decor/init.lua + +mcl_decor = {} + +local modpath = minetest.get_modpath(minetest.get_current_modname()) +dofile(modpath.."/api.lua") +dofile(modpath.."/register.lua") diff --git a/locale/mcl_decor.ru.tr b/locale/mcl_decor.ru.tr new file mode 100644 index 0000000..b668058 --- /dev/null +++ b/locale/mcl_decor.ru.tr @@ -0,0 +1,17 @@ +# textdomain: mcl_decor +Coalquartz tile=Уголекварцевая плитка +Rainbow block=Радужный блок +Oak Chair=Дубовый стул +Acacia Chair=Стул из акации +Birch Chair=Берёзовый стул +Dark Oak Chair=Стул из тёмного дуба +Jungle Chair=Стул из тропического дерева +Spruce Chair=Еловый стул +Iron Chair=Железный стул +Oak Table=Дубовый стол +Acacia Table=Стол из акации +Birch Table=Берёзовый стол +Dark Oak Table=Стол из тёмного дуба +Jungle Table=Стол из тропического дерева +Spruce Table=Еловый стол +Iron Table=Железый стол diff --git a/locale/template.txt b/locale/template.txt new file mode 100644 index 0000000..149a4da --- /dev/null +++ b/locale/template.txt @@ -0,0 +1,17 @@ +# textdomain: mcl_decor +Coalquartz tile= +Rainbow block= +Oak Chair= +Acacia Chair= +Birch Chair= +Dark Oak Chair= +Jungle Chair= +Spruce Chair= +Iron Chair= +Oak Table= +Acacia Table= +Birch Table= +Dark Oak Table= +Jungle Table= +Spruce Table= +Iron Table= diff --git a/mod.conf b/mod.conf new file mode 100644 index 0000000..243c258 --- /dev/null +++ b/mod.conf @@ -0,0 +1,4 @@ +name = mcl_decor +title = MineClone2 Furniture and decorations +description = Adds more decoration and furniture blocks to MineClone 2 (5) +depends = mcl_core, mcl_sounds, mcl_dye, mcl_nether diff --git a/register.lua b/register.lua new file mode 100644 index 0000000..86bf077 --- /dev/null +++ b/register.lua @@ -0,0 +1,360 @@ +-- mcl_decor/register.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:coalblock", "mcl_nether:quartz_block"}, + {"mcl_nether:quartz_block", "mcl_core:coalblock"} + } +}) + +--- Rainbow block --- +minetest.register_node("mcl_decor:rainbow_block", { + description = S("Rainbow block"), + tiles = {{ + name = "mcl_decor_rainbow_block.png", + animation = {type = "vertical_frames", aspect_w = 1, aspect_h = 1, length = 16} + }}, + is_ground_content = false, + light_source = minetest.LIGHT_MAX, + groups = {handy=1, building_block=1, material_glass=1}, + sounds = mcl_sounds.node_sound_glass_defaults(), + _mcl_blast_resistance = 0.9, + _mcl_hardness = 0.9, +}) +minetest.register_craft({ + output = "mcl_decor:rainbow_block", + recipe = { + {"mcl_dye:red", "mcl_dye:orange", "mcl_dye:yellow"}, + {"mcl_dye:green", "mcl_nether:glowstone", "mcl_dye:lightblue"}, + {"mcl_dye:blue", "mcl_dye:violet", "mcl_dye:pink"} + } +}) + + + +--- Oak Chair --- +mcl_decor:register_chair("mcl_decor:wooden_chair", { + description = S("Oak Chair"), + tiles = {"default_wood.png"}, + groups = {handy=1, axey=1, material_wood=1, deco_block=1, flammable=-1}, + _mcl_hardness = 3, + _mcl_blast_resistance = 3, + sounds = mcl_sounds.node_sound_wood_defaults(), +}) +minetest.register_craft({ + output = "mcl_decor:wooden_chair 2", + recipe = { + {"", "", "mcl_core:stick"}, + {"mcl_core:wood", "mcl_core:wood", "mcl_core:wood"}, + {"mcl_core:stick", "", "mcl_core:stick"} + } +}) +minetest.register_craft({ + type = "fuel", + recipe = "mcl_decor:wooden_chair", + burntime = 8, +}) + +--- Acacia Chair --- +mcl_decor:register_chair("mcl_decor:acacia_chair", { + description = S("Acacia Chair"), + tiles = {"default_acacia_wood.png"}, + groups = {handy=1, axey=1, material_wood=1, deco_block=1, flammable=-1}, + _mcl_hardness = 3, + _mcl_blast_resistance = 3, + sounds = mcl_sounds.node_sound_wood_defaults(), +}) +minetest.register_craft({ + output = "mcl_decor:acacia_chair 2", + recipe = { + {"", "", "mcl_core:stick"}, + {"mcl_core:acaciawood", "mcl_core:acaciawood", "mcl_core:acaciawood"}, + {"mcl_core:stick", "", "mcl_core:stick"} + } +}) +minetest.register_craft({ + type = "fuel", + recipe = "mcl_decor:acacia_chair", + burntime = 8, +}) + +--- Birch Chair --- +mcl_decor:register_chair("mcl_decor:birch_chair", { + description = S("Birch Chair"), + tiles = {"mcl_core_planks_birch.png"}, + groups = {handy=1, axey=1, material_wood=1, deco_block=1, flammable=-1}, + _mcl_hardness = 3, + _mcl_blast_resistance = 3, + sounds = mcl_sounds.node_sound_wood_defaults(), +}) +minetest.register_craft({ + output = "mcl_decor:birch_chair 2", + recipe = { + {"", "", "mcl_core:stick"}, + {"mcl_core:birchwood", "mcl_core:birchwood", "mcl_core:birchwood"}, + {"mcl_core:stick", "", "mcl_core:stick"} + } +}) +minetest.register_craft({ + type = "fuel", + recipe = "mcl_decor:birch_chair", + burntime = 8, +}) + +--- Dark Oak Chair --- +mcl_decor:register_chair("mcl_decor:dark_oak_chair", { + description = S("Dark Oak Chair"), + tiles = {"mcl_core_planks_big_oak.png"}, + groups = {handy=1, axey=1, material_wood=1, deco_block=1, flammable=-1}, + _mcl_hardness = 3, + _mcl_blast_resistance = 3, + sounds = mcl_sounds.node_sound_wood_defaults(), +}) +minetest.register_craft({ + output = "mcl_decor:dark_oak_chair 2", + recipe = { + {"", "", "mcl_core:stick"}, + {"mcl_core:darkwood", "mcl_core:darkwood", "mcl_core:darkwood"}, + {"mcl_core:stick", "", "mcl_core:stick"} + } +}) +minetest.register_craft({ + type = "fuel", + recipe = "mcl_decor:dark_oak_chair", + burntime = 8, +}) + +--- Jungle Chair --- +mcl_decor:register_chair("mcl_decor:jungle_chair", { + description = S("Jungle Chair"), + tiles = {"default_junglewood.png"}, + groups = {handy=1, axey=1, material_wood=1, deco_block=1, flammable=-1}, + _mcl_hardness = 3, + _mcl_blast_resistance = 3, + sounds = mcl_sounds.node_sound_wood_defaults(), +}) +minetest.register_craft({ + output = "mcl_decor:jungle_chair 2", + recipe = { + {"", "", "mcl_core:stick"}, + {"mcl_core:junglewood", "mcl_core:junglewood", "mcl_core:junglewood"}, + {"mcl_core:stick", "", "mcl_core:stick"} + } +}) +minetest.register_craft({ + type = "fuel", + recipe = "mcl_decor:jungle_chair", + burntime = 8, +}) + +--- Spruce Chair --- +mcl_decor:register_chair("mcl_decor:spruce_chair", { + description = S("Spruce Chair"), + tiles = {"mcl_core_planks_spruce.png"}, + groups = {handy=1, axey=1, material_wood=1, deco_block=1, flammable=-1}, + _mcl_hardness = 3, + _mcl_blast_resistance = 3, + sounds = mcl_sounds.node_sound_wood_defaults(), +}) +minetest.register_craft({ + output = "mcl_decor:spruce_chair 2", + recipe = { + {"", "", "mcl_core:stick"}, + {"mcl_core:sprucewood", "mcl_core:sprucewood", "mcl_core:sprucewood"}, + {"mcl_core:stick", "", "mcl_core:stick"} + } +}) +minetest.register_craft({ + type = "fuel", + recipe = "mcl_decor:spruce_chair", + burntime = 8, +}) + +--- Iron Chair --- +mcl_decor:register_chair("mcl_decor:iron_chair", { + description = S("Iron Chair"), + tiles = {"default_steel_block.png"}, + groups = {pickaxey=2, deco_block=1}, + _mcl_blast_resistance = 6, + _mcl_hardness = 5, + sounds = mcl_sounds.node_sound_metal_defaults(), +}) +minetest.register_craft({ + output = "mcl_decor:iron_chair 2", + recipe = { + {"", "", "mcl_core:stick"}, + {"mcl_core:iron_ingot", "mcl_core:iron_ingot", "mcl_core:iron_ingot"}, + {"mcl_core:stick", "", "mcl_core:stick"} + } +}) + + + +--- Oak Table --- +mcl_decor:register_table("mcl_decor:wooden_table", { + description = S("Oak Table"), + tiles = {"default_wood.png"}, + groups = {handy=1, axey=1, material_wood=1, deco_block=1, flammable=-1}, + _mcl_hardness = 3, + _mcl_blast_resistance = 3, + sounds = mcl_sounds.node_sound_wood_defaults(), +}) +minetest.register_craft({ + output = "mcl_decor:wooden_table", + recipe = { + {"mcl_core:wood", "mcl_core:wood", "mcl_core:wood"}, + {"mcl_core:stick", "", "mcl_core:stick"}, + {"mcl_core:stick", "", "mcl_core:stick"} + } +}) +minetest.register_craft({ + type = "fuel", + recipe = "mcl_decor:wooden_table", + burntime = 10, +}) + +--- Acacia Table --- +mcl_decor:register_table("mcl_decor:acacia_table", { + description = S("Acacia Table"), + tiles = {"default_acacia_wood.png"}, + groups = {handy=1, axey=1, material_wood=1, deco_block=1, flammable=-1}, + _mcl_hardness = 3, + _mcl_blast_resistance = 3, + sounds = mcl_sounds.node_sound_wood_defaults(), +}) +minetest.register_craft({ + output = "mcl_decor:acacia_table", + recipe = { + {"mcl_core:acaciawood", "mcl_core:acaciawood", "mcl_core:acaciawood"}, + {"mcl_core:stick", "", "mcl_core:stick"}, + {"mcl_core:stick", "", "mcl_core:stick"} + } +}) +minetest.register_craft({ + type = "fuel", + recipe = "mcl_decor:acacia_table", + burntime = 10, +}) + +--- Birch Table --- +mcl_decor:register_table("mcl_decor:birch_table", { + description = S("Birch Table"), + tiles = {"mcl_core_planks_birch.png"}, + groups = {handy=1, axey=1, material_wood=1, deco_block=1, flammable=-1}, + _mcl_hardness = 3, + _mcl_blast_resistance = 3, + sounds = mcl_sounds.node_sound_wood_defaults(), +}) +minetest.register_craft({ + output = "mcl_decor:birch_table", + recipe = { + {"mcl_core:birchwood", "mcl_core:birchwood", "mcl_core:birchwood"}, + {"mcl_core:stick", "", "mcl_core:stick"}, + {"mcl_core:stick", "", "mcl_core:stick"} + } +}) +minetest.register_craft({ + type = "fuel", + recipe = "mcl_decor:birch_table", + burntime = 10, +}) + +--- Dark Oak Table --- +mcl_decor:register_table("mcl_decor:dark_oak_table", { + description = S("Dark Oak Table"), + tiles = {"mcl_core_planks_big_oak.png"}, + groups = {handy=1, axey=1, material_wood=1, deco_block=1, flammable=-1}, + _mcl_hardness = 3, + _mcl_blast_resistance = 3, + sounds = mcl_sounds.node_sound_wood_defaults(), +}) +minetest.register_craft({ + output = "mcl_decor:dark_oak_table", + recipe = { + {"mcl_core:darkwood", "mcl_core:darkwood", "mcl_core:darkwood"}, + {"mcl_core:stick", "", "mcl_core:stick"}, + {"mcl_core:stick", "", "mcl_core:stick"} + } +}) +minetest.register_craft({ + type = "fuel", + recipe = "mcl_decor:dark_oak_table", + burntime = 10, +}) + +--- Jungle Table --- +mcl_decor:register_table("mcl_decor:jungle_table", { + description = S("Jungle Table"), + tiles = {"default_junglewood.png"}, + groups = {handy=1, axey=1, material_wood=1, deco_block=1, flammable=-1}, + _mcl_hardness = 3, + _mcl_blast_resistance = 3, + sounds = mcl_sounds.node_sound_wood_defaults(), +}) +minetest.register_craft({ + output = "mcl_decor:jungle_table", + recipe = { + {"mcl_core:junglewood", "mcl_core:junglewood", "mcl_core:junglewood"}, + {"mcl_core:stick", "", "mcl_core:stick"}, + {"mcl_core:stick", "", "mcl_core:stick"} + } +}) +minetest.register_craft({ + type = "fuel", + recipe = "mcl_decor:jungle_table", + burntime = 10, +}) + +--- Spruce Table --- +mcl_decor:register_table("mcl_decor:spruce_table", { + description = S("Spruce Table"), + tiles = {"mcl_core_planks_spruce.png"}, + groups = {handy=1, axey=1, material_wood=1, deco_block=1, flammable=-1}, + _mcl_hardness = 3, + _mcl_blast_resistance = 3, + sounds = mcl_sounds.node_sound_wood_defaults(), +}) +minetest.register_craft({ + output = "mcl_decor:spruce_table", + recipe = { + {"mcl_core:sprucewood", "mcl_core:sprucewood", "mcl_core:sprucewood"}, + {"mcl_core:stick", "", "mcl_core:stick"}, + {"mcl_core:stick", "", "mcl_core:stick"} + } +}) +minetest.register_craft({ + type = "fuel", + recipe = "mcl_decor:spruce_table", + burntime = 10, +}) + +--- Iron Table --- +mcl_decor:register_table("mcl_decor:iron_table", { + description = S("Iron Table"), + tiles = {"default_steel_block.png"}, + groups = {pickaxey=2, deco_block=1}, + _mcl_blast_resistance = 6, + _mcl_hardness = 5, + sounds = mcl_sounds.node_sound_metal_defaults(), +}) +minetest.register_craft({ + output = "mcl_decor:iron_table", + recipe = { + {"mcl_core:iron_ingot", "mcl_core:iron_ingot", "mcl_core:iron_ingot"}, + {"mcl_core:stick", "", "mcl_core:stick"}, + {"mcl_core:stick", "", "mcl_core:stick"} + } +}) diff --git a/textures/mcl_decor_coalquartz_tile.png b/textures/mcl_decor_coalquartz_tile.png new file mode 100644 index 0000000..e2b6801 Binary files /dev/null and b/textures/mcl_decor_coalquartz_tile.png differ diff --git a/textures/mcl_decor_rainbow_block.png b/textures/mcl_decor_rainbow_block.png new file mode 100644 index 0000000..6926615 Binary files /dev/null and b/textures/mcl_decor_rainbow_block.png differ