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 | 	if minetest.get_modpath("moreblocks") then | ||||||
| 		local mod, name = nodename:match("(.*):(.*)") | 		local mod, name = nodename:match("(.*):(.*)") | ||||||
| 		minetest.register_alias(mod .. ":slab_" .. name, "stairs:slab_" .. name) | 		stairsplus:register_all(mod, name, nodename, def) | ||||||
| 		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 | 		minetest.register_alias("stairs:slab_" .. name, mod .. ":slab_" .. name) | ||||||
| 			stairsplus:register_all( | 		minetest.register_alias("stairs:stair_" .. name, mod .. ":stair_" .. name) | ||||||
| 				mod, | 		minetest.register_alias("stairs:stair_inner_" .. name, mod .. ":stair_" .. name .. "_inner") | ||||||
| 				name, | 		minetest.register_alias("stairs:stair_outer_" .. name, mod .. ":stair_" .. name .. "_outer") | ||||||
| 				nodename, |  | ||||||
| 				{ |  | ||||||
| 					description = def.description, |  | ||||||
| 					tiles = def.tiles, |  | ||||||
| 					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 |  | ||||||
| 	mesecons = { | local function generate_door(def) | ||||||
| 		effector = { | 	local default_settings = { | ||||||
| 			action_on = function(pos, node) | 		tiles = {{ name = "homedecor_door_" .. def.name .. ".png", backface_culling = true }}, | ||||||
| 				local door = doors.get(pos) | 		inventory_image = "homedecor_door_" .. def.name .. "_inv.png", | ||||||
| 				if door then | 		use_texture_alpha = "blend", | ||||||
| 					door:open() | 		groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}, | ||||||
| 				end | 		mesecons = { | ||||||
| 			end, | 			effector = { | ||||||
| 			action_off = 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:close() | 				end, | ||||||
| 				end | 				action_off = function(pos, node) | ||||||
| 			end, | 					local door = doors.get(pos) | ||||||
| 			rules = mesecon.rules.pplate | 					if door then door:close() end | ||||||
| 		} | 				end, | ||||||
|  | 				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 | ||||||
|  |  | ||||||
|  | 	def.name = nil | ||||||
|  |  | ||||||
|  | 	return def | ||||||
| end | end | ||||||
|  |  | ||||||
| local hd_3d = minetest.get_modpath("homedecor_3d_extras") |  | ||||||
|  |  | ||||||
| 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", |  | ||||||
| 			groups = table.copy(door.groups), |  | ||||||
| 			sounds = door.sounds.main, |  | ||||||
| 			sound_open = door.sounds.open, |  | ||||||
| 			sound_close = door.sounds.close, |  | ||||||
| 			mesecons = mesecons |  | ||||||
| 	}) |  | ||||||
|  |  | ||||||
| 	local nn_a = "doors:homedecor_"..door.name.."_a" | 	--hack to get around doors not allowing custom meshes | ||||||
| 	local nn_b = "doors:homedecor_"..door.name.."_b" | 	if door.mesh then | ||||||
|  | 		for _, v in pairs(door_types) do | ||||||
| 	if door.alpha then | 			minetest.override_item("doors:homedecor_" .. name .. v, { | ||||||
| 		local def = table.copy(minetest.registered_nodes[nn_a]) | 				mesh = door.mesh | ||||||
| 			def.use_texture_alpha = true | 			}) | ||||||
| 			def.mesh = "door_a.obj"                -- leaving this out will break the _a model | 		end | ||||||
| 			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", | ||||||
| @@ -769,4 +698,4 @@ minetest.register_lbm({ | |||||||
| 		end | 		end | ||||||
| 		minetest.set_node({x=pos.x, y=pos.y+1, z=pos.z}, {name = "doors:hidden"}) | 		minetest.set_node({x=pos.x, y=pos.y+1, z=pos.z}, {name = "doors:hidden"}) | ||||||
| 	end | 	end | ||||||
| }) | }) | ||||||
| @@ -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 | ||||||
|   | |||||||