summaryrefslogtreecommitdiff
path: root/homedecor/office.lua
diff options
context:
space:
mode:
Diffstat (limited to 'homedecor/office.lua')
-rw-r--r--homedecor/office.lua118
1 files changed, 118 insertions, 0 deletions
diff --git a/homedecor/office.lua b/homedecor/office.lua
new file mode 100644
index 0000000..1da21dc
--- /dev/null
+++ b/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