Merge remote-tracking branch 'upstream/master'
@@ -239,9 +239,7 @@ local function taps_on_rightclick(pos, node, clicker, itemstack, pointed_thing)
 | 
			
		||||
	local below = minetest.get_node_or_nil({x=pos.x, y=pos.y-1, z=pos.z})
 | 
			
		||||
	if below and
 | 
			
		||||
	  below.name == "homedecor:shower_tray" or
 | 
			
		||||
	  below.name == "homedecor:sink" or
 | 
			
		||||
	  below.name == "homedecor:kitchen_cabinet_with_sink" or
 | 
			
		||||
	  below.name == "homedecor:kitchen_cabinet_with_sink_locked" then
 | 
			
		||||
	  string.find(below.name, "homedecor:.*sink") then
 | 
			
		||||
		local particledef = {
 | 
			
		||||
			outlet      = { x = 0, y = -0.44, z = 0.28 },
 | 
			
		||||
			velocity_x  = { min = -0.1, max = 0.1 },
 | 
			
		||||
 
 | 
			
		||||
@@ -9,16 +9,17 @@ homedecor.box = {
 | 
			
		||||
	-- bottom slab (starting from -y) with height optionally shifted upwards
 | 
			
		||||
	slab_y = function(height, shift) return { -0.5, -0.5+(shift or 0), -0.5, 0.5, -0.5+height+(shift or 0), 0.5 } end,
 | 
			
		||||
	-- slab starting from -z (+z with negative depth)
 | 
			
		||||
	slab_z = function(depth)
 | 
			
		||||
	slab_z = function(depth, shift)
 | 
			
		||||
		-- for consistency with the other functions here, we have to assume that a "z" slab starts from -z and extends by depth,
 | 
			
		||||
		-- but since conventionally a lot of nodes place slabs against +z for player convenience, we define
 | 
			
		||||
		-- a "negative" depth as a depth extending from the other side, i.e. +z
 | 
			
		||||
		local s = shift or 0
 | 
			
		||||
		if depth > 0 then
 | 
			
		||||
			-- slab starting from -z
 | 
			
		||||
			return { -0.5, -0.5, -0.5, 0.5, 0.5, -0.5+depth }
 | 
			
		||||
			return { -0.5, -0.5, -0.5+s, 0.5, 0.5, -0.5+depth+s }
 | 
			
		||||
		else
 | 
			
		||||
			-- slab starting from +z (z1=0.5-(-depth))
 | 
			
		||||
			return { -0.5, -0.5, 0.5+depth, 0.5, 0.5, 0.5 }
 | 
			
		||||
			return { -0.5, -0.5, 0.5+depth+s, 0.5, 0.5, 0.5+s }
 | 
			
		||||
		end
 | 
			
		||||
	end,
 | 
			
		||||
	bar_y = function(radius) return {-radius, -0.5, -radius, radius, 0.5, radius} end,
 | 
			
		||||
 
 | 
			
		||||
@@ -1,38 +1,5 @@
 | 
			
		||||
local S = minetest.get_translator("homedecor_furniture")
 | 
			
		||||
 | 
			
		||||
local table_colors = {
 | 
			
		||||
	{ "",           S("Table"),           homedecor.plain_wood },
 | 
			
		||||
	{ "_mahogany",  S("Mahogany Table"),  homedecor.mahogany_wood },
 | 
			
		||||
	{ "_white",     S("White Table"),     homedecor.white_wood }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
for _, t in ipairs(table_colors) do
 | 
			
		||||
	local suffix, desc, texture = unpack(t)
 | 
			
		||||
 | 
			
		||||
	homedecor.register("table"..suffix, {
 | 
			
		||||
		description = desc,
 | 
			
		||||
		tiles = { texture },
 | 
			
		||||
		node_box = {
 | 
			
		||||
			type = "fixed",
 | 
			
		||||
			fixed = {
 | 
			
		||||
				{ -0.4, -0.5, -0.4, -0.3,  0.4, -0.3 },
 | 
			
		||||
				{  0.3, -0.5, -0.4,  0.4,  0.4, -0.3 },
 | 
			
		||||
				{ -0.4, -0.5,  0.3, -0.3,  0.4,  0.4 },
 | 
			
		||||
				{  0.3, -0.5,  0.3,  0.4,  0.4,  0.4 },
 | 
			
		||||
				{ -0.5,  0.4, -0.5,  0.5,  0.5,  0.5 },
 | 
			
		||||
				{ -0.4, -0.2, -0.3, -0.3, -0.1,  0.3 },
 | 
			
		||||
				{  0.3, -0.2, -0.4,  0.4, -0.1,  0.3 },
 | 
			
		||||
				{ -0.3, -0.2, -0.4,  0.4, -0.1, -0.3 },
 | 
			
		||||
				{ -0.3, -0.2,  0.3,  0.3, -0.1,  0.4 },
 | 
			
		||||
			},
 | 
			
		||||
		},
 | 
			
		||||
		groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2},
 | 
			
		||||
		sounds = default.node_sound_wood_defaults(),
 | 
			
		||||
	})
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
local ob_cbox = {
 | 
			
		||||
	type = "fixed",
 | 
			
		||||
	fixed = { -0.5, -0.5, 0, 0.5, 0.5, 0.5 }
 | 
			
		||||
@@ -69,224 +36,3 @@ homedecor.register("wall_shelf", {
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
-- Crafts
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
minetest.register_craft({
 | 
			
		||||
	output = "homedecor:table",
 | 
			
		||||
	recipe = {
 | 
			
		||||
		{ "group:wood","group:wood", "group:wood" },
 | 
			
		||||
		{ "group:stick", "", "group:stick" },
 | 
			
		||||
	},
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
minetest.register_craft({
 | 
			
		||||
	type = "shapeless",
 | 
			
		||||
	output = "homedecor:table_mahogany",
 | 
			
		||||
	recipe = {
 | 
			
		||||
		"homedecor:table",
 | 
			
		||||
		"dye:brown",
 | 
			
		||||
	},
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
minetest.register_craft({
 | 
			
		||||
	type = "shapeless",
 | 
			
		||||
	output = "homedecor:table_mahogany",
 | 
			
		||||
	recipe = {
 | 
			
		||||
		"homedecor:table",
 | 
			
		||||
		"unifieddyes:dark_orange",
 | 
			
		||||
	},
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
minetest.register_craft({
 | 
			
		||||
	type = "shapeless",
 | 
			
		||||
	output = "homedecor:table_white",
 | 
			
		||||
	recipe = {
 | 
			
		||||
		"homedecor:table",
 | 
			
		||||
		"dye:white",
 | 
			
		||||
	},
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
minetest.register_craft({
 | 
			
		||||
	type = "fuel",
 | 
			
		||||
	recipe = "homedecor:table",
 | 
			
		||||
	burntime = 30,
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
minetest.register_craft({
 | 
			
		||||
	type = "fuel",
 | 
			
		||||
	recipe = "homedecor:table_mahogany",
 | 
			
		||||
	burntime = 30,
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
minetest.register_craft({
 | 
			
		||||
	type = "fuel",
 | 
			
		||||
	recipe = "homedecor:table_white",
 | 
			
		||||
	burntime = 30,
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
minetest.register_craft({
 | 
			
		||||
	output = "homedecor:standing_lamp_off",
 | 
			
		||||
	recipe = {
 | 
			
		||||
		{"homedecor:table_lamp_off"},
 | 
			
		||||
		{"group:stick"},
 | 
			
		||||
		{"group:stick"},
 | 
			
		||||
	},
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
unifieddyes.register_color_craft({
 | 
			
		||||
	output = "homedecor:standing_lamp_off",
 | 
			
		||||
	palette = "extended",
 | 
			
		||||
	type = "shapeless",
 | 
			
		||||
	neutral_node = "homedecor:standing_lamp_off",
 | 
			
		||||
	recipe = {
 | 
			
		||||
		"NEUTRAL_NODE",
 | 
			
		||||
		"MAIN_DYE"
 | 
			
		||||
	}
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
minetest.register_craft({
 | 
			
		||||
	type = "fuel",
 | 
			
		||||
	recipe = "homedecor:table_lamp_off",
 | 
			
		||||
	burntime = 10,
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
minetest.register_craft({
 | 
			
		||||
	output = "homedecor:table_lamp_off",
 | 
			
		||||
	recipe = {
 | 
			
		||||
		{ "wool:white", "default:torch", "wool:white"},
 | 
			
		||||
		{ "", "group:stick", ""},
 | 
			
		||||
		{ "", "stairs:slab_wood", "" },
 | 
			
		||||
	},
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
minetest.register_craft({
 | 
			
		||||
	output = "homedecor:table_lamp_off",
 | 
			
		||||
	recipe = {
 | 
			
		||||
		{ "cottages:wool", "default:torch", "cottages:wool"},
 | 
			
		||||
		{ "", "group:stick", ""},
 | 
			
		||||
		{ "", "stairs:slab_wood", "" },
 | 
			
		||||
	},
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
minetest.register_craft({
 | 
			
		||||
	output = "homedecor:table_lamp_off",
 | 
			
		||||
	recipe = {
 | 
			
		||||
		{ "wool:white", "default:torch", "wool:white"},
 | 
			
		||||
		{ "", "group:stick", ""},
 | 
			
		||||
		{ "", "moreblocks:slab_wood", "" },
 | 
			
		||||
	},
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
minetest.register_craft({
 | 
			
		||||
	output = "homedecor:table_lamp_off",
 | 
			
		||||
	recipe = {
 | 
			
		||||
		{ "cottages:wool", "default:torch", "cottages:wool"},
 | 
			
		||||
		{ "", "group:stick", ""},
 | 
			
		||||
		{ "", "moreblocks:slab_wood", "" },
 | 
			
		||||
	},
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
unifieddyes.register_color_craft({
 | 
			
		||||
	output = "homedecor:table_lamp_off",
 | 
			
		||||
	palette = "extended",
 | 
			
		||||
	type = "shapeless",
 | 
			
		||||
	neutral_node = "homedecor:table_lamp_off",
 | 
			
		||||
	recipe = {
 | 
			
		||||
		"NEUTRAL_NODE",
 | 
			
		||||
		"MAIN_DYE"
 | 
			
		||||
	}
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
minetest.register_craft({
 | 
			
		||||
	output = "homedecor:toilet",
 | 
			
		||||
	recipe = {
 | 
			
		||||
		{ "","","bucket:bucket_water"},
 | 
			
		||||
		{ "group:marble","group:marble", "group:marble" },
 | 
			
		||||
		{ "", "bucket:bucket_empty", "" },
 | 
			
		||||
	},
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
minetest.register_craft({
 | 
			
		||||
	output = "homedecor:sink",
 | 
			
		||||
	recipe = {
 | 
			
		||||
		{ "group:marble","bucket:bucket_empty", "group:marble" },
 | 
			
		||||
		{ "", "group:marble", "" }
 | 
			
		||||
	},
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
minetest.register_craft({
 | 
			
		||||
	output = "homedecor:taps",
 | 
			
		||||
	recipe = {
 | 
			
		||||
		{ "default:steel_ingot","bucket:bucket_water", "default:steel_ingot" },
 | 
			
		||||
	},
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
minetest.register_craft({
 | 
			
		||||
	output = "homedecor:taps_brass",
 | 
			
		||||
	recipe = {
 | 
			
		||||
		{ "technic:brass_ingot","bucket:bucket_water", "technic:brass_ingot" },
 | 
			
		||||
	},
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
minetest.register_craft({
 | 
			
		||||
	output = "homedecor:shower_tray",
 | 
			
		||||
	recipe = {
 | 
			
		||||
		{ "group:marble","bucket:bucket_empty", "group:marble" },
 | 
			
		||||
	},
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
minetest.register_craft({
 | 
			
		||||
	output = "homedecor:shower_head",
 | 
			
		||||
	recipe = {
 | 
			
		||||
		{"default:steel_ingot", "bucket:bucket_water"},
 | 
			
		||||
	},
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
minetest.register_craft({
 | 
			
		||||
	output = "homedecor:bathtub_clawfoot_brass_taps",
 | 
			
		||||
	recipe = {
 | 
			
		||||
		{ "homedecor:taps_brass", "", "" },
 | 
			
		||||
		{ "group:marble", "", "group:marble" },
 | 
			
		||||
		{"default:steel_ingot", "group:marble", "default:steel_ingot"},
 | 
			
		||||
	},
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
minetest.register_craft({
 | 
			
		||||
	output = "homedecor:bathtub_clawfoot_chrome_taps",
 | 
			
		||||
	recipe = {
 | 
			
		||||
		{ "homedecor:taps", "", "" },
 | 
			
		||||
		{ "group:marble", "", "group:marble" },
 | 
			
		||||
		{"default:steel_ingot", "group:marble", "default:steel_ingot"},
 | 
			
		||||
	},
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
minetest.register_craft({
 | 
			
		||||
	output = "homedecor:bars 6",
 | 
			
		||||
	recipe = {
 | 
			
		||||
		{ "default:steel_ingot","default:steel_ingot","default:steel_ingot" },
 | 
			
		||||
		{ "homedecor:pole_wrought_iron","homedecor:pole_wrought_iron","homedecor:pole_wrought_iron" },
 | 
			
		||||
	},
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
minetest.register_craft({
 | 
			
		||||
	output = "homedecor:L_binding_bars 3",
 | 
			
		||||
	recipe = {
 | 
			
		||||
		{ "homedecor:bars","" },
 | 
			
		||||
		{ "homedecor:bars","homedecor:bars" },
 | 
			
		||||
	},
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
minetest.register_craft({
 | 
			
		||||
	output = "homedecor:torch_wall 10",
 | 
			
		||||
	recipe = {
 | 
			
		||||
		{ "default:coal_lump" },
 | 
			
		||||
		{ "default:steel_ingot" },
 | 
			
		||||
	},
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
-- Aliases for 3dforniture mod.
 | 
			
		||||
 | 
			
		||||
minetest.register_alias("3dforniture:table", "homedecor:table")
 | 
			
		||||
minetest.register_alias('table', 'homedecor:table')
 | 
			
		||||
 
 | 
			
		||||
@@ -57,6 +57,24 @@ homedecor.register("chains", {
 | 
			
		||||
	sounds = default.node_sound_stone_defaults(),
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
-- Crafts
 | 
			
		||||
 | 
			
		||||
minetest.register_craft({
 | 
			
		||||
	output = "homedecor:bars 6",
 | 
			
		||||
	recipe = {
 | 
			
		||||
		{ "default:steel_ingot","default:steel_ingot","default:steel_ingot" },
 | 
			
		||||
		{ "homedecor:pole_wrought_iron","homedecor:pole_wrought_iron","homedecor:pole_wrought_iron" },
 | 
			
		||||
	},
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
minetest.register_craft({
 | 
			
		||||
	output = "homedecor:L_binding_bars 3",
 | 
			
		||||
	recipe = {
 | 
			
		||||
		{ "homedecor:bars","" },
 | 
			
		||||
		{ "homedecor:bars","homedecor:bars" },
 | 
			
		||||
	},
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
minetest.register_alias("3dforniture:bars", "homedecor:bars")
 | 
			
		||||
minetest.register_alias("3dforniture:L_binding_bars", "homedecor:L_binding_bars")
 | 
			
		||||
minetest.register_alias("3dforniture:chains", "homedecor:chains")
 | 
			
		||||
 
 | 
			
		||||
@@ -137,43 +137,159 @@ homedecor.register("dishwasher_"..m, {
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
local cabinet_sides = "(default_wood.png^[transformR90)^homedecor_kitchen_cabinet_bevel.png"
 | 
			
		||||
local cabinet_bottom = "(default_wood.png^[colorize:#000000:100)"
 | 
			
		||||
	.."^(homedecor_kitchen_cabinet_bevel.png^[colorize:#46321580)"
 | 
			
		||||
local cabinet_sides_colored = "(homedecor_generic_wood_plain.png^[transformR90)^homedecor_kitchen_cabinet_bevel.png"
 | 
			
		||||
 | 
			
		||||
local ic_cabinet_sides = string.gsub(cabinet_sides, "%^", "&")
 | 
			
		||||
local ic_cabinet_sides_colored = string.gsub(cabinet_sides_colored, "%^", "&")
 | 
			
		||||
 | 
			
		||||
local cabinet_bottom = "(default_wood.png^[colorize:#000000:100)^homedecor_kitchen_cabinet_bevel.png"
 | 
			
		||||
local cabinet_bottom_colored = "homedecor_generic_wood_plain.png^homedecor_kitchen_cabinet_bevel.png"
 | 
			
		||||
 | 
			
		||||
local function N_(x) return x end
 | 
			
		||||
 | 
			
		||||
local counter_materials = { "", N_("granite"), N_("marble"), N_("steel") }
 | 
			
		||||
 | 
			
		||||
homedecor.kitchen_convert_nodes = {}
 | 
			
		||||
 | 
			
		||||
for _, mat in ipairs(counter_materials) do
 | 
			
		||||
 | 
			
		||||
	local desc = S("Kitchen Cabinet")
 | 
			
		||||
	local desc2 = S("Kitchen Cabinet with drawers")
 | 
			
		||||
	local material = ""
 | 
			
		||||
 | 
			
		||||
	if mat ~= "" then
 | 
			
		||||
		desc = S("Kitchen Cabinet (@1 top)", S(mat))
 | 
			
		||||
		desc2 = S("Kitchen Cabinet with drawers (@1 top)", S(mat))
 | 
			
		||||
		material = "_"..mat
 | 
			
		||||
	end
 | 
			
		||||
 | 
			
		||||
	homedecor.register("kitchen_cabinet"..material, {
 | 
			
		||||
	homedecor.register("kitchen_cabinet_colorable"..material, {
 | 
			
		||||
		description = desc,
 | 
			
		||||
		tiles = { 'homedecor_kitchen_cabinet_top'..material..'.png',
 | 
			
		||||
				cabinet_bottom,
 | 
			
		||||
				cabinet_sides,
 | 
			
		||||
				cabinet_sides,
 | 
			
		||||
				cabinet_sides,
 | 
			
		||||
				'homedecor_kitchen_cabinet_front.png'},
 | 
			
		||||
		groups = { snappy = 3 },
 | 
			
		||||
		tiles = {
 | 
			
		||||
			'homedecor_kitchen_cabinet_top'..material..'.png',
 | 
			
		||||
			cabinet_bottom,
 | 
			
		||||
			cabinet_sides,
 | 
			
		||||
			cabinet_sides,
 | 
			
		||||
			cabinet_sides,
 | 
			
		||||
			'homedecor_kitchen_cabinet_front.png^homedecor_kitchen_cabinet_bevel.png'
 | 
			
		||||
		},
 | 
			
		||||
		inventory_image = "[inventorycube"
 | 
			
		||||
			.."{homedecor_kitchen_cabinet_top"..material..".png"
 | 
			
		||||
			.."{homedecor_kitchen_cabinet_front.png"
 | 
			
		||||
			.."{"..ic_cabinet_sides,
 | 
			
		||||
		mesh = "homedecor_kitchen_cabinet.obj",
 | 
			
		||||
		paramtype2 = "wallmounted",
 | 
			
		||||
		palette = "unifieddyes_palette_colorwallmounted.png",
 | 
			
		||||
		airbrush_replacement_node = "homedecor:kitchen_cabinet_colored"..material,
 | 
			
		||||
		place_param2 = 0,
 | 
			
		||||
		groups = { snappy = 3, ud_param2_colorable = 1},
 | 
			
		||||
		sounds = default.node_sound_wood_defaults(),
 | 
			
		||||
		infotext=S("Kitchen Cabinet"),
 | 
			
		||||
		inventory = {
 | 
			
		||||
			size=24,
 | 
			
		||||
			lockable=true,
 | 
			
		||||
		},
 | 
			
		||||
		after_place_node = function(pos, placer, itemstack, pointed_thing)
 | 
			
		||||
			unifieddyes.fix_rotation_nsew(pos, placer, itemstack, pointed_thing)
 | 
			
		||||
		end
 | 
			
		||||
	})
 | 
			
		||||
 | 
			
		||||
	homedecor.register("kitchen_cabinet_colored"..material, {
 | 
			
		||||
		description = desc,
 | 
			
		||||
		tiles = {
 | 
			
		||||
			{name = 'homedecor_kitchen_cabinet_top'..material..'.png', color = 0xFFFFFFFF},
 | 
			
		||||
			{name = cabinet_bottom, color = 0xFFFFFFFF },
 | 
			
		||||
			cabinet_sides_colored,
 | 
			
		||||
			cabinet_sides_colored,
 | 
			
		||||
			cabinet_sides_colored,
 | 
			
		||||
			'homedecor_kitchen_cabinet_colored_front.png^homedecor_kitchen_cabinet_bevel.png'
 | 
			
		||||
		},
 | 
			
		||||
		inventory_image = "[inventorycube"
 | 
			
		||||
			.."{homedecor_kitchen_cabinet_top"..material..".png"
 | 
			
		||||
			.."{homedecor_kitchen_cabinet_front.png"
 | 
			
		||||
			.."{"..ic_cabinet_sides_colored,
 | 
			
		||||
		mesh = "homedecor_kitchen_cabinet.obj",
 | 
			
		||||
		paramtype2 = "colorwallmounted",
 | 
			
		||||
		palette = "unifieddyes_palette_colorwallmounted.png",
 | 
			
		||||
		groups = { snappy = 3, ud_param2_colorable = 1, not_in_creative_inventory = 1 },
 | 
			
		||||
		sounds = default.node_sound_wood_defaults(),
 | 
			
		||||
		infotext=S("Kitchen Cabinet"),
 | 
			
		||||
		inventory = {
 | 
			
		||||
			size=24,
 | 
			
		||||
			lockable=true,
 | 
			
		||||
		},
 | 
			
		||||
		after_place_node = function(pos, placer, itemstack, pointed_thing)
 | 
			
		||||
			unifieddyes.fix_rotation_nsew(pos, placer, itemstack, pointed_thing)
 | 
			
		||||
		end
 | 
			
		||||
	})
 | 
			
		||||
 | 
			
		||||
	homedecor.register("kitchen_cabinet_colorable_with_drawers"..material, {
 | 
			
		||||
		description = desc2,
 | 
			
		||||
		tiles = {
 | 
			
		||||
			'homedecor_kitchen_cabinet_top'..material..'.png',
 | 
			
		||||
			cabinet_bottom,
 | 
			
		||||
			cabinet_sides,
 | 
			
		||||
			cabinet_sides,
 | 
			
		||||
			cabinet_sides,
 | 
			
		||||
			'homedecor_kitchen_cabinet_front_with_drawers.png^homedecor_kitchen_cabinet_bevel.png'
 | 
			
		||||
		},
 | 
			
		||||
		inventory_image = "[inventorycube"
 | 
			
		||||
			.."{homedecor_kitchen_cabinet_top"..material..".png"
 | 
			
		||||
			.."{homedecor_kitchen_cabinet_front_with_drawers.png"
 | 
			
		||||
			.."{"..ic_cabinet_sides,
 | 
			
		||||
		mesh = "homedecor_kitchen_cabinet.obj",
 | 
			
		||||
		paramtype2 = "wallmounted",
 | 
			
		||||
		palette = "unifieddyes_palette_colorwallmounted.png",
 | 
			
		||||
		airbrush_replacement_node = "homedecor:kitchen_cabinet_colored_with_drawers"..material,
 | 
			
		||||
		groups = { snappy = 3, ud_param2_colorable = 1},
 | 
			
		||||
		sounds = default.node_sound_wood_defaults(),
 | 
			
		||||
		infotext=S("Kitchen Cabinet with drawers"),
 | 
			
		||||
		inventory = {
 | 
			
		||||
			size=24,
 | 
			
		||||
			lockable=true,
 | 
			
		||||
		},
 | 
			
		||||
		after_place_node = function(pos, placer, itemstack, pointed_thing)
 | 
			
		||||
			unifieddyes.fix_rotation_nsew(pos, placer, itemstack, pointed_thing)
 | 
			
		||||
		end
 | 
			
		||||
	})
 | 
			
		||||
 | 
			
		||||
	homedecor.register("kitchen_cabinet_colored_with_drawers"..material, {
 | 
			
		||||
		description = desc2,
 | 
			
		||||
		tiles = {
 | 
			
		||||
			{name = 'homedecor_kitchen_cabinet_top'..material..'.png', color = 0xFFFFFFFF},
 | 
			
		||||
			{name = cabinet_bottom, color = 0xFFFFFFFF },
 | 
			
		||||
			cabinet_sides_colored,
 | 
			
		||||
			cabinet_sides_colored,
 | 
			
		||||
			cabinet_sides_colored,
 | 
			
		||||
			'homedecor_kitchen_cabinet_colored_front_with_drawers.png^homedecor_kitchen_cabinet_bevel.png'
 | 
			
		||||
		},
 | 
			
		||||
		inventory_image = "[inventorycube"
 | 
			
		||||
			.."{homedecor_kitchen_cabinet_top"..material..".png"
 | 
			
		||||
			.."{homedecor_kitchen_cabinet_colored_front_with_drawers.png"
 | 
			
		||||
			.."{"..ic_cabinet_sides_colored,
 | 
			
		||||
		mesh = "homedecor_kitchen_cabinet.obj",
 | 
			
		||||
		paramtype2 = "colorwallmounted",
 | 
			
		||||
		palette = "unifieddyes_palette_colorwallmounted.png",
 | 
			
		||||
		groups = { snappy = 3, ud_param2_colorable = 1, not_in_creative_inventory = 1 },
 | 
			
		||||
		sounds = default.node_sound_wood_defaults(),
 | 
			
		||||
		infotext=S("Kitchen Cabinet with drawers"),
 | 
			
		||||
		inventory = {
 | 
			
		||||
			size=24,
 | 
			
		||||
			lockable=true,
 | 
			
		||||
		},
 | 
			
		||||
		after_place_node = function(pos, placer, itemstack, pointed_thing)
 | 
			
		||||
			unifieddyes.fix_rotation_nsew(pos, placer, itemstack, pointed_thing)
 | 
			
		||||
		end
 | 
			
		||||
	})
 | 
			
		||||
 | 
			
		||||
	homedecor.kitchen_convert_nodes[#homedecor.kitchen_convert_nodes + 1] = "homedecor:kitchen_cabinet"..material
 | 
			
		||||
	homedecor.kitchen_convert_nodes[#homedecor.kitchen_convert_nodes + 1] = "homedecor:kitchen_cabinet_locked"..material
 | 
			
		||||
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
local kitchen_cabinet_half_box = homedecor.nodebox.slab_y(0.5, 0.5)
 | 
			
		||||
homedecor.register("kitchen_cabinet_half", {
 | 
			
		||||
local kitchen_cabinet_half_box = homedecor.nodebox.slab_z(0.5, 0.5)
 | 
			
		||||
 | 
			
		||||
homedecor.register("kitchen_cabinet_colorable_half", {
 | 
			
		||||
	description = S('Half-height Kitchen Cabinet (on ceiling)'),
 | 
			
		||||
	tiles = {
 | 
			
		||||
		cabinet_sides,
 | 
			
		||||
@@ -181,29 +297,77 @@ homedecor.register("kitchen_cabinet_half", {
 | 
			
		||||
		cabinet_sides,
 | 
			
		||||
		cabinet_sides,
 | 
			
		||||
		cabinet_sides,
 | 
			
		||||
		'homedecor_kitchen_cabinet_front_half.png'
 | 
			
		||||
		'homedecor_kitchen_cabinet_front_half.png^homedecor_kitchen_cabinet_half_bevel.png'
 | 
			
		||||
	},
 | 
			
		||||
	mesh = "homedecor_kitchen_cabinet_half.obj",
 | 
			
		||||
	paramtype2 = "wallmounted",
 | 
			
		||||
	palette = "unifieddyes_palette_colorwallmounted.png",
 | 
			
		||||
	airbrush_replacement_node = "homedecor:kitchen_cabinet_colored_half",
 | 
			
		||||
	place_param2 = 0,
 | 
			
		||||
	selection_box = kitchen_cabinet_half_box,
 | 
			
		||||
	node_box = kitchen_cabinet_half_box,
 | 
			
		||||
	groups = { snappy = 3 },
 | 
			
		||||
	groups = { snappy = 3, ud_param2_colorable = 1 },
 | 
			
		||||
	sounds = default.node_sound_wood_defaults(),
 | 
			
		||||
	infotext=S("Kitchen Cabinet"),
 | 
			
		||||
	inventory = {
 | 
			
		||||
		size=12,
 | 
			
		||||
		lockable=true,
 | 
			
		||||
	},
 | 
			
		||||
	after_place_node = function(pos, placer, itemstack, pointed_thing)
 | 
			
		||||
		unifieddyes.fix_rotation_nsew(pos, placer, itemstack, pointed_thing)
 | 
			
		||||
	end
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
homedecor.register("kitchen_cabinet_with_sink", {
 | 
			
		||||
homedecor.kitchen_convert_nodes[#homedecor.kitchen_convert_nodes + 1] = "homedecor:kitchen_cabinet_half"
 | 
			
		||||
homedecor.kitchen_convert_nodes[#homedecor.kitchen_convert_nodes + 1] = "homedecor:kitchen_cabinet_half_locked"
 | 
			
		||||
 | 
			
		||||
homedecor.register("kitchen_cabinet_colored_half", {
 | 
			
		||||
	description = S('Half-height Kitchen Cabinet (on ceiling)'),
 | 
			
		||||
	tiles = {
 | 
			
		||||
		{ name = cabinet_sides, color = 0xFFFFFFFF },
 | 
			
		||||
		cabinet_bottom_colored,
 | 
			
		||||
		cabinet_sides_colored,
 | 
			
		||||
		cabinet_sides_colored,
 | 
			
		||||
		cabinet_sides_colored,
 | 
			
		||||
		'homedecor_kitchen_cabinet_colored_front_half.png^homedecor_kitchen_cabinet_half_bevel.png'
 | 
			
		||||
	},
 | 
			
		||||
	mesh = "homedecor_kitchen_cabinet_half.obj",
 | 
			
		||||
	paramtype2 = "colorwallmounted",
 | 
			
		||||
	palette = "unifieddyes_palette_colorwallmounted.png",
 | 
			
		||||
	selection_box = kitchen_cabinet_half_box,
 | 
			
		||||
	node_box = kitchen_cabinet_half_box,
 | 
			
		||||
	groups = { snappy = 3, ud_param2_colorable = 1, not_in_creative_inventory = 1  },
 | 
			
		||||
	sounds = default.node_sound_wood_defaults(),
 | 
			
		||||
	infotext=S("Kitchen Cabinet"),
 | 
			
		||||
	inventory = {
 | 
			
		||||
		size=12,
 | 
			
		||||
		lockable=true,
 | 
			
		||||
	},
 | 
			
		||||
	after_place_node = function(pos, placer, itemstack, pointed_thing)
 | 
			
		||||
		unifieddyes.fix_rotation_nsew(pos, placer, itemstack, pointed_thing)
 | 
			
		||||
	end
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
homedecor.register("kitchen_cabinet_colorable_with_sink", {
 | 
			
		||||
	description = S("Kitchen Cabinet with sink"),
 | 
			
		||||
	mesh = "homedecor_kitchen_sink.obj",
 | 
			
		||||
	tiles = {
 | 
			
		||||
		"homedecor_kitchen_sink_top.png",
 | 
			
		||||
		"homedecor_kitchen_cabinet_front.png",
 | 
			
		||||
		cabinet_bottom,
 | 
			
		||||
		cabinet_sides,
 | 
			
		||||
		cabinet_bottom
 | 
			
		||||
		cabinet_sides,
 | 
			
		||||
		cabinet_sides,
 | 
			
		||||
		"homedecor_kitchen_cabinet_front.png^homedecor_kitchen_cabinet_bevel.png"
 | 
			
		||||
	},
 | 
			
		||||
	groups = { snappy = 3 },
 | 
			
		||||
		inventory_image = "[inventorycube"
 | 
			
		||||
			.."{homedecor_kitchen_sink_top.png"
 | 
			
		||||
			.."{homedecor_kitchen_cabinet_front.png"
 | 
			
		||||
			.."{"..ic_cabinet_sides,
 | 
			
		||||
	paramtype2 = "wallmounted",
 | 
			
		||||
	palette = "unifieddyes_palette_colorwallmounted.png",
 | 
			
		||||
	airbrush_replacement_node = "homedecor:kitchen_cabinet_colored_with_sink",
 | 
			
		||||
	place_param2 = 0,
 | 
			
		||||
	groups = { snappy = 3, ud_param2_colorable = 1 },
 | 
			
		||||
	sounds = default.node_sound_wood_defaults(),
 | 
			
		||||
	infotext=S("Under-sink cabinet"),
 | 
			
		||||
	inventory = {
 | 
			
		||||
@@ -222,6 +386,54 @@ homedecor.register("kitchen_cabinet_with_sink", {
 | 
			
		||||
	},
 | 
			
		||||
	on_destruct = function(pos)
 | 
			
		||||
		homedecor.stop_particle_spawner({x=pos.x, y=pos.y+1, z=pos.z})
 | 
			
		||||
	end,
 | 
			
		||||
	after_place_node = function(pos, placer, itemstack, pointed_thing)
 | 
			
		||||
		unifieddyes.fix_rotation_nsew(pos, placer, itemstack, pointed_thing)
 | 
			
		||||
	end
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
homedecor.kitchen_convert_nodes[#homedecor.kitchen_convert_nodes + 1] = "homedecor:kitchen_cabinet_with_sink"
 | 
			
		||||
homedecor.kitchen_convert_nodes[#homedecor.kitchen_convert_nodes + 1] = "homedecor:kitchen_cabinet_with_sink_locked"
 | 
			
		||||
 | 
			
		||||
homedecor.register("kitchen_cabinet_colored_with_sink", {
 | 
			
		||||
	description = S("Kitchen Cabinet with sink"),
 | 
			
		||||
	mesh = "homedecor_kitchen_sink.obj",
 | 
			
		||||
	tiles = {
 | 
			
		||||
		{ name = "homedecor_kitchen_sink_top.png", color = 0xFFFFFFFF },
 | 
			
		||||
		{ name = cabinet_bottom, color = 0xFFFFFFFF},
 | 
			
		||||
		cabinet_sides_colored,
 | 
			
		||||
		cabinet_sides_colored,
 | 
			
		||||
		cabinet_sides_colored,
 | 
			
		||||
		"homedecor_kitchen_cabinet_colored_front.png^homedecor_kitchen_cabinet_bevel.png",
 | 
			
		||||
	},
 | 
			
		||||
		inventory_image = "[inventorycube"
 | 
			
		||||
			.."{homedecor_kitchen_sink_top.png"
 | 
			
		||||
			.."{homedecor_kitchen_cabinet_front.png"
 | 
			
		||||
			.."{"..ic_cabinet_sides_colored,
 | 
			
		||||
	paramtype2 = "colorwallmounted",
 | 
			
		||||
	palette = "unifieddyes_palette_colorwallmounted.png",
 | 
			
		||||
	groups = { snappy = 3, ud_param2_colorable = 1,  not_in_creative_inventory = 1 },
 | 
			
		||||
	sounds = default.node_sound_wood_defaults(),
 | 
			
		||||
	infotext=S("Under-sink cabinet"),
 | 
			
		||||
	inventory = {
 | 
			
		||||
		size=16,
 | 
			
		||||
		lockable=true,
 | 
			
		||||
	},
 | 
			
		||||
	node_box = {
 | 
			
		||||
		type = "fixed",
 | 
			
		||||
		fixed = {
 | 
			
		||||
			{ -8/16, -8/16, -8/16,  8/16, 6/16,  8/16 },
 | 
			
		||||
			{ -8/16,  6/16, -8/16, -6/16, 8/16,  8/16 },
 | 
			
		||||
			{  6/16,  6/16, -8/16,  8/16, 8/16,  8/16 },
 | 
			
		||||
			{ -8/16,  6/16, -8/16,  8/16, 8/16, -6/16 },
 | 
			
		||||
			{ -8/16,  6/16,  6/16,  8/16, 8/16,  8/16 },
 | 
			
		||||
		}
 | 
			
		||||
	},
 | 
			
		||||
	on_destruct = function(pos)
 | 
			
		||||
		homedecor.stop_particle_spawner({x=pos.x, y=pos.y+1, z=pos.z})
 | 
			
		||||
	end,
 | 
			
		||||
	after_place_node = function(pos, placer, itemstack, pointed_thing)
 | 
			
		||||
		unifieddyes.fix_rotation_nsew(pos, placer, itemstack, pointed_thing)
 | 
			
		||||
	end
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
@@ -257,10 +469,7 @@ homedecor.register("kitchen_faucet", {
 | 
			
		||||
	on_rotate = minetest.get_modpath("screwdriver") and screwdriver.disallow or nil,
 | 
			
		||||
	on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
 | 
			
		||||
		local below = minetest.get_node_or_nil({x=pos.x, y=pos.y-1, z=pos.z})
 | 
			
		||||
		if below and
 | 
			
		||||
		  below.name == "homedecor:sink" or
 | 
			
		||||
		  below.name == "homedecor:kitchen_cabinet_with_sink" or
 | 
			
		||||
		  below.name == "homedecor:kitchen_cabinet_with_sink_locked" then
 | 
			
		||||
		if below and string.find(below.name, "homedecor:.*sink") then
 | 
			
		||||
			local particledef = {
 | 
			
		||||
				outlet      = { x = 0, y = -0.19, z = 0.13 },
 | 
			
		||||
				velocity_x  = { min = -0.05, max = 0.05 },
 | 
			
		||||
@@ -555,3 +764,29 @@ minetest.register_craft({
 | 
			
		||||
		{ "homedecor:toilet_paper", "homedecor:toilet_paper" }
 | 
			
		||||
    },
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
minetest.register_lbm({
 | 
			
		||||
	name = ":homedecor:convert_kitchen_cabinets",
 | 
			
		||||
	label = "Convert homedecor kitchen cabinets to use [color]wallmounted",
 | 
			
		||||
	run_at_every_load = false,
 | 
			
		||||
	nodenames = homedecor.kitchen_convert_nodes,
 | 
			
		||||
	action = function(pos, node)
 | 
			
		||||
		local name = node.name
 | 
			
		||||
		local newname = string.gsub(name, "_cabinet", "_cabinet_colorable")
 | 
			
		||||
 | 
			
		||||
		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
 | 
			
		||||
 | 
			
		||||
		minetest.swap_node(pos, { name = newname, param2 = new_fdir })
 | 
			
		||||
	end
 | 
			
		||||
})
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										50
									
								
								homedecor_kitchen/models/homedecor_kitchen_cabinet.obj
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,50 @@
 | 
			
		||||
# Blender v2.83.5 OBJ File: 'kitchen_cabinet.blend'
 | 
			
		||||
# www.blender.org
 | 
			
		||||
o Cube_Cube.001
 | 
			
		||||
v 0.500000 -0.500000 -0.500000
 | 
			
		||||
v 0.500000 -0.500000 0.500000
 | 
			
		||||
v -0.500000 -0.500000 -0.500000
 | 
			
		||||
v -0.500000 -0.500000 0.500000
 | 
			
		||||
v 0.500000 0.500000 -0.500000
 | 
			
		||||
v 0.500000 0.500000 0.500000
 | 
			
		||||
v -0.500000 0.500000 -0.500000
 | 
			
		||||
v -0.500000 0.500000 0.500000
 | 
			
		||||
vt 1.000000 1.000000
 | 
			
		||||
vt 0.000000 1.000000
 | 
			
		||||
vt 0.000000 0.000000
 | 
			
		||||
vt 1.000000 0.000000
 | 
			
		||||
vt 1.000000 0.000000
 | 
			
		||||
vt 1.000000 1.000000
 | 
			
		||||
vt 0.000000 1.000000
 | 
			
		||||
vt 0.000000 0.000000
 | 
			
		||||
vt 0.000000 0.000000
 | 
			
		||||
vt 0.000000 1.000000
 | 
			
		||||
vt 1.000000 -0.000000
 | 
			
		||||
vt 1.000000 1.000000
 | 
			
		||||
vt -0.000000 0.000000
 | 
			
		||||
vt 1.000000 -0.000000
 | 
			
		||||
vt 1.000000 1.000000
 | 
			
		||||
vt 0.000000 1.000000
 | 
			
		||||
vt 1.000000 1.000000
 | 
			
		||||
vt 0.000000 1.000000
 | 
			
		||||
vt -0.000000 0.000000
 | 
			
		||||
vt 1.000000 -0.000000
 | 
			
		||||
vn 0.0000 0.0000 1.0000
 | 
			
		||||
vn 0.0000 0.0000 -1.0000
 | 
			
		||||
vn 0.0000 1.0000 0.0000
 | 
			
		||||
vn 0.0000 -1.0000 0.0000
 | 
			
		||||
vn -1.0000 0.0000 0.0000
 | 
			
		||||
vn 1.0000 0.0000 0.0000
 | 
			
		||||
g Cube_Cube.001_top
 | 
			
		||||
s off
 | 
			
		||||
f 8/1/1 4/2/1 2/3/1 6/4/1
 | 
			
		||||
g Cube_Cube.001_bottom
 | 
			
		||||
f 7/5/2 5/6/2 1/7/2 3/8/2
 | 
			
		||||
g Cube_Cube.001_right
 | 
			
		||||
f 5/9/3 7/5/3 8/1/3 6/10/3
 | 
			
		||||
g Cube_Cube.001_left
 | 
			
		||||
f 4/2/4 3/8/4 1/11/4 2/12/4
 | 
			
		||||
g Cube_Cube.001_back
 | 
			
		||||
f 7/13/5 3/14/5 4/15/5 8/16/5
 | 
			
		||||
g Cube_Cube.001_front
 | 
			
		||||
f 6/17/6 2/18/6 1/19/6 5/20/6
 | 
			
		||||
							
								
								
									
										52
									
								
								homedecor_kitchen/models/homedecor_kitchen_cabinet_half.obj
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,52 @@
 | 
			
		||||
# Blender v2.83.5 OBJ File: 'kitchen_cabinet_half.blend'
 | 
			
		||||
# www.blender.org
 | 
			
		||||
o Cube_Cube.001
 | 
			
		||||
v 0.500000 -0.500000 0.500000
 | 
			
		||||
v -0.500000 -0.500000 -0.000000
 | 
			
		||||
v -0.500000 -0.500000 0.500000
 | 
			
		||||
v 0.500000 0.500000 -0.000000
 | 
			
		||||
v 0.500000 0.500000 0.500000
 | 
			
		||||
v -0.500000 0.500000 -0.000000
 | 
			
		||||
v -0.500000 0.500000 0.500000
 | 
			
		||||
v 0.500000 -0.500000 0.000000
 | 
			
		||||
vt 0.000000 0.000000
 | 
			
		||||
vt 1.000000 0.000000
 | 
			
		||||
vt 1.000000 1.000000
 | 
			
		||||
vt 0.000000 1.000000
 | 
			
		||||
vt 0.000000 0.000000
 | 
			
		||||
vt 1.000000 0.000000
 | 
			
		||||
vt 1.000000 1.000000
 | 
			
		||||
vt 0.000000 1.000000
 | 
			
		||||
vt 0.000000 1.000000
 | 
			
		||||
vt 0.000000 0.500000
 | 
			
		||||
vt 1.000000 0.500000
 | 
			
		||||
vt 1.000000 1.000000
 | 
			
		||||
vt -0.000000 0.500000
 | 
			
		||||
vt 1.000000 0.500000
 | 
			
		||||
vt 1.000000 1.000000
 | 
			
		||||
vt 0.000000 1.000000
 | 
			
		||||
vt -0.000000 0.500000
 | 
			
		||||
vt 1.000000 0.500000
 | 
			
		||||
vt 1.000000 1.000000
 | 
			
		||||
vt 0.000000 1.000000
 | 
			
		||||
vt -0.000000 0.500000
 | 
			
		||||
vt 1.000000 0.500000
 | 
			
		||||
vn 0.0000 0.0000 1.0000
 | 
			
		||||
vn 0.0000 -0.0000 -1.0000
 | 
			
		||||
vn 0.0000 1.0000 0.0000
 | 
			
		||||
vn 0.0000 -1.0000 0.0000
 | 
			
		||||
vn -1.0000 0.0000 0.0000
 | 
			
		||||
vn 1.0000 -0.0000 0.0000
 | 
			
		||||
g Cube_Cube.001_top
 | 
			
		||||
s off
 | 
			
		||||
f 1/1/1 5/2/1 7/3/1 3/4/1
 | 
			
		||||
g Cube_Cube.001_bottom
 | 
			
		||||
f 2/5/2 6/6/2 4/7/2 8/8/2
 | 
			
		||||
g Cube_Cube.001_right
 | 
			
		||||
f 7/3/3 5/9/3 4/10/3 6/11/3
 | 
			
		||||
g Cube_Cube.001_left
 | 
			
		||||
f 1/12/4 3/4/4 2/13/4 8/14/4
 | 
			
		||||
g Cube_Cube.001_back
 | 
			
		||||
f 3/15/5 7/16/5 6/17/5 2/18/5
 | 
			
		||||
g Cube_Cube.001_front
 | 
			
		||||
f 5/19/6 1/20/6 8/21/6 4/22/6
 | 
			
		||||
@@ -1,101 +1,166 @@
 | 
			
		||||
v -0.5 -0.5 -0.5
 | 
			
		||||
v 0.5 -0.5 -0.5
 | 
			
		||||
v 0.5 -0.5 0.5
 | 
			
		||||
v -0.5 -0.5 0.5
 | 
			
		||||
v -0.5 0.5 0.5
 | 
			
		||||
v -0.5 0.5 -0.5
 | 
			
		||||
v 0.5 0.5 -0.5
 | 
			
		||||
v 0.5 0.5 0.5
 | 
			
		||||
v -0.387 0.5 0.388
 | 
			
		||||
v -0.387 0.5 -0.387
 | 
			
		||||
v 0.388 0.5 -0.387
 | 
			
		||||
v 0.388 0.5 0.388
 | 
			
		||||
v -0.387 0.4 0.388
 | 
			
		||||
v -0.387 0.4 -0.387
 | 
			
		||||
v 0.388 0.4 -0.387
 | 
			
		||||
v 0.388 0.4 0.388
 | 
			
		||||
v 0.063 0.4 -0.062
 | 
			
		||||
v 0.063 0.4 0.063
 | 
			
		||||
v -0.062 0.4 -0.062
 | 
			
		||||
v -0.062 0.4 0.063
 | 
			
		||||
v 0.063 0.313 0.063
 | 
			
		||||
v 0.063 0.313 -0.062
 | 
			
		||||
v -0.062 0.313 0.063
 | 
			
		||||
v -0.062 0.313 -0.062
 | 
			
		||||
vt 0.469 0.906
 | 
			
		||||
vt 0.469 0.531
 | 
			
		||||
vt 0.531 0.469
 | 
			
		||||
vt 0.531 0.969
 | 
			
		||||
vt 0.031 0.969
 | 
			
		||||
vt 0.094 0.906
 | 
			
		||||
vt 0.031 0.469
 | 
			
		||||
vt 0.094 0.531
 | 
			
		||||
vt 0.813 0.5
 | 
			
		||||
vt 0.813 0.938
 | 
			
		||||
vt 0.781 0.938
 | 
			
		||||
vt 0.781 0.5
 | 
			
		||||
vt 0.688 0.5
 | 
			
		||||
vt 0.719 0.5
 | 
			
		||||
vt 0.719 0.938
 | 
			
		||||
vt 0.688 0.938
 | 
			
		||||
vt 0.906 0.5
 | 
			
		||||
vt 0.906 0.938
 | 
			
		||||
vt 0.875 0.938
 | 
			
		||||
vt 0.875 0.5
 | 
			
		||||
vt 0.594 0.5
 | 
			
		||||
vt 0.625 0.5
 | 
			
		||||
vt 0.625 0.938
 | 
			
		||||
vt 0.594 0.938
 | 
			
		||||
vt 0.313 0.75
 | 
			
		||||
vt 0.313 0.688
 | 
			
		||||
vt 0.25 0.688
 | 
			
		||||
vt 0.25 0.75
 | 
			
		||||
vt 0.219 0.375
 | 
			
		||||
vt 0.219 0.313
 | 
			
		||||
vt 0.25 0.313
 | 
			
		||||
vt 0.25 0.375
 | 
			
		||||
vt 0.25 0.406
 | 
			
		||||
vt 0.313 0.375
 | 
			
		||||
vt 0.313 0.406
 | 
			
		||||
vt 0.313 0.313
 | 
			
		||||
vt 0.344 0.313
 | 
			
		||||
vt 0.344 0.375
 | 
			
		||||
vt 0.25 0.281
 | 
			
		||||
vt 0.313 0.281
 | 
			
		||||
vt 0 0
 | 
			
		||||
vt 1 0
 | 
			
		||||
vt 1 1
 | 
			
		||||
vt 0 1
 | 
			
		||||
vn 0 1 0
 | 
			
		||||
vn -1 0 0
 | 
			
		||||
vn 0 0 -1
 | 
			
		||||
vn 1 0 0
 | 
			
		||||
vn 0 0 1
 | 
			
		||||
vn 0 -1 0
 | 
			
		||||
g 1
 | 
			
		||||
# Blender v2.83.5 OBJ File: 'kitchen_sink.blend'
 | 
			
		||||
# www.blender.org
 | 
			
		||||
o Cube_Cube.001
 | 
			
		||||
v 0.500000 -0.500000 -0.500000
 | 
			
		||||
v 0.500000 -0.500000 0.500000
 | 
			
		||||
v -0.500000 -0.500000 -0.500000
 | 
			
		||||
v -0.500000 -0.500000 0.500000
 | 
			
		||||
v 0.500000 0.500000 -0.500000
 | 
			
		||||
v 0.500000 0.500000 0.500000
 | 
			
		||||
v -0.500000 0.500000 -0.500000
 | 
			
		||||
v -0.500000 0.500000 0.500000
 | 
			
		||||
v 0.000000 -0.500000 0.500000
 | 
			
		||||
v 0.000000 0.500000 0.500000
 | 
			
		||||
v 0.000000 0.062500 0.437500
 | 
			
		||||
v -0.062500 0.062500 0.375000
 | 
			
		||||
v 0.062500 0.062500 0.375000
 | 
			
		||||
v 0.062500 -0.062500 0.437500
 | 
			
		||||
v 0.000000 -0.062500 0.437500
 | 
			
		||||
v 0.062500 -0.062500 0.375000
 | 
			
		||||
v -0.062500 -0.062500 0.437500
 | 
			
		||||
v -0.062500 0.062500 0.437500
 | 
			
		||||
v -0.062500 -0.062500 0.375000
 | 
			
		||||
v 0.000000 0.375000 0.437500
 | 
			
		||||
v 0.062500 0.062500 0.437500
 | 
			
		||||
v 0.000000 -0.375000 0.437500
 | 
			
		||||
v -0.375000 -0.375000 0.437500
 | 
			
		||||
v -0.375000 0.375000 0.500000
 | 
			
		||||
v -0.375000 0.375000 0.437500
 | 
			
		||||
v 0.375000 0.375000 0.437500
 | 
			
		||||
v 0.000000 0.375000 0.500000
 | 
			
		||||
v 0.375000 0.375000 0.500000
 | 
			
		||||
v 0.000000 -0.375000 0.500000
 | 
			
		||||
v 0.375000 -0.375000 0.500000
 | 
			
		||||
v 0.375000 -0.375000 0.437500
 | 
			
		||||
v -0.375000 -0.375000 0.500000
 | 
			
		||||
vt 0.437500 0.375000
 | 
			
		||||
vt 0.562500 0.437500
 | 
			
		||||
vt 0.437500 0.437500
 | 
			
		||||
vt 0.125000 0.875000
 | 
			
		||||
vt 0.875000 0.875000
 | 
			
		||||
vt 1.000000 1.000000
 | 
			
		||||
vt 0.625000 0.500000
 | 
			
		||||
vt 0.625000 0.562500
 | 
			
		||||
vt 0.562500 0.562500
 | 
			
		||||
vt 0.875000 0.062500
 | 
			
		||||
vt 0.125000 0.125000
 | 
			
		||||
vt 0.125000 0.062500
 | 
			
		||||
vt 0.875000 0.875000
 | 
			
		||||
vt 0.437500 0.562500
 | 
			
		||||
vt 0.562500 0.562500
 | 
			
		||||
vt 0.875000 0.125000
 | 
			
		||||
vt 0.125000 0.125000
 | 
			
		||||
vt 0.000000 0.000000
 | 
			
		||||
vt 0.375000 0.500000
 | 
			
		||||
vt 0.375000 0.437500
 | 
			
		||||
vt 0.437500 0.625000
 | 
			
		||||
vt 0.437500 0.562500
 | 
			
		||||
vt 0.875000 0.500000
 | 
			
		||||
vt 0.875000 0.125000
 | 
			
		||||
vt 0.937500 0.500000
 | 
			
		||||
vt 0.125000 0.500000
 | 
			
		||||
vt 0.125000 0.875000
 | 
			
		||||
vt 0.062500 0.875000
 | 
			
		||||
vt 0.562500 0.437500
 | 
			
		||||
vt 0.437500 0.437500
 | 
			
		||||
vt 0.125000 0.937500
 | 
			
		||||
vt 0.875000 0.937500
 | 
			
		||||
vt 0.937500 0.125000
 | 
			
		||||
vt 0.937500 0.875000
 | 
			
		||||
vt 0.062500 0.500000
 | 
			
		||||
vt 0.062500 0.125000
 | 
			
		||||
vt 0.562500 0.375000
 | 
			
		||||
vt 0.625000 0.437500
 | 
			
		||||
vt 0.375000 0.562500
 | 
			
		||||
vt 0.562500 0.625000
 | 
			
		||||
vt 0.562500 0.500000
 | 
			
		||||
vt 0.437500 0.500000
 | 
			
		||||
vt 0.000000 1.000000
 | 
			
		||||
vt 0.000000 0.500000
 | 
			
		||||
vt 0.125000 0.500000
 | 
			
		||||
vt 0.875000 0.500000
 | 
			
		||||
vt 1.000000 0.500000
 | 
			
		||||
vt 1.000000 0.000000
 | 
			
		||||
vt 1.000000 1.000000
 | 
			
		||||
vt 0.000000 1.000000
 | 
			
		||||
vt 0.000000 0.000000
 | 
			
		||||
vt 1.000000 0.000000
 | 
			
		||||
vt 0.500000 1.000000
 | 
			
		||||
vt 0.000000 1.000000
 | 
			
		||||
vt 0.000000 0.000000
 | 
			
		||||
vt 0.500000 1.000000
 | 
			
		||||
vt 1.000000 -0.000000
 | 
			
		||||
vt 1.000000 1.000000
 | 
			
		||||
vt -0.000000 0.000000
 | 
			
		||||
vt 1.000000 -0.000000
 | 
			
		||||
vt 1.000000 1.000000
 | 
			
		||||
vt 0.000000 1.000000
 | 
			
		||||
vt -0.000000 0.000000
 | 
			
		||||
vt 1.000000 -0.000000
 | 
			
		||||
vt 1.000000 1.000000
 | 
			
		||||
vt 0.000000 1.000000
 | 
			
		||||
vn -1.0000 0.0000 0.0000
 | 
			
		||||
vn 0.0000 0.0000 1.0000
 | 
			
		||||
vn -0.0000 -1.0000 0.0000
 | 
			
		||||
vn 0.0000 1.0000 -0.0000
 | 
			
		||||
vn 1.0000 0.0000 0.0000
 | 
			
		||||
vn 0.0000 0.0000 -1.0000
 | 
			
		||||
g Cube_Cube.001_top
 | 
			
		||||
s off
 | 
			
		||||
f 9/1/1 10/2/1 6/3/1 5/4/1
 | 
			
		||||
f 5/4/1 8/5/1 12/6/1 9/1/1
 | 
			
		||||
f 7/7/1 6/3/1 10/2/1 11/8/1
 | 
			
		||||
f 8/5/1 7/7/1 11/8/1 12/6/1
 | 
			
		||||
f 15/9/2 16/10/2 12/11/2 11/12/2
 | 
			
		||||
f 16/13/3 13/14/3 9/15/3 12/16/3
 | 
			
		||||
f 13/17/4 14/18/4 10/19/4 9/20/4
 | 
			
		||||
f 14/21/5 15/22/5 11/23/5 10/24/5
 | 
			
		||||
f 13/2/1 16/1/1 18/25/1 20/26/1
 | 
			
		||||
f 19/27/1 14/8/1 13/2/1 20/26/1
 | 
			
		||||
f 17/28/1 15/6/1 14/8/1 19/27/1
 | 
			
		||||
f 16/1/1 15/6/1 17/28/1 18/25/1
 | 
			
		||||
f 17/29/2 22/30/2 21/31/2 18/32/2
 | 
			
		||||
f 18/33/3 21/32/3 23/34/3 20/35/3
 | 
			
		||||
f 20/34/4 23/36/4 24/37/4 19/38/4
 | 
			
		||||
f 19/31/5 24/39/5 22/40/5 17/36/5
 | 
			
		||||
f 24/27/1 23/26/1 21/25/1 22/28/1
 | 
			
		||||
g 2
 | 
			
		||||
f 2/41/3 1/42/3 6/43/3 7/44/3
 | 
			
		||||
g 3
 | 
			
		||||
f 1/41/2 4/42/2 5/43/2 6/44/2
 | 
			
		||||
f 2/42/4 7/43/4 8/44/4 3/41/4
 | 
			
		||||
f 4/41/5 3/42/5 8/43/5 5/44/5
 | 
			
		||||
g 4
 | 
			
		||||
f 1/43/6 2/44/6 3/41/6 4/42/6
 | 
			
		||||
f 14/1/1 13/2/1 16/3/1
 | 
			
		||||
f 32/4/2 24/5/2 8/6/2
 | 
			
		||||
f 11/7/3 18/8/3 12/9/3
 | 
			
		||||
f 28/10/1 31/11/1 30/12/1
 | 
			
		||||
f 25/13/2 17/14/2 18/15/2
 | 
			
		||||
f 28/16/2 30/17/2 2/18/2
 | 
			
		||||
f 15/19/4 14/20/4 16/3/4
 | 
			
		||||
f 12/9/5 17/21/5 19/22/5
 | 
			
		||||
f 20/23/3 26/24/3 27/25/3
 | 
			
		||||
f 22/26/4 23/27/4 32/28/4
 | 
			
		||||
f 26/24/2 21/29/2 14/30/2
 | 
			
		||||
f 32/31/5 25/13/5 24/32/5
 | 
			
		||||
f 12/9/2 19/22/2 16/3/2 13/2/2
 | 
			
		||||
f 28/10/1 26/24/1 31/11/1
 | 
			
		||||
f 26/24/3 28/33/3 27/25/3
 | 
			
		||||
f 27/25/3 24/34/3 20/23/3
 | 
			
		||||
f 24/34/3 25/13/3 20/23/3
 | 
			
		||||
f 32/28/4 29/35/4 22/26/4
 | 
			
		||||
f 29/35/4 30/36/4 22/26/4
 | 
			
		||||
f 30/36/4 31/11/4 22/26/4
 | 
			
		||||
f 32/31/5 23/27/5 25/13/5
 | 
			
		||||
f 14/1/1 21/37/1 13/2/1
 | 
			
		||||
f 12/9/3 13/2/3 11/7/3
 | 
			
		||||
f 13/2/3 21/38/3 11/7/3
 | 
			
		||||
f 16/3/4 19/22/4 15/19/4
 | 
			
		||||
f 19/22/4 17/39/4 15/19/4
 | 
			
		||||
f 12/9/5 18/40/5 17/21/5
 | 
			
		||||
f 11/41/2 20/23/2 18/15/2
 | 
			
		||||
f 20/23/2 25/13/2 18/15/2
 | 
			
		||||
f 25/13/2 23/27/2 17/14/2
 | 
			
		||||
f 23/27/2 22/26/2 17/14/2
 | 
			
		||||
f 22/26/2 15/42/2 17/14/2
 | 
			
		||||
f 14/30/2 15/42/2 22/26/2
 | 
			
		||||
f 22/26/2 31/11/2 14/30/2
 | 
			
		||||
f 31/11/2 26/24/2 14/30/2
 | 
			
		||||
f 26/24/2 20/23/2 21/29/2
 | 
			
		||||
f 20/23/2 11/41/2 21/29/2
 | 
			
		||||
f 4/43/2 9/44/2 32/4/2
 | 
			
		||||
f 9/44/2 29/45/2 32/4/2
 | 
			
		||||
f 27/46/2 10/47/2 24/5/2
 | 
			
		||||
f 10/47/2 8/6/2 24/5/2
 | 
			
		||||
f 4/43/2 32/4/2 8/6/2
 | 
			
		||||
f 6/48/2 10/47/2 28/16/2
 | 
			
		||||
f 10/47/2 27/46/2 28/16/2
 | 
			
		||||
f 29/45/2 9/44/2 30/17/2
 | 
			
		||||
f 9/44/2 2/18/2 30/17/2
 | 
			
		||||
f 6/48/2 28/16/2 2/18/2
 | 
			
		||||
g Cube_Cube.001_bottom
 | 
			
		||||
f 5/49/6 1/50/6 3/51/6 7/52/6
 | 
			
		||||
g Cube_Cube.001_right
 | 
			
		||||
f 8/6/4 10/53/4 6/54/4 5/55/4 7/52/4
 | 
			
		||||
g Cube_Cube.001_left
 | 
			
		||||
f 9/56/3 4/43/3 3/51/3 1/57/3 2/58/3
 | 
			
		||||
g Cube_Cube.001_back
 | 
			
		||||
f 7/59/1 3/60/1 4/61/1 8/62/1
 | 
			
		||||
g Cube_Cube.001_front
 | 
			
		||||
f 1/63/5 5/64/5 6/65/5 2/66/5
 | 
			
		||||
 
 | 
			
		||||
| 
		 Before Width: | Height: | Size: 87 B After Width: | Height: | Size: 112 B  | 
| 
		 After Width: | Height: | Size: 244 B  | 
| 
		 After Width: | Height: | Size: 190 B  | 
| 
		 After Width: | Height: | Size: 254 B  | 
| 
		 Before Width: | Height: | Size: 315 B After Width: | Height: | Size: 532 B  | 
| 
		 Before Width: | Height: | Size: 265 B After Width: | Height: | Size: 381 B  | 
| 
		 After Width: | Height: | Size: 561 B  | 
| 
		 After Width: | Height: | Size: 109 B  | 
| 
		 Before Width: | Height: | Size: 358 B After Width: | Height: | Size: 286 B  | 
@@ -1789,6 +1789,14 @@ unifieddyes.register_color_craft({
 | 
			
		||||
	}
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
minetest.register_craft({
 | 
			
		||||
	output = "homedecor:torch_wall 10",
 | 
			
		||||
	recipe = {
 | 
			
		||||
		{ "default:coal_lump" },
 | 
			
		||||
		{ "default:steel_ingot" },
 | 
			
		||||
	},
 | 
			
		||||
})
 | 
			
		||||
-- aliases
 | 
			
		||||
 | 
			
		||||
minetest.register_alias("chains:chain_top",                    "homedecor:chain_steel_top")
 | 
			
		||||
 
 | 
			
		||||
@@ -2,25 +2,58 @@
 | 
			
		||||
 | 
			
		||||
local S = minetest.get_translator("homedecor_tables")
 | 
			
		||||
 | 
			
		||||
local materials = {
 | 
			
		||||
-- Various kinds of table legs
 | 
			
		||||
 | 
			
		||||
local table_shapes = {"large_square", "small_square", "small_round"}
 | 
			
		||||
 | 
			
		||||
local tabletop_materials = {
 | 
			
		||||
	{ "glass",
 | 
			
		||||
		S("Small square glass table"),
 | 
			
		||||
		S("Small round glass table"),
 | 
			
		||||
		S("Large glass table piece"),
 | 
			
		||||
		S("Small square glass tabletop"),
 | 
			
		||||
		S("Small round glass tabletop"),
 | 
			
		||||
		S("Large glass tabletop piece"),
 | 
			
		||||
	},
 | 
			
		||||
	{ "wood",
 | 
			
		||||
		S("Small square wooden table"),
 | 
			
		||||
		S("Small round wooden table"),
 | 
			
		||||
		S("Large wooden table piece"),
 | 
			
		||||
		S("Small square wooden tabletop"),
 | 
			
		||||
		S("Small round wooden tabletop"),
 | 
			
		||||
		S("Large wooden tabletop piece"),
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
leg_materials = {
 | 
			
		||||
	{ "brass",          S("brass") },
 | 
			
		||||
	{ "wrought_iron",   S("wrought iron") },
 | 
			
		||||
	{ "wood",           S("wood") }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
for _, t in ipairs(leg_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
 | 
			
		||||
 | 
			
		||||
minetest.register_alias("homedecor:utility_table_legs", "homedecor:table_legs_wood")
 | 
			
		||||
minetest.register_alias("homedecor:utility_table_top",  "homedecor:wood_table_small_square")
 | 
			
		||||
 | 
			
		||||
-- table tops and combined tables
 | 
			
		||||
 | 
			
		||||
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
 | 
			
		||||
for i, mat in ipairs(tabletop_materials) do
 | 
			
		||||
	local m, small_s, small_r, large = unpack(mat)
 | 
			
		||||
	local s
 | 
			
		||||
 | 
			
		||||
@@ -30,179 +63,102 @@ for i, mat in ipairs(materials) do
 | 
			
		||||
		s = default.node_sound_wood_defaults()
 | 
			
		||||
	end
 | 
			
		||||
 | 
			
		||||
-- small square tables
 | 
			
		||||
	for _, shape in ipairs(table_shapes) do
 | 
			
		||||
 | 
			
		||||
	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
 | 
			
		||||
	})
 | 
			
		||||
		homedecor.register(m.."_table_"..shape, {
 | 
			
		||||
			description = shape.." "..m.." tabletop",
 | 
			
		||||
			mesh = "homedecor_table_"..shape..".obj",
 | 
			
		||||
			tiles = {
 | 
			
		||||
				'homedecor_'..m..'_table_'..shape..'.png',
 | 
			
		||||
				'homedecor_'..m..'_table_edges.png',
 | 
			
		||||
				'homedecor_blanktile.png',
 | 
			
		||||
				'homedecor_blanktile.png',
 | 
			
		||||
				'homedecor_blanktile.png',
 | 
			
		||||
			},
 | 
			
		||||
			wield_image = 'homedecor_'..m..'_table_'..shape..'_inv.png',
 | 
			
		||||
			groups = { snappy = 3 },
 | 
			
		||||
			sounds = s,
 | 
			
		||||
			selection_box = tables_cbox,
 | 
			
		||||
			collision_box = tables_cbox,
 | 
			
		||||
			on_place = function(itemstack, placer, pointed_thing)
 | 
			
		||||
				local player_name = placer:get_player_name()
 | 
			
		||||
				if minetest.is_protected(pointed_thing.under, player_name) then return end
 | 
			
		||||
				local node = minetest.get_node(pointed_thing.under)
 | 
			
		||||
				if string.find(node.name, "homedecor:table_legs") then
 | 
			
		||||
					local newname = string.format("homedecor:%s_table_%s_with_%s_legs",
 | 
			
		||||
						m, shape, string.sub(node.name, 22))
 | 
			
		||||
					minetest.set_node(pointed_thing.under, {name = newname})
 | 
			
		||||
					if not creative.is_enabled_for(player_name) then
 | 
			
		||||
						itemstack:take_item()
 | 
			
		||||
						return itemstack
 | 
			
		||||
					end
 | 
			
		||||
				else
 | 
			
		||||
					return minetest.rotate_node(itemstack, placer, pointed_thing)
 | 
			
		||||
				end
 | 
			
		||||
			end
 | 
			
		||||
		})
 | 
			
		||||
 | 
			
		||||
-- small round tables
 | 
			
		||||
		for _, l in ipairs(leg_materials) do
 | 
			
		||||
			local leg_mat, desc = unpack(l)
 | 
			
		||||
 | 
			
		||||
	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
 | 
			
		||||
	})
 | 
			
		||||
			homedecor.register(string.format("%s_table_%s_with_%s_legs", m, shape, leg_mat), {
 | 
			
		||||
				description = string.format("%s %s table with %s legs", shape, m, leg_mat),
 | 
			
		||||
				mesh = "homedecor_table_"..shape..".obj",
 | 
			
		||||
				tiles = {
 | 
			
		||||
					'homedecor_blanktile.png',
 | 
			
		||||
					'homedecor_blanktile.png',
 | 
			
		||||
					'homedecor_'..m..'_table_'..shape..'.png',
 | 
			
		||||
					'homedecor_'..m..'_table_edges.png',
 | 
			
		||||
					"homedecor_table_legs_"..leg_mat..".png",
 | 
			
		||||
				},
 | 
			
		||||
				groups = { snappy = 3 },
 | 
			
		||||
				sounds = s,
 | 
			
		||||
			})
 | 
			
		||||
		end
 | 
			
		||||
	end
 | 
			
		||||
 | 
			
		||||
	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')
 | 
			
		||||
	minetest.register_alias('homedecor:'..m..'_table_large', 'homedecor:'..m..'_table_large_square')
 | 
			
		||||
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
-- conversion routines for old non-6dfacedir tables
 | 
			
		||||
-- old-style tables that used to be from 3dforniture.
 | 
			
		||||
 | 
			
		||||
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") },
 | 
			
		||||
local table_colors = {
 | 
			
		||||
	{ "",           S("Table"),           homedecor.plain_wood },
 | 
			
		||||
	{ "_mahogany",  S("Mahogany Table"),  homedecor.mahogany_wood },
 | 
			
		||||
	{ "_white",     S("White Table"),     homedecor.white_wood }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
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 }
 | 
			
		||||
	},
 | 
			
		||||
})
 | 
			
		||||
for _, t in ipairs(table_colors) do
 | 
			
		||||
	local suffix, desc, texture = unpack(t)
 | 
			
		||||
 | 
			
		||||
	homedecor.register("table"..suffix, {
 | 
			
		||||
		description = desc,
 | 
			
		||||
		tiles = { texture },
 | 
			
		||||
		node_box = {
 | 
			
		||||
			type = "fixed",
 | 
			
		||||
			fixed = {
 | 
			
		||||
				{ -0.4, -0.5, -0.4, -0.3,  0.4, -0.3 },
 | 
			
		||||
				{  0.3, -0.5, -0.4,  0.4,  0.4, -0.3 },
 | 
			
		||||
				{ -0.4, -0.5,  0.3, -0.3,  0.4,  0.4 },
 | 
			
		||||
				{  0.3, -0.5,  0.3,  0.4,  0.4,  0.4 },
 | 
			
		||||
				{ -0.5,  0.4, -0.5,  0.5,  0.5,  0.5 },
 | 
			
		||||
				{ -0.4, -0.2, -0.3, -0.3, -0.1,  0.3 },
 | 
			
		||||
				{  0.3, -0.2, -0.4,  0.4, -0.1,  0.3 },
 | 
			
		||||
				{ -0.3, -0.2, -0.4,  0.4, -0.1, -0.3 },
 | 
			
		||||
				{ -0.3, -0.2,  0.3,  0.3, -0.1,  0.4 },
 | 
			
		||||
			},
 | 
			
		||||
		},
 | 
			
		||||
		groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2},
 | 
			
		||||
		sounds = default.node_sound_wood_defaults(),
 | 
			
		||||
	})
 | 
			
		||||
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 = {
 | 
			
		||||
@@ -226,8 +182,6 @@ minetest.register_craft( {
 | 
			
		||||
	}
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
 | 
			
		||||
minetest.register_craft( {
 | 
			
		||||
        output = "homedecor:wood_table_small_round_b 15",
 | 
			
		||||
        recipe = {
 | 
			
		||||
@@ -305,7 +259,73 @@ minetest.register_craft({
 | 
			
		||||
        burntime = 30,
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
for _, shape in ipairs (table_shapes) do
 | 
			
		||||
	for _, leg in ipairs(leg_materials) do
 | 
			
		||||
		for _, mat in ipairs(tabletop_materials) do
 | 
			
		||||
			minetest.register_craft({
 | 
			
		||||
				output = "homedecor:"..mat[1].."_table_"..shape.."_with_"..leg[1].."_legs",
 | 
			
		||||
				type = "shapeless",
 | 
			
		||||
				recipe = {
 | 
			
		||||
					"homedecor:"..mat[1].."_table_"..shape,
 | 
			
		||||
					"homedecor:table_legs_"..leg[1]
 | 
			
		||||
				},
 | 
			
		||||
			})
 | 
			
		||||
		end
 | 
			
		||||
	end
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
minetest.register_craft({
 | 
			
		||||
	output = "homedecor:table",
 | 
			
		||||
	recipe = {
 | 
			
		||||
		{ "group:wood","group:wood", "group:wood" },
 | 
			
		||||
		{ "group:stick", "", "group:stick" },
 | 
			
		||||
	},
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
minetest.register_craft({
 | 
			
		||||
	type = "shapeless",
 | 
			
		||||
	output = "homedecor:table_mahogany",
 | 
			
		||||
	recipe = {
 | 
			
		||||
		"homedecor:table",
 | 
			
		||||
		"dye:brown",
 | 
			
		||||
	},
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
minetest.register_craft({
 | 
			
		||||
	type = "shapeless",
 | 
			
		||||
	output = "homedecor:table_mahogany",
 | 
			
		||||
	recipe = {
 | 
			
		||||
		"homedecor:table",
 | 
			
		||||
		"unifieddyes:dark_orange",
 | 
			
		||||
	},
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
minetest.register_craft({
 | 
			
		||||
	type = "shapeless",
 | 
			
		||||
	output = "homedecor:table_white",
 | 
			
		||||
	recipe = {
 | 
			
		||||
		"homedecor:table",
 | 
			
		||||
		"dye:white",
 | 
			
		||||
	},
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
minetest.register_craft({
 | 
			
		||||
	type = "fuel",
 | 
			
		||||
	recipe = "homedecor:table",
 | 
			
		||||
	burntime = 30,
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
minetest.register_craft({
 | 
			
		||||
	type = "fuel",
 | 
			
		||||
	recipe = "homedecor:table_mahogany",
 | 
			
		||||
	burntime = 30,
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
minetest.register_craft({
 | 
			
		||||
	type = "fuel",
 | 
			
		||||
	recipe = "homedecor:table_white",
 | 
			
		||||
	burntime = 30,
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
-- recycling
 | 
			
		||||
 | 
			
		||||
@@ -368,3 +388,8 @@ minetest.register_craft({
 | 
			
		||||
		"homedecor:wood_table_large"
 | 
			
		||||
	}
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
-- Aliases for the above 3dforniture-like tables
 | 
			
		||||
 | 
			
		||||
minetest.register_alias("3dforniture:table", "homedecor:table")
 | 
			
		||||
minetest.register_alias('table', 'homedecor:table')
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,4 @@
 | 
			
		||||
name = homedecor_tables
 | 
			
		||||
description = Homedecor mod: tables
 | 
			
		||||
depends = homedecor_common, default, basic_materials
 | 
			
		||||
optional_depends = creative
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										107
									
								
								homedecor_tables/models/homedecor_table_large_square.obj
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,107 @@
 | 
			
		||||
# Blender v2.83.5 OBJ File: 'homedecor table with legs.blend'
 | 
			
		||||
# www.blender.org
 | 
			
		||||
o Cube_Cube.001
 | 
			
		||||
v -0.500000 -0.500000 0.500000
 | 
			
		||||
v 0.500000 -0.500000 -0.500000
 | 
			
		||||
v 0.500000 0.500000 0.500000
 | 
			
		||||
v 0.500000 0.500000 -0.500000
 | 
			
		||||
v -0.500000 0.437500 -0.500000
 | 
			
		||||
v -0.353553 -0.500000 0.353554
 | 
			
		||||
v -0.353553 0.437515 0.353554
 | 
			
		||||
v 0.353553 -0.500000 -0.353553
 | 
			
		||||
v 0.353553 0.437515 -0.353553
 | 
			
		||||
v 0.500000 -0.500000 0.500000
 | 
			
		||||
v 0.500000 -0.437500 -0.500000
 | 
			
		||||
v 0.500000 -0.437500 0.500000
 | 
			
		||||
v -0.500000 -0.437500 -0.500000
 | 
			
		||||
v -0.500000 -0.500000 -0.500000
 | 
			
		||||
v -0.500000 -0.437500 0.500000
 | 
			
		||||
v 0.500000 0.437500 -0.500000
 | 
			
		||||
v 0.500000 0.437500 0.500000
 | 
			
		||||
v -0.500000 0.500000 -0.500000
 | 
			
		||||
v -0.500000 0.437500 0.500000
 | 
			
		||||
v -0.500000 0.500000 0.500000
 | 
			
		||||
v 0.353553 -0.500000 0.353554
 | 
			
		||||
v 0.353553 0.437515 0.353554
 | 
			
		||||
v -0.353553 -0.500000 -0.353553
 | 
			
		||||
v -0.353553 0.437515 -0.353553
 | 
			
		||||
vt -0.000000 -0.000000
 | 
			
		||||
vt 1.000000 -0.000000
 | 
			
		||||
vt 1.000000 0.500000
 | 
			
		||||
vt -0.000000 0.500000
 | 
			
		||||
vt 1.000000 1.000000
 | 
			
		||||
vt -0.000000 1.000000
 | 
			
		||||
vt -0.000000 0.500000
 | 
			
		||||
vt 1.000000 0.500000
 | 
			
		||||
vt -0.000000 1.000000
 | 
			
		||||
vt -0.000000 0.937500
 | 
			
		||||
vt 1.000000 0.937500
 | 
			
		||||
vt -0.000000 0.937500
 | 
			
		||||
vt 1.000000 0.937500
 | 
			
		||||
vt 1.000000 1.000000
 | 
			
		||||
vt 1.000000 1.000000
 | 
			
		||||
vt -0.000000 1.000000
 | 
			
		||||
vt -0.000000 0.937500
 | 
			
		||||
vt 1.000000 0.937500
 | 
			
		||||
vt 1.000000 1.000000
 | 
			
		||||
vt -0.000000 1.000000
 | 
			
		||||
vt -0.000000 0.937500
 | 
			
		||||
vt 1.000000 0.937500
 | 
			
		||||
vt -0.000000 0.500000
 | 
			
		||||
vt 1.000000 0.500000
 | 
			
		||||
vt 1.000000 1.000000
 | 
			
		||||
vt -0.000000 1.000000
 | 
			
		||||
vt 1.000000 -0.000000
 | 
			
		||||
vt 1.000000 0.500000
 | 
			
		||||
vt 0.000000 0.500000
 | 
			
		||||
vt 0.000000 -0.000000
 | 
			
		||||
vt -0.000000 1.000000
 | 
			
		||||
vt -0.000000 0.937500
 | 
			
		||||
vt 1.000000 0.937500
 | 
			
		||||
vt 1.000000 1.000000
 | 
			
		||||
vt -0.000000 1.000000
 | 
			
		||||
vt -0.000000 0.937500
 | 
			
		||||
vt 1.000000 0.937500
 | 
			
		||||
vt 1.000000 0.937500
 | 
			
		||||
vt 1.000000 1.000000
 | 
			
		||||
vt -0.000000 0.937500
 | 
			
		||||
vt -0.000000 1.000000
 | 
			
		||||
vt -0.000000 0.937500
 | 
			
		||||
vt 1.000000 0.937500
 | 
			
		||||
vt 1.000000 1.000000
 | 
			
		||||
vt -0.000000 0.000000
 | 
			
		||||
vt 1.000000 -0.000000
 | 
			
		||||
vt 1.000000 1.000000
 | 
			
		||||
vt 0.000000 1.000000
 | 
			
		||||
vt -0.000000 0.000000
 | 
			
		||||
vt 1.000000 -0.000000
 | 
			
		||||
vt 1.000000 1.000000
 | 
			
		||||
vt 0.000000 1.000000
 | 
			
		||||
vn 0.0000 -1.0000 0.0000
 | 
			
		||||
vn 0.0000 1.0000 0.0000
 | 
			
		||||
vn 1.0000 0.0000 0.0000
 | 
			
		||||
vn -1.0000 0.0000 0.0000
 | 
			
		||||
vn 0.0000 0.0000 1.0000
 | 
			
		||||
vn 0.0000 0.0000 -1.0000
 | 
			
		||||
vn 0.7071 0.0000 -0.7071
 | 
			
		||||
vn 0.7071 0.0000 0.7071
 | 
			
		||||
g Cube_Cube.001_top-bottom
 | 
			
		||||
s off
 | 
			
		||||
f 14/1/1 2/2/1 10/3/1 1/4/1
 | 
			
		||||
f 11/5/2 13/6/2 15/7/2 12/8/2
 | 
			
		||||
g Cube_Cube.001_edges
 | 
			
		||||
f 11/5/3 12/9/3 10/10/3 2/11/3
 | 
			
		||||
f 13/6/4 14/12/4 1/13/4 15/14/4
 | 
			
		||||
f 12/15/5 15/16/5 1/17/5 10/18/5
 | 
			
		||||
f 13/19/6 11/20/6 2/21/6 14/22/6
 | 
			
		||||
g Cube_Cube.001_top-bot_with_legs
 | 
			
		||||
f 20/23/2 3/24/2 4/25/2 18/26/2
 | 
			
		||||
f 16/27/1 17/28/1 19/29/1 5/30/1
 | 
			
		||||
g Cube_Cube.001_edges_with_legs
 | 
			
		||||
f 20/31/5 19/32/5 17/33/5 3/34/5
 | 
			
		||||
f 4/25/3 3/35/3 17/36/3 16/37/3
 | 
			
		||||
f 19/38/4 20/39/4 18/26/4 5/40/4
 | 
			
		||||
f 4/41/6 16/42/6 5/43/6 18/44/6
 | 
			
		||||
g Cube_Cube.001_legs
 | 
			
		||||
f 21/45/7 23/46/7 24/47/7 22/48/7
 | 
			
		||||
f 6/49/8 8/50/8 9/51/8 7/52/8
 | 
			
		||||
@@ -1,43 +1,139 @@
 | 
			
		||||
v 0.499 -0.499 -0.499
 | 
			
		||||
v 0.499 -0.499 0.499
 | 
			
		||||
v -0.499 -0.499 0.499
 | 
			
		||||
v -0.499 -0.499 -0.499
 | 
			
		||||
v 0.499 -0.469 -0.499
 | 
			
		||||
v 0.499 -0.469 0.499
 | 
			
		||||
v -0.499 -0.469 0.499
 | 
			
		||||
v -0.499 -0.469 -0.499
 | 
			
		||||
v 0.469 -0.437 -0.469
 | 
			
		||||
v 0.469 -0.437 0.469
 | 
			
		||||
v -0.469 -0.437 0.469
 | 
			
		||||
v -0.469 -0.437 -0.469
 | 
			
		||||
vt 0.5 0.029
 | 
			
		||||
vt 0.971 0.029
 | 
			
		||||
vt 0.971 0.5
 | 
			
		||||
vt 0.5 0.5
 | 
			
		||||
vt 0.015 0.985
 | 
			
		||||
vt 0.015 0.515
 | 
			
		||||
vt 0.029 0.529
 | 
			
		||||
vt 0.029 0.971
 | 
			
		||||
vt 0.985 0.5
 | 
			
		||||
vt 0.985 0.029
 | 
			
		||||
vt 0.5 0.515
 | 
			
		||||
vt 0.971 0.515
 | 
			
		||||
vt 0.485 0.029
 | 
			
		||||
vt 0.485 0.5
 | 
			
		||||
vt 0.971 0.015
 | 
			
		||||
vt 0.5 0.015
 | 
			
		||||
vt 0.471 0.971
 | 
			
		||||
vt 0.471 0.529
 | 
			
		||||
vt 0.485 0.515
 | 
			
		||||
vt 0.485 0.985
 | 
			
		||||
# Blender v2.83.5 OBJ File: 'homedecor small square table with legs.blend'
 | 
			
		||||
# www.blender.org
 | 
			
		||||
o Cube_Cube.001
 | 
			
		||||
v -0.500000 -0.500000 0.500000
 | 
			
		||||
v 0.500000 -0.500000 -0.500000
 | 
			
		||||
v -0.500000 0.437500 -0.500000
 | 
			
		||||
v -0.353553 -0.500000 0.353554
 | 
			
		||||
v -0.353553 0.437515 0.353554
 | 
			
		||||
v 0.353553 -0.500000 -0.353553
 | 
			
		||||
v 0.353553 0.437515 -0.353553
 | 
			
		||||
v 0.500000 -0.500000 0.500000
 | 
			
		||||
v -0.500000 -0.500000 -0.500000
 | 
			
		||||
v 0.500000 0.437500 -0.500000
 | 
			
		||||
v 0.500000 0.437500 0.500000
 | 
			
		||||
v -0.500000 0.437500 0.500000
 | 
			
		||||
v 0.353553 -0.500000 0.353554
 | 
			
		||||
v 0.353553 0.437515 0.353554
 | 
			
		||||
v -0.353553 -0.500000 -0.353553
 | 
			
		||||
v -0.353553 0.437515 -0.353553
 | 
			
		||||
v 0.468750 0.500000 0.468750
 | 
			
		||||
v 0.500000 0.468750 0.500000
 | 
			
		||||
v 0.500000 0.468750 -0.500000
 | 
			
		||||
v 0.468750 0.500000 -0.468750
 | 
			
		||||
v 0.500000 -0.468750 -0.500000
 | 
			
		||||
v 0.468750 -0.437500 -0.468750
 | 
			
		||||
v 0.500000 -0.468750 0.500000
 | 
			
		||||
v 0.468750 -0.437500 0.468750
 | 
			
		||||
v -0.500000 -0.468750 -0.500000
 | 
			
		||||
v -0.468750 -0.437500 -0.468750
 | 
			
		||||
v -0.468750 -0.437500 0.468750
 | 
			
		||||
v -0.500000 -0.468750 0.500000
 | 
			
		||||
v -0.468750 0.500000 -0.468750
 | 
			
		||||
v -0.500000 0.468750 -0.500000
 | 
			
		||||
v -0.468750 0.500000 0.468750
 | 
			
		||||
v -0.500000 0.468750 0.500000
 | 
			
		||||
vt -0.000000 -0.000000
 | 
			
		||||
vt 1.000000 -0.000000
 | 
			
		||||
vt 1.000000 0.500000
 | 
			
		||||
vt -0.000000 0.500000
 | 
			
		||||
vt 0.968750 0.984375
 | 
			
		||||
vt 0.031250 0.984375
 | 
			
		||||
vt 0.031250 0.515625
 | 
			
		||||
vt 0.968750 0.515625
 | 
			
		||||
vt 0.000000 0.500000
 | 
			
		||||
vt 1.000000 0.500000
 | 
			
		||||
vt 1.000000 1.000000
 | 
			
		||||
vt 0.000000 1.000000
 | 
			
		||||
vt 1.000000 0.968750
 | 
			
		||||
vt 0.000000 0.968750
 | 
			
		||||
vt 0.000000 0.937500
 | 
			
		||||
vt 1.000000 0.937500
 | 
			
		||||
vt 1.000000 0.968750
 | 
			
		||||
vt 0.000000 0.968750
 | 
			
		||||
vt 0.000000 0.937500
 | 
			
		||||
vt 1.000000 0.937500
 | 
			
		||||
vt 0.000000 0.968750
 | 
			
		||||
vt 0.000000 0.937500
 | 
			
		||||
vt 1.000000 0.937500
 | 
			
		||||
vt 1.000000 0.968750
 | 
			
		||||
vt 1.000000 0.968750
 | 
			
		||||
vt 0.000000 0.968750
 | 
			
		||||
vt 0.000000 0.937500
 | 
			
		||||
vt 1.000000 0.937500
 | 
			
		||||
vt 1.000000 -0.000000
 | 
			
		||||
vt 1.000000 0.500000
 | 
			
		||||
vt 0.000000 0.500000
 | 
			
		||||
vt 0.000000 -0.000000
 | 
			
		||||
vt 0.031250 0.515625
 | 
			
		||||
vt 0.968750 0.515625
 | 
			
		||||
vt 0.968750 0.984375
 | 
			
		||||
vt 0.031250 0.984375
 | 
			
		||||
vt 0.000000 1.000000
 | 
			
		||||
vt 0.000000 0.500000
 | 
			
		||||
vt 1.000000 0.500000
 | 
			
		||||
vt 1.000000 1.000000
 | 
			
		||||
vt 0.000000 0.968750
 | 
			
		||||
vt 0.000000 0.937500
 | 
			
		||||
vt 1.000000 0.937500
 | 
			
		||||
vt 1.000000 0.968750
 | 
			
		||||
vt 0.000000 0.968750
 | 
			
		||||
vt 0.000000 0.937500
 | 
			
		||||
vt 1.000000 0.937500
 | 
			
		||||
vt 1.000000 0.968750
 | 
			
		||||
vt 1.000000 0.937500
 | 
			
		||||
vt 1.000000 0.968750
 | 
			
		||||
vt 0.000000 0.968750
 | 
			
		||||
vt 0.000000 0.937500
 | 
			
		||||
vt 1.000000 0.968750
 | 
			
		||||
vt 0.000000 0.968750
 | 
			
		||||
vt 0.000000 0.937500
 | 
			
		||||
vt 1.000000 0.937500
 | 
			
		||||
vt -0.000000 0.000000
 | 
			
		||||
vt 1.000000 -0.000000
 | 
			
		||||
vt 1.000000 1.000000
 | 
			
		||||
vt 0.000000 1.000000
 | 
			
		||||
vt -0.000000 0.000000
 | 
			
		||||
vt 1.000000 -0.000000
 | 
			
		||||
vt 1.000000 1.000000
 | 
			
		||||
vt 0.000000 1.000000
 | 
			
		||||
vn 0.0000 -1.0000 0.0000
 | 
			
		||||
vn 0.0000 1.0000 0.0000
 | 
			
		||||
vn 0.0000 0.7071 0.7071
 | 
			
		||||
vn 0.7071 0.7071 0.0000
 | 
			
		||||
vn 0.0000 0.7071 -0.7071
 | 
			
		||||
vn -0.7071 0.7071 0.0000
 | 
			
		||||
vn 0.0000 0.0000 1.0000
 | 
			
		||||
vn 0.0000 0.0000 -1.0000
 | 
			
		||||
vn -1.0000 0.0000 0.0000
 | 
			
		||||
vn 1.0000 0.0000 0.0000
 | 
			
		||||
vn 0.7071 0.0000 -0.7071
 | 
			
		||||
vn 0.7071 0.0000 0.7071
 | 
			
		||||
g Cube_Cube.001_top-bottom
 | 
			
		||||
s off
 | 
			
		||||
f 1/1 2/2 3/3 4/4
 | 
			
		||||
f 8/5 7/6 11/7 12/8
 | 
			
		||||
f 1/9 5/3 6/2 2/10
 | 
			
		||||
f 2/11 6/4 7/3 3/12
 | 
			
		||||
f 3/13 7/1 8/4 4/14
 | 
			
		||||
f 5/15 1/2 4/1 8/16
 | 
			
		||||
f 9/17 12/8 11/7 10/18
 | 
			
		||||
f 7/6 6/19 10/18 11/7
 | 
			
		||||
f 5/20 8/5 12/8 9/17
 | 
			
		||||
f 6/19 5/20 9/17 10/18
 | 
			
		||||
f 9/1/1 2/2/1 8/3/1 1/4/1
 | 
			
		||||
f 22/5/2 26/6/2 27/7/2 24/8/2
 | 
			
		||||
f 24/8/3 27/7/3 28/9/3 23/10/3
 | 
			
		||||
f 22/5/4 24/8/4 23/10/4 21/11/4
 | 
			
		||||
f 26/6/5 22/5/5 21/11/5 25/12/5
 | 
			
		||||
f 27/7/6 26/6/6 25/12/6 28/9/6
 | 
			
		||||
g Cube_Cube.001_edges
 | 
			
		||||
f 23/13/7 28/14/7 1/15/7 8/16/7
 | 
			
		||||
f 25/17/8 21/18/8 2/19/8 9/20/8
 | 
			
		||||
f 25/21/9 9/22/9 1/23/9 28/24/9
 | 
			
		||||
f 21/25/10 23/26/10 8/27/10 2/28/10
 | 
			
		||||
g Cube_Cube.001_top-bot_with_legs
 | 
			
		||||
f 10/29/1 11/30/1 12/31/1 3/32/1
 | 
			
		||||
f 31/33/2 17/34/2 20/35/2 29/36/2
 | 
			
		||||
f 31/33/6 29/36/6 30/37/6 32/38/6
 | 
			
		||||
f 20/35/4 17/34/4 18/39/4 19/40/4
 | 
			
		||||
f 17/34/3 31/33/3 32/38/3 18/39/3
 | 
			
		||||
f 29/36/5 20/35/5 19/40/5 30/37/5
 | 
			
		||||
g Cube_Cube.001_edges_with_legs
 | 
			
		||||
f 32/41/7 12/42/7 11/43/7 18/44/7
 | 
			
		||||
f 19/45/8 10/46/8 3/47/8 30/48/8
 | 
			
		||||
f 12/49/9 32/50/9 30/51/9 3/52/9
 | 
			
		||||
f 19/53/10 18/54/10 11/55/10 10/56/10
 | 
			
		||||
g Cube_Cube.001_legs
 | 
			
		||||
f 13/57/11 15/58/11 16/59/11 14/60/11
 | 
			
		||||
f 4/61/12 6/62/12 7/63/12 5/64/12
 | 
			
		||||
 
 | 
			
		||||
| 
		 Before Width: | Height: | Size: 74 B  | 
| 
		 Before Width: | Height: | Size: 189 B After Width: | Height: | Size: 189 B  | 
| 
		 Before Width: | Height: | Size: 2.4 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								homedecor_tables/textures/homedecor_glass_table_large_square.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 604 B  | 
| 
		 After Width: | Height: | Size: 315 B  | 
| 
		 Before Width: | Height: | Size: 146 B  | 
| 
		 Before Width: | Height: | Size: 241 B After Width: | Height: | Size: 597 B  | 
| 
		 Before Width: | Height: | Size: 3.8 KiB After Width: | Height: | Size: 713 B  | 
| 
		 Before Width: | Height: | Size: 358 B After Width: | Height: | Size: 642 B  | 
| 
		 Before Width: | Height: | Size: 3.8 KiB After Width: | Height: | Size: 334 B  | 
| 
		 Before Width: | Height: | Size: 331 B After Width: | Height: | Size: 476 B  | 
							
								
								
									
										
											BIN
										
									
								
								homedecor_tables/textures/homedecor_table_legs_wood.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 357 B  | 
| 
		 Before Width: | Height: | Size: 325 B After Width: | Height: | Size: 439 B  | 
| 
		 Before Width: | Height: | Size: 465 B  | 
| 
		 Before Width: | Height: | Size: 338 B  | 
| 
		 Before Width: | Height: | Size: 4.3 KiB  | 
| 
		 Before Width: | Height: | Size: 576 B  | 
							
								
								
									
										
											BIN
										
									
								
								homedecor_tables/textures/homedecor_wood_table_edges.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 204 B  | 
| 
		 Before Width: | Height: | Size: 465 B  | 
| 
		 Before Width: | Height: | Size: 4.0 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								homedecor_tables/textures/homedecor_wood_table_large_square.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 1.2 KiB  | 
| 
		 After Width: | Height: | Size: 652 B  | 
| 
		 Before Width: | Height: | Size: 529 B  | 
| 
		 Before Width: | Height: | Size: 573 B After Width: | Height: | Size: 2.2 KiB  | 
| 
		 Before Width: | Height: | Size: 5.1 KiB After Width: | Height: | Size: 2.0 KiB  | 
| 
		 Before Width: | Height: | Size: 982 B After Width: | Height: | Size: 1.4 KiB  | 
| 
		 Before Width: | Height: | Size: 4.1 KiB After Width: | Height: | Size: 901 B  |