forked from mtcontrib/homedecor_modpack
		
	Any of these new submods can be run without any other components that were once part of the big "homedecor" mod, other than homedecor_common and homedecor_i18n Reduced dependencies where possible, but each submod still has its various dependencies more or less the same as before, i.e. some need basic_materials, others need unifieddyes, some need building_blocks, and so on. All of the stuff that used to be under homedecor/handlers got moved to homedecor_common, as did any models and/or textures that are used by more than one other homedecor component. All the miscellaneous items that didn't warrant their own mod ended up in homedecor_misc, which can also be thought of as the remains of the original "homedecor" mod, renamed.
		
			
				
	
	
		
			203 lines
		
	
	
		
			5.5 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
			
		
		
	
	
			203 lines
		
	
	
		
			5.5 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
| 
 | |
| local S = homedecor_i18n.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" }
 | |
| 	},
 | |
| })
 | |
| 
 |