diff options
Diffstat (limited to 'homedecor_modpack/homedecor/office.lua')
-rw-r--r-- | homedecor_modpack/homedecor/office.lua | 118 |
1 files changed, 118 insertions, 0 deletions
diff --git a/homedecor_modpack/homedecor/office.lua b/homedecor_modpack/homedecor/office.lua new file mode 100644 index 0000000..1da21dc --- /dev/null +++ b/homedecor_modpack/homedecor/office.lua @@ -0,0 +1,118 @@ +local S = homedecor.gettext + +homedecor.register("filing_cabinet", { + description = S("Filing Cabinet"), + mesh = "homedecor_filing_cabinet.obj", + tiles = { + homedecor.plain_wood, + "homedecor_filing_cabinet_front.png", + "homedecor_filing_cabinet_bottom.png" + }, + groups = { snappy = 3 }, + sounds = default.node_sound_wood_defaults(), + infotext=S("Filing cabinet"), + inventory = { + size=16, + lockable=true, + }, +}) + +local desk_cbox = { + type = "fixed", + fixed = { -0.5, -0.5, -0.5, 1.5, 0.5, 0.5 } +} +homedecor.register("desk", { + description = "Desk", + mesh = "homedecor_desk.obj", + tiles = { + homedecor.plain_wood, + "homedecor_desk_drawers.png", + "homedecor_generic_metal_black.png", + }, + inventory_image = "homedecor_desk_inv.png", + selection_box = desk_cbox, + collision_box = desk_cbox, + sounds = default.node_sound_wood_defaults(), + groups = { snappy = 3 }, + expand = { right="placeholder" }, + inventory = { + size=24, + lockable=true, + }, +}) +minetest.register_alias("homedecor:desk_r", "air") + +local globe_cbox = { + type = "fixed", + fixed = { -0.4, -0.5, -0.3, 0.3, 0.3, 0.3 } +} + +homedecor.register("desk_globe", { + description = "Desk globe", + mesh = "homedecor_desk_globe.obj", + tiles = { + "homedecor_generic_wood_red.png", + "homedecor_generic_metal_black.png^[brighten", + "homedecor_earth.png" + }, + inventory_image = "homedecor_desk_globe_inv.png", + selection_box = globe_cbox, + collision_box = globe_cbox, + groups = {choppy=2}, + walkable = false, + sounds = default.node_sound_wood_defaults(), +}) + +homedecor.register("calendar", { + description = "Calendar", + mesh = "homedecor_calendar.obj", + tiles = {"homedecor_calendar.png"}, + inventory_image = "homedecor_calendar_inv.png", + wield_image = "homedecor_calendar_inv.png", + paramtype2 = "wallmounted", + walkable = false, + selection_box = { + type = "wallmounted", + wall_side = { -8/16, -8/16, -4/16, -5/16, 5/16, 4/16 }, + wall_bottom = { -4/16, -8/16, -8/16, 4/16, -5/16, 5/16 }, + wall_top = { -4/16, 5/16, -8/16, 4/16, 8/16, 5/16 } + }, + groups = {choppy=2,attached_node=1}, + legacy_wallmounted = true, + sounds = default.node_sound_defaults(), + infotext = "Date (right-click to update):\n" .. os.date("%Y-%m-%d"), -- ISO 8601 format + on_rightclick = function(pos, node, clicker) + local meta = minetest.get_meta(pos) + local date = os.date("%Y-%m-%d") + meta:set_string("infotext", "Date (right-click to update):\n"..date) + 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 + } +} + +for _, c in pairs({"basic", "upscale"}) do + homedecor.register("office_chair_"..c, { + description = "Office chair ("..c..")", + drawtype = "mesh", + tiles = { "homedecor_office_chair_"..c..".png" }, + mesh = "homedecor_office_chair_"..c..".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 |