summaryrefslogtreecommitdiff
path: root/homedecor_office/init.lua
diff options
context:
space:
mode:
Diffstat (limited to 'homedecor_office/init.lua')
-rw-r--r--homedecor_office/init.lua202
1 files changed, 202 insertions, 0 deletions
diff --git a/homedecor_office/init.lua b/homedecor_office/init.lua
new file mode 100644
index 0000000..e6deb15
--- /dev/null
+++ b/homedecor_office/init.lua
@@ -0,0 +1,202 @@
+
+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 = S("Desk"),
+ mesh = "homedecor_desk.obj",
+ tiles = {
+ homedecor.plain_wood,
+ "homedecor_desk_drawers.png",
+ { name = "homedecor_generic_metal.png", color = homedecor.color_black }
+ },
+ 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 = S("Desk globe"),
+ mesh = "homedecor_desk_globe.obj",
+ tiles = {
+ "homedecor_generic_wood_red.png",
+ { name = "homedecor_generic_metal.png", color = homedecor.color_med_grey },
+ "homedecor_earth.png"
+ },
+ inventory_image = "homedecor_desk_globe_inv.png",
+ selection_box = globe_cbox,
+ collision_box = globe_cbox,
+ groups = {choppy=2, oddly_breakable_by_hand=2},
+ walkable = false,
+ sounds = default.node_sound_wood_defaults(),
+})
+
+homedecor.register("calendar", {
+ description = S("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 = S("Date (right-click to update):\n@1", os.date("%Y-%m-%d")), -- ISO 8601 format
+ on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
+ local meta = minetest.get_meta(pos)
+ local date = os.date("%Y-%m-%d")
+ meta:set_string("infotext", S("Date (right-click to update):\n@1", date))
+ return itemstack
+ 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
+
+
+minetest.register_craft({
+ output = "homedecor:desk",
+ recipe = {
+ { "stairs:slab_wood", "stairs:slab_wood", "stairs:slab_wood" },
+ { "homedecor:drawer_small", "default:wood", "default:wood" },
+ { "homedecor:drawer_small", "", "default:wood" },
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:desk",
+ recipe = {
+ { "moreblocks:slab_wood", "moreblocks:slab_wood", "moreblocks:slab_wood" },
+ { "homedecor:drawer_small", "default:wood", "default:wood" },
+ { "homedecor:drawer_small", "", "default:wood" },
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:filing_cabinet",
+ recipe = {
+ { "", "default:wood", "" },
+ { "default:wood", "homedecor:drawer_small", "default:wood" },
+ { "", "default:wood", "" },
+ },
+})
+
+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 = {
+ { "","dye:red","" },
+ { "","dye:black","" },
+ { "","default:paper","" }
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:desk_globe",
+ recipe = {
+ { "group:stick", "basic_materials:plastic_sheet", "dye:green" },
+ { "group:stick", "basic_materials:plastic_sheet", "basic_materials:plastic_sheet" },
+ { "group:stick", "stairs:slab_wood", "dye:blue" }
+ },
+})
+
+minetest.register_craft({
+ output = "homedecor:desk_globe",
+ recipe = {
+ { "group:stick", "basic_materials:plastic_sheet", "dye:green" },
+ { "group:stick", "basic_materials:plastic_sheet", "basic_materials:plastic_sheet" },
+ { "group:stick", "moreblocks:slab_wood", "dye:blue" }
+ },
+})
+