Merge remote-tracking branch 'upstream/master'
							
								
								
									
										19
									
								
								bower.json
									
									
									
									
									
								
							
							
						
						@@ -1,19 +0,0 @@
 | 
				
			|||||||
{
 | 
					 | 
				
			||||||
    "name": "homedecor_modpack",
 | 
					 | 
				
			||||||
    "description": "This mod adds a whole bunch of new items to Minetest suitable for decorating inside and outside a home.",
 | 
					 | 
				
			||||||
    "keywords": [
 | 
					 | 
				
			||||||
		"building",
 | 
					 | 
				
			||||||
		"cosmetic",
 | 
					 | 
				
			||||||
        "homedecor modpack",
 | 
					 | 
				
			||||||
		"homedecor_modpack"
 | 
					 | 
				
			||||||
    ],
 | 
					 | 
				
			||||||
    "homepage": "http://daconcepts.com/vanessa/hobbies/minetest/homedecor-crafting-guide/homedecor-craft-guide.html",
 | 
					 | 
				
			||||||
	"project": "https://github.com/minetest-mods/homedecor_modpack",
 | 
					 | 
				
			||||||
    "forum": "http://forum.minetest.net/viewtopic.php?f=11&t=2041",
 | 
					 | 
				
			||||||
    "screenshots": [
 | 
					 | 
				
			||||||
        "http://daconcepts.com/vanessa/hobbies/minetest/screenshots/homedecor1.png"
 | 
					 | 
				
			||||||
    ],
 | 
					 | 
				
			||||||
    "authors": [
 | 
					 | 
				
			||||||
        "VanessaE"
 | 
					 | 
				
			||||||
    ]
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@@ -1,77 +1,48 @@
 | 
				
			|||||||
local S = minetest.get_translator("building_blocks")
 | 
					local S = minetest.get_translator("building_blocks")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
local stairs_groups_names = {"cracky","choppy","flammable","crumbly","snappy"}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
local function building_blocks_stairs(nodename, def)
 | 
					local function building_blocks_stairs(nodename, def)
 | 
				
			||||||
	minetest.register_node(nodename, def)
 | 
						minetest.register_node(nodename, def)
 | 
				
			||||||
	if minetest.get_modpath("moreblocks") or minetest.get_modpath("stairs") then
 | 
					 | 
				
			||||||
		local mod, name = nodename:match("(.*):(.*)")
 | 
					 | 
				
			||||||
		minetest.register_alias(mod .. ":slab_" .. name, "stairs:slab_" .. name)
 | 
					 | 
				
			||||||
		minetest.register_alias(mod .. ":stair_" .. name, "stairs:stair_" .. name)
 | 
					 | 
				
			||||||
		local stairs_groups = {}
 | 
					 | 
				
			||||||
		for _, groupname in ipairs(stairs_groups_names) do
 | 
					 | 
				
			||||||
			stairs_groups[groupname] = def.groups[groupname]
 | 
					 | 
				
			||||||
		end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	if minetest.get_modpath("moreblocks") then
 | 
						if minetest.get_modpath("moreblocks") then
 | 
				
			||||||
			stairsplus:register_all(
 | 
							local mod, name = nodename:match("(.*):(.*)")
 | 
				
			||||||
				mod,
 | 
							stairsplus:register_all(mod, name, nodename, def)
 | 
				
			||||||
				name,
 | 
					
 | 
				
			||||||
				nodename,
 | 
							minetest.register_alias("stairs:slab_" .. name, mod .. ":slab_" .. name)
 | 
				
			||||||
				{
 | 
							minetest.register_alias("stairs:stair_" .. name, mod .. ":stair_" .. name)
 | 
				
			||||||
					description = def.description,
 | 
							minetest.register_alias("stairs:stair_inner_" .. name, mod .. ":stair_" .. name .. "_inner")
 | 
				
			||||||
					tiles = def.tiles,
 | 
							minetest.register_alias("stairs:stair_outer_" .. name, mod .. ":stair_" .. name .. "_outer")
 | 
				
			||||||
					groups = stairs_groups,
 | 
					 | 
				
			||||||
					sounds = def.sounds,
 | 
					 | 
				
			||||||
				}
 | 
					 | 
				
			||||||
			)
 | 
					 | 
				
			||||||
		else
 | 
					 | 
				
			||||||
			stairs.register_stair_and_slab(name,nodename,
 | 
					 | 
				
			||||||
				stairs_groups,
 | 
					 | 
				
			||||||
				def.tiles,
 | 
					 | 
				
			||||||
				def.stair_desc,
 | 
					 | 
				
			||||||
				def.slab_desc,
 | 
					 | 
				
			||||||
				def.sounds
 | 
					 | 
				
			||||||
				--FIXME: Missing descriptions for Inner and Outer stairs
 | 
					 | 
				
			||||||
				-- See https://github.com/minetest/minetest_game/pull/2584
 | 
					 | 
				
			||||||
			)
 | 
					 | 
				
			||||||
		end
 | 
					 | 
				
			||||||
	end
 | 
						end
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
building_blocks_stairs("building_blocks:grate", {
 | 
					building_blocks_stairs("building_blocks:grate", {
 | 
				
			||||||
	drawtype = "glasslike",
 | 
						drawtype = "glasslike",
 | 
				
			||||||
	description = S("Grate"),
 | 
						description = S("Grate"),
 | 
				
			||||||
	stair_desc = S("Grate Stair"),
 | 
					 | 
				
			||||||
	slab = S("Grate Slab"),
 | 
					 | 
				
			||||||
	tiles = {"building_blocks_grate.png"},
 | 
						tiles = {"building_blocks_grate.png"},
 | 
				
			||||||
	paramtype = "light",
 | 
						paramtype = "light",
 | 
				
			||||||
	sunlight_propagates = true,
 | 
						sunlight_propagates = true,
 | 
				
			||||||
	is_ground_content = true,
 | 
						is_ground_content = true,
 | 
				
			||||||
 | 
						use_texture_alpha = "clip",
 | 
				
			||||||
	groups = {cracky=1},
 | 
						groups = {cracky=1},
 | 
				
			||||||
	sounds = default.node_sound_metal_defaults(),
 | 
						sounds = default.node_sound_metal_defaults(),
 | 
				
			||||||
})
 | 
					})
 | 
				
			||||||
building_blocks_stairs("building_blocks:smoothglass", {
 | 
					building_blocks_stairs("building_blocks:smoothglass", {
 | 
				
			||||||
	drawtype = "glasslike",
 | 
						drawtype = "glasslike",
 | 
				
			||||||
	description = S("Streak Free Glass"),
 | 
						description = S("Streak Free Glass"),
 | 
				
			||||||
	stair_desc = S("Streak Free Glass Stair"),
 | 
					 | 
				
			||||||
	slab_desc = S("Streak Free Glass Slab"),
 | 
					 | 
				
			||||||
	tiles = {"building_blocks_sglass.png"},
 | 
						tiles = {"building_blocks_sglass.png"},
 | 
				
			||||||
	paramtype = "light",
 | 
						paramtype = "light",
 | 
				
			||||||
	sunlight_propagates = true,
 | 
						sunlight_propagates = true,
 | 
				
			||||||
	is_ground_content = true,
 | 
						is_ground_content = true,
 | 
				
			||||||
 | 
						use_texture_alpha = "clip",
 | 
				
			||||||
	groups = {snappy=3,cracky=3,oddly_breakable_by_hand=3},
 | 
						groups = {snappy=3,cracky=3,oddly_breakable_by_hand=3},
 | 
				
			||||||
	sounds = default.node_sound_glass_defaults(),
 | 
						sounds = default.node_sound_glass_defaults(),
 | 
				
			||||||
})
 | 
					})
 | 
				
			||||||
building_blocks_stairs("building_blocks:woodglass", {
 | 
					building_blocks_stairs("building_blocks:woodglass", {
 | 
				
			||||||
	drawtype = "glasslike",
 | 
						drawtype = "glasslike",
 | 
				
			||||||
	description = S("Wood Framed Glass"),
 | 
						description = S("Wood Framed Glass"),
 | 
				
			||||||
	stair_desc = S("Wood Framed Glass Stair"),
 | 
					 | 
				
			||||||
	slab_desc = S("Wood Framed Glass Slab"),
 | 
					 | 
				
			||||||
	tiles = {"building_blocks_wglass.png"},
 | 
						tiles = {"building_blocks_wglass.png"},
 | 
				
			||||||
	paramtype = "light",
 | 
						paramtype = "light",
 | 
				
			||||||
	sunlight_propagates = true,
 | 
						sunlight_propagates = true,
 | 
				
			||||||
	is_ground_content = true,
 | 
						is_ground_content = true,
 | 
				
			||||||
 | 
						use_texture_alpha = "clip",
 | 
				
			||||||
	groups = {snappy=3,cracky=3,oddly_breakable_by_hand=3},
 | 
						groups = {snappy=3,cracky=3,oddly_breakable_by_hand=3},
 | 
				
			||||||
	sounds = default.node_sound_glass_defaults(),
 | 
						sounds = default.node_sound_glass_defaults(),
 | 
				
			||||||
})
 | 
					})
 | 
				
			||||||
@@ -79,8 +50,6 @@ building_blocks_stairs("building_blocks:woodglass", {
 | 
				
			|||||||
building_blocks_stairs("building_blocks:Adobe", {
 | 
					building_blocks_stairs("building_blocks:Adobe", {
 | 
				
			||||||
	tiles = {"building_blocks_Adobe.png"},
 | 
						tiles = {"building_blocks_Adobe.png"},
 | 
				
			||||||
	description = S("Adobe"),
 | 
						description = S("Adobe"),
 | 
				
			||||||
	stair_desc = S("Adobe Stair"),
 | 
					 | 
				
			||||||
	slab_desc = S("Adobe Slab"),
 | 
					 | 
				
			||||||
	is_ground_content = true,
 | 
						is_ground_content = true,
 | 
				
			||||||
	groups = {crumbly=3},
 | 
						groups = {crumbly=3},
 | 
				
			||||||
	sounds = default.node_sound_stone_defaults(),
 | 
						sounds = default.node_sound_stone_defaults(),
 | 
				
			||||||
@@ -88,8 +57,6 @@ building_blocks_stairs("building_blocks:Adobe", {
 | 
				
			|||||||
building_blocks_stairs("building_blocks:fakegrass", {
 | 
					building_blocks_stairs("building_blocks:fakegrass", {
 | 
				
			||||||
	tiles = {"default_grass.png", "default_dirt.png", "default_dirt.png^default_grass_side.png"},
 | 
						tiles = {"default_grass.png", "default_dirt.png", "default_dirt.png^default_grass_side.png"},
 | 
				
			||||||
	description = S("Fake Grass"),
 | 
						description = S("Fake Grass"),
 | 
				
			||||||
	stair_desc = S("Fake Grass Stair"),
 | 
					 | 
				
			||||||
	slab_desc = S("Fake Grass Slab"),
 | 
					 | 
				
			||||||
	is_ground_content = true,
 | 
						is_ground_content = true,
 | 
				
			||||||
	groups = {crumbly=3},
 | 
						groups = {crumbly=3},
 | 
				
			||||||
	sounds = default.node_sound_dirt_defaults({
 | 
						sounds = default.node_sound_dirt_defaults({
 | 
				
			||||||
@@ -100,8 +67,6 @@ building_blocks_stairs("building_blocks:hardwood", {
 | 
				
			|||||||
	tiles = {"building_blocks_hardwood.png"},
 | 
						tiles = {"building_blocks_hardwood.png"},
 | 
				
			||||||
	is_ground_content = true,
 | 
						is_ground_content = true,
 | 
				
			||||||
	description = S("Hardwood"),
 | 
						description = S("Hardwood"),
 | 
				
			||||||
	stair_desc = S("Hardwood Stair"),
 | 
					 | 
				
			||||||
	slab_desc = S("Hardwood Slab"),
 | 
					 | 
				
			||||||
	groups = {choppy=1,flammable=1},
 | 
						groups = {choppy=1,flammable=1},
 | 
				
			||||||
	sounds = default.node_sound_wood_defaults(),
 | 
						sounds = default.node_sound_wood_defaults(),
 | 
				
			||||||
})
 | 
					})
 | 
				
			||||||
@@ -109,15 +74,11 @@ building_blocks_stairs("building_blocks:Roofing", {
 | 
				
			|||||||
	tiles = {"building_blocks_Roofing.png"},
 | 
						tiles = {"building_blocks_Roofing.png"},
 | 
				
			||||||
	is_ground_content = true,
 | 
						is_ground_content = true,
 | 
				
			||||||
	description = S("Roof block"),
 | 
						description = S("Roof block"),
 | 
				
			||||||
	stair_desc = S("Roof block Stair"),
 | 
					 | 
				
			||||||
	slab_desc = S("Roof block Slab"),
 | 
					 | 
				
			||||||
	groups = {snappy=3},
 | 
						groups = {snappy=3},
 | 
				
			||||||
	sounds = default.node_sound_stone_defaults(),
 | 
						sounds = default.node_sound_stone_defaults(),
 | 
				
			||||||
})
 | 
					})
 | 
				
			||||||
building_blocks_stairs("building_blocks:Tar", {
 | 
					building_blocks_stairs("building_blocks:Tar", {
 | 
				
			||||||
	description = S("Tar"),
 | 
						description = S("Tar"),
 | 
				
			||||||
	stair_desc = S("Tar Stair"),
 | 
					 | 
				
			||||||
	slab_desc = S("Tar Slab"),
 | 
					 | 
				
			||||||
	tiles = {"building_blocks_tar.png"},
 | 
						tiles = {"building_blocks_tar.png"},
 | 
				
			||||||
	is_ground_content = true,
 | 
						is_ground_content = true,
 | 
				
			||||||
	groups = {crumbly=1, tar_block = 1},
 | 
						groups = {crumbly=1, tar_block = 1},
 | 
				
			||||||
@@ -125,8 +86,6 @@ building_blocks_stairs("building_blocks:Tar", {
 | 
				
			|||||||
})
 | 
					})
 | 
				
			||||||
building_blocks_stairs("building_blocks:Marble", {
 | 
					building_blocks_stairs("building_blocks:Marble", {
 | 
				
			||||||
	description = S("Marble"),
 | 
						description = S("Marble"),
 | 
				
			||||||
	stair_desc = S("Marble Stair"),
 | 
					 | 
				
			||||||
	slab_desc = S("Marble Slab"),
 | 
					 | 
				
			||||||
	tiles = {"building_blocks_marble.png"},
 | 
						tiles = {"building_blocks_marble.png"},
 | 
				
			||||||
	is_ground_content = true,
 | 
						is_ground_content = true,
 | 
				
			||||||
	groups = {cracky=3, marble = 1},
 | 
						groups = {cracky=3, marble = 1},
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -179,6 +179,7 @@ minetest.register_node("fake_fire:fancy_fire", {
 | 
				
			|||||||
	mesh = "fancy_fire.obj",
 | 
						mesh = "fancy_fire.obj",
 | 
				
			||||||
	paramtype = "light",
 | 
						paramtype = "light",
 | 
				
			||||||
	paramtype2 = "facedir",
 | 
						paramtype2 = "facedir",
 | 
				
			||||||
 | 
						use_texture_alpha = "clip",
 | 
				
			||||||
	groups = {oddly_breakable_by_hand=3, flammable=0},
 | 
						groups = {oddly_breakable_by_hand=3, flammable=0},
 | 
				
			||||||
	sunlight_propagates = true,
 | 
						sunlight_propagates = true,
 | 
				
			||||||
	light_source = 13,
 | 
						light_source = 13,
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,2 +1,2 @@
 | 
				
			|||||||
name = fake_fire
 | 
					name = fake_fire
 | 
				
			||||||
depends = default
 | 
					depends = default, basic_materials
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -21,7 +21,7 @@ if minetest.get_modpath("vessels") then
 | 
				
			|||||||
		},
 | 
							},
 | 
				
			||||||
		paramtype = "light",
 | 
							paramtype = "light",
 | 
				
			||||||
		paramtype2 = "facedir",
 | 
							paramtype2 = "facedir",
 | 
				
			||||||
		use_texture_alpha = true
 | 
							use_texture_alpha = "blend",
 | 
				
			||||||
	})
 | 
						})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	local sbox = {
 | 
						local sbox = {
 | 
				
			||||||
@@ -35,7 +35,7 @@ if minetest.get_modpath("vessels") then
 | 
				
			|||||||
		tiles = {"homedecor_3d_vessels_shelf_glass.png"},
 | 
							tiles = {"homedecor_3d_vessels_shelf_glass.png"},
 | 
				
			||||||
		inventory_image = "homedecor_3d_vessels_glass_bottle_inv.png",
 | 
							inventory_image = "homedecor_3d_vessels_glass_bottle_inv.png",
 | 
				
			||||||
		wield_image = "homedecor_3d_vessels_glass_bottle_inv.png",
 | 
							wield_image = "homedecor_3d_vessels_glass_bottle_inv.png",
 | 
				
			||||||
		use_texture_alpha = true,
 | 
							use_texture_alpha = "blend",
 | 
				
			||||||
		selection_box = sbox
 | 
							selection_box = sbox
 | 
				
			||||||
	})
 | 
						})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -54,7 +54,7 @@ if minetest.get_modpath("vessels") then
 | 
				
			|||||||
		tiles = {"homedecor_3d_vessels_shelf_glass.png"},
 | 
							tiles = {"homedecor_3d_vessels_shelf_glass.png"},
 | 
				
			||||||
		inventory_image = "homedecor_3d_vessels_drinking_glass_inv.png",
 | 
							inventory_image = "homedecor_3d_vessels_drinking_glass_inv.png",
 | 
				
			||||||
		wield_image = "homedecor_3d_vessels_drinking_glass_inv.png",
 | 
							wield_image = "homedecor_3d_vessels_drinking_glass_inv.png",
 | 
				
			||||||
		use_texture_alpha = true,
 | 
							use_texture_alpha = "blend",
 | 
				
			||||||
		selection_box = sbox
 | 
							selection_box = sbox
 | 
				
			||||||
	})
 | 
						})
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -91,6 +91,10 @@ homedecor.register("medicine_cabinet", {
 | 
				
			|||||||
		node.name = "homedecor:medicine_cabinet_open"
 | 
							node.name = "homedecor:medicine_cabinet_open"
 | 
				
			||||||
		minetest.swap_node(pos, node)
 | 
							minetest.swap_node(pos, node)
 | 
				
			||||||
	end,
 | 
						end,
 | 
				
			||||||
 | 
						can_dig = function(pos)
 | 
				
			||||||
 | 
							local inv = minetest.get_meta(pos):get_inventory("main")
 | 
				
			||||||
 | 
							return inv:is_empty("main")
 | 
				
			||||||
 | 
						end,
 | 
				
			||||||
	infotext=S("Medicine cabinet"),
 | 
						infotext=S("Medicine cabinet"),
 | 
				
			||||||
	inventory = {
 | 
						inventory = {
 | 
				
			||||||
		size=6,
 | 
							size=6,
 | 
				
			||||||
@@ -115,6 +119,10 @@ homedecor.register("medicine_cabinet_open", {
 | 
				
			|||||||
		node.name = "homedecor:medicine_cabinet"
 | 
							node.name = "homedecor:medicine_cabinet"
 | 
				
			||||||
		minetest.swap_node(pos, node)
 | 
							minetest.swap_node(pos, node)
 | 
				
			||||||
	end,
 | 
						end,
 | 
				
			||||||
 | 
						can_dig = function(pos)
 | 
				
			||||||
 | 
							local inv = minetest.get_meta(pos):get_inventory("main")
 | 
				
			||||||
 | 
							return inv:is_empty("main")
 | 
				
			||||||
 | 
						end,
 | 
				
			||||||
})
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
-- "Sanitation" related
 | 
					-- "Sanitation" related
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -31,7 +31,7 @@ local kbed_cbox = {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
-- local bed_on_rightclick = minetest.registered_nodes["beds:bed"].on_rightclick
 | 
					local bed_on_rightclick = minetest.registered_nodes["beds:bed"].on_rightclick
 | 
				
			||||||
 | 
					
 | 
				
			||||||
homedecor.register("bed_regular", {
 | 
					homedecor.register("bed_regular", {
 | 
				
			||||||
	mesh = "homedecor_bed_regular.obj",
 | 
						mesh = "homedecor_bed_regular.obj",
 | 
				
			||||||
@@ -67,9 +67,9 @@ homedecor.register("bed_regular", {
 | 
				
			|||||||
		if itemname == "homedecor:bed_regular" then
 | 
							if itemname == "homedecor:bed_regular" then
 | 
				
			||||||
			homedecor.bed_expansion(pos, clicker, itemstack, pointed_thing, true)
 | 
								homedecor.bed_expansion(pos, clicker, itemstack, pointed_thing, true)
 | 
				
			||||||
			return itemstack
 | 
								return itemstack
 | 
				
			||||||
--		else
 | 
							else
 | 
				
			||||||
--			bed_on_rightclick(pos, node, clicker)
 | 
								bed_on_rightclick(pos, node, clicker)
 | 
				
			||||||
--			return itemstack
 | 
								return itemstack
 | 
				
			||||||
		end
 | 
							end
 | 
				
			||||||
	end
 | 
						end
 | 
				
			||||||
})
 | 
					})
 | 
				
			||||||
@@ -96,10 +96,10 @@ homedecor.register("bed_extended", {
 | 
				
			|||||||
		homedecor.unextend_bed(pos)
 | 
							homedecor.unextend_bed(pos)
 | 
				
			||||||
	end,
 | 
						end,
 | 
				
			||||||
	on_dig = unifieddyes.on_dig,
 | 
						on_dig = unifieddyes.on_dig,
 | 
				
			||||||
--	on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
 | 
						on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
 | 
				
			||||||
--		bed_on_rightclick(pos, node, clicker)
 | 
							bed_on_rightclick(pos, node, clicker)
 | 
				
			||||||
--		return itemstack
 | 
							return itemstack
 | 
				
			||||||
--	end,
 | 
						end,
 | 
				
			||||||
	drop = "homedecor:bed_regular"
 | 
						drop = "homedecor:bed_regular"
 | 
				
			||||||
})
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -133,10 +133,10 @@ homedecor.register("bed_kingsize", {
 | 
				
			|||||||
		end
 | 
							end
 | 
				
			||||||
	end,
 | 
						end,
 | 
				
			||||||
	on_dig = unifieddyes.on_dig,
 | 
						on_dig = unifieddyes.on_dig,
 | 
				
			||||||
--	on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
 | 
						on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
 | 
				
			||||||
--		bed_on_rightclick(pos, node, clicker)
 | 
							bed_on_rightclick(pos, node, clicker)
 | 
				
			||||||
--		return itemstack
 | 
							return itemstack
 | 
				
			||||||
--	end,
 | 
						end,
 | 
				
			||||||
})
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
for w, d in pairs({ ["mahogany"] = S("mahogany"), ["oak"] = S("oak") }) do
 | 
					for w, d in pairs({ ["mahogany"] = S("mahogany"), ["oak"] = S("oak") }) do
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -10,6 +10,7 @@ homedecor.register("air_conditioner", {
 | 
				
			|||||||
		"default_glass.png"
 | 
							"default_glass.png"
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
	groups = { snappy = 3 },
 | 
						groups = { snappy = 3 },
 | 
				
			||||||
 | 
						use_texture_alpha = "clip",
 | 
				
			||||||
	sounds = default.node_sound_leaves_defaults(),
 | 
						sounds = default.node_sound_leaves_defaults(),
 | 
				
			||||||
	selection_box = { type="regular" },
 | 
						selection_box = { type="regular" },
 | 
				
			||||||
})
 | 
					})
 | 
				
			||||||
@@ -95,6 +96,7 @@ homedecor.register("ceiling_fan", {
 | 
				
			|||||||
			{ -0.0625, 0.375, -0.0625, 0.0625, 0.5, 0.0625 }
 | 
								{ -0.0625, 0.375, -0.0625, 0.0625, 0.5, 0.0625 }
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
 | 
						use_texture_alpha = "clip",
 | 
				
			||||||
	groups = { snappy = 3 },
 | 
						groups = { snappy = 3 },
 | 
				
			||||||
	light_source = default.LIGHT_MAX-1,
 | 
						light_source = default.LIGHT_MAX-1,
 | 
				
			||||||
	sounds = default.node_sound_glass_defaults(),
 | 
						sounds = default.node_sound_glass_defaults(),
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -88,6 +88,7 @@ homedecor.register("grandfather_clock", {
 | 
				
			|||||||
		"homedecor_grandfather_clock_face_edge.png",
 | 
							"homedecor_grandfather_clock_face_edge.png",
 | 
				
			||||||
		"homedecor_generic_metal_brass.png"
 | 
							"homedecor_generic_metal_brass.png"
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
 | 
						use_texture_alpha = "clip",
 | 
				
			||||||
	inventory_image = "homedecor_grandfather_clock_inv.png",
 | 
						inventory_image = "homedecor_grandfather_clock_inv.png",
 | 
				
			||||||
	groups = { snappy = 3 },
 | 
						groups = { snappy = 3 },
 | 
				
			||||||
	selection_box = gf_cbox,
 | 
						selection_box = gf_cbox,
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -30,6 +30,7 @@ minetest.register_node(":homedecor:cobweb_centered", {
 | 
				
			|||||||
	drawtype = "nodebox",
 | 
						drawtype = "nodebox",
 | 
				
			||||||
	tiles = { "homedecor_cobweb.png" },
 | 
						tiles = { "homedecor_cobweb.png" },
 | 
				
			||||||
	inventory_image = "homedecor_cobweb.png",
 | 
						inventory_image = "homedecor_cobweb.png",
 | 
				
			||||||
 | 
						use_texture_alpha = "clip",
 | 
				
			||||||
	paramtype = "light",
 | 
						paramtype = "light",
 | 
				
			||||||
	paramtype2 = "facedir",
 | 
						paramtype2 = "facedir",
 | 
				
			||||||
	sunlight_propagates = true,
 | 
						sunlight_propagates = true,
 | 
				
			||||||
@@ -59,6 +60,7 @@ minetest.register_node(":homedecor:cobweb_flat", {
 | 
				
			|||||||
	inventory_image = "homedecor_cobweb.png",
 | 
						inventory_image = "homedecor_cobweb.png",
 | 
				
			||||||
	paramtype = "light",
 | 
						paramtype = "light",
 | 
				
			||||||
	paramtype2 = "facedir",
 | 
						paramtype2 = "facedir",
 | 
				
			||||||
 | 
						use_texture_alpha = "clip",
 | 
				
			||||||
	sunlight_propagates = true,
 | 
						sunlight_propagates = true,
 | 
				
			||||||
	liquid_viscosity = 8,
 | 
						liquid_viscosity = 8,
 | 
				
			||||||
	liquidtype = "source",
 | 
						liquidtype = "source",
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -148,7 +148,8 @@ function homedecor.register_furnace(name, furnacedef)
 | 
				
			|||||||
		can_dig = furnace_can_dig,
 | 
							can_dig = furnace_can_dig,
 | 
				
			||||||
		allow_metadata_inventory_put = furnace_allow_put,
 | 
							allow_metadata_inventory_put = furnace_allow_put,
 | 
				
			||||||
		allow_metadata_inventory_move = furnace_allow_move,
 | 
							allow_metadata_inventory_move = furnace_allow_move,
 | 
				
			||||||
		inventory = { lockable = true }
 | 
							inventory = { lockable = true },
 | 
				
			||||||
 | 
							is_furnace = true
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	local def_active = {
 | 
						local def_active = {
 | 
				
			||||||
@@ -162,7 +163,8 @@ function homedecor.register_furnace(name, furnacedef)
 | 
				
			|||||||
		can_dig = furnace_can_dig,
 | 
							can_dig = furnace_can_dig,
 | 
				
			||||||
		allow_metadata_inventory_put = furnace_allow_put,
 | 
							allow_metadata_inventory_put = furnace_allow_put,
 | 
				
			||||||
		allow_metadata_inventory_move = furnace_allow_move,
 | 
							allow_metadata_inventory_move = furnace_allow_move,
 | 
				
			||||||
		inventory = { lockable = true }
 | 
							inventory = { lockable = true },
 | 
				
			||||||
 | 
							is_furnace = true
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if furnacedef.extra_nodedef_fields then
 | 
						if furnacedef.extra_nodedef_fields then
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,5 +1,12 @@
 | 
				
			|||||||
local S = minetest.get_translator("homedecor_common")
 | 
					local S = minetest.get_translator("homedecor_common")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					local has_hopper = minetest.get_modpath("hopper")
 | 
				
			||||||
 | 
					local has_safe_hopper = has_hopper and
 | 
				
			||||||
 | 
						-- mod from https://github.com/minetest-mods/hopper respects the owner
 | 
				
			||||||
 | 
						(hopper.neighbors or
 | 
				
			||||||
 | 
						-- mod from https://notabug.org/TenPlus1/hopper respects the owner since 20220123
 | 
				
			||||||
 | 
						(hopper.version and hopper.version >= "20220123"))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
local default_can_dig = function(pos,player)
 | 
					local default_can_dig = function(pos,player)
 | 
				
			||||||
	local meta = minetest.get_meta(pos)
 | 
						local meta = minetest.get_meta(pos)
 | 
				
			||||||
	return meta:get_inventory():is_empty("main")
 | 
						return meta:get_inventory():is_empty("main")
 | 
				
			||||||
@@ -97,6 +104,23 @@ function homedecor.handle_inventory(name, def, original_def)
 | 
				
			|||||||
	end
 | 
						end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	local locked = inventory.locked
 | 
						local locked = inventory.locked
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if has_hopper and (not locked or has_safe_hopper) then
 | 
				
			||||||
 | 
							if inventory.size then
 | 
				
			||||||
 | 
								hopper:add_container({
 | 
				
			||||||
 | 
									{"top",  "homedecor:"..name, "main"},
 | 
				
			||||||
 | 
									{"bottom", "homedecor:"..name, "main"},
 | 
				
			||||||
 | 
									{"side", "homedecor:"..name, "main"},
 | 
				
			||||||
 | 
								})
 | 
				
			||||||
 | 
							elseif original_def.is_furnace then
 | 
				
			||||||
 | 
								hopper:add_container({
 | 
				
			||||||
 | 
									{"top", "homedecor:"..name, "dst"},
 | 
				
			||||||
 | 
									{"bottom", "homedecor:"..name, "src"},
 | 
				
			||||||
 | 
									{"side", "homedecor:"..name, "fuel"},
 | 
				
			||||||
 | 
								})
 | 
				
			||||||
 | 
							end
 | 
				
			||||||
 | 
						end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if locked then
 | 
						if locked then
 | 
				
			||||||
		local after_place_node = def.after_place_node
 | 
							local after_place_node = def.after_place_node
 | 
				
			||||||
		def.after_place_node = function(pos, placer)
 | 
							def.after_place_node = function(pos, placer)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,4 +1,4 @@
 | 
				
			|||||||
name = homedecor_common
 | 
					name = homedecor_common
 | 
				
			||||||
description = Homedecor mod: common
 | 
					description = Homedecor mod: common
 | 
				
			||||||
depends = default, creative
 | 
					depends = default, creative
 | 
				
			||||||
optional_depends = screwdriver
 | 
					optional_depends = screwdriver, hopper
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -6,6 +6,8 @@ local placeholder_node = "homedecor:expansion_placeholder"
 | 
				
			|||||||
function homedecor.register(name, original_def)
 | 
					function homedecor.register(name, original_def)
 | 
				
			||||||
	local def = table.copy(original_def)
 | 
						local def = table.copy(original_def)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						def.is_furnace = nil
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	def.drawtype = def.drawtype
 | 
						def.drawtype = def.drawtype
 | 
				
			||||||
		or (def.mesh and "mesh")
 | 
							or (def.mesh and "mesh")
 | 
				
			||||||
		or (def.node_box and "nodebox")
 | 
							or (def.node_box and "nodebox")
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -4,209 +4,137 @@ local S = minetest.get_translator("homedecor_doors_and_gates")
 | 
				
			|||||||
local mesecons_mp = minetest.get_modpath("mesecons")
 | 
					local mesecons_mp = minetest.get_modpath("mesecons")
 | 
				
			||||||
homedecor_doors_and_gates = {}
 | 
					homedecor_doors_and_gates = {}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
-- new doors using minetest_game doors API
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
local door_list = {
 | 
					local door_list = {
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		name = "wood_plain",
 | 
							name = "wood_plain",
 | 
				
			||||||
		description = S("Plain Wooden Door"),
 | 
							description = S("Plain Wooden Door"),
 | 
				
			||||||
		groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
 | 
							sounds = default.node_sound_wood_defaults(),
 | 
				
			||||||
		sounds = {
 | 
							sound_open = "homedecor_door_open",
 | 
				
			||||||
			main = default.node_sound_wood_defaults(),
 | 
							sound_close = "homedecor_door_close",
 | 
				
			||||||
			open = "homedecor_door_open",
 | 
					 | 
				
			||||||
			close = "homedecor_door_close",
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
 | 
					 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		name = "exterior_fancy",
 | 
							name = "exterior_fancy",
 | 
				
			||||||
		description = S("Fancy Wood/Glass Door"),
 | 
							description = S("Fancy Wood/Glass Door"),
 | 
				
			||||||
		groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
 | 
							sounds = default.node_sound_wood_defaults(),
 | 
				
			||||||
		sounds = {
 | 
							sound_open = "homedecor_door_open",
 | 
				
			||||||
			main = default.node_sound_wood_defaults(),
 | 
							sound_close = "homedecor_door_close",
 | 
				
			||||||
			open = "homedecor_door_open",
 | 
							mesh = "homedecor_door_fancy.obj"
 | 
				
			||||||
			close = "homedecor_door_close",
 | 
					 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
		backface = true,
 | 
					 | 
				
			||||||
		alpha = true,
 | 
					 | 
				
			||||||
		custom_model = "homedecor_door_fancy"
 | 
					 | 
				
			||||||
	},
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		name = "french_oak",
 | 
							name = "french_oak",
 | 
				
			||||||
		description = S("French door, Oak-colored"),
 | 
							description = S("French door, Oak-colored"),
 | 
				
			||||||
		groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
 | 
							sounds = default.node_sound_glass_defaults(),
 | 
				
			||||||
		sounds = {
 | 
							mesh = "homedecor_door_french.obj"
 | 
				
			||||||
			main = default.node_sound_glass_defaults(),
 | 
					 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
		backface = true,
 | 
					 | 
				
			||||||
		alpha = true,
 | 
					 | 
				
			||||||
		custom_model = "homedecor_door_french"
 | 
					 | 
				
			||||||
	},
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		name = "french_mahogany",
 | 
							name = "french_mahogany",
 | 
				
			||||||
		description = S("French door, Mahogany-colored"),
 | 
							description = S("French door, Mahogany-colored"),
 | 
				
			||||||
		groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
 | 
							sounds = default.node_sound_glass_defaults(),
 | 
				
			||||||
		sounds = {
 | 
							mesh = "homedecor_door_french.obj"
 | 
				
			||||||
			main = default.node_sound_glass_defaults(),
 | 
					 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
		backface = true,
 | 
					 | 
				
			||||||
		alpha = true,
 | 
					 | 
				
			||||||
		custom_model = "homedecor_door_french"
 | 
					 | 
				
			||||||
	},
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		name = "french_white",
 | 
							name = "french_white",
 | 
				
			||||||
		description = S("French door, White"),
 | 
							description = S("French door, White"),
 | 
				
			||||||
		groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
 | 
							sounds = default.node_sound_glass_defaults(),
 | 
				
			||||||
		sounds = {
 | 
							mesh = "homedecor_door_french.obj"
 | 
				
			||||||
			main = default.node_sound_glass_defaults(),
 | 
					 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
		backface = true,
 | 
					 | 
				
			||||||
		alpha = true,
 | 
					 | 
				
			||||||
		custom_model = "homedecor_door_french"
 | 
					 | 
				
			||||||
	},
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		name = "basic_panel",
 | 
							name = "basic_panel",
 | 
				
			||||||
		description = S("Basic white panel Door"),
 | 
							description = S("Basic white panel Door"),
 | 
				
			||||||
		groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
 | 
							sounds = default.node_sound_wood_defaults(),
 | 
				
			||||||
		sounds = {
 | 
							sound_open = "homedecor_door_open",
 | 
				
			||||||
			main = default.node_sound_wood_defaults(),
 | 
							sound_close = "homedecor_door_close",
 | 
				
			||||||
			open = "homedecor_door_open",
 | 
					 | 
				
			||||||
			close = "homedecor_door_close",
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
 | 
					 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		name = "wrought_iron",
 | 
							name = "wrought_iron",
 | 
				
			||||||
		description = S("Wrought Iron Gate/Door"),
 | 
							description = S("Wrought Iron Gate/Door"),
 | 
				
			||||||
		groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
 | 
							sounds = default.node_sound_metal_defaults(),
 | 
				
			||||||
		sounds = {
 | 
							sound_open = "doors_steel_door_open",
 | 
				
			||||||
			main = default.node_sound_metal_defaults(),
 | 
							sound_close = "doors_steel_door_close",
 | 
				
			||||||
			open = "doors_steel_door_open",
 | 
							mesh = "homedecor_door_wrought_iron.obj"
 | 
				
			||||||
			close = "doors_steel_door_close",
 | 
					 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
		backface = true,
 | 
					 | 
				
			||||||
		custom_model = "homedecor_door_wrought_iron"
 | 
					 | 
				
			||||||
	},
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		name = "carolina",
 | 
							name = "carolina",
 | 
				
			||||||
		description = S("Wooden Carolina door"),
 | 
							description = S("Wooden Carolina door"),
 | 
				
			||||||
		groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
 | 
							sounds = default.node_sound_wood_defaults(),
 | 
				
			||||||
		sounds = {
 | 
							sound_open = "homedecor_door_open",
 | 
				
			||||||
			main = default.node_sound_wood_defaults(),
 | 
							sound_close = "homedecor_door_close",
 | 
				
			||||||
			open = "homedecor_door_open",
 | 
					 | 
				
			||||||
			close = "homedecor_door_close",
 | 
					 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
		backface = true,
 | 
					 | 
				
			||||||
		alpha = true
 | 
					 | 
				
			||||||
	},
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		name = "woodglass",
 | 
							name = "woodglass",
 | 
				
			||||||
		description = S("Wooden door with glass insert, type 3"),
 | 
							description = S("Wooden door with glass insert, type 3"),
 | 
				
			||||||
		groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
 | 
							sounds = default.node_sound_wood_defaults(),
 | 
				
			||||||
		sounds = {
 | 
							sound_open = "homedecor_door_open",
 | 
				
			||||||
			main = default.node_sound_wood_defaults(),
 | 
							sound_close = "homedecor_door_close",
 | 
				
			||||||
			open = "homedecor_door_open",
 | 
							mesh = "homedecor_door_wood_glass_3.obj"
 | 
				
			||||||
			close = "homedecor_door_close",
 | 
					 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
		backface = true,
 | 
					 | 
				
			||||||
		alpha = true,
 | 
					 | 
				
			||||||
		custom_model = "homedecor_door_wood_glass_3"
 | 
					 | 
				
			||||||
	},
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		name = "closet_mahogany",
 | 
							name = "closet_mahogany",
 | 
				
			||||||
		description = S("Mahogany Closet Door"),
 | 
							description = S("Mahogany Closet Door"),
 | 
				
			||||||
		groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
 | 
							sounds = default.node_sound_wood_defaults(),
 | 
				
			||||||
		sounds = {
 | 
							mesh = "homedecor_door_closet.obj"
 | 
				
			||||||
			main = default.node_sound_wood_defaults(),
 | 
					 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
		custom_model = "homedecor_door_closet"
 | 
					 | 
				
			||||||
	},
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		name = "closet_oak",
 | 
							name = "closet_oak",
 | 
				
			||||||
		description = S("Oak Closet Door"),
 | 
							description = S("Oak Closet Door"),
 | 
				
			||||||
		groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
 | 
							sounds = default.node_sound_wood_defaults(),
 | 
				
			||||||
		sounds = {
 | 
							mesh = "homedecor_door_closet"
 | 
				
			||||||
			main = default.node_sound_wood_defaults(),
 | 
					 | 
				
			||||||
		},
 | 
					 | 
				
			||||||
		custom_model = "homedecor_door_closet"
 | 
					 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
local old_doors = {}
 | 
					local old_doors = {}
 | 
				
			||||||
local mesecons
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
-- This part blatantly copied from Mesecons, and modified :-)
 | 
					local door_types = {"_a", "_b", "_c", "_d"}
 | 
				
			||||||
if mesecons_mp then
 | 
					
 | 
				
			||||||
 | 
					local function generate_door(def)
 | 
				
			||||||
 | 
						local default_settings = {
 | 
				
			||||||
 | 
							tiles = {{ name = "homedecor_door_" .. def.name .. ".png", backface_culling = true }},
 | 
				
			||||||
 | 
							inventory_image = "homedecor_door_" .. def.name .. "_inv.png",
 | 
				
			||||||
 | 
							use_texture_alpha = "blend",
 | 
				
			||||||
 | 
							groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
 | 
				
			||||||
		mesecons = {
 | 
							mesecons = {
 | 
				
			||||||
			effector = {
 | 
								effector = {
 | 
				
			||||||
				action_on = function(pos, node)
 | 
									action_on = function(pos, node)
 | 
				
			||||||
					local door = doors.get(pos)
 | 
										local door = doors.get(pos)
 | 
				
			||||||
				if door then
 | 
										if door then door:open() end
 | 
				
			||||||
					door:open()
 | 
					 | 
				
			||||||
				end
 | 
					 | 
				
			||||||
				end,
 | 
									end,
 | 
				
			||||||
				action_off = function(pos, node)
 | 
									action_off = function(pos, node)
 | 
				
			||||||
					local door = doors.get(pos)
 | 
										local door = doors.get(pos)
 | 
				
			||||||
				if door then
 | 
										if door then door:close() end
 | 
				
			||||||
					door:close()
 | 
					 | 
				
			||||||
				end
 | 
					 | 
				
			||||||
				end,
 | 
									end,
 | 
				
			||||||
			rules = mesecon.rules.pplate
 | 
									rules = mesecon and mesecon.rules.pplate or nil
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						for k, v in pairs(default_settings) do
 | 
				
			||||||
 | 
							if not def[k] then def[k] = v end
 | 
				
			||||||
	end
 | 
						end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
local hd_3d = minetest.get_modpath("homedecor_3d_extras")
 | 
						def.name = nil
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						return def
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
for _, door in ipairs(door_list) do
 | 
					for _, door in ipairs(door_list) do
 | 
				
			||||||
	doors.register("homedecor_"..door.name, {
 | 
						local name = door.name
 | 
				
			||||||
			tiles = {{ name = "homedecor_door_"..door.name..".png", backface_culling = door.backface }},
 | 
						doors.register("homedecor_" .. name, generate_door(door))
 | 
				
			||||||
			description = door.description,
 | 
					
 | 
				
			||||||
			inventory_image = "homedecor_door_"..door.name.."_inv.png",
 | 
						--hack to get around doors not allowing custom meshes
 | 
				
			||||||
			groups = table.copy(door.groups),
 | 
						if door.mesh then
 | 
				
			||||||
			sounds = door.sounds.main,
 | 
							for _, v in pairs(door_types) do
 | 
				
			||||||
			sound_open = door.sounds.open,
 | 
								minetest.override_item("doors:homedecor_" .. name .. v, {
 | 
				
			||||||
			sound_close = door.sounds.close,
 | 
									mesh = door.mesh
 | 
				
			||||||
			mesecons = mesecons
 | 
					 | 
				
			||||||
			})
 | 
								})
 | 
				
			||||||
 | 
							end
 | 
				
			||||||
	local nn_a = "doors:homedecor_"..door.name.."_a"
 | 
					 | 
				
			||||||
	local nn_b = "doors:homedecor_"..door.name.."_b"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	if door.alpha then
 | 
					 | 
				
			||||||
		local def = table.copy(minetest.registered_nodes[nn_a])
 | 
					 | 
				
			||||||
			def.use_texture_alpha = true
 | 
					 | 
				
			||||||
			def.mesh = "door_a.obj"                -- leaving this out will break the _a model
 | 
					 | 
				
			||||||
			minetest.register_node(":"..nn_a, def) -- assignment when the override takes place
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		def = table.copy(minetest.registered_nodes[nn_b])
 | 
					 | 
				
			||||||
			def.use_texture_alpha = true
 | 
					 | 
				
			||||||
			minetest.register_node(":"..nn_b, def)
 | 
					 | 
				
			||||||
	end
 | 
						end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if door.custom_model and hd_3d then
 | 
						--compatibility
 | 
				
			||||||
		def = table.copy(minetest.registered_nodes[nn_a])
 | 
						old_doors[#old_doors + 1] = "homedecor:door_"..name.."_left"
 | 
				
			||||||
			def.mesh = door.custom_model.."_a.obj"
 | 
						old_doors[#old_doors + 1] = "homedecor:door_"..name.."_right"
 | 
				
			||||||
			minetest.register_node(":"..nn_a, def)
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
		def = table.copy(minetest.registered_nodes[nn_b])
 | 
						minetest.register_alias("doors:"..name.."_a", "doors:homedecor_"..name.."_a")
 | 
				
			||||||
			def.mesh = door.custom_model.."_b.obj"
 | 
						minetest.register_alias("doors:"..name.."_b", "doors:homedecor_"..name.."_b")
 | 
				
			||||||
			minetest.register_node(":"..nn_b, def)
 | 
					 | 
				
			||||||
	end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	old_doors[#old_doors + 1] = "homedecor:door_"..door.name.."_left"
 | 
					 | 
				
			||||||
	old_doors[#old_doors + 1] = "homedecor:door_"..door.name.."_right"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	minetest.register_alias("doors:"..door.name.."_a", "doors:homedecor_"..door.name.."_a")
 | 
					 | 
				
			||||||
	minetest.register_alias("doors:"..door.name.."_b", "doors:homedecor_"..door.name.."_b")
 | 
					 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
-- Gates
 | 
					-- Gates
 | 
				
			||||||
@@ -307,6 +235,7 @@ for i, g in ipairs(gate_list) do
 | 
				
			|||||||
		description = gatedesc,
 | 
							description = gatedesc,
 | 
				
			||||||
		tiles = tiles,
 | 
							tiles = tiles,
 | 
				
			||||||
		paramtype = "light",
 | 
							paramtype = "light",
 | 
				
			||||||
 | 
							use_texture_alpha = "clip",
 | 
				
			||||||
		groups = {snappy=3},
 | 
							groups = {snappy=3},
 | 
				
			||||||
		sounds = default.node_sound_wood_defaults(),
 | 
							sounds = default.node_sound_wood_defaults(),
 | 
				
			||||||
		paramtype2 = "facedir",
 | 
							paramtype2 = "facedir",
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -94,6 +94,7 @@ homedecor.register("lattice_"..name, {
 | 
				
			|||||||
	description = S("Garden Lattice (@1)", desc),
 | 
						description = S("Garden Lattice (@1)", desc),
 | 
				
			||||||
	tiles = {"homedecor_lattice"..texture},
 | 
						tiles = {"homedecor_lattice"..texture},
 | 
				
			||||||
	inventory_image = "homedecor_lattice"..texture,
 | 
						inventory_image = "homedecor_lattice"..texture,
 | 
				
			||||||
 | 
						use_texture_alpha = "clip",
 | 
				
			||||||
	groups = { snappy=3 },
 | 
						groups = { snappy=3 },
 | 
				
			||||||
	node_box = {
 | 
						node_box = {
 | 
				
			||||||
		type = "fixed",
 | 
							type = "fixed",
 | 
				
			||||||
@@ -121,6 +122,7 @@ homedecor.register("swing", {
 | 
				
			|||||||
		"homedecor_swing_top.png"
 | 
							"homedecor_swing_top.png"
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
	inventory_image = "homedecor_swing_inv.png",
 | 
						inventory_image = "homedecor_swing_inv.png",
 | 
				
			||||||
 | 
						use_texture_alpha = "clip",
 | 
				
			||||||
	groups = { snappy=3, oddly_breakable_by_hand=3 },
 | 
						groups = { snappy=3, oddly_breakable_by_hand=3 },
 | 
				
			||||||
	sounds = default.node_sound_wood_defaults(),
 | 
						sounds = default.node_sound_wood_defaults(),
 | 
				
			||||||
	walkable = false,
 | 
						walkable = false,
 | 
				
			||||||
@@ -219,6 +221,7 @@ homedecor.register("well", {
 | 
				
			|||||||
	},
 | 
						},
 | 
				
			||||||
	inventory_image = "homedecor_well_inv.png",
 | 
						inventory_image = "homedecor_well_inv.png",
 | 
				
			||||||
	description = S("Water well"),
 | 
						description = S("Water well"),
 | 
				
			||||||
 | 
						use_texture_alpha = "clip",
 | 
				
			||||||
	groups = { snappy = 3 },
 | 
						groups = { snappy = 3 },
 | 
				
			||||||
	selection_box = homedecor.nodebox.slab_y(2),
 | 
						selection_box = homedecor.nodebox.slab_y(2),
 | 
				
			||||||
	collision_box = homedecor.nodebox.slab_y(2),
 | 
						collision_box = homedecor.nodebox.slab_y(2),
 | 
				
			||||||
@@ -265,6 +268,7 @@ for color, color_loc in pairs(homedecor_exterior.shrub_colors) do
 | 
				
			|||||||
		tiles = {"homedecor_shrubbery_"..color..".png"},
 | 
							tiles = {"homedecor_shrubbery_"..color..".png"},
 | 
				
			||||||
		paramtype = "light",
 | 
							paramtype = "light",
 | 
				
			||||||
		is_ground_content = false,
 | 
							is_ground_content = false,
 | 
				
			||||||
 | 
							use_texture_alpha = "clip",
 | 
				
			||||||
		groups = {snappy=3, flammable=2},
 | 
							groups = {snappy=3, flammable=2},
 | 
				
			||||||
		sounds = default.node_sound_leaves_defaults(),
 | 
							sounds = default.node_sound_leaves_defaults(),
 | 
				
			||||||
	})
 | 
						})
 | 
				
			||||||
@@ -280,6 +284,7 @@ for color, color_loc in pairs(homedecor_exterior.shrub_colors) do
 | 
				
			|||||||
		},
 | 
							},
 | 
				
			||||||
		paramtype = "light",
 | 
							paramtype = "light",
 | 
				
			||||||
		is_ground_content = false,
 | 
							is_ground_content = false,
 | 
				
			||||||
 | 
							use_texture_alpha = "clip",
 | 
				
			||||||
		groups = {snappy=3, flammable=2},
 | 
							groups = {snappy=3, flammable=2},
 | 
				
			||||||
		sounds = default.node_sound_leaves_defaults(),
 | 
							sounds = default.node_sound_leaves_defaults(),
 | 
				
			||||||
		selection_box = shrub_cbox,
 | 
							selection_box = shrub_cbox,
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -35,6 +35,7 @@ homedecor.register("fence_picket", {
 | 
				
			|||||||
		"homedecor_fence_picket_backside.png",
 | 
							"homedecor_fence_picket_backside.png",
 | 
				
			||||||
		"homedecor_fence_picket.png"
 | 
							"homedecor_fence_picket.png"
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
 | 
						use_texture_alpha = "clip",
 | 
				
			||||||
	groups = {snappy=3},
 | 
						groups = {snappy=3},
 | 
				
			||||||
	sounds = default.node_sound_wood_defaults(),
 | 
						sounds = default.node_sound_wood_defaults(),
 | 
				
			||||||
	selection_box = homedecor.nodebox.slab_z(-0.1),
 | 
						selection_box = homedecor.nodebox.slab_z(-0.1),
 | 
				
			||||||
@@ -51,6 +52,7 @@ homedecor.register("fence_picket_corner", {
 | 
				
			|||||||
		"homedecor_fence_picket_backside.png",
 | 
							"homedecor_fence_picket_backside.png",
 | 
				
			||||||
		"homedecor_fence_picket.png",
 | 
							"homedecor_fence_picket.png",
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
 | 
						use_texture_alpha = "clip",
 | 
				
			||||||
	groups = {snappy=3},
 | 
						groups = {snappy=3},
 | 
				
			||||||
	sounds = default.node_sound_wood_defaults(),
 | 
						sounds = default.node_sound_wood_defaults(),
 | 
				
			||||||
	selection_box = homedecor.nodebox.corner_xz(0.1, -0.1),
 | 
						selection_box = homedecor.nodebox.corner_xz(0.1, -0.1),
 | 
				
			||||||
@@ -67,6 +69,7 @@ homedecor.register("fence_picket_white", {
 | 
				
			|||||||
		"homedecor_fence_picket_white_backside.png",
 | 
							"homedecor_fence_picket_white_backside.png",
 | 
				
			||||||
		"homedecor_fence_picket_white.png"
 | 
							"homedecor_fence_picket_white.png"
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
 | 
						use_texture_alpha = "clip",
 | 
				
			||||||
	groups = {snappy=3},
 | 
						groups = {snappy=3},
 | 
				
			||||||
	sounds = default.node_sound_wood_defaults(),
 | 
						sounds = default.node_sound_wood_defaults(),
 | 
				
			||||||
	selection_box = homedecor.nodebox.slab_z(-0.1),
 | 
						selection_box = homedecor.nodebox.slab_z(-0.1),
 | 
				
			||||||
@@ -83,6 +86,7 @@ homedecor.register("fence_picket_corner_white", {
 | 
				
			|||||||
		"homedecor_fence_picket_white_backside.png",
 | 
							"homedecor_fence_picket_white_backside.png",
 | 
				
			||||||
		"homedecor_fence_picket_white.png",
 | 
							"homedecor_fence_picket_white.png",
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
 | 
						use_texture_alpha = "clip",
 | 
				
			||||||
	groups = {snappy=3},
 | 
						groups = {snappy=3},
 | 
				
			||||||
	sounds = default.node_sound_wood_defaults(),
 | 
						sounds = default.node_sound_wood_defaults(),
 | 
				
			||||||
	selection_box = homedecor.nodebox.corner_xz(0.1, -0.1),
 | 
						selection_box = homedecor.nodebox.corner_xz(0.1, -0.1),
 | 
				
			||||||
@@ -152,6 +156,7 @@ homedecor.register("fence_barbed_wire", {
 | 
				
			|||||||
	description = S("Barbed Wire Fence"),
 | 
						description = S("Barbed Wire Fence"),
 | 
				
			||||||
	mesh = "homedecor_fence_barbed_wire.obj",
 | 
						mesh = "homedecor_fence_barbed_wire.obj",
 | 
				
			||||||
	tiles = {"homedecor_fence_barbed_wire.png"},
 | 
						tiles = {"homedecor_fence_barbed_wire.png"},
 | 
				
			||||||
 | 
						use_texture_alpha = "clip",
 | 
				
			||||||
	groups = {snappy=3},
 | 
						groups = {snappy=3},
 | 
				
			||||||
	sounds = default.node_sound_wood_defaults(),
 | 
						sounds = default.node_sound_wood_defaults(),
 | 
				
			||||||
	selection_box = homedecor.nodebox.slab_z(-0.125),
 | 
						selection_box = homedecor.nodebox.slab_z(-0.125),
 | 
				
			||||||
@@ -162,6 +167,7 @@ homedecor.register("fence_barbed_wire_corner", {
 | 
				
			|||||||
	description = S("Barbed Wire Fence Corner"),
 | 
						description = S("Barbed Wire Fence Corner"),
 | 
				
			||||||
	mesh = "homedecor_fence_barbed_wire_corner.obj",
 | 
						mesh = "homedecor_fence_barbed_wire_corner.obj",
 | 
				
			||||||
	tiles = { "homedecor_fence_barbed_wire.png" },
 | 
						tiles = { "homedecor_fence_barbed_wire.png" },
 | 
				
			||||||
 | 
						use_texture_alpha = "clip",
 | 
				
			||||||
	groups = {snappy=3},
 | 
						groups = {snappy=3},
 | 
				
			||||||
	sounds = default.node_sound_wood_defaults(),
 | 
						sounds = default.node_sound_wood_defaults(),
 | 
				
			||||||
	selection_box = homedecor.nodebox.corner_xz(0.125, -0.125),
 | 
						selection_box = homedecor.nodebox.corner_xz(0.125, -0.125),
 | 
				
			||||||
@@ -179,6 +185,7 @@ homedecor.register("fence_chainlink", {
 | 
				
			|||||||
		"homedecor_fence_chainlink_fb.png",
 | 
							"homedecor_fence_chainlink_fb.png",
 | 
				
			||||||
		"homedecor_fence_chainlink_fb.png",
 | 
							"homedecor_fence_chainlink_fb.png",
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
 | 
						use_texture_alpha = "clip",
 | 
				
			||||||
	groups = {snappy=3},
 | 
						groups = {snappy=3},
 | 
				
			||||||
	sounds = default.node_sound_wood_defaults(),
 | 
						sounds = default.node_sound_wood_defaults(),
 | 
				
			||||||
	selection_box = homedecor.nodebox.slab_z(-0.125),
 | 
						selection_box = homedecor.nodebox.slab_z(-0.125),
 | 
				
			||||||
@@ -197,6 +204,7 @@ homedecor.register("fence_chainlink_corner", {
 | 
				
			|||||||
		"homedecor_fence_chainlink_corner_front.png",
 | 
							"homedecor_fence_chainlink_corner_front.png",
 | 
				
			||||||
		"homedecor_fence_chainlink_corner_front.png",
 | 
							"homedecor_fence_chainlink_corner_front.png",
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
 | 
						use_texture_alpha = "clip",
 | 
				
			||||||
	groups = {snappy=3},
 | 
						groups = {snappy=3},
 | 
				
			||||||
	sounds = default.node_sound_wood_defaults(),
 | 
						sounds = default.node_sound_wood_defaults(),
 | 
				
			||||||
	selection_box = homedecor.nodebox.corner_xz(0.125, -0.125),
 | 
						selection_box = homedecor.nodebox.corner_xz(0.125, -0.125),
 | 
				
			||||||
@@ -213,6 +221,7 @@ homedecor.register("fence_wrought_iron_2", {
 | 
				
			|||||||
		"homedecor_fence_wrought_iron_2_fb.png",
 | 
							"homedecor_fence_wrought_iron_2_fb.png",
 | 
				
			||||||
		"homedecor_fence_wrought_iron_2_fb.png"
 | 
							"homedecor_fence_wrought_iron_2_fb.png"
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
 | 
						use_texture_alpha = "clip",
 | 
				
			||||||
	groups = {snappy=3},
 | 
						groups = {snappy=3},
 | 
				
			||||||
	sounds = default.node_sound_wood_defaults(),
 | 
						sounds = default.node_sound_wood_defaults(),
 | 
				
			||||||
	selection_box = homedecor.nodebox.slab_z(-0.08),
 | 
						selection_box = homedecor.nodebox.slab_z(-0.08),
 | 
				
			||||||
@@ -240,6 +249,7 @@ homedecor.register("fence_wrought_iron_2_corner", {
 | 
				
			|||||||
		"homedecor_fence_corner_wrought_iron_2_sides.png^[transformFX",
 | 
							"homedecor_fence_corner_wrought_iron_2_sides.png^[transformFX",
 | 
				
			||||||
		"homedecor_fence_corner_wrought_iron_2_sides.png"
 | 
							"homedecor_fence_corner_wrought_iron_2_sides.png"
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
 | 
						use_texture_alpha = "clip",
 | 
				
			||||||
	groups = {snappy=3},
 | 
						groups = {snappy=3},
 | 
				
			||||||
	sounds = default.node_sound_wood_defaults(),
 | 
						sounds = default.node_sound_wood_defaults(),
 | 
				
			||||||
	selection_box = homedecor.nodebox.corner_xz(0.08, -0.08),
 | 
						selection_box = homedecor.nodebox.corner_xz(0.08, -0.08),
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -136,6 +136,7 @@ homedecor.register("toaster", {
 | 
				
			|||||||
	tiles = { "homedecor_toaster_sides.png" },
 | 
						tiles = { "homedecor_toaster_sides.png" },
 | 
				
			||||||
	inventory_image = "homedecor_toaster_inv.png",
 | 
						inventory_image = "homedecor_toaster_inv.png",
 | 
				
			||||||
	walkable = false,
 | 
						walkable = false,
 | 
				
			||||||
 | 
						use_texture_alpha = "clip",
 | 
				
			||||||
	groups = { snappy=3 },
 | 
						groups = { snappy=3 },
 | 
				
			||||||
	node_box = {
 | 
						node_box = {
 | 
				
			||||||
		type = "fixed",
 | 
							type = "fixed",
 | 
				
			||||||
@@ -165,6 +166,7 @@ homedecor.register("toaster_loaf", {
 | 
				
			|||||||
		"homedecor_toaster_sides.png"
 | 
							"homedecor_toaster_sides.png"
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
	walkable = false,
 | 
						walkable = false,
 | 
				
			||||||
 | 
						use_texture_alpha = "clip",
 | 
				
			||||||
	groups = { snappy=3, not_in_creative_inventory=1 },
 | 
						groups = { snappy=3, not_in_creative_inventory=1 },
 | 
				
			||||||
	node_box = {
 | 
						node_box = {
 | 
				
			||||||
		type = "fixed",
 | 
							type = "fixed",
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -12,7 +12,7 @@ read_globals = {
 | 
				
			|||||||
	"VoxelManip", "VoxelArea",
 | 
						"VoxelManip", "VoxelArea",
 | 
				
			||||||
	"PseudoRandom", "ItemStack",
 | 
						"PseudoRandom", "ItemStack",
 | 
				
			||||||
	"default",
 | 
						"default",
 | 
				
			||||||
	"screwdriver",
 | 
						"screwdriver", "homedecor",
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
globals = {
 | 
					globals = {
 | 
				
			||||||
@@ -3,7 +3,7 @@ local S = minetest.get_translator("inbox")
 | 
				
			|||||||
local inbox = {}
 | 
					local inbox = {}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
minetest.register_craft({
 | 
					minetest.register_craft({
 | 
				
			||||||
	output ="inbox:empty",
 | 
						output ="homedecor:inbox",
 | 
				
			||||||
	recipe = {
 | 
						recipe = {
 | 
				
			||||||
		{"","default:steel_ingot",""},
 | 
							{"","default:steel_ingot",""},
 | 
				
			||||||
		{"default:steel_ingot","","default:steel_ingot"},
 | 
							{"default:steel_ingot","","default:steel_ingot"},
 | 
				
			||||||
@@ -16,17 +16,17 @@ local mb_cbox = {
 | 
				
			|||||||
	fixed = { -5/16, -8/16, -8/16, 5/16, 2/16, 8/16 }
 | 
						fixed = { -5/16, -8/16, -8/16, 5/16, 2/16, 8/16 }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
minetest.register_node("inbox:empty", {
 | 
					homedecor.register("inbox", {
 | 
				
			||||||
	paramtype = "light",
 | 
						paramtype = "light",
 | 
				
			||||||
	drawtype = "mesh",
 | 
						drawtype = "mesh",
 | 
				
			||||||
	mesh = "inbox_mailbox.obj",
 | 
						mesh = "homedecor_inbox_mailbox.obj",
 | 
				
			||||||
	description = S("Mailbox"),
 | 
						description = S("Mailbox"),
 | 
				
			||||||
	tiles = {
 | 
						tiles = {
 | 
				
			||||||
		"inbox_red_metal.png",
 | 
							"homedecor_inbox_red_metal.png",
 | 
				
			||||||
		"inbox_white_metal.png",
 | 
							"homedecor_inbox_white_metal.png",
 | 
				
			||||||
		"inbox_grey_metal.png",
 | 
							"homedecor_inbox_grey_metal.png",
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
	inventory_image = "mailbox_inv.png",
 | 
						inventory_image = "homedecor_mailbox_inv.png",
 | 
				
			||||||
	selection_box = mb_cbox,
 | 
						selection_box = mb_cbox,
 | 
				
			||||||
	collision_box = mb_cbox,
 | 
						collision_box = mb_cbox,
 | 
				
			||||||
	paramtype2 = "facedir",
 | 
						paramtype2 = "facedir",
 | 
				
			||||||
@@ -105,6 +105,8 @@ minetest.register_node("inbox:empty", {
 | 
				
			|||||||
	end,
 | 
						end,
 | 
				
			||||||
})
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					minetest.register_alias("inbox:empty", "homedecor:inbox")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function inbox.get_inbox_formspec(pos)
 | 
					function inbox.get_inbox_formspec(pos)
 | 
				
			||||||
	local spos = pos.x .. "," .. pos.y .. "," ..pos.z
 | 
						local spos = pos.x .. "," .. pos.y .. "," ..pos.z
 | 
				
			||||||
	local formspec =
 | 
						local formspec =
 | 
				
			||||||
@@ -1,3 +1,3 @@
 | 
				
			|||||||
name = inbox
 | 
					name = homedecor_inbox
 | 
				
			||||||
depends = default, homedecor_common
 | 
					depends = default, homedecor_common
 | 
				
			||||||
optional_depends = screwdriver
 | 
					optional_depends = screwdriver
 | 
				
			||||||
| 
		 Before Width: | Height: | Size: 152 B After Width: | Height: | Size: 152 B  | 
| 
		 Before Width: | Height: | Size: 319 B After Width: | Height: | Size: 319 B  | 
| 
		 Before Width: | Height: | Size: 156 B After Width: | Height: | Size: 156 B  | 
| 
		 Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.4 KiB  | 
@@ -1,4 +1,4 @@
 | 
				
			|||||||
name = homedecor_kitchen
 | 
					name = homedecor_kitchen
 | 
				
			||||||
description = Homedecor mod: kitchen
 | 
					description = Homedecor mod: kitchen
 | 
				
			||||||
depends = homedecor_common, default, basic_materials, dye
 | 
					depends = homedecor_common, default, basic_materials, dye, unifieddyes
 | 
				
			||||||
optional_depends = moreblocks, building_blocks, technic, bucket, screwdriver
 | 
					optional_depends = moreblocks, building_blocks, technic, bucket, screwdriver
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -77,6 +77,7 @@ homedecor.register("calendar", {
 | 
				
			|||||||
		wall_bottom = { -4/16, -8/16, -8/16,  4/16, -5/16, 5/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 }
 | 
							wall_top =    { -4/16,  5/16, -8/16,  4/16,  8/16, 5/16 }
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
 | 
						use_texture_alpha = "clip",
 | 
				
			||||||
	groups = {choppy=2,attached_node=1},
 | 
						groups = {choppy=2,attached_node=1},
 | 
				
			||||||
	legacy_wallmounted = true,
 | 
						legacy_wallmounted = true,
 | 
				
			||||||
	sounds = default.node_sound_defaults(),
 | 
						sounds = default.node_sound_defaults(),
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -11,7 +11,7 @@ read_globals = {
 | 
				
			|||||||
	"vector", "nodeupdate",
 | 
						"vector", "nodeupdate",
 | 
				
			||||||
	"VoxelManip", "VoxelArea",
 | 
						"VoxelManip", "VoxelArea",
 | 
				
			||||||
	"PseudoRandom", "ItemStack",
 | 
						"PseudoRandom", "ItemStack",
 | 
				
			||||||
	"screwdriver",
 | 
						"screwdriver", "homedecor",
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
globals = {
 | 
					globals = {
 | 
				
			||||||
@@ -2,9 +2,9 @@ local S = minetest.get_translator("plasmascreen")
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
local sc_disallow = minetest.get_modpath("screwdriver") and screwdriver.disallow or nil
 | 
					local sc_disallow = minetest.get_modpath("screwdriver") and screwdriver.disallow or nil
 | 
				
			||||||
 | 
					
 | 
				
			||||||
minetest.register_node("plasmascreen:stand", {
 | 
					homedecor.register("tv_stand", {
 | 
				
			||||||
	description = S("Plasma Screen TV Stand"),
 | 
						description = S("Plasma Screen TV Stand"),
 | 
				
			||||||
	tiles = {"plasmascreen_back.png"},
 | 
						tiles = {"homedecor_plasmascreen_back.png"},
 | 
				
			||||||
	paramtype = "light",
 | 
						paramtype = "light",
 | 
				
			||||||
	paramtype2 = "facedir",
 | 
						paramtype2 = "facedir",
 | 
				
			||||||
	drawtype = "nodebox",
 | 
						drawtype = "nodebox",
 | 
				
			||||||
@@ -26,13 +26,6 @@ minetest.register_node("plasmascreen:stand", {
 | 
				
			|||||||
	groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2},
 | 
						groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2},
 | 
				
			||||||
})
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
minetest.register_alias("plasmascreen:screen1", "air")
 | 
					 | 
				
			||||||
minetest.register_alias("plasmascreen:screen2", "air")
 | 
					 | 
				
			||||||
minetest.register_alias("plasmascreen:screen3", "air")
 | 
					 | 
				
			||||||
minetest.register_alias("plasmascreen:screen4", "air")
 | 
					 | 
				
			||||||
minetest.register_alias("plasmascreen:screen5", "plasmascreen:tv")
 | 
					 | 
				
			||||||
minetest.register_alias("plasmascreen:screen6", "air")
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
local fdir_to_left = {
 | 
					local fdir_to_left = {
 | 
				
			||||||
	{ -1,  0 },
 | 
						{ -1,  0 },
 | 
				
			||||||
	{  0,  1 },
 | 
						{  0,  1 },
 | 
				
			||||||
@@ -95,13 +88,13 @@ local function checkwall(pos)
 | 
				
			|||||||
	return true
 | 
						return true
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
minetest.register_node("plasmascreen:tv", {
 | 
					homedecor.register("tv", {
 | 
				
			||||||
	description = S("Plasma TV"),
 | 
						description = S("Plasma TV"),
 | 
				
			||||||
	drawtype = "mesh",
 | 
						drawtype = "mesh",
 | 
				
			||||||
	mesh = "plasmascreen_tv.obj",
 | 
						mesh = "homedecor_plasmascreen_tv.obj",
 | 
				
			||||||
	tiles = {
 | 
						tiles = {
 | 
				
			||||||
		"plasmascreen_case.png",
 | 
							"homedecor_plasmascreen_case.png",
 | 
				
			||||||
		{ name="plasmascreen_video.png",
 | 
							{ name="homedecor_plasmascreen_video.png",
 | 
				
			||||||
			animation={
 | 
								animation={
 | 
				
			||||||
				type="vertical_frames",
 | 
									type="vertical_frames",
 | 
				
			||||||
				aspect_w = 42,
 | 
									aspect_w = 42,
 | 
				
			||||||
@@ -111,8 +104,8 @@ minetest.register_node("plasmascreen:tv", {
 | 
				
			|||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
	inventory_image = "plasmascreen_tv_inv.png",
 | 
						inventory_image = "homedecor_plasmascreen_tv_inv.png",
 | 
				
			||||||
	wield_image = "plasmascreen_tv_inv.png",
 | 
						wield_image = "homedecor_plasmascreen_tv_inv.png",
 | 
				
			||||||
	paramtype = "light",
 | 
						paramtype = "light",
 | 
				
			||||||
	paramtype2 = "facedir",
 | 
						paramtype2 = "facedir",
 | 
				
			||||||
	light_source = 10,
 | 
						light_source = 10,
 | 
				
			||||||
@@ -127,20 +120,20 @@ minetest.register_node("plasmascreen:tv", {
 | 
				
			|||||||
		end
 | 
							end
 | 
				
			||||||
	end,
 | 
						end,
 | 
				
			||||||
	on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
 | 
						on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
 | 
				
			||||||
		minetest.set_node(pos, {name = "plasmascreen:tv_off", param2 = node.param2})
 | 
							minetest.set_node(pos, {name = "homedecor:tv_off", param2 = node.param2})
 | 
				
			||||||
	end
 | 
						end
 | 
				
			||||||
})
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
minetest.register_node("plasmascreen:tv_off", {
 | 
					homedecor.register("tv_off", {
 | 
				
			||||||
	description = S("Plasma TV (off)"),
 | 
						description = S("Plasma TV (off)"),
 | 
				
			||||||
	drawtype = "mesh",
 | 
						drawtype = "mesh",
 | 
				
			||||||
	mesh = "plasmascreen_tv.obj",
 | 
						mesh = "homedecor_plasmascreen_tv.obj",
 | 
				
			||||||
	tiles = {
 | 
						tiles = {
 | 
				
			||||||
		"plasmascreen_case_off.png",
 | 
							"homedecor_plasmascreen_case_off.png",
 | 
				
			||||||
		"plasmascreen_screen_off.png",
 | 
							"homedecor_plasmascreen_screen_off.png",
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
	inventory_image = "plasmascreen_tv_inv.png",
 | 
						inventory_image = "homedecor_plasmascreen_tv_inv.png",
 | 
				
			||||||
	wield_image = "plasmascreen_tv_inv.png",
 | 
						wield_image = "homedecor_plasmascreen_tv_inv.png",
 | 
				
			||||||
	paramtype = "light",
 | 
						paramtype = "light",
 | 
				
			||||||
	paramtype2 = "facedir",
 | 
						paramtype2 = "facedir",
 | 
				
			||||||
	light_source = 10,
 | 
						light_source = 10,
 | 
				
			||||||
@@ -155,15 +148,15 @@ minetest.register_node("plasmascreen:tv_off", {
 | 
				
			|||||||
		end
 | 
							end
 | 
				
			||||||
	end,
 | 
						end,
 | 
				
			||||||
	on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
 | 
						on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
 | 
				
			||||||
		minetest.set_node(pos, {name = "plasmascreen:tv", param2 = node.param2})
 | 
							minetest.set_node(pos, {name = "homedecor:tv", param2 = node.param2})
 | 
				
			||||||
	end,
 | 
						end,
 | 
				
			||||||
	drop = "plasmascreen:tv"
 | 
						drop = "homedecor:tv"
 | 
				
			||||||
})
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
-- crafting recipes
 | 
					-- crafting recipes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
minetest.register_craft({
 | 
					minetest.register_craft({
 | 
				
			||||||
	output = "plasmascreen:tv",
 | 
						output = "homedecor:tv",
 | 
				
			||||||
	recipe = {
 | 
						recipe = {
 | 
				
			||||||
		{'default:glass', 'default:coal_lump', 'default:glass'},
 | 
							{'default:glass', 'default:coal_lump', 'default:glass'},
 | 
				
			||||||
		{'default:steel_ingot', 'default:copper_ingot', 'default:steel_ingot'},
 | 
							{'default:steel_ingot', 'default:copper_ingot', 'default:steel_ingot'},
 | 
				
			||||||
@@ -173,12 +166,12 @@ minetest.register_craft({
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
minetest.register_craft({
 | 
					minetest.register_craft({
 | 
				
			||||||
	type = "shapeless",
 | 
						type = "shapeless",
 | 
				
			||||||
	output = "plasmascreen:tv",
 | 
						output = "homedecor:tv",
 | 
				
			||||||
	recipe = {'homedecor:television', 'homedecor:television'},
 | 
						recipe = {'homedecor:television', 'homedecor:television'},
 | 
				
			||||||
})
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
minetest.register_craft({
 | 
					minetest.register_craft({
 | 
				
			||||||
	output = "plasmascreen:stand",
 | 
						output = "homedecor:tv_stand",
 | 
				
			||||||
	recipe = {
 | 
						recipe = {
 | 
				
			||||||
		{'', '', ''},
 | 
							{'', '', ''},
 | 
				
			||||||
		{'', 'default:steel_ingot', ''},
 | 
							{'', 'default:steel_ingot', ''},
 | 
				
			||||||
@@ -186,4 +179,14 @@ minetest.register_craft({
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
})
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					minetest.register_alias("plasmascreen:screen1", "air")
 | 
				
			||||||
 | 
					minetest.register_alias("plasmascreen:screen2", "air")
 | 
				
			||||||
 | 
					minetest.register_alias("plasmascreen:screen3", "air")
 | 
				
			||||||
 | 
					minetest.register_alias("plasmascreen:screen4", "air")
 | 
				
			||||||
 | 
					minetest.register_alias("plasmascreen:screen6", "air")
 | 
				
			||||||
 | 
					minetest.register_alias("plasmascreen:screen5", "homedecor:tv")
 | 
				
			||||||
 | 
					minetest.register_alias("plasmascreen:stand", "homedecor:tv_stand")
 | 
				
			||||||
 | 
					minetest.register_alias("plasmascreen:tv", "homedecor:tv")
 | 
				
			||||||
 | 
					minetest.register_alias("plasmascreen:tv_off", "homedecor:tv_off")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
minetest.log("action", "[plasmascreen] loaded.")
 | 
					minetest.log("action", "[plasmascreen] loaded.")
 | 
				
			||||||
@@ -1,3 +1,3 @@
 | 
				
			|||||||
name = plasmascreen
 | 
					name = homedecor_plasmascreen
 | 
				
			||||||
depends = default, homedecor_common, homedecor_electronics
 | 
					depends = default, homedecor_common, homedecor_electronics
 | 
				
			||||||
optional_depends = screwdriver
 | 
					optional_depends = screwdriver
 | 
				
			||||||
| 
		 Before Width: | Height: | Size: 184 B After Width: | Height: | Size: 184 B  | 
| 
		 Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB  | 
| 
		 Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB  | 
| 
		 Before Width: | Height: | Size: 313 B After Width: | Height: | Size: 313 B  | 
| 
		 Before Width: | Height: | Size: 105 B After Width: | Height: | Size: 105 B  | 
| 
		 Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 21 KiB  | 
@@ -134,6 +134,7 @@ homedecor_roofing.register_slope = function(modname, subname, recipeitem, groups
 | 
				
			|||||||
		paramtype2 = "facedir",
 | 
							paramtype2 = "facedir",
 | 
				
			||||||
		selection_box = slope_cbox,
 | 
							selection_box = slope_cbox,
 | 
				
			||||||
		collision_box = slope_cbox,
 | 
							collision_box = slope_cbox,
 | 
				
			||||||
 | 
							use_texture_alpha = "blend",
 | 
				
			||||||
		groups = groups,
 | 
							groups = groups,
 | 
				
			||||||
		on_place = minetest.rotate_node,
 | 
							on_place = minetest.rotate_node,
 | 
				
			||||||
		sounds = default.node_sound_wood_defaults()
 | 
							sounds = default.node_sound_wood_defaults()
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -47,7 +47,6 @@ minetest.register_node(":lrfurn:longsofa", {
 | 
				
			|||||||
		end
 | 
							end
 | 
				
			||||||
		pos.y = pos.y-0.5
 | 
							pos.y = pos.y-0.5
 | 
				
			||||||
		clicker:setpos(pos)
 | 
							clicker:setpos(pos)
 | 
				
			||||||
		clicker:set_hp(20)
 | 
					 | 
				
			||||||
		return itemstack
 | 
							return itemstack
 | 
				
			||||||
	end
 | 
						end
 | 
				
			||||||
})
 | 
					})
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -47,7 +47,6 @@ minetest.register_node(":lrfurn:sofa", {
 | 
				
			|||||||
		end
 | 
							end
 | 
				
			||||||
		pos.y = pos.y-0.5
 | 
							pos.y = pos.y-0.5
 | 
				
			||||||
		clicker:setpos(pos)
 | 
							clicker:setpos(pos)
 | 
				
			||||||
		clicker:set_hp(20)
 | 
					 | 
				
			||||||
		return itemstack
 | 
							return itemstack
 | 
				
			||||||
	end
 | 
						end
 | 
				
			||||||
})
 | 
					})
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -57,6 +57,7 @@ minetest.register_node(":lrfurn:coffeetable", {
 | 
				
			|||||||
	},
 | 
						},
 | 
				
			||||||
	paramtype = "light",
 | 
						paramtype = "light",
 | 
				
			||||||
	paramtype2 = "facedir",
 | 
						paramtype2 = "facedir",
 | 
				
			||||||
 | 
						use_texture_alpha = "blend",
 | 
				
			||||||
	groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=3},
 | 
						groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=3},
 | 
				
			||||||
	sounds = default.node_sound_wood_defaults(),
 | 
						sounds = default.node_sound_wood_defaults(),
 | 
				
			||||||
	node_box = {
 | 
						node_box = {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -15,6 +15,7 @@ minetest.register_node(":lrfurn:endtable", {
 | 
				
			|||||||
	},
 | 
						},
 | 
				
			||||||
	paramtype = "light",
 | 
						paramtype = "light",
 | 
				
			||||||
	paramtype2 = "facedir",
 | 
						paramtype2 = "facedir",
 | 
				
			||||||
 | 
						use_texture_alpha = "blend",
 | 
				
			||||||
	groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=3},
 | 
						groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=3},
 | 
				
			||||||
	sounds = default.node_sound_wood_defaults(),
 | 
						sounds = default.node_sound_wood_defaults(),
 | 
				
			||||||
	node_box = {
 | 
						node_box = {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -34,6 +34,7 @@ for _, t in ipairs(leg_materials) do
 | 
				
			|||||||
		inventory_image = "homedecor_table_legs_"..name..".png",
 | 
							inventory_image = "homedecor_table_legs_"..name..".png",
 | 
				
			||||||
		wield_image = "homedecor_table_legs_"..name..".png",
 | 
							wield_image = "homedecor_table_legs_"..name..".png",
 | 
				
			||||||
		walkable = false,
 | 
							walkable = false,
 | 
				
			||||||
 | 
							use_texture_alpha = "blend",
 | 
				
			||||||
		groups = {snappy=3},
 | 
							groups = {snappy=3},
 | 
				
			||||||
		sounds = default.node_sound_wood_defaults(),
 | 
							sounds = default.node_sound_wood_defaults(),
 | 
				
			||||||
		selection_box = {
 | 
							selection_box = {
 | 
				
			||||||
@@ -76,6 +77,7 @@ for i, mat in ipairs(tabletop_materials) do
 | 
				
			|||||||
				'homedecor_blanktile.png',
 | 
									'homedecor_blanktile.png',
 | 
				
			||||||
			},
 | 
								},
 | 
				
			||||||
			wield_image = 'homedecor_'..m..'_table_'..shape..'_inv.png',
 | 
								wield_image = 'homedecor_'..m..'_table_'..shape..'_inv.png',
 | 
				
			||||||
 | 
								use_texture_alpha = "blend",
 | 
				
			||||||
			groups = { snappy = 3 },
 | 
								groups = { snappy = 3 },
 | 
				
			||||||
			sounds = s,
 | 
								sounds = s,
 | 
				
			||||||
			selection_box = tables_cbox,
 | 
								selection_box = tables_cbox,
 | 
				
			||||||
@@ -111,6 +113,7 @@ for i, mat in ipairs(tabletop_materials) do
 | 
				
			|||||||
					'homedecor_'..m..'_table_edges.png',
 | 
										'homedecor_'..m..'_table_edges.png',
 | 
				
			||||||
					"homedecor_table_legs_"..leg_mat..".png",
 | 
										"homedecor_table_legs_"..leg_mat..".png",
 | 
				
			||||||
				},
 | 
									},
 | 
				
			||||||
 | 
									use_texture_alpha = "blend",
 | 
				
			||||||
				groups = { snappy = 3 },
 | 
									groups = { snappy = 3 },
 | 
				
			||||||
				sounds = s,
 | 
									sounds = s,
 | 
				
			||||||
			})
 | 
								})
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -61,6 +61,7 @@ homedecor.register("trash_can", {
 | 
				
			|||||||
	tiles = { "homedecor_trash_can.png" },
 | 
						tiles = { "homedecor_trash_can.png" },
 | 
				
			||||||
	inventory_image = "homedecor_trash_can_inv.png",
 | 
						inventory_image = "homedecor_trash_can_inv.png",
 | 
				
			||||||
	description = S("Small Trash Can"),
 | 
						description = S("Small Trash Can"),
 | 
				
			||||||
 | 
						use_texture_alpha = "clip",
 | 
				
			||||||
	groups = {snappy=3},
 | 
						groups = {snappy=3},
 | 
				
			||||||
	selection_box = trash_cbox,
 | 
						selection_box = trash_cbox,
 | 
				
			||||||
	collision_box = trash_cbox,
 | 
						collision_box = trash_cbox,
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -173,7 +173,7 @@ if not skinsdb_mod_path then -- If not managed by skinsdb
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	minetest.register_on_joinplayer(function(player)
 | 
						minetest.register_on_joinplayer(function(player)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		local skin = player:get_attribute("homedecor:player_skin")
 | 
							local skin = player:get_meta():get("homedecor:player_skin")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		if skin and skin ~= "" then
 | 
							if skin and skin ~= "" then
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -100,7 +100,7 @@ local update_item = function(pos, node)
 | 
				
			|||||||
		local e = minetest.add_entity(pos,"itemframes:item")
 | 
							local e = minetest.add_entity(pos,"itemframes:item")
 | 
				
			||||||
		if node.name == "itemframes:frame" then
 | 
							if node.name == "itemframes:frame" then
 | 
				
			||||||
			local yaw = math.pi * 2 - node.param2 * math.pi / 2
 | 
								local yaw = math.pi * 2 - node.param2 * math.pi / 2
 | 
				
			||||||
			e:setyaw(yaw)
 | 
								e:set_yaw(yaw)
 | 
				
			||||||
		end
 | 
							end
 | 
				
			||||||
	end
 | 
						end
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 
 | 
				
			|||||||