diff --git a/homedecor_exterior/init.lua b/homedecor_exterior/init.lua index efe3883f..e82a9167 100644 --- a/homedecor_exterior/init.lua +++ b/homedecor_exterior/init.lua @@ -34,99 +34,6 @@ homedecor.register("barbecue", { minetest.register_alias("homedecor:barbecue_meat", "air") -local bl1_sbox = { - type = "fixed", - fixed = { -0.5, -0.5, -0.25, 1.5, 0.5, 0.5 } -} - -local bl1_cbox = { - type = "fixed", - fixed = { - {-0.5, -0.5, -0.25, 1.5, 0, 0.5 }, - {-0.5, -0.5, 0.45, 1.5, 0.5, 0.5 }, - } -} - -homedecor.register("bench_large_1", { - mesh = "homedecor_bench_large_1.obj", - tiles = { - "homedecor_generic_wood_old.png", - "homedecor_generic_metal_wrought_iron.png" - }, - description = S("Garden Bench (style 1)"), - inventory_image = "homedecor_bench_large_1_inv.png", - groups = { snappy = 3 }, - expand = { right="placeholder" }, - sounds = default.node_sound_wood_defaults(), - selection_box = bl1_sbox, - node_box = bl1_cbox, - on_rotate = screwdriver.disallow -}) - -minetest.register_alias("homedecor:bench_large_1_left", "homedecor:bench_large_1") -minetest.register_alias("homedecor:bench_large_1_right", "air") - -local bl2_sbox = { - type = "fixed", - fixed = { -0.5, -0.5, -0.25, 1.5, 0.5, 0.5 } -} - -local bl2_cbox = { - type = "fixed", - fixed = { - {-0.5, -0.5, -0.25, 1.5, 0, 0.5 }, - {-0.5, -0.5, 0.45, 1.5, 0.5, 0.5 }, - } -} - -homedecor.register("bench_large_2", { - description = S("Garden Bench (style 2)"), - mesh = "homedecor_bench_large_2.obj", - tiles = { "homedecor_generic_wood_old.png" }, - inventory_image = "homedecor_bench_large_2_inv.png", - groups = {snappy=3}, - selection_box = bl2_sbox, - node_box = bl2_cbox, - expand = { right="placeholder" }, - sounds = default.node_sound_wood_defaults(), - on_rotate = screwdriver.disallow -}) - -minetest.register_alias("homedecor:bench_large_2_left", "homedecor:bench_large_2") -minetest.register_alias("homedecor:bench_large_2_right", "air") - -local dc_cbox = { - type = "fixed", - fixed = { -0.5, -0.5, -0.5, 0.5, 0, 1 } -} - -homedecor.register("deckchair", { - mesh = "homedecor_deckchair.obj", - tiles = {"homedecor_deckchair.png"}, - description = S("Deck Chair"), - groups = { snappy = 3 }, - expand = { forward="placeholder" }, - sounds = default.node_sound_wood_defaults(), - selection_box = dc_cbox, - collision_box = dc_cbox, - on_rotate = screwdriver.disallow -}) - -minetest.register_alias("homedecor:deckchair_foot", "homedecor:deckchair") -minetest.register_alias("homedecor:deckchair_head", "air") - -homedecor.register("deckchair_striped_blue", { - mesh = "homedecor_deckchair.obj", - tiles = {"homedecor_deckchair_striped_blue.png"}, - description = S("Deck Chair (blue striped)"), - groups = { snappy = 3 }, - expand = { forward="placeholder" }, - sounds = default.node_sound_wood_defaults(), - selection_box = dc_cbox, - collision_box = dc_cbox, - on_rotate = screwdriver.disallow -}) - homedecor.register("doghouse", { mesh = "homedecor_doghouse.obj", tiles = { @@ -147,21 +54,6 @@ homedecor.register("doghouse", { minetest.register_alias("homedecor:doghouse_roof", "air") minetest.register_alias("homedecor:doghouse_base", "homedecor:doghouse") -homedecor.register("simple_bench", { - tiles = { "homedecor_generic_wood_old.png" }, - description = S("Simple Bench"), - groups = {snappy=3}, - node_box = { - type = "fixed", - fixed = { - {-0.5, -0.15, 0, 0.5, -0.05, 0.4}, - {-0.4, -0.5, 0.1, -0.3, -0.15, 0.3}, - { 0.3, -0.5, 0.1, 0.4, -0.15, 0.3}, - } - }, - sounds = default.node_sound_wood_defaults(), -}) - homedecor.register("stonepath", { description = S("Garden stone path"), tiles = { @@ -425,72 +317,6 @@ minetest.register_craft( { }, }) - - -minetest.register_craft( { - output = "homedecor:bench_large_1", - recipe = { - { "group:wood", "group:wood", "group:wood" }, - { "group:wood", "group:wood", "group:wood" }, - { "homedecor:pole_wrought_iron", "", "homedecor:pole_wrought_iron" } - }, -}) - -minetest.register_craft( { - output = "homedecor:bench_large_2_left", - recipe = { - { "homedecor:shutter_oak", "homedecor:shutter_oak", "homedecor:shutter_oak" }, - { "group:wood", "group:wood", "group:wood" }, - { "stairs:slab_wood", "", "stairs:slab_wood" } - }, -}) - -minetest.register_craft( { - output = "homedecor:bench_large_2_left", - recipe = { - { "homedecor:shutter_oak", "homedecor:shutter_oak", "homedecor:shutter_oak" }, - { "group:wood", "group:wood", "group:wood" }, - { "moreblocks:slab_wood", "", "moreblocks:slab_wood" } - }, -}) - - -minetest.register_craft( { - output = "homedecor:simple_bench", - recipe = { - { "stairs:slab_wood", "stairs:slab_wood", "stairs:slab_wood" }, - { "stairs:slab_wood", "", "stairs:slab_wood" } - }, -}) - -minetest.register_craft( { - output = "homedecor:simple_bench", - recipe = { - { "moreblocks:slab_wood", "moreblocks:slab_wood", "moreblocks:slab_wood" }, - { "moreblocks:slab_wood", "", "moreblocks:slab_wood" } - }, -}) - - -minetest.register_craft({ - output = "homedecor:deckchair", - recipe = { - { "group:stick", "building_blocks:terrycloth_towel", "group:stick" }, - { "group:stick", "building_blocks:terrycloth_towel", "group:stick" }, - { "group:stick", "building_blocks:terrycloth_towel", "group:stick" } - }, -}) - -minetest.register_craft({ - output = "homedecor:deckchair_striped_blue", - type = "shapeless", - recipe = { - "homedecor:deckchair", - "dye:blue" - } -}) - - minetest.register_craft({ output = "homedecor:stonepath 16", recipe = { diff --git a/homedecor_furniture/init.lua b/homedecor_furniture/init.lua index 108f28d2..5d452a65 100644 --- a/homedecor_furniture/init.lua +++ b/homedecor_furniture/init.lua @@ -32,85 +32,7 @@ for _, t in ipairs(table_colors) do }) end -local kc_cbox = { - type = "fixed", - fixed = { -0.3125, -0.3125, -0.5, 0.3125, 0.3125, 0.5 }, -} -homedecor.register("kitchen_chair_wood", { - description = S("Kitchen chair"), - mesh = "homedecor_kitchen_chair.obj", - tiles = { - homedecor.plain_wood, - homedecor.plain_wood - }, - inventory_image = "homedecor_chair_wood_inv.png", - paramtype2 = "wallmounted", - selection_box = kc_cbox, - collision_box = kc_cbox, - groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2}, - sounds = default.node_sound_wood_defaults(), - after_place_node = unifieddyes.fix_rotation_nsew, - on_rotate = unifieddyes.fix_after_screwdriver_nsew, - on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) - pos.y = pos.y+0 -- where do I put my ass ? - homedecor.sit(pos, node, clicker) - return itemstack - end -}) - -homedecor.register("kitchen_chair_padded", { - description = S("Kitchen chair"), - mesh = "homedecor_kitchen_chair.obj", - tiles = { - homedecor.plain_wood, - "wool_white.png", - }, - inventory_image = "homedecor_chair_padded_inv.png", - paramtype2 = "colorwallmounted", - palette = "unifieddyes_palette_colorwallmounted.png", - selection_box = kc_cbox, - collision_box = kc_cbox, - groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2, ud_param2_colorable = 1}, - sounds = default.node_sound_wood_defaults(), - after_place_node = function(pos, placer, itemstack, pointed_thing) - unifieddyes.fix_rotation_nsew(pos, placer, itemstack, pointed_thing) - end, - on_rotate = unifieddyes.fix_after_screwdriver_nsew, - on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) - pos.y = pos.y+0 -- where do I put my ass ? - homedecor.sit(pos, node, clicker) - return itemstack - end -}) - -local ac_cbox = { - type = "fixed", - fixed = { - {-0.5, -0.5, -0.5, 0.5, 0, 0.5 }, - {-0.5, -0.5, 0.4, 0.5, 0.5, 0.5 } - } -} - -homedecor.register("armchair", { - description = S("Armchair"), - mesh = "forniture_armchair.obj", - tiles = { - "wool_white.png", - { name = "wool_dark_grey.png", color = 0xffffffff }, - { name = "default_wood.png", color = 0xffffffff } - }, - inventory_image = "homedecor_armchair_inv.png", - paramtype2 = "colorwallmounted", - palette = "unifieddyes_palette_colorwallmounted.png", - groups = {snappy=3, ud_param2_colorable = 1}, - sounds = default.node_sound_wood_defaults(), - node_box = ac_cbox, - after_place_node = function(pos, placer, itemstack, pointed_thing) - unifieddyes.fix_rotation_nsew(pos, placer, itemstack, pointed_thing) - end, - on_rotate = unifieddyes.fix_after_screwdriver_nsew, -}) local ob_cbox = { type = "fixed", @@ -205,73 +127,6 @@ minetest.register_craft({ burntime = 30, }) -minetest.register_craft({ - output = "homedecor:kitchen_chair_wood 2", - recipe = { - { "group:stick",""}, - { "group:wood","group:wood" }, - { "group:stick","group:stick" }, - }, -}) - -minetest.register_craft({ - output = "homedecor:armchair 2", - recipe = { - { "wool:white",""}, - { "group:wood","group:wood" }, - { "wool:white","wool:white" }, - }, -}) - -unifieddyes.register_color_craft({ - output = "homedecor:armchair", - palette = "wallmounted", - type = "shapeless", - neutral_node = "homedecor:armchair", - recipe = { - "NEUTRAL_NODE", - "MAIN_DYE" - } -}) - -minetest.register_craft({ - type = "shapeless", - output = "homedecor:kitchen_chair_padded", - recipe = { - "homedecor:kitchen_chair_wood", - "wool:white", - }, -}) - -unifieddyes.register_color_craft({ - output = "homedecor:kitchen_chair_padded", - palette = "wallmounted", - type = "shapeless", - neutral_node = "homedecor:kitchen_chair_padded", - recipe = { - "NEUTRAL_NODE", - "MAIN_DYE" - } -}) - -minetest.register_craft({ - type = "fuel", - recipe = "homedecor:kitchen_chair_wood", - burntime = 15, -}) - -minetest.register_craft({ - type = "fuel", - recipe = "homedecor:kitchen_chair_padded", - burntime = 15, -}) - -minetest.register_craft({ - type = "fuel", - recipe = "homedecor:armchair", - burntime = 30, -}) - minetest.register_craft({ output = "homedecor:standing_lamp_off", recipe = { @@ -435,95 +290,4 @@ minetest.register_craft({ -- Aliases for 3dforniture mod. minetest.register_alias("3dforniture:table", "homedecor:table") -minetest.register_alias("3dforniture:chair", "homedecor:chair") -minetest.register_alias("3dforniture:armchair", "homedecor:armchair_black") -minetest.register_alias("homedecor:armchair", "homedecor:armchair_black") - minetest.register_alias('table', 'homedecor:table') -minetest.register_alias('chair', 'homedecor:chair') -minetest.register_alias('armchair', 'homedecor:armchair') - --- conversion to param2 colorization - -homedecor.old_static_chairs = {} - -local chair_colors = { - "black", - "brown", - "blue", - "cyan", - "dark_grey", - "dark_green", - "green", - "grey", - "magenta", - "orange", - "pink", - "red", - "violet", - "white", - "yellow", -} - -for _, color in ipairs(chair_colors) do - table.insert(homedecor.old_static_chairs, "homedecor:chair_"..color) - table.insert(homedecor.old_static_chairs, "homedecor:armchair_"..color) -end -table.insert(homedecor.old_static_chairs, "homedecor:chair") - -minetest.register_lbm({ - name = ":homedecor:convert_chairs", - label = "Convert homedecor chairs to use param2 color", - run_at_every_load = false, - nodenames = homedecor.old_static_chairs, - action = function(pos, node) - local name = node.name - local paletteidx = 0 - local color - local a,b = string.find(name, "_") - - if a then - color = string.sub(name, a+1) - - if color == "blue" then - color = "medium_blue" - elseif color == "violet" then - color = "medium_violet" - elseif color == "red" then - color = "medium_red" - elseif color == "black" then - color = "dark_grey" - end - - paletteidx = unifieddyes.getpaletteidx("unifieddyes:"..color, "wallmounted") - end - - local old_fdir = math.floor(node.param2 % 32) - local new_fdir = 3 - - if old_fdir == 0 then - new_fdir = 3 - elseif old_fdir == 1 then - new_fdir = 4 - elseif old_fdir == 2 then - new_fdir = 2 - elseif old_fdir == 3 then - new_fdir = 5 - end - - local param2 = paletteidx + new_fdir - local newname = "homedecor:armchair" - - if node.name == "homedecor:chair" then - newname = "homedecor:kitchen_chair_wood" - elseif string.find(node.name, "homedecor:chair_") then - newname = "homedecor:kitchen_chair_padded" - end - - minetest.set_node(pos, { name = newname, param2 = param2 }) - local meta = minetest.get_meta(pos) - if color then - meta:set_string("dye", "unifieddyes:"..color) - end - end -}) diff --git a/homedecor_office/init.lua b/homedecor_office/init.lua index e6deb152..954bfb89 100644 --- a/homedecor_office/init.lua +++ b/homedecor_office/init.lua @@ -90,41 +90,6 @@ homedecor.register("calendar", { end }) -local ofchairs_sbox = { - type = "fixed", - fixed = { -8/16, -8/16, -8/16, 8/16, 29/32, 8/16 } -} -local ofchairs_cbox = { - type = "fixed", - fixed = { - { -5/16, 1/16, -7/16, 5/16, 4/16, 7/16 }, -- seat - { -5/16, 4/16, 4/16, 5/16, 29/32, 15/32 }, -- seatback - { -1/16, -11/32, -1/16, 1/16, 1/16, 1/16 }, -- cylinder - { -8/16, -8/16, -8/16, 8/16, -11/32, 8/16 } -- legs/wheels - } -} - -local chairs = { - { "basic", S("Basic office chair") }, - { "upscale", S("Upscale office chair") }, -} - -for _, c in pairs(chairs) do - local name, desc = unpack(c) - homedecor.register("office_chair_"..name, { - description = desc, - drawtype = "mesh", - tiles = { "homedecor_office_chair_"..name..".png" }, - mesh = "homedecor_office_chair_"..name..".obj", - groups = { snappy = 3 }, - sounds = default.node_sound_wood_defaults(), - selection_box = ofchairs_sbox, - collision_box = ofchairs_cbox, - expand = { top = "placeholder" }, - on_rotate = screwdriver.rotate_simple - }) -end - -- crafting @@ -155,24 +120,6 @@ minetest.register_craft({ }, }) -minetest.register_craft({ - output = "homedecor:office_chair_basic", - recipe = { - { "", "", "wool:black" }, - { "", "wool:black", "default:steel_ingot" }, - { "group:stick", "homedecor:pole_wrought_iron", "group:stick" } - }, -}) - -minetest.register_craft({ - output = "homedecor:office_chair_upscale", - recipe = { - { "dye:black", "building_blocks:sticks", "group:wool" }, - { "basic_materials:plastic_sheet", "group:wool", "default:steel_ingot" }, - { "building_blocks:sticks", "homedecor:pole_wrought_iron", "building_blocks:sticks" } - }, -}) - minetest.register_craft({ output = "homedecor:calendar", recipe = { diff --git a/lrfurn/README.txt b/homedecor_seating/README.txt similarity index 100% rename from lrfurn/README.txt rename to homedecor_seating/README.txt diff --git a/lrfurn/armchairs.lua b/homedecor_seating/armchairs.lua similarity index 69% rename from lrfurn/armchairs.lua rename to homedecor_seating/armchairs.lua index 6950cad0..202cedb4 100644 --- a/lrfurn/armchairs.lua +++ b/homedecor_seating/armchairs.lua @@ -8,7 +8,7 @@ local armchair_cbox = { } } -minetest.register_node("lrfurn:armchair", { +minetest.register_node(":lrfurn:armchair", { description = S("Armchair"), drawtype = "mesh", mesh = "lrfurn_armchair.obj", @@ -38,6 +38,28 @@ minetest.register_node("lrfurn:armchair", { end }) +homedecor.register("armchair", { + description = S("Armchair"), + mesh = "forniture_armchair.obj", + tiles = { + "wool_white.png", + { name = "wool_dark_grey.png", color = 0xffffffff }, + { name = "default_wood.png", color = 0xffffffff } + }, + inventory_image = "homedecor_armchair_inv.png", + paramtype2 = "colorwallmounted", + palette = "unifieddyes_palette_colorwallmounted.png", + groups = {snappy=3, ud_param2_colorable = 1}, + sounds = default.node_sound_wood_defaults(), + node_box = ac_cbox, + after_place_node = function(pos, placer, itemstack, pointed_thing) + unifieddyes.fix_rotation_nsew(pos, placer, itemstack, pointed_thing) + end, + on_rotate = unifieddyes.fix_after_screwdriver_nsew, +}) + +-- crafts + minetest.register_craft({ output = "lrfurn:armchair", recipe = { @@ -67,6 +89,34 @@ unifieddyes.register_color_craft({ } }) +minetest.register_craft({ + output = "homedecor:armchair 2", + recipe = { + { "wool:white",""}, + { "group:wood","group:wood" }, + { "wool:white","wool:white" }, + }, +}) + +unifieddyes.register_color_craft({ + output = "homedecor:armchair", + palette = "wallmounted", + type = "shapeless", + neutral_node = "homedecor:armchair", + recipe = { + "NEUTRAL_NODE", + "MAIN_DYE" + } +}) + +minetest.register_craft({ + type = "fuel", + recipe = "homedecor:armchair", + burntime = 30, +}) + +minetest.register_alias('armchair', 'homedecor:armchair') + -- convert old static nodes to param2 color lrfurn.old_static_armchairs = {} @@ -76,7 +126,7 @@ for _, color in ipairs(lrfurn.colors) do end minetest.register_lbm({ - name = "lrfurn:convert_armchairs", + name = ":lrfurn:convert_armchairs", label = "Convert lrfurn armchairs to use param2 color", run_at_every_load = false, nodenames = lrfurn.old_static_armchairs, diff --git a/lrfurn/depends.txt b/homedecor_seating/depends.txt similarity index 100% rename from lrfurn/depends.txt rename to homedecor_seating/depends.txt diff --git a/lrfurn/init.lua b/homedecor_seating/init.lua similarity index 86% rename from lrfurn/init.lua rename to homedecor_seating/init.lua index a23aff4f..fe10327f 100644 --- a/lrfurn/init.lua +++ b/homedecor_seating/init.lua @@ -1,4 +1,8 @@ +-- Home decor seating +-- forked from the previous lrfurn mod + local S = homedecor.gettext +local modpath = minetest.get_modpath("homedecor_seating") lrfurn = {} screwdriver = screwdriver or {} @@ -68,8 +72,7 @@ function lrfurn.fix_sofa_rotation_nsew(pos, placer, itemstack, pointed_thing) minetest.swap_node(pos, { name = node.name, param2 = fdir+colorbits }) end -dofile(minetest.get_modpath("lrfurn").."/longsofas.lua") -dofile(minetest.get_modpath("lrfurn").."/sofas.lua") -dofile(minetest.get_modpath("lrfurn").."/armchairs.lua") -dofile(minetest.get_modpath("lrfurn").."/coffeetable.lua") -dofile(minetest.get_modpath("lrfurn").."/endtable.lua") +dofile(modpath.."/longsofas.lua") +dofile(modpath.."/sofas.lua") +dofile(modpath.."/armchairs.lua") +dofile(modpath.."/misc.lua") diff --git a/lrfurn/longsofas.lua b/homedecor_seating/longsofas.lua similarity index 97% rename from lrfurn/longsofas.lua rename to homedecor_seating/longsofas.lua index 2df177c8..4ee5ef5b 100644 --- a/lrfurn/longsofas.lua +++ b/homedecor_seating/longsofas.lua @@ -6,7 +6,7 @@ local longsofa_cbox = { wall_side = {-0.5, -0.5, -0.5, 0.5, 0.5, 2.5}, } -minetest.register_node("lrfurn:longsofa", { +minetest.register_node(":lrfurn:longsofa", { description = S("Long Sofa"), drawtype = "mesh", mesh = "lrfurn_sofa_long.obj", @@ -90,7 +90,7 @@ for _, color in ipairs(lrfurn.colors) do end minetest.register_lbm({ - name = "lrfurn:convert_longsofas", + name = ":lrfurn:convert_longsofas", label = "Convert lrfurn long sofas to use param2 color", run_at_every_load = false, nodenames = lrfurn.old_static_longsofas, diff --git a/homedecor_seating/misc.lua b/homedecor_seating/misc.lua new file mode 100644 index 00000000..1dd6d412 --- /dev/null +++ b/homedecor_seating/misc.lua @@ -0,0 +1,334 @@ +-- this component contains all of the random types of seating previously +-- scattered among homedecor's other mods + +local dc_cbox = { + type = "fixed", + fixed = { -0.5, -0.5, -0.5, 0.5, 0, 1 } +} + +homedecor.register("deckchair", { + mesh = "homedecor_deckchair.obj", + tiles = {"homedecor_deckchair.png"}, + description = "Deck Chair", + groups = { snappy = 3 }, + expand = { forward="placeholder" }, + sounds = default.node_sound_wood_defaults(), + selection_box = dc_cbox, + collision_box = dc_cbox, + on_rotate = screwdriver.disallow +}) + +minetest.register_alias("homedecor:deckchair_foot", "homedecor:deckchair") +minetest.register_alias("homedecor:deckchair_head", "air") + +homedecor.register("deckchair_striped_blue", { + mesh = "homedecor_deckchair.obj", + tiles = {"homedecor_deckchair_striped_blue.png"}, + description = "Deck Chair (blue striped)", + groups = { snappy = 3 }, + expand = { forward="placeholder" }, + sounds = default.node_sound_wood_defaults(), + selection_box = dc_cbox, + collision_box = dc_cbox, + on_rotate = screwdriver.disallow +}) + +homedecor.register("simple_bench", { + tiles = { "homedecor_generic_wood_old.png" }, + description = "Simple Bench", + groups = {snappy=3}, + node_box = { + type = "fixed", + fixed = { + {-0.5, -0.15, 0, 0.5, -0.05, 0.4}, + {-0.4, -0.5, 0.1, -0.3, -0.15, 0.3}, + { 0.3, -0.5, 0.1, 0.4, -0.15, 0.3}, + } + }, + sounds = default.node_sound_wood_defaults(), +}) + +local bl1_sbox = { + type = "fixed", + fixed = { -0.5, -0.5, -0.25, 1.5, 0.5, 0.5 } +} + +local bl1_cbox = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.25, 1.5, 0, 0.5 }, + {-0.5, -0.5, 0.45, 1.5, 0.5, 0.5 }, + } +} + +homedecor.register("bench_large_1", { + mesh = "homedecor_bench_large_1.obj", + tiles = { + "homedecor_generic_wood_old.png", + "homedecor_generic_metal_wrought_iron.png" + }, + description = "Garden Bench (style 1)", + inventory_image = "homedecor_bench_large_1_inv.png", + groups = { snappy = 3 }, + expand = { right="placeholder" }, + sounds = default.node_sound_wood_defaults(), + selection_box = bl1_sbox, + node_box = bl1_cbox, + on_rotate = screwdriver.disallow +}) + +minetest.register_alias("homedecor:bench_large_1_left", "homedecor:bench_large_1") +minetest.register_alias("homedecor:bench_large_1_right", "air") + +local bl2_sbox = { + type = "fixed", + fixed = { -0.5, -0.5, -0.25, 1.5, 0.5, 0.5 } +} + +local bl2_cbox = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.25, 1.5, 0, 0.5 }, + {-0.5, -0.5, 0.45, 1.5, 0.5, 0.5 }, + } +} + +homedecor.register("bench_large_2", { + description = "Garden Bench (style 2)", + mesh = "homedecor_bench_large_2.obj", + tiles = { "homedecor_generic_wood_old.png" }, + inventory_image = "homedecor_bench_large_2_inv.png", + groups = {snappy=3}, + selection_box = bl2_sbox, + node_box = bl2_cbox, + expand = { right="placeholder" }, + sounds = default.node_sound_wood_defaults(), + on_rotate = screwdriver.disallow +}) + +minetest.register_alias("homedecor:bench_large_2_left", "homedecor:bench_large_2") +minetest.register_alias("homedecor:bench_large_2_right", "air") + +local kc_cbox = { + type = "fixed", + fixed = { -0.3125, -0.3125, -0.5, 0.3125, 0.3125, 0.5 }, +} + +homedecor.register("kitchen_chair_wood", { + description = "Kitchen chair", + mesh = "homedecor_kitchen_chair.obj", + tiles = { + homedecor.plain_wood, + homedecor.plain_wood + }, + inventory_image = "homedecor_chair_wood_inv.png", + paramtype2 = "wallmounted", + selection_box = kc_cbox, + collision_box = kc_cbox, + groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2}, + sounds = default.node_sound_wood_defaults(), + after_place_node = unifieddyes.fix_rotation_nsew, + on_rotate = unifieddyes.fix_after_screwdriver_nsew, + on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) + pos.y = pos.y+0 -- where do I put my ass ? + homedecor.sit(pos, node, clicker) + return itemstack + end +}) + +homedecor.register("kitchen_chair_padded", { + description = "Kitchen chair", + mesh = "homedecor_kitchen_chair.obj", + tiles = { + homedecor.plain_wood, + "wool_white.png", + }, + inventory_image = "homedecor_chair_padded_inv.png", + paramtype2 = "colorwallmounted", + palette = "unifieddyes_palette_colorwallmounted.png", + selection_box = kc_cbox, + collision_box = kc_cbox, + groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2, ud_param2_colorable = 1}, + sounds = default.node_sound_wood_defaults(), + after_place_node = function(pos, placer, itemstack, pointed_thing) + unifieddyes.fix_rotation_nsew(pos, placer, itemstack, pointed_thing) + end, + on_rotate = unifieddyes.fix_after_screwdriver_nsew, + on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) + pos.y = pos.y+0 -- where do I put my ass ? + homedecor.sit(pos, node, clicker) + return itemstack + end +}) + +local ac_cbox = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, 0, 0.5 }, + {-0.5, -0.5, 0.4, 0.5, 0.5, 0.5 } + } +} + +local ofchairs_sbox = { + type = "fixed", + fixed = { -8/16, -8/16, -8/16, 8/16, 29/32, 8/16 } +} +local ofchairs_cbox = { + type = "fixed", + fixed = { + { -5/16, 1/16, -7/16, 5/16, 4/16, 7/16 }, -- seat + { -5/16, 4/16, 4/16, 5/16, 29/32, 15/32 }, -- seatback + { -1/16, -11/32, -1/16, 1/16, 1/16, 1/16 }, -- cylinder + { -8/16, -8/16, -8/16, 8/16, -11/32, 8/16 } -- legs/wheels + } +} + +local chairs = { + { "basic", "Basic office chair" }, + { "upscale", "Upscale office chair" }, +} + +for _, c in pairs(chairs) do + local name, desc = unpack(c) + homedecor.register("office_chair_"..name, { + description = desc, + drawtype = "mesh", + tiles = { "homedecor_office_chair_"..name..".png" }, + mesh = "homedecor_office_chair_"..name..".obj", + groups = { snappy = 3 }, + sounds = default.node_sound_wood_defaults(), + selection_box = ofchairs_sbox, + collision_box = ofchairs_cbox, + expand = { top = "placeholder" }, + on_rotate = screwdriver.rotate_simple + }) +end + +-- crafts! + +minetest.register_craft( { + output = "homedecor:bench_large_1", + recipe = { + { "group:wood", "group:wood", "group:wood" }, + { "group:wood", "group:wood", "group:wood" }, + { "homedecor:pole_wrought_iron", "", "homedecor:pole_wrought_iron" } + }, +}) + +minetest.register_craft( { + output = "homedecor:bench_large_2_left", + recipe = { + { "homedecor:shutter_oak", "homedecor:shutter_oak", "homedecor:shutter_oak" }, + { "group:wood", "group:wood", "group:wood" }, + { "stairs:slab_wood", "", "stairs:slab_wood" } + }, +}) + +minetest.register_craft( { + output = "homedecor:bench_large_2_left", + recipe = { + { "homedecor:shutter_oak", "homedecor:shutter_oak", "homedecor:shutter_oak" }, + { "group:wood", "group:wood", "group:wood" }, + { "moreblocks:slab_wood", "", "moreblocks:slab_wood" } + }, +}) + +minetest.register_craft( { + output = "homedecor:simple_bench", + recipe = { + { "stairs:slab_wood", "stairs:slab_wood", "stairs:slab_wood" }, + { "stairs:slab_wood", "", "stairs:slab_wood" } + }, +}) + +minetest.register_craft( { + output = "homedecor:simple_bench", + recipe = { + { "moreblocks:slab_wood", "moreblocks:slab_wood", "moreblocks:slab_wood" }, + { "moreblocks:slab_wood", "", "moreblocks:slab_wood" } + }, +}) + + +minetest.register_craft({ + output = "homedecor:deckchair", + recipe = { + { "group:stick", "building_blocks:terrycloth_towel", "group:stick" }, + { "group:stick", "building_blocks:terrycloth_towel", "group:stick" }, + { "group:stick", "building_blocks:terrycloth_towel", "group:stick" } + }, +}) + +minetest.register_craft({ + output = "homedecor:deckchair_striped_blue", + type = "shapeless", + recipe = { + "homedecor:deckchair", + "dye:blue" + } +}) + +minetest.register_craft({ + output = "homedecor:kitchen_chair_wood 2", + recipe = { + { "group:stick",""}, + { "group:wood","group:wood" }, + { "group:stick","group:stick" }, + }, +}) + +minetest.register_craft({ + type = "shapeless", + output = "homedecor:kitchen_chair_padded", + recipe = { + "homedecor:kitchen_chair_wood", + "wool:white", + }, +}) + +unifieddyes.register_color_craft({ + output = "homedecor:kitchen_chair_padded", + palette = "wallmounted", + type = "shapeless", + neutral_node = "homedecor:kitchen_chair_padded", + recipe = { + "NEUTRAL_NODE", + "MAIN_DYE" + } +}) + +minetest.register_craft({ + type = "fuel", + recipe = "homedecor:kitchen_chair_wood", + burntime = 15, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "homedecor:kitchen_chair_padded", + burntime = 15, +}) + + +minetest.register_craft({ + output = "homedecor:office_chair_basic", + recipe = { + { "", "", "wool:black" }, + { "", "wool:black", "default:steel_ingot" }, + { "group:stick", "homedecor:pole_wrought_iron", "group:stick" } + }, +}) + +minetest.register_craft({ + output = "homedecor:office_chair_upscale", + recipe = { + { "dye:black", "building_blocks:sticks", "group:wool" }, + { "basic_materials:plastic_sheet", "group:wool", "default:steel_ingot" }, + { "building_blocks:sticks", "homedecor:pole_wrought_iron", "building_blocks:sticks" } + }, +}) + +-- aliases + +minetest.register_alias("3dforniture:chair", "homedecor:chair") +minetest.register_alias('chair', 'homedecor:chair') diff --git a/homedecor_furniture/models/forniture_armchair.obj b/homedecor_seating/models/forniture_armchair.obj similarity index 100% rename from homedecor_furniture/models/forniture_armchair.obj rename to homedecor_seating/models/forniture_armchair.obj diff --git a/homedecor_exterior/models/homedecor_bench_large_1.obj b/homedecor_seating/models/homedecor_bench_large_1.obj similarity index 100% rename from homedecor_exterior/models/homedecor_bench_large_1.obj rename to homedecor_seating/models/homedecor_bench_large_1.obj diff --git a/homedecor_exterior/models/homedecor_bench_large_2.obj b/homedecor_seating/models/homedecor_bench_large_2.obj similarity index 100% rename from homedecor_exterior/models/homedecor_bench_large_2.obj rename to homedecor_seating/models/homedecor_bench_large_2.obj diff --git a/homedecor_exterior/models/homedecor_deckchair.obj b/homedecor_seating/models/homedecor_deckchair.obj similarity index 100% rename from homedecor_exterior/models/homedecor_deckchair.obj rename to homedecor_seating/models/homedecor_deckchair.obj diff --git a/homedecor_furniture/models/homedecor_kitchen_chair.obj b/homedecor_seating/models/homedecor_kitchen_chair.obj similarity index 100% rename from homedecor_furniture/models/homedecor_kitchen_chair.obj rename to homedecor_seating/models/homedecor_kitchen_chair.obj diff --git a/homedecor_office/models/homedecor_office_chair_basic.obj b/homedecor_seating/models/homedecor_office_chair_basic.obj similarity index 100% rename from homedecor_office/models/homedecor_office_chair_basic.obj rename to homedecor_seating/models/homedecor_office_chair_basic.obj diff --git a/homedecor_office/models/homedecor_office_chair_upscale.obj b/homedecor_seating/models/homedecor_office_chair_upscale.obj similarity index 100% rename from homedecor_office/models/homedecor_office_chair_upscale.obj rename to homedecor_seating/models/homedecor_office_chair_upscale.obj diff --git a/lrfurn/models/lrfurn_armchair.obj b/homedecor_seating/models/lrfurn_armchair.obj similarity index 100% rename from lrfurn/models/lrfurn_armchair.obj rename to homedecor_seating/models/lrfurn_armchair.obj diff --git a/lrfurn/models/lrfurn_sofa_long.obj b/homedecor_seating/models/lrfurn_sofa_long.obj similarity index 100% rename from lrfurn/models/lrfurn_sofa_long.obj rename to homedecor_seating/models/lrfurn_sofa_long.obj diff --git a/lrfurn/models/lrfurn_sofa_short.obj b/homedecor_seating/models/lrfurn_sofa_short.obj similarity index 100% rename from lrfurn/models/lrfurn_sofa_short.obj rename to homedecor_seating/models/lrfurn_sofa_short.obj diff --git a/lrfurn/sofas.lua b/homedecor_seating/sofas.lua similarity index 97% rename from lrfurn/sofas.lua rename to homedecor_seating/sofas.lua index 7d1cd53a..eb8d3802 100644 --- a/lrfurn/sofas.lua +++ b/homedecor_seating/sofas.lua @@ -6,7 +6,7 @@ local sofa_cbox = { wall_side = {-0.5, -0.5, -0.5, 0.5, 0.5, 1.5} } -minetest.register_node("lrfurn:sofa", { +minetest.register_node(":lrfurn:sofa", { description = S("Sofa"), drawtype = "mesh", mesh = "lrfurn_sofa_short.obj", @@ -90,7 +90,7 @@ for _, color in ipairs(lrfurn.colors) do end minetest.register_lbm({ - name = "lrfurn:convert_sofas", + name = ":lrfurn:convert_sofas", label = "Convert lrfurn short sofas to use param2 color", run_at_every_load = false, nodenames = lrfurn.old_static_sofas, diff --git a/homedecor_furniture/textures/homedecor_armchair_inv.png b/homedecor_seating/textures/homedecor_armchair_inv.png similarity index 100% rename from homedecor_furniture/textures/homedecor_armchair_inv.png rename to homedecor_seating/textures/homedecor_armchair_inv.png diff --git a/homedecor_exterior/textures/homedecor_bench_large_1_inv.png b/homedecor_seating/textures/homedecor_bench_large_1_inv.png similarity index 100% rename from homedecor_exterior/textures/homedecor_bench_large_1_inv.png rename to homedecor_seating/textures/homedecor_bench_large_1_inv.png diff --git a/homedecor_exterior/textures/homedecor_bench_large_2_inv.png b/homedecor_seating/textures/homedecor_bench_large_2_inv.png similarity index 100% rename from homedecor_exterior/textures/homedecor_bench_large_2_inv.png rename to homedecor_seating/textures/homedecor_bench_large_2_inv.png diff --git a/homedecor_furniture/textures/homedecor_chair_padded_inv.png b/homedecor_seating/textures/homedecor_chair_padded_inv.png similarity index 100% rename from homedecor_furniture/textures/homedecor_chair_padded_inv.png rename to homedecor_seating/textures/homedecor_chair_padded_inv.png diff --git a/homedecor_furniture/textures/homedecor_chair_wood_inv.png b/homedecor_seating/textures/homedecor_chair_wood_inv.png similarity index 100% rename from homedecor_furniture/textures/homedecor_chair_wood_inv.png rename to homedecor_seating/textures/homedecor_chair_wood_inv.png diff --git a/homedecor_exterior/textures/homedecor_deckchair.png b/homedecor_seating/textures/homedecor_deckchair.png similarity index 100% rename from homedecor_exterior/textures/homedecor_deckchair.png rename to homedecor_seating/textures/homedecor_deckchair.png diff --git a/homedecor_exterior/textures/homedecor_deckchair_striped_blue.png b/homedecor_seating/textures/homedecor_deckchair_striped_blue.png similarity index 100% rename from homedecor_exterior/textures/homedecor_deckchair_striped_blue.png rename to homedecor_seating/textures/homedecor_deckchair_striped_blue.png diff --git a/homedecor_office/textures/homedecor_office_chair_basic.png b/homedecor_seating/textures/homedecor_office_chair_basic.png similarity index 100% rename from homedecor_office/textures/homedecor_office_chair_basic.png rename to homedecor_seating/textures/homedecor_office_chair_basic.png diff --git a/homedecor_office/textures/homedecor_office_chair_upscale.png b/homedecor_seating/textures/homedecor_office_chair_upscale.png similarity index 100% rename from homedecor_office/textures/homedecor_office_chair_upscale.png rename to homedecor_seating/textures/homedecor_office_chair_upscale.png diff --git a/lrfurn/textures/lrfurn_armchair_inv.png b/homedecor_seating/textures/lrfurn_armchair_inv.png similarity index 100% rename from lrfurn/textures/lrfurn_armchair_inv.png rename to homedecor_seating/textures/lrfurn_armchair_inv.png diff --git a/lrfurn/textures/lrfurn_longsofa_inv.png b/homedecor_seating/textures/lrfurn_longsofa_inv.png similarity index 100% rename from lrfurn/textures/lrfurn_longsofa_inv.png rename to homedecor_seating/textures/lrfurn_longsofa_inv.png diff --git a/lrfurn/textures/lrfurn_sofa_bottom.png b/homedecor_seating/textures/lrfurn_sofa_bottom.png similarity index 100% rename from lrfurn/textures/lrfurn_sofa_bottom.png rename to homedecor_seating/textures/lrfurn_sofa_bottom.png diff --git a/lrfurn/textures/lrfurn_sofa_inv.png b/homedecor_seating/textures/lrfurn_sofa_inv.png similarity index 100% rename from lrfurn/textures/lrfurn_sofa_inv.png rename to homedecor_seating/textures/lrfurn_sofa_inv.png diff --git a/lrfurn/textures/lrfurn_upholstery.png b/homedecor_seating/textures/lrfurn_upholstery.png similarity index 100% rename from lrfurn/textures/lrfurn_upholstery.png rename to homedecor_seating/textures/lrfurn_upholstery.png diff --git a/lrfurn/coffeetable.lua b/homedecor_tables/coffeetable.lua similarity index 62% rename from lrfurn/coffeetable.lua rename to homedecor_tables/coffeetable.lua index 8b095cec..a9b4f200 100644 --- a/lrfurn/coffeetable.lua +++ b/homedecor_tables/coffeetable.lua @@ -1,10 +1,49 @@ +-- formerly lrfurn coffee table component local S = homedecor.gettext +local fdir_to_right = { + { 1, 0 }, + { 0, -1 }, + { -1, 0 }, + { 0, 1 }, +} + +local function check_right(pos, fdir, long, placer) + if not fdir or fdir > 3 then fdir = 0 end + + local pos2 = { x = pos.x + fdir_to_right[fdir+1][1], y=pos.y, z = pos.z + fdir_to_right[fdir+1][2] } + local pos3 = { x = pos.x + fdir_to_right[fdir+1][1] * 2, y=pos.y, z = pos.z + fdir_to_right[fdir+1][2] * 2 } + + local node2 = minetest.get_node(pos2) + if node2 and node2.name ~= "air" then + return false + elseif minetest.is_protected(pos2, placer:get_player_name()) then + if not long then + minetest.chat_send_player(placer:get_player_name(), S("Someone else owns the spot where other end goes!")) + else + minetest.chat_send_player(placer:get_player_name(), S("Someone else owns the spot where the middle or far end goes!")) + end + return false + end + + if long then + local node3 = minetest.get_node(pos3) + if node3 and node3.name ~= "air" then + return false + elseif minetest.is_protected(pos3, placer:get_player_name()) then + minetest.chat_send_player(placer:get_player_name(), S("Someone else owns the spot where the other end goes!")) + return false + end + end + + return true +end + minetest.register_alias("lrfurn:coffeetable_back", "lrfurn:coffeetable") minetest.register_alias("lrfurn:coffeetable_front", "air") -minetest.register_node("lrfurn:coffeetable", { +minetest.register_node(":lrfurn:coffeetable", { description = S("Coffee Table"), drawtype = "nodebox", tiles = {"lrfurn_coffeetable_back.png", "lrfurn_coffeetable_back.png", "lrfurn_coffeetable_back.png", "lrfurn_coffeetable_back.png", "lrfurn_coffeetable_back.png", "lrfurn_coffeetable_back.png"}, @@ -36,7 +75,7 @@ minetest.register_node("lrfurn:coffeetable", { local node = minetest.get_node(pos) local fdir = node.param2 - if lrfurn.check_right(pos, fdir, false, placer) then + if check_right(pos, fdir, false, placer) then minetest.set_node(pos, { name = node.name, param2 = (fdir + 1) % 4 }) else minetest.chat_send_player(placer:get_player_name(), diff --git a/lrfurn/endtable.lua b/homedecor_tables/endtable.lua similarity index 94% rename from lrfurn/endtable.lua rename to homedecor_tables/endtable.lua index 470e907e..c3bba977 100644 --- a/lrfurn/endtable.lua +++ b/homedecor_tables/endtable.lua @@ -1,7 +1,8 @@ +-- formerly lrfurn endtable component local S = homedecor.gettext -minetest.register_node("lrfurn:endtable", { +minetest.register_node(":lrfurn:endtable", { description = S("End Table"), drawtype = "nodebox", tiles = {"lrfurn_coffeetable_back.png", "lrfurn_coffeetable_back.png", "lrfurn_coffeetable_back.png", "lrfurn_coffeetable_back.png", "lrfurn_coffeetable_back.png", "lrfurn_coffeetable_back.png"}, diff --git a/homedecor_tables/init.lua b/homedecor_tables/init.lua index d32b51db..56ae778e 100644 --- a/homedecor_tables/init.lua +++ b/homedecor_tables/init.lua @@ -1,371 +1,6 @@ +local modpath = minetest.get_modpath("homedecor_tables") -local S = homedecor.gettext +dofile(modpath.."/misc.lua") +dofile(modpath.."/endtable.lua") +dofile(modpath.."/coffeetable.lua") --- Various kinds of tables - -local materials = { - { "glass", - S("Small square glass table"), - S("Small round glass table"), - S("Large glass table piece"), - }, - { "wood", - S("Small square wooden table"), - S("Small round wooden table"), - S("Large wooden table piece"), - } -} - -local tables_cbox = { - type = "fixed", - fixed = { -0.5, -0.5, -0.5, 0.5, -0.4375, 0.5 }, -} - -for i, mat in ipairs(materials) do - local m, small_s, small_r, large = unpack(mat) - local s - - if m == "glass" then - s = default.node_sound_glass_defaults() - else - s = default.node_sound_wood_defaults() - end - --- small square tables - - homedecor.register(m.."_table_small_square", { - description = small_s, - mesh = "homedecor_table_small_square.obj", - tiles = { 'homedecor_'..m..'_table_small_square.png' }, - wield_image = 'homedecor_'..m..'_table_small_square_inv.png', - inventory_image = 'homedecor_'..m..'_table_small_square_inv.png', - groups = { snappy = 3 }, - sounds = s, - selection_box = tables_cbox, - collision_box = tables_cbox, - on_place = minetest.rotate_node - }) - --- small round tables - - homedecor.register(m..'_table_small_round', { - description = small_r, - mesh = "homedecor_table_small_round.obj", - tiles = { "homedecor_"..m.."_table_small_round.png" }, - wield_image = 'homedecor_'..m..'_table_small_round_inv.png', - inventory_image = 'homedecor_'..m..'_table_small_round_inv.png', - groups = { snappy = 3 }, - sounds = s, - selection_box = tables_cbox, - collision_box = tables_cbox, - on_place = minetest.rotate_node - }) - --- Large square table pieces - - homedecor.register(m..'_table_large', { - description = large, - tiles = { - 'homedecor_'..m..'_table_large_tb.png', - 'homedecor_'..m..'_table_large_tb.png', - 'homedecor_'..m..'_table_large_edges.png', - 'homedecor_'..m..'_table_large_edges.png', - 'homedecor_'..m..'_table_large_edges.png', - 'homedecor_'..m..'_table_large_edges.png' - }, - wield_image = 'homedecor_'..m..'_table_large_inv.png', - inventory_image = 'homedecor_'..m..'_table_large_inv.png', - groups = { snappy = 3 }, - sounds = s, - node_box = { - type = "fixed", - fixed = { -0.5, -0.5, -0.5, 0.5, -0.4375, 0.5 }, - }, - selection_box = tables_cbox, - on_place = minetest.rotate_node - }) - - minetest.register_alias('homedecor:'..m..'_table_large_b', 'homedecor:'..m..'_table_large') - minetest.register_alias('homedecor:'..m..'_table_small_square_b', 'homedecor:'..m..'_table_small_square') - minetest.register_alias('homedecor:'..m..'_table_small_round_b', 'homedecor:'..m..'_table_small_round') - -end - --- conversion routines for old non-6dfacedir tables - -local tlist_s = {} -local tlist_t = {} -local dirs2 = { 9, 18, 7, 12 } - -for i in ipairs(materials) do - local m = materials[i][1] - table.insert(tlist_s, "homedecor:"..m.."_table_large_s") - table.insert(tlist_s, "homedecor:"..m.."_table_small_square_s") - table.insert(tlist_s, "homedecor:"..m.."_table_small_round_s") - - table.insert(tlist_t, "homedecor:"..m.."_table_large_t") - table.insert(tlist_t, "homedecor:"..m.."_table_small_square_t") - table.insert(tlist_t, "homedecor:"..m.."_table_small_round_t") -end - -minetest.register_abm({ - nodenames = tlist_s, - interval = 1, - chance = 1, - action = function(pos, node, active_object_count, active_object_count_wider) - local newnode = string.sub(node.name, 1, -3) -- strip the "_s" from the name - local fdir = node.param2 or 0 - minetest.set_node(pos, {name = newnode, param2 = dirs2[fdir+1]}) - end -}) - -minetest.register_abm({ - nodenames = tlist_t, - interval = 1, - chance = 1, - action = function(pos, node, active_object_count, active_object_count_wider) - local newnode = string.sub(node.name, 1, -3) -- strip the "_t" from the name - minetest.set_node(pos, { name = newnode, param2 = 20 }) - end -}) - --- other tables - -homedecor.register("utility_table_top", { - description = S("Utility Table"), - tiles = { - 'homedecor_utility_table_tb.png', - 'homedecor_utility_table_tb.png', - 'homedecor_utility_table_edges.png', - 'homedecor_utility_table_edges.png', - 'homedecor_utility_table_edges.png', - 'homedecor_utility_table_edges.png' - }, - wield_image = 'homedecor_utility_table_tb.png', - inventory_image = 'homedecor_utility_table_tb.png', - groups = { snappy = 3 }, - sounds = default.node_sound_wood_defaults(), - paramtype2 = "wallmounted", - node_box = { - type = "wallmounted", - wall_bottom = { -0.5, -0.5, -0.5, 0.5, -0.4375, 0.5 }, - wall_top = { -0.5, 0.4375, -0.5, 0.5, 0.5, 0.5 }, - wall_side = { -0.5, -0.5, -0.5, -0.4375, 0.5, 0.5 }, - }, - selection_box = { - type = "wallmounted", - wall_bottom = { -0.5, -0.5, -0.5, 0.5, -0.4375, 0.5 }, - wall_top = { -0.5, 0.4375, -0.5, 0.5, 0.5, 0.5 }, - wall_side = { -0.5, -0.5, -0.5, -0.4375, 0.5, 0.5 }, - }, -}) - --- Various kinds of table legs - --- local above -materials = { - { "brass", S("brass") }, - { "wrought_iron", S("wrought iron") }, -} - -for _, t in ipairs(materials) do -local name, desc = unpack(t) -homedecor.register("table_legs_"..name, { - description = S("Table Legs (@1)", desc), - drawtype = "plantlike", - tiles = {"homedecor_table_legs_"..name..".png"}, - inventory_image = "homedecor_table_legs_"..name..".png", - wield_image = "homedecor_table_legs_"..name..".png", - walkable = false, - groups = {snappy=3}, - sounds = default.node_sound_wood_defaults(), - selection_box = { - type = "fixed", - fixed = { -0.37, -0.5, -0.37, 0.37, 0.5, 0.37 } - }, -}) -end - -homedecor.register("utility_table_legs", { - description = S("Legs for Utility Table"), - drawtype = "plantlike", - tiles = { 'homedecor_utility_table_legs.png' }, - inventory_image = 'homedecor_utility_table_legs_inv.png', - wield_image = 'homedecor_utility_table_legs.png', - walkable = false, - groups = { snappy = 3 }, - sounds = default.node_sound_wood_defaults(), - selection_box = { - type = "fixed", - fixed = { -0.37, -0.5, -0.37, 0.37, 0.5, 0.37 } - }, -}) - --- crafting - - -minetest.register_craft( { - output = "homedecor:glass_table_small_round_b 15", - recipe = { - { "", "default:glass", "" }, - { "default:glass", "default:glass", "default:glass" }, - { "", "default:glass", "" }, - }, -}) - -minetest.register_craft( { - output = "homedecor:glass_table_small_square_b 2", - recipe = { - {"homedecor:glass_table_small_round", "homedecor:glass_table_small_round" }, - } -}) - -minetest.register_craft( { - output = "homedecor:glass_table_large_b 2", - recipe = { - { "homedecor:glass_table_small_square", "homedecor:glass_table_small_square" }, - } -}) - --- - -minetest.register_craft( { - output = "homedecor:wood_table_small_round_b 15", - recipe = { - { "", "group:wood", "" }, - { "group:wood", "group:wood", "group:wood" }, - { "", "group:wood", "" }, - }, -}) - -minetest.register_craft( { - output = "homedecor:wood_table_small_square_b 2", - recipe = { - { "homedecor:wood_table_small_round","homedecor:wood_table_small_round" }, - } -}) - -minetest.register_craft( { - output = "homedecor:wood_table_large_b 2", - recipe = { - { "homedecor:wood_table_small_square", "homedecor:wood_table_small_square" }, - } -}) - --- - -minetest.register_craft({ - type = "fuel", - recipe = "homedecor:wood_table_small_round_b", - burntime = 30, -}) - -minetest.register_craft({ - type = "fuel", - recipe = "homedecor:wood_table_small_square_b", - burntime = 30, -}) - -minetest.register_craft({ - type = "fuel", - recipe = "homedecor:wood_table_large_b", - burntime = 30, -}) - - -minetest.register_craft( { - output = "homedecor:table_legs_wrought_iron 3", - recipe = { - { "", "default:iron_lump", "" }, - { "", "default:iron_lump", "" }, - { "default:iron_lump", "default:iron_lump", "default:iron_lump" }, - }, -}) - -minetest.register_craft( { - output = "homedecor:table_legs_brass 3", - recipe = { - { "", "basic_materials:brass_ingot", "" }, - { "", "basic_materials:brass_ingot", "" }, - { "basic_materials:brass_ingot", "basic_materials:brass_ingot", "basic_materials:brass_ingot" } - }, -}) - -minetest.register_craft( { - output = "homedecor:utility_table_legs", - recipe = { - { "group:stick", "group:stick", "group:stick" }, - { "group:stick", "", "group:stick" }, - { "group:stick", "", "group:stick" }, - }, -}) - -minetest.register_craft({ - type = "fuel", - recipe = "homedecor:utility_table_legs", - burntime = 30, -}) - - - --- recycling - -minetest.register_craft({ - type = "shapeless", - output = "vessels:glass_fragments", - recipe = { - "homedecor:glass_table_small_round", - "homedecor:glass_table_small_round", - "homedecor:glass_table_small_round" - } -}) - -minetest.register_craft({ - type = "shapeless", - output = "vessels:glass_fragments", - recipe = { - "homedecor:glass_table_small_square", - "homedecor:glass_table_small_square", - "homedecor:glass_table_small_square" - } -}) - -minetest.register_craft({ - type = "shapeless", - output = "vessels:glass_fragments", - recipe = { - "homedecor:glass_table_large", - "homedecor:glass_table_large", - "homedecor:glass_table_large" - } -}) - -minetest.register_craft({ - type = "shapeless", - output = "default:stick 4", - recipe = { - "homedecor:wood_table_small_round", - "homedecor:wood_table_small_round", - "homedecor:wood_table_small_round" - } -}) - -minetest.register_craft({ - type = "shapeless", - output = "default:stick 4", - recipe = { - "homedecor:wood_table_small_square", - "homedecor:wood_table_small_square", - "homedecor:wood_table_small_square" - } -}) - -minetest.register_craft({ - type = "shapeless", - output = "default:stick 4", - recipe = { - "homedecor:wood_table_large", - "homedecor:wood_table_large", - "homedecor:wood_table_large" - } -}) diff --git a/homedecor_tables/misc.lua b/homedecor_tables/misc.lua new file mode 100644 index 00000000..beb94c34 --- /dev/null +++ b/homedecor_tables/misc.lua @@ -0,0 +1,370 @@ +-- formerly homedecor's misc tables component + +local S = homedecor.gettext + +local materials = { + { "glass", + S("Small square glass table"), + S("Small round glass table"), + S("Large glass table piece"), + }, + { "wood", + S("Small square wooden table"), + S("Small round wooden table"), + S("Large wooden table piece"), + } +} + +local tables_cbox = { + type = "fixed", + fixed = { -0.5, -0.5, -0.5, 0.5, -0.4375, 0.5 }, +} + +for i, mat in ipairs(materials) do + local m, small_s, small_r, large = unpack(mat) + local s + + if m == "glass" then + s = default.node_sound_glass_defaults() + else + s = default.node_sound_wood_defaults() + end + +-- small square tables + + homedecor.register(m.."_table_small_square", { + description = small_s, + mesh = "homedecor_table_small_square.obj", + tiles = { 'homedecor_'..m..'_table_small_square.png' }, + wield_image = 'homedecor_'..m..'_table_small_square_inv.png', + inventory_image = 'homedecor_'..m..'_table_small_square_inv.png', + groups = { snappy = 3 }, + sounds = s, + selection_box = tables_cbox, + collision_box = tables_cbox, + on_place = minetest.rotate_node + }) + +-- small round tables + + homedecor.register(m..'_table_small_round', { + description = small_r, + mesh = "homedecor_table_small_round.obj", + tiles = { "homedecor_"..m.."_table_small_round.png" }, + wield_image = 'homedecor_'..m..'_table_small_round_inv.png', + inventory_image = 'homedecor_'..m..'_table_small_round_inv.png', + groups = { snappy = 3 }, + sounds = s, + selection_box = tables_cbox, + collision_box = tables_cbox, + on_place = minetest.rotate_node + }) + +-- Large square table pieces + + homedecor.register(m..'_table_large', { + description = large, + tiles = { + 'homedecor_'..m..'_table_large_tb.png', + 'homedecor_'..m..'_table_large_tb.png', + 'homedecor_'..m..'_table_large_edges.png', + 'homedecor_'..m..'_table_large_edges.png', + 'homedecor_'..m..'_table_large_edges.png', + 'homedecor_'..m..'_table_large_edges.png' + }, + wield_image = 'homedecor_'..m..'_table_large_inv.png', + inventory_image = 'homedecor_'..m..'_table_large_inv.png', + groups = { snappy = 3 }, + sounds = s, + node_box = { + type = "fixed", + fixed = { -0.5, -0.5, -0.5, 0.5, -0.4375, 0.5 }, + }, + selection_box = tables_cbox, + on_place = minetest.rotate_node + }) + + minetest.register_alias('homedecor:'..m..'_table_large_b', 'homedecor:'..m..'_table_large') + minetest.register_alias('homedecor:'..m..'_table_small_square_b', 'homedecor:'..m..'_table_small_square') + minetest.register_alias('homedecor:'..m..'_table_small_round_b', 'homedecor:'..m..'_table_small_round') + +end + +-- conversion routines for old non-6dfacedir tables + +local tlist_s = {} +local tlist_t = {} +local dirs2 = { 9, 18, 7, 12 } + +for i in ipairs(materials) do + local m = materials[i][1] + table.insert(tlist_s, "homedecor:"..m.."_table_large_s") + table.insert(tlist_s, "homedecor:"..m.."_table_small_square_s") + table.insert(tlist_s, "homedecor:"..m.."_table_small_round_s") + + table.insert(tlist_t, "homedecor:"..m.."_table_large_t") + table.insert(tlist_t, "homedecor:"..m.."_table_small_square_t") + table.insert(tlist_t, "homedecor:"..m.."_table_small_round_t") +end + +minetest.register_abm({ + nodenames = tlist_s, + interval = 1, + chance = 1, + action = function(pos, node, active_object_count, active_object_count_wider) + local newnode = string.sub(node.name, 1, -3) -- strip the "_s" from the name + local fdir = node.param2 or 0 + minetest.set_node(pos, {name = newnode, param2 = dirs2[fdir+1]}) + end +}) + +minetest.register_abm({ + nodenames = tlist_t, + interval = 1, + chance = 1, + action = function(pos, node, active_object_count, active_object_count_wider) + local newnode = string.sub(node.name, 1, -3) -- strip the "_t" from the name + minetest.set_node(pos, { name = newnode, param2 = 20 }) + end +}) + +-- other tables + +homedecor.register("utility_table_top", { + description = S("Utility Table"), + tiles = { + 'homedecor_utility_table_tb.png', + 'homedecor_utility_table_tb.png', + 'homedecor_utility_table_edges.png', + 'homedecor_utility_table_edges.png', + 'homedecor_utility_table_edges.png', + 'homedecor_utility_table_edges.png' + }, + wield_image = 'homedecor_utility_table_tb.png', + inventory_image = 'homedecor_utility_table_tb.png', + groups = { snappy = 3 }, + sounds = default.node_sound_wood_defaults(), + paramtype2 = "wallmounted", + node_box = { + type = "wallmounted", + wall_bottom = { -0.5, -0.5, -0.5, 0.5, -0.4375, 0.5 }, + wall_top = { -0.5, 0.4375, -0.5, 0.5, 0.5, 0.5 }, + wall_side = { -0.5, -0.5, -0.5, -0.4375, 0.5, 0.5 }, + }, + selection_box = { + type = "wallmounted", + wall_bottom = { -0.5, -0.5, -0.5, 0.5, -0.4375, 0.5 }, + wall_top = { -0.5, 0.4375, -0.5, 0.5, 0.5, 0.5 }, + wall_side = { -0.5, -0.5, -0.5, -0.4375, 0.5, 0.5 }, + }, +}) + +-- Various kinds of table legs + +-- local above +materials = { + { "brass", S("brass") }, + { "wrought_iron", S("wrought iron") }, +} + +for _, t in ipairs(materials) do +local name, desc = unpack(t) +homedecor.register("table_legs_"..name, { + description = S("Table Legs (@1)", desc), + drawtype = "plantlike", + tiles = {"homedecor_table_legs_"..name..".png"}, + inventory_image = "homedecor_table_legs_"..name..".png", + wield_image = "homedecor_table_legs_"..name..".png", + walkable = false, + groups = {snappy=3}, + sounds = default.node_sound_wood_defaults(), + selection_box = { + type = "fixed", + fixed = { -0.37, -0.5, -0.37, 0.37, 0.5, 0.37 } + }, +}) +end + +homedecor.register("utility_table_legs", { + description = S("Legs for Utility Table"), + drawtype = "plantlike", + tiles = { 'homedecor_utility_table_legs.png' }, + inventory_image = 'homedecor_utility_table_legs_inv.png', + wield_image = 'homedecor_utility_table_legs.png', + walkable = false, + groups = { snappy = 3 }, + sounds = default.node_sound_wood_defaults(), + selection_box = { + type = "fixed", + fixed = { -0.37, -0.5, -0.37, 0.37, 0.5, 0.37 } + }, +}) + +-- crafting + + +minetest.register_craft( { + output = "homedecor:glass_table_small_round_b 15", + recipe = { + { "", "default:glass", "" }, + { "default:glass", "default:glass", "default:glass" }, + { "", "default:glass", "" }, + }, +}) + +minetest.register_craft( { + output = "homedecor:glass_table_small_square_b 2", + recipe = { + {"homedecor:glass_table_small_round", "homedecor:glass_table_small_round" }, + } +}) + +minetest.register_craft( { + output = "homedecor:glass_table_large_b 2", + recipe = { + { "homedecor:glass_table_small_square", "homedecor:glass_table_small_square" }, + } +}) + +-- + +minetest.register_craft( { + output = "homedecor:wood_table_small_round_b 15", + recipe = { + { "", "group:wood", "" }, + { "group:wood", "group:wood", "group:wood" }, + { "", "group:wood", "" }, + }, +}) + +minetest.register_craft( { + output = "homedecor:wood_table_small_square_b 2", + recipe = { + { "homedecor:wood_table_small_round","homedecor:wood_table_small_round" }, + } +}) + +minetest.register_craft( { + output = "homedecor:wood_table_large_b 2", + recipe = { + { "homedecor:wood_table_small_square", "homedecor:wood_table_small_square" }, + } +}) + +-- + +minetest.register_craft({ + type = "fuel", + recipe = "homedecor:wood_table_small_round_b", + burntime = 30, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "homedecor:wood_table_small_square_b", + burntime = 30, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "homedecor:wood_table_large_b", + burntime = 30, +}) + + +minetest.register_craft( { + output = "homedecor:table_legs_wrought_iron 3", + recipe = { + { "", "default:iron_lump", "" }, + { "", "default:iron_lump", "" }, + { "default:iron_lump", "default:iron_lump", "default:iron_lump" }, + }, +}) + +minetest.register_craft( { + output = "homedecor:table_legs_brass 3", + recipe = { + { "", "basic_materials:brass_ingot", "" }, + { "", "basic_materials:brass_ingot", "" }, + { "basic_materials:brass_ingot", "basic_materials:brass_ingot", "basic_materials:brass_ingot" } + }, +}) + +minetest.register_craft( { + output = "homedecor:utility_table_legs", + recipe = { + { "group:stick", "group:stick", "group:stick" }, + { "group:stick", "", "group:stick" }, + { "group:stick", "", "group:stick" }, + }, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "homedecor:utility_table_legs", + burntime = 30, +}) + + + +-- recycling + +minetest.register_craft({ + type = "shapeless", + output = "vessels:glass_fragments", + recipe = { + "homedecor:glass_table_small_round", + "homedecor:glass_table_small_round", + "homedecor:glass_table_small_round" + } +}) + +minetest.register_craft({ + type = "shapeless", + output = "vessels:glass_fragments", + recipe = { + "homedecor:glass_table_small_square", + "homedecor:glass_table_small_square", + "homedecor:glass_table_small_square" + } +}) + +minetest.register_craft({ + type = "shapeless", + output = "vessels:glass_fragments", + recipe = { + "homedecor:glass_table_large", + "homedecor:glass_table_large", + "homedecor:glass_table_large" + } +}) + +minetest.register_craft({ + type = "shapeless", + output = "default:stick 4", + recipe = { + "homedecor:wood_table_small_round", + "homedecor:wood_table_small_round", + "homedecor:wood_table_small_round" + } +}) + +minetest.register_craft({ + type = "shapeless", + output = "default:stick 4", + recipe = { + "homedecor:wood_table_small_square", + "homedecor:wood_table_small_square", + "homedecor:wood_table_small_square" + } +}) + +minetest.register_craft({ + type = "shapeless", + output = "default:stick 4", + recipe = { + "homedecor:wood_table_large", + "homedecor:wood_table_large", + "homedecor:wood_table_large" + } +}) diff --git a/lrfurn/textures/lrfurn_coffeetable_back.png b/homedecor_tables/textures/lrfurn_coffeetable_back.png similarity index 100% rename from lrfurn/textures/lrfurn_coffeetable_back.png rename to homedecor_tables/textures/lrfurn_coffeetable_back.png diff --git a/lrfurn/textures/lrfurn_coffeetable_front.png b/homedecor_tables/textures/lrfurn_coffeetable_front.png similarity index 100% rename from lrfurn/textures/lrfurn_coffeetable_front.png rename to homedecor_tables/textures/lrfurn_coffeetable_front.png