mirror of
				https://github.com/mt-mods/homedecor_modpack.git
				synced 2025-11-04 13:05:31 +01:00 
			
		
		
		
	Compare commits
	
		
			35 Commits
		
	
	
		
			2019-06-03
			...
			2019-09-22
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					c118b43711 | ||
| 
						 | 
					f6da0f7329 | ||
| 
						 | 
					e84a184946 | ||
| 
						 | 
					0c9d883f28 | ||
| 
						 | 
					97e7a31830 | ||
| 
						 | 
					d897e6d97c | ||
| 
						 | 
					8532dee8ed | ||
| 
						 | 
					356f872327 | ||
| 
						 | 
					6c07a31857 | ||
| 
						 | 
					daef49a255 | ||
| 
						 | 
					1072598701 | ||
| 
						 | 
					60be4a6320 | ||
| 
						 | 
					67f2065408 | ||
| 
						 | 
					f90834ff06 | ||
| 
						 | 
					c871e0d388 | ||
| 
						 | 
					d17ec1d978 | ||
| 
						 | 
					9dcc6c2b4d | ||
| 
						 | 
					80352d69e1 | ||
| 
						 | 
					1d59c2258d | ||
| 
						 | 
					11e6b5d92a | ||
| 
						 | 
					7e7b2bcabb | ||
| 
						 | 
					b28f1314da | ||
| 
						 | 
					17ea2040e2 | ||
| 
						 | 
					ed9fb6a34d | ||
| 
						 | 
					13862c1a48 | ||
| 
						 | 
					e289e79aea | ||
| 
						 | 
					80ab12710b | ||
| 
						 | 
					1b94c940d7 | ||
| 
						 | 
					df44dd3dad | ||
| 
						 | 
					bff90189fc | ||
| 
						 | 
					b407f06dc4 | ||
| 
						 | 
					e6dc2c5508 | ||
| 
						 | 
					bde2bf2bf6 | ||
| 
						 | 
					ea160a6519 | ||
| 
						 | 
					631813bb2d | 
@@ -258,33 +258,6 @@ minetest.register_node("computer:tower", {
 | 
			
		||||
 | 
			
		||||
minetest.register_alias("computer:tower_on", "computer:tower")
 | 
			
		||||
 | 
			
		||||
-- Printer/scaner combo
 | 
			
		||||
minetest.register_node("computer:printer", {
 | 
			
		||||
	description = S("Printer-Scanner Combo"),
 | 
			
		||||
	inventory_image = "computer_printer_inv.png",
 | 
			
		||||
	tiles = {"computer_printer_t.png","computer_printer_bt.png","computer_printer_l.png",
 | 
			
		||||
			"computer_printer_r.png","computer_printer_b.png","computer_printer_f.png"},
 | 
			
		||||
	paramtype = "light",
 | 
			
		||||
	paramtype2 = "facedir",
 | 
			
		||||
	walkable = true,
 | 
			
		||||
	groups = {snappy=3},
 | 
			
		||||
	sound = default.node_sound_wood_defaults(),
 | 
			
		||||
	drawtype = "nodebox",
 | 
			
		||||
	node_box = {
 | 
			
		||||
		type = "fixed",
 | 
			
		||||
		fixed = {
 | 
			
		||||
			{-0.4375, -0.3125, -0.125, 0.4375, -0.0625, 0.375},
 | 
			
		||||
			{-0.4375, -0.5, -0.125, 0.4375, -0.4375, 0.375},
 | 
			
		||||
			{-0.4375, -0.5, -0.125, -0.25, -0.0625, 0.375},
 | 
			
		||||
			{0.25, -0.5, -0.125, 0.4375, -0.0625, 0.375},
 | 
			
		||||
			{-0.4375, -0.5, -0.0625, 0.4375, -0.0625, 0.375},
 | 
			
		||||
			{-0.375, -0.4375, 0.25, 0.375, -0.0625, 0.4375},
 | 
			
		||||
			{-0.25, -0.25, 0.4375, 0.25, 0.0625, 0.5},
 | 
			
		||||
			{-0.25, -0.481132, -0.3125, 0.25, -0.4375, 0}
 | 
			
		||||
		},
 | 
			
		||||
	},
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
--Rack Server
 | 
			
		||||
minetest.register_node("computer:server", {
 | 
			
		||||
	drawtype = "nodebox",
 | 
			
		||||
 
 | 
			
		||||
@@ -1,2 +1,4 @@
 | 
			
		||||
default
 | 
			
		||||
homedecor_common
 | 
			
		||||
basic_materials
 | 
			
		||||
unifieddyes
 | 
			
		||||
 
 | 
			
		||||
@@ -94,6 +94,6 @@ end
 | 
			
		||||
 | 
			
		||||
local MODPATH = minetest.get_modpath("computer")
 | 
			
		||||
dofile(MODPATH.."/computers.lua")
 | 
			
		||||
dofile(MODPATH.."/miscitems.lua")
 | 
			
		||||
dofile(MODPATH.."/printers.lua")
 | 
			
		||||
dofile(MODPATH.."/recipes.lua")
 | 
			
		||||
dofile(MODPATH.."/tetris.lua")
 | 
			
		||||
 
 | 
			
		||||
@@ -1,68 +0,0 @@
 | 
			
		||||
-- Copyright (C) 2012-2013 Diego Martínez <kaeza@users.sf.net>
 | 
			
		||||
 | 
			
		||||
-- This file defines some items in order to not have to depend on other mods.
 | 
			
		||||
 | 
			
		||||
local S = homedecor.gettext
 | 
			
		||||
 | 
			
		||||
if (not minetest.get_modpath("homedecor")) then
 | 
			
		||||
 | 
			
		||||
	minetest.register_craftitem(":basic_materials:plastic_sheet", {
 | 
			
		||||
		description = S("Plastic sheet"),
 | 
			
		||||
		inventory_image = "homedecor_plastic_sheeting.png",
 | 
			
		||||
	})
 | 
			
		||||
 | 
			
		||||
	minetest.register_craftitem(":homedecor:plastic_base", {
 | 
			
		||||
		description = S("Unprocessed Plastic base"),
 | 
			
		||||
		wield_image = "homedecor_plastic_base.png",
 | 
			
		||||
		inventory_image = "homedecor_plastic_base_inv.png",
 | 
			
		||||
	})
 | 
			
		||||
 | 
			
		||||
	minetest.register_craft({
 | 
			
		||||
		type = "shapeless",
 | 
			
		||||
		output = 'homedecor:plastic_base 6',
 | 
			
		||||
		recipe = { "default:junglegrass",
 | 
			
		||||
		   "default:junglegrass",
 | 
			
		||||
		   "default:junglegrass"
 | 
			
		||||
		}
 | 
			
		||||
	})
 | 
			
		||||
 | 
			
		||||
	minetest.register_craft({
 | 
			
		||||
		type = "shapeless",
 | 
			
		||||
		output = 'homedecor:plastic_base 3',
 | 
			
		||||
		recipe = { "default:dry_shrub",
 | 
			
		||||
		   "default:dry_shrub",
 | 
			
		||||
		   "default:dry_shrub"
 | 
			
		||||
		},
 | 
			
		||||
	})
 | 
			
		||||
 | 
			
		||||
	minetest.register_craft({
 | 
			
		||||
		type = "shapeless",
 | 
			
		||||
		output = 'homedecor:plastic_base 4',
 | 
			
		||||
		recipe = { "default:leaves",
 | 
			
		||||
			   "default:leaves",
 | 
			
		||||
			   "default:leaves",
 | 
			
		||||
			   "default:leaves",
 | 
			
		||||
			   "default:leaves",
 | 
			
		||||
			   "default:leaves"
 | 
			
		||||
		}
 | 
			
		||||
	})
 | 
			
		||||
 | 
			
		||||
	minetest.register_craft({
 | 
			
		||||
		type = "cooking",
 | 
			
		||||
		output = "basic_materials:plastic_sheet",
 | 
			
		||||
		recipe = "homedecor:plastic_base",
 | 
			
		||||
	})
 | 
			
		||||
 | 
			
		||||
	minetest.register_craft({
 | 
			
		||||
		type = 'fuel',
 | 
			
		||||
		recipe = 'homedecor:plastic_base',
 | 
			
		||||
		burntime = 30,
 | 
			
		||||
	})
 | 
			
		||||
 | 
			
		||||
	minetest.register_craft({
 | 
			
		||||
		type = 'fuel',
 | 
			
		||||
		recipe = 'basic_materials:plastic_sheet',
 | 
			
		||||
		burntime = 30,
 | 
			
		||||
	})
 | 
			
		||||
 | 
			
		||||
end -- not homedecor
 | 
			
		||||
							
								
								
									
										9835
									
								
								computer/models/computer_3dprinter_bedflinger.obj
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9835
									
								
								computer/models/computer_3dprinter_bedflinger.obj
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										61
									
								
								computer/printers.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										61
									
								
								computer/printers.lua
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,61 @@
 | 
			
		||||
-- Printers of some kind or another
 | 
			
		||||
 | 
			
		||||
local S = homedecor.gettext
 | 
			
		||||
 | 
			
		||||
minetest.register_node("computer:printer", {
 | 
			
		||||
	description = S("Printer-Scanner Combo"),
 | 
			
		||||
	inventory_image = "computer_printer_inv.png",
 | 
			
		||||
	tiles = {"computer_printer_t.png","computer_printer_bt.png","computer_printer_l.png",
 | 
			
		||||
			"computer_printer_r.png","computer_printer_b.png","computer_printer_f.png"},
 | 
			
		||||
	paramtype = "light",
 | 
			
		||||
	paramtype2 = "facedir",
 | 
			
		||||
	walkable = true,
 | 
			
		||||
	groups = {snappy=3},
 | 
			
		||||
	sound = default.node_sound_wood_defaults(),
 | 
			
		||||
	drawtype = "nodebox",
 | 
			
		||||
	node_box = {
 | 
			
		||||
		type = "fixed",
 | 
			
		||||
		fixed = {
 | 
			
		||||
			{-0.4375, -0.3125, -0.125, 0.4375, -0.0625, 0.375},
 | 
			
		||||
			{-0.4375, -0.5, -0.125, 0.4375, -0.4375, 0.375},
 | 
			
		||||
			{-0.4375, -0.5, -0.125, -0.25, -0.0625, 0.375},
 | 
			
		||||
			{0.25, -0.5, -0.125, 0.4375, -0.0625, 0.375},
 | 
			
		||||
			{-0.4375, -0.5, -0.0625, 0.4375, -0.0625, 0.375},
 | 
			
		||||
			{-0.375, -0.4375, 0.25, 0.375, -0.0625, 0.4375},
 | 
			
		||||
			{-0.25, -0.25, 0.4375, 0.25, 0.0625, 0.5},
 | 
			
		||||
			{-0.25, -0.481132, -0.3125, 0.25, -0.4375, 0}
 | 
			
		||||
		},
 | 
			
		||||
	},
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
-- "bedflinger" style 3D Printer (Prusa i3 or equivalent)
 | 
			
		||||
 | 
			
		||||
local cbox = {
 | 
			
		||||
	type = "fixed",
 | 
			
		||||
	fixed = {-0.25, -0.25, -0.5, 0.3, 0.3, 0.25 }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
minetest.register_node("computer:3dprinter_bedflinger", {
 | 
			
		||||
	description = S('3D Printer ("bedflinger")'),
 | 
			
		||||
	inventory_image = "computer_3dprinter_bedflinger_inv.png",
 | 
			
		||||
	tiles = {
 | 
			
		||||
		{ name = "computer_3dprinter_bedflinger.png", color = 0xffffffff },
 | 
			
		||||
		"computer_3dprinter_filament.png"
 | 
			
		||||
	},
 | 
			
		||||
	paramtype = "light",
 | 
			
		||||
	walkable = true,
 | 
			
		||||
	groups = {snappy=3, ud_param2_colorable = 1},
 | 
			
		||||
	sound = default.node_sound_wood_defaults(),
 | 
			
		||||
	drawtype = "mesh",
 | 
			
		||||
	mesh = "computer_3dprinter_bedflinger.obj",
 | 
			
		||||
	paramtype2 = "colorwallmounted",
 | 
			
		||||
	palette = "unifieddyes_palette_colorwallmounted.png",
 | 
			
		||||
	selection_box = cbox,
 | 
			
		||||
	collision_box = cbox,
 | 
			
		||||
	after_place_node = function(pos, placer, itemstack, pointed_thing)
 | 
			
		||||
		unifieddyes.fix_rotation_nsew(pos, placer, itemstack, pointed_thing)
 | 
			
		||||
	end,
 | 
			
		||||
	on_dig = unifieddyes.on_dig,
 | 
			
		||||
	on_rotate = unifieddyes.fix_after_screwdriver_nsew,
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								computer/textures/computer_3dprinter_bedflinger.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								computer/textures/computer_3dprinter_bedflinger.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 3.5 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								computer/textures/computer_3dprinter_bedflinger_inv.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								computer/textures/computer_3dprinter_bedflinger_inv.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 3.8 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								computer/textures/computer_3dprinter_filament.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								computer/textures/computer_3dprinter_filament.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 216 B  | 
@@ -89,28 +89,19 @@ end
 | 
			
		||||
-- 3d-ify default mtg wood and steel doors and trap doors
 | 
			
		||||
 | 
			
		||||
if minetest.get_modpath("doors") then
 | 
			
		||||
	local function clone_node(name)
 | 
			
		||||
		local node2 = {}
 | 
			
		||||
		local node = minetest.registered_nodes[name]
 | 
			
		||||
		for k,v in pairs(node) do
 | 
			
		||||
			node2[k]=v
 | 
			
		||||
		end
 | 
			
		||||
		return node2
 | 
			
		||||
	end
 | 
			
		||||
 | 
			
		||||
	local def
 | 
			
		||||
	for _,mat in ipairs({"wood", "steel"}) do
 | 
			
		||||
		def = clone_node("doors:door_"..mat.."_a")
 | 
			
		||||
		def = table.copy(minetest.registered_nodes["doors:door_"..mat.."_a"])
 | 
			
		||||
			def.mesh = "homedecor_3d_door_"..mat.."_a.obj"
 | 
			
		||||
			minetest.register_node(":doors:door_"..mat.."_a", def)
 | 
			
		||||
 | 
			
		||||
		def = clone_node("doors:door_"..mat.."_b")
 | 
			
		||||
		def = table.copy(minetest.registered_nodes["doors:door_"..mat.."_b"])
 | 
			
		||||
			def.mesh = "homedecor_3d_door_"..mat.."_b.obj"
 | 
			
		||||
			minetest.register_node(":doors:door_"..mat.."_b", def)
 | 
			
		||||
	end
 | 
			
		||||
 | 
			
		||||
	for _,mat in ipairs({"", "_steel"}) do
 | 
			
		||||
		def = clone_node("doors:trapdoor"..mat)
 | 
			
		||||
		def = table.copy(minetest.registered_nodes["doors:trapdoor"..mat])
 | 
			
		||||
			def.drawtype = "mesh"
 | 
			
		||||
			def.mesh = "homedecor_3d_trapdoor"..mat..".obj"
 | 
			
		||||
			def.tiles = {
 | 
			
		||||
@@ -119,7 +110,7 @@ if minetest.get_modpath("doors") then
 | 
			
		||||
			}
 | 
			
		||||
			minetest.register_node(":doors:trapdoor"..mat, def)
 | 
			
		||||
 | 
			
		||||
		def = clone_node("doors:trapdoor"..mat.."_open")
 | 
			
		||||
		def = table.copy(minetest.registered_nodes["doors:trapdoor"..mat.."_open"])
 | 
			
		||||
			def.mesh = "homedecor_3d_trapdoor"..mat.."_open.obj"
 | 
			
		||||
			def.drawtype = "mesh"
 | 
			
		||||
			def.tiles = {
 | 
			
		||||
 
 | 
			
		||||
@@ -15,6 +15,7 @@ minetest.register_node(":homedecor:bathroom_tiles_dark", {
 | 
			
		||||
	groups = {cracky=3, ud_param2_colorable = 1},
 | 
			
		||||
	sounds = default.node_sound_stone_defaults(),
 | 
			
		||||
	on_construct = unifieddyes.on_construct,
 | 
			
		||||
	on_dig = unifieddyes.on_dig,
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
minetest.register_node(":homedecor:bathroom_tiles_medium", {
 | 
			
		||||
@@ -31,6 +32,7 @@ minetest.register_node(":homedecor:bathroom_tiles_medium", {
 | 
			
		||||
	groups = {cracky=3, ud_param2_colorable = 1},
 | 
			
		||||
	sounds = default.node_sound_stone_defaults(),
 | 
			
		||||
	on_construct = unifieddyes.on_construct,
 | 
			
		||||
	on_dig = unifieddyes.on_dig,
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
minetest.register_node(":homedecor:bathroom_tiles_light", {
 | 
			
		||||
@@ -47,6 +49,7 @@ minetest.register_node(":homedecor:bathroom_tiles_light", {
 | 
			
		||||
	groups = {cracky=3, ud_param2_colorable = 1},
 | 
			
		||||
	sounds = default.node_sound_stone_defaults(),
 | 
			
		||||
	on_construct = unifieddyes.on_construct,
 | 
			
		||||
	on_dig = unifieddyes.on_dig,
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
local tr_cbox = {
 | 
			
		||||
 
 | 
			
		||||
@@ -59,6 +59,7 @@ homedecor.register("bed_regular", {
 | 
			
		||||
	after_dig_node = function(pos, oldnode, oldmetadata, digger)
 | 
			
		||||
		homedecor.unextend_bed(pos)
 | 
			
		||||
	end,
 | 
			
		||||
	on_dig = unifieddyes.on_dig,
 | 
			
		||||
	on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
 | 
			
		||||
		local itemname = itemstack:get_name()
 | 
			
		||||
		if itemname == "homedecor:bed_regular" then
 | 
			
		||||
@@ -92,6 +93,7 @@ homedecor.register("bed_extended", {
 | 
			
		||||
	after_dig_node = function(pos, oldnode, oldmetadata, digger)
 | 
			
		||||
		homedecor.unextend_bed(pos)
 | 
			
		||||
	end,
 | 
			
		||||
	on_dig = unifieddyes.on_dig,
 | 
			
		||||
--	on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
 | 
			
		||||
--		homedecor.beds_on_rightclick(pos, node, clicker)
 | 
			
		||||
--		return itemstack
 | 
			
		||||
@@ -128,6 +130,7 @@ homedecor.register("bed_kingsize", {
 | 
			
		||||
			inv:add_item("main", "homedecor:bed_regular 2")
 | 
			
		||||
		end
 | 
			
		||||
	end,
 | 
			
		||||
	on_dig = unifieddyes.on_dig,
 | 
			
		||||
--	on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
 | 
			
		||||
--		homedecor.beds_on_rightclick(pos, node, clicker)
 | 
			
		||||
--		return itemstack
 | 
			
		||||
 
 | 
			
		||||
@@ -25,7 +25,7 @@ minetest.register_node(":homedecor:cobweb_corner", {
 | 
			
		||||
	end
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
minetest.register_node(":Lhomedecor:cobweb_centered", {
 | 
			
		||||
minetest.register_node(":homedecor:cobweb_centered", {
 | 
			
		||||
	description = S("Cobweb"),
 | 
			
		||||
	drawtype = "nodebox",
 | 
			
		||||
	tiles = { "homedecor_cobweb.png" },
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,3 @@
 | 
			
		||||
default
 | 
			
		||||
creative
 | 
			
		||||
 | 
			
		||||
intllib?
 | 
			
		||||
 
 | 
			
		||||
@@ -80,7 +80,7 @@ local furnace_can_dig = function(pos,player)
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
function homedecor.register_furnace(name, furnacedef)
 | 
			
		||||
	furnacedef.fire_fg = furnacedef.fire_bg or "default_furnace_fire_fg.png"
 | 
			
		||||
	furnacedef.fire_fg = furnacedef.fire_fg or "default_furnace_fire_fg.png"
 | 
			
		||||
	furnacedef.fire_bg = furnacedef.fire_bg or "default_furnace_fire_bg.png"
 | 
			
		||||
 | 
			
		||||
	furnacedef.output_slots = furnacedef.output_slots or 4
 | 
			
		||||
 
 | 
			
		||||
@@ -3,17 +3,6 @@
 | 
			
		||||
local S = homedecor.gettext
 | 
			
		||||
local mesecons_mp = minetest.get_modpath("mesecons")
 | 
			
		||||
 | 
			
		||||
-- clone node
 | 
			
		||||
 | 
			
		||||
function hd_doors_clone_node(name)
 | 
			
		||||
	local node2 = {}
 | 
			
		||||
	local node = minetest.registered_nodes[name]
 | 
			
		||||
	for k,v in pairs(node) do
 | 
			
		||||
		node2[k]=v
 | 
			
		||||
	end
 | 
			
		||||
	return node2
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
-- new doors using minetest_game doors API
 | 
			
		||||
 | 
			
		||||
local door_list = {
 | 
			
		||||
@@ -181,22 +170,22 @@ for _, door in ipairs(door_list) do
 | 
			
		||||
	local nn_b = "doors:homedecor_"..door.name.."_b"
 | 
			
		||||
 | 
			
		||||
	if door.alpha then
 | 
			
		||||
		local def = hd_doors_clone_node(nn_a)
 | 
			
		||||
		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 = hd_doors_clone_node(nn_b)
 | 
			
		||||
		def = table.copy(minetest.registered_nodes[nn_b])
 | 
			
		||||
			def.use_texture_alpha = true
 | 
			
		||||
			minetest.register_node(":"..nn_b, def)
 | 
			
		||||
	end
 | 
			
		||||
 | 
			
		||||
	if door.custom_model and hd_3d then
 | 
			
		||||
		def = hd_doors_clone_node(nn_a)
 | 
			
		||||
		def = table.copy(minetest.registered_nodes[nn_a])
 | 
			
		||||
			def.mesh = door.custom_model.."_a.obj"
 | 
			
		||||
			minetest.register_node(":"..nn_a, def)
 | 
			
		||||
 | 
			
		||||
		def = hd_doors_clone_node(nn_b)
 | 
			
		||||
		def = table.copy(minetest.registered_nodes[nn_b])
 | 
			
		||||
			def.mesh = door.custom_model.."_b.obj"
 | 
			
		||||
			minetest.register_node(":"..nn_b, def)
 | 
			
		||||
	end
 | 
			
		||||
@@ -468,8 +457,8 @@ minetest.register_craft( {
 | 
			
		||||
	type = "shapeless",
 | 
			
		||||
	output = "homedecor:gate_half_door_closed 4",
 | 
			
		||||
	recipe = {
 | 
			
		||||
		"homedecor:door_wood_plain_a",
 | 
			
		||||
		"homedecor:door_wood_plain_a"
 | 
			
		||||
		"doors:homedecor_wood_plain_a",
 | 
			
		||||
		"doors:homedecor_wood_plain_a"
 | 
			
		||||
	},
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
@@ -477,8 +466,8 @@ minetest.register_craft( {
 | 
			
		||||
	type = "shapeless",
 | 
			
		||||
	output = "homedecor:gate_half_door_white_closed 4",
 | 
			
		||||
	recipe = {
 | 
			
		||||
		"homedecor:door_bedroom_a",
 | 
			
		||||
		"homedecor:door_bedroom_a"
 | 
			
		||||
		"doors:homedecor_bedroom_a",
 | 
			
		||||
		"doors:homedecor_bedroom_a"
 | 
			
		||||
	},
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
@@ -553,7 +542,7 @@ minetest.register_craft( {
 | 
			
		||||
-- plain wood, non-windowed
 | 
			
		||||
 | 
			
		||||
minetest.register_craft( {
 | 
			
		||||
        output = "homedecor:door_wood_plain_a 2",
 | 
			
		||||
        output = "doors:homedecor_wood_plain 2",
 | 
			
		||||
        recipe = {
 | 
			
		||||
			{ "group:wood", "group:wood", "" },
 | 
			
		||||
			{ "group:wood", "group:wood", "default:steel_ingot" },
 | 
			
		||||
@@ -564,7 +553,7 @@ minetest.register_craft( {
 | 
			
		||||
-- fancy exterior
 | 
			
		||||
 | 
			
		||||
minetest.register_craft( {
 | 
			
		||||
        output = "homedecor:door_exterior_fancy_a 2",
 | 
			
		||||
        output = "doors:homedecor_exterior_fancy 2",
 | 
			
		||||
        recipe = {
 | 
			
		||||
			{ "group:wood", "default:glass" },
 | 
			
		||||
			{ "group:wood", "group:wood" },
 | 
			
		||||
@@ -572,12 +561,10 @@ minetest.register_craft( {
 | 
			
		||||
        },
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
-- wood and glass (grid style)
 | 
			
		||||
 | 
			
		||||
-- bare
 | 
			
		||||
-- French style wood/glass
 | 
			
		||||
 | 
			
		||||
minetest.register_craft( {
 | 
			
		||||
        output = "homedecor:door_wood_glass_oak_a 2",
 | 
			
		||||
        output = "doors:homedecor_french_oak 2",
 | 
			
		||||
        recipe = {
 | 
			
		||||
			{ "default:glass", "group:wood" },
 | 
			
		||||
			{ "group:wood", "default:glass" },
 | 
			
		||||
@@ -586,7 +573,7 @@ minetest.register_craft( {
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
minetest.register_craft( {
 | 
			
		||||
        output = "homedecor:door_wood_glass_oak_a 2",
 | 
			
		||||
        output = "doors:homedecor_french_oak 2",
 | 
			
		||||
        recipe = {
 | 
			
		||||
			{ "group:wood", "default:glass" },
 | 
			
		||||
			{ "default:glass", "group:wood" },
 | 
			
		||||
@@ -594,27 +581,23 @@ minetest.register_craft( {
 | 
			
		||||
        },
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
-- mahogany
 | 
			
		||||
 | 
			
		||||
minetest.register_craft( {
 | 
			
		||||
	type = "shapeless",
 | 
			
		||||
        output = "homedecor:door_wood_glass_mahogany_a 2",
 | 
			
		||||
        output = "doors:homedecor_french_mahogany 2",
 | 
			
		||||
        recipe = {
 | 
			
		||||
			"dye:brown",
 | 
			
		||||
			"homedecor:door_wood_glass_oak_a",
 | 
			
		||||
			"homedecor:door_wood_glass_oak_a"
 | 
			
		||||
			"doors:homedecor_french_oak",
 | 
			
		||||
			"doors:homedecor_french_oak"
 | 
			
		||||
        },
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
-- white
 | 
			
		||||
 | 
			
		||||
minetest.register_craft( {
 | 
			
		||||
	type = "shapeless",
 | 
			
		||||
        output = "homedecor:door_wood_glass_white_a 2",
 | 
			
		||||
        output = "doors:homedecor_french_white 2",
 | 
			
		||||
        recipe = {
 | 
			
		||||
			"dye:white",
 | 
			
		||||
			"homedecor:door_wood_glass_oak_a",
 | 
			
		||||
			"homedecor:door_wood_glass_oak_a"
 | 
			
		||||
			"doors:homedecor_french_oak",
 | 
			
		||||
			"doors:homedecor_french_oak"
 | 
			
		||||
        },
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
@@ -623,7 +606,7 @@ minetest.register_craft( {
 | 
			
		||||
-- oak
 | 
			
		||||
 | 
			
		||||
minetest.register_craft( {
 | 
			
		||||
        output = "homedecor:door_closet_oak_a 2",
 | 
			
		||||
        output = "doors:homedecor_closet_oak 2",
 | 
			
		||||
        recipe = {
 | 
			
		||||
			{ "", "group:stick", "group:stick" },
 | 
			
		||||
			{ "default:steel_ingot", "group:stick", "group:stick" },
 | 
			
		||||
@@ -635,18 +618,18 @@ minetest.register_craft( {
 | 
			
		||||
 | 
			
		||||
minetest.register_craft( {
 | 
			
		||||
	type = "shapeless",
 | 
			
		||||
        output = "homedecor:door_closet_mahogany_a 2",
 | 
			
		||||
        output = "doors:homedecor_closet_mahogany 2",
 | 
			
		||||
        recipe = {
 | 
			
		||||
			"homedecor:door_closet_oak_a",
 | 
			
		||||
			"homedecor:door_closet_oak_a",
 | 
			
		||||
			"doors:homedecor_closet_oak_a",
 | 
			
		||||
			"doors:homedecor_closet_oak_a",
 | 
			
		||||
			"dye:brown"
 | 
			
		||||
        },
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
-- wrought fence-like door
 | 
			
		||||
-- wrought iron fence-like door
 | 
			
		||||
 | 
			
		||||
minetest.register_craft( {
 | 
			
		||||
        output = "homedecor:door_wrought_iron_a 2",
 | 
			
		||||
        output = "doors:homedecor_wrought_iron 2",
 | 
			
		||||
        recipe = {
 | 
			
		||||
			{ "homedecor:pole_wrought_iron", "default:iron_lump" },
 | 
			
		||||
			{ "homedecor:pole_wrought_iron", "default:iron_lump" },
 | 
			
		||||
@@ -654,21 +637,21 @@ minetest.register_craft( {
 | 
			
		||||
        },
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
-- bedroom door
 | 
			
		||||
-- bedroom/panel door
 | 
			
		||||
 | 
			
		||||
minetest.register_craft( {
 | 
			
		||||
	output = "homedecor:door_bedroom_a",
 | 
			
		||||
	output = "doors:homedecor_basic_panel",
 | 
			
		||||
	recipe = {
 | 
			
		||||
		{ "dye:white", "dye:white", "" },
 | 
			
		||||
		{ "homedecor:door_wood_plain_a", "basic_materials:brass_ingot", "" },
 | 
			
		||||
		{ "doors:homedecor_wood_plain_a", "basic_materials:brass_ingot", "" },
 | 
			
		||||
		{ "", "", "" },
 | 
			
		||||
	},
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
-- woodglass door
 | 
			
		||||
-- basic wood/glass single-lite door
 | 
			
		||||
 | 
			
		||||
minetest.register_craft( {
 | 
			
		||||
	output = "homedecor:door_woodglass_a",
 | 
			
		||||
	output = "doors:homedecor_woodglass",
 | 
			
		||||
	recipe = {
 | 
			
		||||
		{ "group:wood", "default:glass", "" },
 | 
			
		||||
		{ "group:wood", "default:glass", "basic_materials:brass_ingot" },
 | 
			
		||||
@@ -676,10 +659,10 @@ minetest.register_craft( {
 | 
			
		||||
	},
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
-- woodglass door type 2
 | 
			
		||||
-- "Carolina" door
 | 
			
		||||
 | 
			
		||||
minetest.register_craft( {
 | 
			
		||||
	output = "homedecor:door_woodglass2_a",
 | 
			
		||||
	output = "doors:homedecor_carolina",
 | 
			
		||||
	recipe = {
 | 
			
		||||
		{ "default:glass", "default:glass", "" },
 | 
			
		||||
		{ "group:wood", "group:wood", "default:iron_lump" },
 | 
			
		||||
@@ -716,6 +699,15 @@ minetest.register_alias("doors:wood_glass_white_b",             "doors:homedecor
 | 
			
		||||
minetest.register_alias("doors:wood_glass_mahogany_a",          "doors:homedecor_french_mahogany_a")
 | 
			
		||||
minetest.register_alias("doors:wood_glass_mahogany_b",          "doors:homedecor_french_mahogany_b")
 | 
			
		||||
 | 
			
		||||
minetest.register_alias("doors:homedecor_wood_glass_oak_a",     "doors:homedecor_french_oak_a")
 | 
			
		||||
minetest.register_alias("doors:homedecor_wood_glass_oak_b",     "doors:homedecor_french_oak_b")
 | 
			
		||||
 | 
			
		||||
minetest.register_alias("doors:homedecor_wood_glass_white_a",   "doors:homedecor_french_white_a")
 | 
			
		||||
minetest.register_alias("doors:homedecor_wood_glass_white_b",   "doors:homedecor_french_white_b")
 | 
			
		||||
 | 
			
		||||
minetest.register_alias("doors:homedecor_wood_glass_mahogany_a", "doors:homedecor_french_mahogany_a")
 | 
			
		||||
minetest.register_alias("doors:homedecor_wood_glass_mahogany_b", "doors:homedecor_french_mahogany_b")
 | 
			
		||||
 | 
			
		||||
minetest.register_alias("doors:homedecor_woodglass2_a",         "doors:homedecor_carolina_a")
 | 
			
		||||
minetest.register_alias("doors:homedecor_woodglass2_b",         "doors:homedecor_carolina_b")
 | 
			
		||||
 | 
			
		||||
@@ -730,8 +722,23 @@ minetest.register_alias("doors:bedroom_b",                      "doors:homedecor
 | 
			
		||||
 | 
			
		||||
-- flip old homedecor doors around, since they use minetest_game doors API now
 | 
			
		||||
 | 
			
		||||
old_doors[#old_doors + 1] = "homedecor:door_wood_glass_oak_left"
 | 
			
		||||
old_doors[#old_doors + 1] = "homedecor:door_wood_glass_oak_right"
 | 
			
		||||
 | 
			
		||||
old_doors[#old_doors + 1] = "homedecor:door_wood_glass_white_left"
 | 
			
		||||
old_doors[#old_doors + 1] = "homedecor:door_wood_glass_white_right"
 | 
			
		||||
 | 
			
		||||
old_doors[#old_doors + 1] = "homedecor:door_wood_glass_mahogany_left"
 | 
			
		||||
old_doors[#old_doors + 1] = "homedecor:door_wood_glass_mahogany_right"
 | 
			
		||||
 | 
			
		||||
old_doors[#old_doors + 1] = "homedecor:door_woodglass2_left"
 | 
			
		||||
old_doors[#old_doors + 1] = "homedecor:door_woodglass2_right"
 | 
			
		||||
 | 
			
		||||
old_doors[#old_doors + 1] = "homedecor:door_bedroom_left"
 | 
			
		||||
old_doors[#old_doors + 1] = "homedecor:door_bedroom_right"
 | 
			
		||||
 | 
			
		||||
minetest.register_lbm({
 | 
			
		||||
	name = ":homedecor:convert_doors",
 | 
			
		||||
	name = ":homedecor:convert_doors_3",
 | 
			
		||||
	label = "Convert Homedecor doors to mtg doors API",
 | 
			
		||||
	nodenames = old_doors,
 | 
			
		||||
	run_at_every_load = false,
 | 
			
		||||
@@ -740,10 +747,12 @@ minetest.register_lbm({
 | 
			
		||||
		local newparam2 = (node.param2 + 2) % 4
 | 
			
		||||
		local e = string.find(node.name, "_", -7)
 | 
			
		||||
		local dir = string.sub(node.name, e+1)
 | 
			
		||||
		local newname = "doors:"..string.sub(node.name, 16, e-1)
 | 
			
		||||
		local newname = "doors:homedecor_"..string.sub(node.name, 16, e-1)
 | 
			
		||||
		if dir == "right" then
 | 
			
		||||
			print("Want to replace "..node.name.." with "..newname.."_a")
 | 
			
		||||
			minetest.set_node(pos, {name = newname.."_a", param2 = newparam2 })
 | 
			
		||||
		else
 | 
			
		||||
			print("Want to replace "..node.name.." with "..newname.."_b")
 | 
			
		||||
			minetest.set_node(pos, {name = newname.."_b", param2 = newparam2 })
 | 
			
		||||
		end
 | 
			
		||||
		minetest.set_node({x=pos.x, y=pos.y+1, z=pos.z}, {name = "doors:hidden"})
 | 
			
		||||
 
 | 
			
		||||
@@ -16,8 +16,6 @@ function homedecor.toggle_switch(pos, node, clicker, itemstack, pointed_thing)
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
local on_rc
 | 
			
		||||
local switch_receptor
 | 
			
		||||
 | 
			
		||||
if minetest.get_modpath("mesecons") then
 | 
			
		||||
	on_rc = function(pos, node, clicker, itemstack, pointed_thing)
 | 
			
		||||
		local t = homedecor.toggle_switch(pos, node, clicker, itemstack, pointed_thing)
 | 
			
		||||
@@ -28,12 +26,6 @@ if minetest.get_modpath("mesecons") then
 | 
			
		||||
			mesecon.receptor_on(pos, mesecon.rules.buttonlike_get(node))
 | 
			
		||||
		end
 | 
			
		||||
	end
 | 
			
		||||
	switch_receptor = {
 | 
			
		||||
		receptor = {
 | 
			
		||||
			state = mesecon.state[onoff],
 | 
			
		||||
			rules = mesecon.rules.buttonlike_get
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
homedecor.register("power_outlet", {
 | 
			
		||||
@@ -65,6 +57,16 @@ homedecor.register("power_outlet", {
 | 
			
		||||
 | 
			
		||||
for _, onoff in ipairs ({"on", "off"}) do
 | 
			
		||||
 | 
			
		||||
	local switch_receptor
 | 
			
		||||
	if minetest.get_modpath("mesecons") then
 | 
			
		||||
		switch_receptor = {
 | 
			
		||||
			receptor = {
 | 
			
		||||
				state = mesecon.state[onoff],
 | 
			
		||||
				rules = mesecon.rules.buttonlike_get
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	end
 | 
			
		||||
 | 
			
		||||
	local model = {
 | 
			
		||||
		{ -0.125,   -0.1875, 0.4375,  0.125,   0.125,  0.5 },
 | 
			
		||||
		{ -0.03125,  0,      0.40625, 0.03125, 0.0625, 0.5 },
 | 
			
		||||
 
 | 
			
		||||
@@ -1,19 +1,5 @@
 | 
			
		||||
-- This file adds fences of various types
 | 
			
		||||
 | 
			
		||||
local signs_modpath = minetest.get_modpath("signs_lib")
 | 
			
		||||
 | 
			
		||||
local sign_post_model = {
 | 
			
		||||
	type = "fixed",
 | 
			
		||||
	fixed = {
 | 
			
		||||
			{-0.4375, -0.25, -0.1875, 0.4375, 0.375, -0.125},
 | 
			
		||||
			{-0.125, -0.5, -0.125, 0.125, 0.5, 0.125},
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
if signs_modpath then
 | 
			
		||||
	sign_post_model = signs_lib.sign_post_model.nodebox
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
local S = homedecor.gettext
 | 
			
		||||
 | 
			
		||||
local materials = {
 | 
			
		||||
@@ -23,9 +9,9 @@ local materials = {
 | 
			
		||||
 | 
			
		||||
for _, m in ipairs(materials) do
 | 
			
		||||
 | 
			
		||||
local desc, name = unpack(m)
 | 
			
		||||
	local desc, name = unpack(m)
 | 
			
		||||
 | 
			
		||||
homedecor.register("fence_"..name, {
 | 
			
		||||
	homedecor.register("fence_"..name, {
 | 
			
		||||
		description = S("Fence/railing (@1)", desc),
 | 
			
		||||
		drawtype = "fencelike",
 | 
			
		||||
		tiles = {"homedecor_generic_metal_"..name..".png"},
 | 
			
		||||
@@ -33,33 +19,7 @@ homedecor.register("fence_"..name, {
 | 
			
		||||
		selection_box = homedecor.nodebox.bar_y(1/7),
 | 
			
		||||
		groups = {snappy=3},
 | 
			
		||||
		sounds = default.node_sound_wood_defaults(),
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
-- brass/wrought iron with signs:
 | 
			
		||||
 | 
			
		||||
homedecor.register("fence_"..name.."_with_sign", {
 | 
			
		||||
	description = S("Fence/railing with sign (@1)", desc),
 | 
			
		||||
	tiles = {
 | 
			
		||||
		"homedecor_sign_"..name.."_post_top.png",
 | 
			
		||||
		"homedecor_sign_"..name.."_post_bottom.png",
 | 
			
		||||
		"homedecor_sign_"..name.."_post_side.png",
 | 
			
		||||
		"homedecor_sign_"..name.."_post_side.png",
 | 
			
		||||
		"homedecor_sign_"..name.."_post_back.png",
 | 
			
		||||
		"homedecor_sign_"..name.."_post_front.png",
 | 
			
		||||
	},
 | 
			
		||||
	wield_image = "homedecor_sign_"..name.."_post.png",
 | 
			
		||||
	node_box = sign_post_model,
 | 
			
		||||
	groups = {snappy=3,not_in_creative_inventory=1},
 | 
			
		||||
	sounds = default.node_sound_wood_defaults(),
 | 
			
		||||
	sunlight_propagates = true,
 | 
			
		||||
	drop = {
 | 
			
		||||
		max_items = 2,
 | 
			
		||||
		items = {
 | 
			
		||||
			{ items = { "default:sign_wall" }},
 | 
			
		||||
			{ items = { "homedecor:fence_"..name }},
 | 
			
		||||
		},
 | 
			
		||||
	},
 | 
			
		||||
})
 | 
			
		||||
	})
 | 
			
		||||
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
@@ -303,9 +263,15 @@ homedecor.register("fence_wrought_iron_2_corner", {
 | 
			
		||||
	},
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
if signs_modpath then
 | 
			
		||||
	signs_lib.register_fence_with_sign("homedecor:fence_brass", "homedecor:fence_brass_with_sign")
 | 
			
		||||
	signs_lib.register_fence_with_sign("homedecor:fence_wrought_iron", "homedecor:fence_wrought_iron_with_sign")
 | 
			
		||||
-- insert the old wood signs-on-metal-fences into signs_lib's conversion LBM
 | 
			
		||||
if minetest.get_modpath("signs_lib") then
 | 
			
		||||
	table.insert(signs_lib.old_fenceposts_with_signs, "homedecor:fence_brass_with_sign")
 | 
			
		||||
	signs_lib.old_fenceposts["homedecor:fence_brass_with_sign"] = "homedecor:fence_brass"
 | 
			
		||||
	signs_lib.old_fenceposts_replacement_signs["homedecor:fence_brass_with_sign"] = "default:sign_wall_wood_onpole"
 | 
			
		||||
 | 
			
		||||
	table.insert(signs_lib.old_fenceposts_with_signs, "homedecor:fence_wrought_iron_with_sign")
 | 
			
		||||
	signs_lib.old_fenceposts["homedecor:fence_wrought_iron_with_sign"] = "homedecor:fence_wrought_iron"
 | 
			
		||||
	signs_lib.old_fenceposts_replacement_signs["homedecor:fence_wrought_iron_with_sign"] = "default:sign_wall_wood_onpole"
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
-- crafting
 | 
			
		||||
 
 | 
			
		||||
@@ -164,18 +164,7 @@ homedecor.register("beer_mug", {
 | 
			
		||||
	on_use = function(itemstack, user, pointed_thing)
 | 
			
		||||
		local inv = user:get_inventory()
 | 
			
		||||
		if not creative.is_enabled_for(user:get_player_name()) then
 | 
			
		||||
			if inv:room_for_item("main", "vessels:drinking_glass 1") then
 | 
			
		||||
				inv:add_item("main", "vessels:drinking_glass 1")
 | 
			
		||||
			else
 | 
			
		||||
				local pos = user:get_pos()
 | 
			
		||||
				local dir = user:get_look_dir()
 | 
			
		||||
				local fdir = minetest.dir_to_facedir(dir)
 | 
			
		||||
				local pos_fwd = {	x = pos.x + homedecor.fdir_to_fwd[fdir+1][1],
 | 
			
		||||
									y = pos.y + 1,
 | 
			
		||||
									z = pos.z + homedecor.fdir_to_fwd[fdir+1][2] }
 | 
			
		||||
				minetest.add_item(pos_fwd, "vessels:drinking_glass 1")
 | 
			
		||||
			end
 | 
			
		||||
			minetest.do_item_eat(2, nil, itemstack, user, pointed_thing)
 | 
			
		||||
			minetest.do_item_eat(2, "vessels:drinking_glass 1", itemstack, user, pointed_thing)
 | 
			
		||||
			return itemstack
 | 
			
		||||
		end
 | 
			
		||||
	end
 | 
			
		||||
 
 | 
			
		||||
@@ -11,6 +11,8 @@ local function is_protected(pos, clicker)
 | 
			
		||||
	return false
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
local hd_mesecons = minetest.get_modpath("mesecons")
 | 
			
		||||
 | 
			
		||||
-- control and brightness for dimmable lamps
 | 
			
		||||
 | 
			
		||||
local brightn_cycle = {
 | 
			
		||||
@@ -22,7 +24,7 @@ local brightn_cycle = {
 | 
			
		||||
	["on"]  = "off",
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
local brightn_light_source = {
 | 
			
		||||
local word_to_bright = {
 | 
			
		||||
	["off"] = 0,
 | 
			
		||||
	["low"] = 3,
 | 
			
		||||
	["med"] = 7,
 | 
			
		||||
@@ -31,40 +33,6 @@ local brightn_light_source = {
 | 
			
		||||
	["max"] = 14,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
local brightn_hex = {
 | 
			
		||||
	["off"] = 0xffd0d0d0,
 | 
			
		||||
	["low"] = 0xffd8d8d8,
 | 
			
		||||
	["med"] = 0xffe0e0e0,
 | 
			
		||||
	["hi"]  = 0xffe8e8e8,
 | 
			
		||||
	["on"]  = 0xffffffff,
 | 
			
		||||
	["max"] = 0xffffffff,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
local bright_to_word = {
 | 
			
		||||
	[0]  = "off",
 | 
			
		||||
	[1]  = "low",
 | 
			
		||||
	[2]  = "low",
 | 
			
		||||
	[3]  = "low",
 | 
			
		||||
	[4]  = "med",
 | 
			
		||||
	[5]  = "med",
 | 
			
		||||
	[6]  = "med",
 | 
			
		||||
	[7]  = "med",
 | 
			
		||||
	[8]  = "hi",
 | 
			
		||||
	[9]  = "hi",
 | 
			
		||||
	[10] = "hi",
 | 
			
		||||
	[11] = "hi",
 | 
			
		||||
	[12] = "on",
 | 
			
		||||
	[13] = "on",
 | 
			
		||||
	[14] = "on",
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
local rules_xz = {
 | 
			
		||||
	{x = -1, y = 0, z =  0}, -- borrowed from extrawires crossing
 | 
			
		||||
	{x =  1, y = 0, z =  0},
 | 
			
		||||
	{x =  0, y = 0, z = -1},
 | 
			
		||||
	{x =  0, y = 0, z =  1},
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
local rules_alldir = {
 | 
			
		||||
	{x =  0, y =  0, z = -1},  -- borrowed from lightstones
 | 
			
		||||
	{x =  1, y =  0, z =  0},
 | 
			
		||||
@@ -81,18 +49,11 @@ local rules_alldir = {
 | 
			
		||||
	{x =  0, y = -1, z =  0},
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
local rules_toponly = {
 | 
			
		||||
	{x =  1, y =  1, z =  0},
 | 
			
		||||
	{x = -1, y =  1, z =  0},
 | 
			
		||||
	{x =  0, y =  1, z =  1},
 | 
			
		||||
	{x =  0, y =  1, z = -1},
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
-- mesecons compatibility
 | 
			
		||||
 | 
			
		||||
local actions
 | 
			
		||||
 | 
			
		||||
if minetest.get_modpath("mesecons") then
 | 
			
		||||
if hd_mesecons then
 | 
			
		||||
 | 
			
		||||
	actions = {
 | 
			
		||||
		action_off = function(pos, node)
 | 
			
		||||
@@ -121,21 +82,10 @@ if minetest.get_modpath("mesecons") then
 | 
			
		||||
	}
 | 
			
		||||
	homedecor.mesecon_wall_light.effector.rules = mesecon.rules.wallmounted_get
 | 
			
		||||
 | 
			
		||||
	homedecor.mesecon_xz_light = {
 | 
			
		||||
		effector = table.copy(actions)
 | 
			
		||||
	}
 | 
			
		||||
	homedecor.mesecon_xz_light.effector.rules = rules_xz
 | 
			
		||||
 | 
			
		||||
	homedecor.mesecon_alldir_light = {
 | 
			
		||||
		effector = table.copy(actions),
 | 
			
		||||
	}
 | 
			
		||||
	homedecor.mesecon_alldir_light.effector.rules = rules_alldir
 | 
			
		||||
 | 
			
		||||
	homedecor.mesecon_toponly_light = {
 | 
			
		||||
		effector = table.copy(actions)
 | 
			
		||||
	}
 | 
			
		||||
	homedecor.mesecon_toponly_light.effector.rules = rules_toponly
 | 
			
		||||
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
-- digilines compatibility
 | 
			
		||||
@@ -148,27 +98,30 @@ local digiline_on_punch
 | 
			
		||||
if minetest.get_modpath("digilines") then
 | 
			
		||||
 | 
			
		||||
	local on_digiline_receive_string = function(pos, node, channel, msg)
 | 
			
		||||
		if not msg or not channel then return end
 | 
			
		||||
		local meta = minetest.get_meta(pos)
 | 
			
		||||
		local setchan = meta:get_string("channel")
 | 
			
		||||
		if setchan ~= channel then return end
 | 
			
		||||
 | 
			
		||||
		if msg and msg ~= "" then
 | 
			
		||||
		if msg ~= "" and (type(msg) == "string" or type(msg) == "number" ) then
 | 
			
		||||
			local n = tonumber(msg)
 | 
			
		||||
			local msg = bright_to_word[n] or msg
 | 
			
		||||
			print(node.name, dump(msg))
 | 
			
		||||
			local suff = word_to_bright[msg] or "invalid"
 | 
			
		||||
 | 
			
		||||
			local basename = string.sub(node.name, 1, string.find(node.name, "_", -5) - 1)
 | 
			
		||||
			if brightn_light_source[msg] then
 | 
			
		||||
 | 
			
		||||
			if minetest.registered_nodes[basename.."_"..msg] then
 | 
			
		||||
				minetest.swap_node(pos, {name = basename.."_"..msg, param2 = node.param2})
 | 
			
		||||
				elseif (n and n > 3) or msg == "hi" or msg == "max" or msg == "med" then
 | 
			
		||||
			elseif minetest.registered_nodes[basename.."_"..suff] then
 | 
			
		||||
				minetest.swap_node(pos, {name = basename.."_"..suff, param2 = node.param2})
 | 
			
		||||
			elseif minetest.registered_nodes[basename.."_on"]
 | 
			
		||||
			  and (msg == "med" or msg == "hi" or msg == "max" or (n and n > 3)) then
 | 
			
		||||
				minetest.swap_node(pos, {name = basename.."_on", param2 = node.param2})
 | 
			
		||||
				elseif (n and n < 4) or msg == "low" then
 | 
			
		||||
			elseif minetest.registered_nodes[basename.."_off"]
 | 
			
		||||
			  and (msg == "low" or (n and n < 4)) then
 | 
			
		||||
				minetest.swap_node(pos, {name = basename.."_off", param2 = node.param2})
 | 
			
		||||
			end
 | 
			
		||||
		end
 | 
			
		||||
	end
 | 
			
		||||
	end
 | 
			
		||||
 | 
			
		||||
	minetest.register_on_player_receive_fields(function(player, formname, fields)
 | 
			
		||||
		local name = player:get_player_name()
 | 
			
		||||
@@ -182,7 +135,7 @@ if minetest.get_modpath("digilines") then
 | 
			
		||||
		end
 | 
			
		||||
	end)
 | 
			
		||||
 | 
			
		||||
	if minetest.get_modpath("mesecons") then
 | 
			
		||||
	if hd_mesecons then
 | 
			
		||||
		homedecor.digiline_wall_light = {
 | 
			
		||||
			effector = {
 | 
			
		||||
				action = on_digiline_receive_string,
 | 
			
		||||
@@ -202,15 +155,6 @@ if minetest.get_modpath("digilines") then
 | 
			
		||||
		}
 | 
			
		||||
	end
 | 
			
		||||
 | 
			
		||||
	homedecor.digiline_xz_light = {
 | 
			
		||||
		effector = {
 | 
			
		||||
			action = on_digiline_receive_string,
 | 
			
		||||
		},
 | 
			
		||||
		wire = {
 | 
			
		||||
			rules = rules_xz
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	homedecor.digiline_alldir_light = {
 | 
			
		||||
		effector = {
 | 
			
		||||
			action = on_digiline_receive_string,
 | 
			
		||||
@@ -220,15 +164,6 @@ if minetest.get_modpath("digilines") then
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	homedecor.digiline_toponly_light = {
 | 
			
		||||
		effector = {
 | 
			
		||||
			action = on_digiline_receive_string,
 | 
			
		||||
		},
 | 
			
		||||
		wire = {
 | 
			
		||||
			rules = rules_toponly
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	function digiline_on_punch(pos, node, puncher, pointed_thing)
 | 
			
		||||
		if is_protected(pos, puncher) then return end
 | 
			
		||||
 | 
			
		||||
@@ -246,24 +181,35 @@ end
 | 
			
		||||
 | 
			
		||||
function homedecor.toggle_light(pos, node, clicker, itemstack, pointed_thing)
 | 
			
		||||
	if is_protected(pos, clicker) then return end
 | 
			
		||||
	local sep = string.find(node.name, "_o", -5)
 | 
			
		||||
	local onoff = string.sub(node.name, sep + 1)
 | 
			
		||||
	local newname = string.sub(node.name, 1, sep - 1)..((onoff == "off") and "_on" or "_off")
 | 
			
		||||
	minetest.swap_node(pos, {name = newname, param2 = node.param2})
 | 
			
		||||
	local sep = string.find(node.name, "_", -5)
 | 
			
		||||
	local level = string.sub(node.name, sep + 1)
 | 
			
		||||
	local n = tonumber(level) or 0
 | 
			
		||||
 | 
			
		||||
	if level == "on" then
 | 
			
		||||
		newsuff = "_off"
 | 
			
		||||
	elseif level == "off" then
 | 
			
		||||
		newsuff = "_on"
 | 
			
		||||
	elseif n > 3 then
 | 
			
		||||
		newsuff = "_0"
 | 
			
		||||
	else
 | 
			
		||||
		newsuff = "_14"
 | 
			
		||||
	end
 | 
			
		||||
 | 
			
		||||
	minetest.swap_node(pos, {name = string.sub(node.name, 1, sep - 1)..newsuff, param2 = node.param2})
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
------------------
 | 
			
		||||
-- Dimmable lights
 | 
			
		||||
 | 
			
		||||
for light_brightn_name in pairs(brightn_light_source) do
 | 
			
		||||
--for light_brightn_name in pairs(word_to_bright) do
 | 
			
		||||
 | 
			
		||||
	if brightn_light_source ~= "max" then
 | 
			
		||||
for brightness_level = 0, 14 do
 | 
			
		||||
 | 
			
		||||
	local tiles
 | 
			
		||||
	local overlay
 | 
			
		||||
 | 
			
		||||
		local onflag = (light_brightn_name ~= "off")
 | 
			
		||||
		local nici = (light_brightn_name ~= "on") and 1 or nil
 | 
			
		||||
	local onflag = (brightness_level > 0)
 | 
			
		||||
	local nici = (brightness_level ~= 14) and 1 or nil
 | 
			
		||||
 | 
			
		||||
	local gen_ls_tex_white =           "homedecor_generic_light_source_off.png"
 | 
			
		||||
	if onflag then gen_ls_tex_white =  "homedecor_generic_light_source_white.png" end
 | 
			
		||||
@@ -271,6 +217,9 @@ for light_brightn_name in pairs(brightn_light_source) do
 | 
			
		||||
	local gen_ls_tex_yellow =          "homedecor_generic_light_source_off.png"
 | 
			
		||||
	if onflag then gen_ls_tex_yellow = "homedecor_generic_light_source_yellow.png" end
 | 
			
		||||
 | 
			
		||||
	local h = (brightness_level == 0) and "0" or string.format("%x", brightness_level+1)
 | 
			
		||||
	local brightness_hex = tonumber("0xff"..string.rep(h, 6))
 | 
			
		||||
 | 
			
		||||
	local glowlight_nodebox = {
 | 
			
		||||
		half = homedecor.nodebox.slab_y(1/2),
 | 
			
		||||
		quarter = homedecor.nodebox.slab_y(1/4),
 | 
			
		||||
@@ -315,7 +264,7 @@ for light_brightn_name in pairs(brightn_light_source) do
 | 
			
		||||
		overlay = nil
 | 
			
		||||
	end
 | 
			
		||||
 | 
			
		||||
		minetest.register_node(":homedecor:glowlight_half_"..light_brightn_name, {
 | 
			
		||||
	minetest.register_node(":homedecor:glowlight_half_"..brightness_level, {
 | 
			
		||||
		description = S("Thick Glowlight"),
 | 
			
		||||
		tiles = tiles,
 | 
			
		||||
		overlay_tiles = overlay,
 | 
			
		||||
@@ -332,11 +281,12 @@ for light_brightn_name in pairs(brightn_light_source) do
 | 
			
		||||
		},
 | 
			
		||||
		node_box = glowlight_nodebox.half,
 | 
			
		||||
		groups = { snappy = 3, ud_param2_colorable = 1, not_in_creative_inventory = nici },
 | 
			
		||||
			light_source = brightn_light_source[light_brightn_name],
 | 
			
		||||
		light_source = brightness_level,
 | 
			
		||||
		sounds = default.node_sound_glass_defaults(),
 | 
			
		||||
		after_place_node = function(pos, placer, itemstack, pointed_thing)
 | 
			
		||||
			unifieddyes.fix_rotation(pos, placer, itemstack, pointed_thing)
 | 
			
		||||
		end,
 | 
			
		||||
		on_dig = unifieddyes.on_dig,
 | 
			
		||||
		on_rightclick = homedecor.toggle_light,
 | 
			
		||||
		drop = {
 | 
			
		||||
			items = {
 | 
			
		||||
@@ -380,7 +330,7 @@ for light_brightn_name in pairs(brightn_light_source) do
 | 
			
		||||
		overlay = nil
 | 
			
		||||
	end
 | 
			
		||||
 | 
			
		||||
		minetest.register_node(":homedecor:glowlight_quarter_"..light_brightn_name, {
 | 
			
		||||
	minetest.register_node(":homedecor:glowlight_quarter_"..brightness_level, {
 | 
			
		||||
		description = S("Thin Glowlight"),
 | 
			
		||||
		tiles = tiles,
 | 
			
		||||
		overlay_tiles = overlay,
 | 
			
		||||
@@ -397,11 +347,12 @@ for light_brightn_name in pairs(brightn_light_source) do
 | 
			
		||||
		},
 | 
			
		||||
		node_box = glowlight_nodebox.quarter,
 | 
			
		||||
		groups = { snappy = 3, ud_param2_colorable = 1, not_in_creative_inventory = nici },
 | 
			
		||||
			light_source = brightn_light_source[light_brightn_name],
 | 
			
		||||
		light_source = brightness_level,
 | 
			
		||||
		sounds = default.node_sound_glass_defaults(),
 | 
			
		||||
		after_place_node = function(pos, placer, itemstack, pointed_thing)
 | 
			
		||||
			unifieddyes.fix_rotation(pos, placer, itemstack, pointed_thing)
 | 
			
		||||
		end,
 | 
			
		||||
		on_dig = unifieddyes.on_dig,
 | 
			
		||||
		on_rightclick = homedecor.toggle_light,
 | 
			
		||||
		drop = {
 | 
			
		||||
			items = {
 | 
			
		||||
@@ -446,7 +397,7 @@ for light_brightn_name in pairs(brightn_light_source) do
 | 
			
		||||
		overlay = nil
 | 
			
		||||
	end
 | 
			
		||||
 | 
			
		||||
		minetest.register_node(":homedecor:glowlight_small_cube_"..light_brightn_name, {
 | 
			
		||||
	minetest.register_node(":homedecor:glowlight_small_cube_"..brightness_level, {
 | 
			
		||||
		description = S("Small Glowlight Cube"),
 | 
			
		||||
		tiles = tiles,
 | 
			
		||||
		overlay_tiles = overlay,
 | 
			
		||||
@@ -463,11 +414,12 @@ for light_brightn_name in pairs(brightn_light_source) do
 | 
			
		||||
		},
 | 
			
		||||
		node_box = glowlight_nodebox.small_cube,
 | 
			
		||||
		groups = { snappy = 3, ud_param2_colorable = 1, not_in_creative_inventory = nici },
 | 
			
		||||
			light_source = brightn_light_source[light_brightn_name],
 | 
			
		||||
		light_source = brightness_level,
 | 
			
		||||
		sounds = default.node_sound_glass_defaults(),
 | 
			
		||||
		after_place_node = function(pos, placer, itemstack, pointed_thing)
 | 
			
		||||
			unifieddyes.fix_rotation(pos, placer, itemstack, pointed_thing)
 | 
			
		||||
		end,
 | 
			
		||||
		on_dig = unifieddyes.on_dig,
 | 
			
		||||
		on_rightclick = homedecor.toggle_light,
 | 
			
		||||
		drop = {
 | 
			
		||||
			items = {
 | 
			
		||||
@@ -482,15 +434,18 @@ for light_brightn_name in pairs(brightn_light_source) do
 | 
			
		||||
	local lighttex
 | 
			
		||||
 | 
			
		||||
	if onflag then
 | 
			
		||||
		local b = (brightness_level > 6) and brightness_level or 6
 | 
			
		||||
		local brightened = "^[multiply:#"..string.rep(string.format("%x", b), 6)
 | 
			
		||||
 | 
			
		||||
		lighttex = {
 | 
			
		||||
				name="homedecor_plasma_storm.png",
 | 
			
		||||
			name="homedecor_plasma_storm.png"..brightened,
 | 
			
		||||
			animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=2.0},
 | 
			
		||||
		}
 | 
			
		||||
	else
 | 
			
		||||
		lighttex = "homedecor_plasma_lamp_off.png"
 | 
			
		||||
	end
 | 
			
		||||
 | 
			
		||||
		homedecor.register("plasma_lamp_"..light_brightn_name, {
 | 
			
		||||
	homedecor.register("plasma_lamp_"..brightness_level, {
 | 
			
		||||
		description = S("Plasma Lamp/Light"),
 | 
			
		||||
		drawtype = "mesh",
 | 
			
		||||
		mesh = "plasma_lamp.obj",
 | 
			
		||||
@@ -499,7 +454,7 @@ for light_brightn_name in pairs(brightn_light_source) do
 | 
			
		||||
			lighttex
 | 
			
		||||
		},
 | 
			
		||||
		use_texture_alpha = true,
 | 
			
		||||
			light_source = brightn_light_source[light_brightn_name],
 | 
			
		||||
		light_source = brightness_level,
 | 
			
		||||
		sunlight_propagates = true,
 | 
			
		||||
		groups = {cracky=3, oddly_breakable_by_hand=3, not_in_creative_inventory = nici},
 | 
			
		||||
		sounds = default.node_sound_glass_defaults(),
 | 
			
		||||
@@ -519,7 +474,7 @@ for light_brightn_name in pairs(brightn_light_source) do
 | 
			
		||||
		fixed = { -0.25, -0.5, -0.25, 0.25, 0.45, 0.25 },
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
		homedecor.register("ground_lantern_"..light_brightn_name, {
 | 
			
		||||
	homedecor.register("ground_lantern_"..brightness_level, {
 | 
			
		||||
		description = S("Ground Lantern/Light"),
 | 
			
		||||
		mesh = "homedecor_ground_lantern.obj",
 | 
			
		||||
		tiles = { gen_ls_tex_yellow, "homedecor_generic_metal_wrought_iron.png" },
 | 
			
		||||
@@ -527,7 +482,7 @@ for light_brightn_name in pairs(brightn_light_source) do
 | 
			
		||||
		inventory_image = "homedecor_ground_lantern_inv.png",
 | 
			
		||||
		wield_image = "homedecor_ground_lantern_inv.png",
 | 
			
		||||
		groups = {snappy=3, not_in_creative_inventory = nici},
 | 
			
		||||
			light_source = brightn_light_source[light_brightn_name],
 | 
			
		||||
		light_source = brightness_level,
 | 
			
		||||
		selection_box = gl_cbox,
 | 
			
		||||
		walkable = false,
 | 
			
		||||
		on_rightclick = homedecor.toggle_light,
 | 
			
		||||
@@ -536,8 +491,8 @@ for light_brightn_name in pairs(brightn_light_source) do
 | 
			
		||||
				{items = {"homedecor:ground_lantern_on"}},
 | 
			
		||||
			}
 | 
			
		||||
		},
 | 
			
		||||
			mesecons = homedecor.mesecon_xz_light,
 | 
			
		||||
			digiline = homedecor.digiline_xz_light,
 | 
			
		||||
		mesecons = homedecor.mesecon_alldir_light,
 | 
			
		||||
		digiline = homedecor.digiline_alldir_light,
 | 
			
		||||
		on_punch = digiline_on_punch
 | 
			
		||||
	})
 | 
			
		||||
 | 
			
		||||
@@ -546,7 +501,7 @@ for light_brightn_name in pairs(brightn_light_source) do
 | 
			
		||||
		fixed = { -0.25, -0.5, -0.2, 0.25, 0.5, 0.5 },
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
		homedecor.register("hanging_lantern_"..light_brightn_name, {
 | 
			
		||||
	homedecor.register("hanging_lantern_"..brightness_level, {
 | 
			
		||||
		description = S("Hanging Lantern/Light"),
 | 
			
		||||
		mesh = "homedecor_hanging_lantern.obj",
 | 
			
		||||
		tiles = { "homedecor_generic_metal_wrought_iron.png", gen_ls_tex_yellow },
 | 
			
		||||
@@ -554,7 +509,7 @@ for light_brightn_name in pairs(brightn_light_source) do
 | 
			
		||||
		inventory_image = "homedecor_hanging_lantern_inv.png",
 | 
			
		||||
		wield_image = "homedecor_hanging_lantern_inv.png",
 | 
			
		||||
		groups = {snappy=3, not_in_creative_inventory = nici},
 | 
			
		||||
			light_source = brightn_light_source[light_brightn_name],
 | 
			
		||||
		light_source = brightness_level,
 | 
			
		||||
		selection_box = hl_cbox,
 | 
			
		||||
		walkable = false,
 | 
			
		||||
		on_rightclick = homedecor.toggle_light,
 | 
			
		||||
@@ -573,7 +528,7 @@ for light_brightn_name in pairs(brightn_light_source) do
 | 
			
		||||
		fixed = { -0.35, -0.45, -0.35, 0.35, 0.5, 0.35 }
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
		homedecor.register("ceiling_lantern_"..light_brightn_name, {
 | 
			
		||||
	homedecor.register("ceiling_lantern_"..brightness_level, {
 | 
			
		||||
		drawtype = "mesh",
 | 
			
		||||
		mesh = "homedecor_ceiling_lantern.obj",
 | 
			
		||||
		tiles = { gen_ls_tex_yellow, "homedecor_generic_metal_wrought_iron.png" },
 | 
			
		||||
@@ -581,7 +536,7 @@ for light_brightn_name in pairs(brightn_light_source) do
 | 
			
		||||
		inventory_image = "homedecor_ceiling_lantern_inv.png",
 | 
			
		||||
		description = S("Ceiling Lantern/Light"),
 | 
			
		||||
		groups = {snappy=3, not_in_creative_inventory = nici},
 | 
			
		||||
			light_source = brightn_light_source[light_brightn_name],
 | 
			
		||||
		light_source = brightness_level,
 | 
			
		||||
		selection_box = cl_cbox,
 | 
			
		||||
		walkable = false,
 | 
			
		||||
		on_rightclick = homedecor.toggle_light,
 | 
			
		||||
@@ -590,8 +545,8 @@ for light_brightn_name in pairs(brightn_light_source) do
 | 
			
		||||
				{items = {"homedecor:ceiling_lantern_on"}},
 | 
			
		||||
			}
 | 
			
		||||
		},
 | 
			
		||||
			mesecons = homedecor.mesecon_toponly_light,
 | 
			
		||||
			digiline = homedecor.digiline_toponly_light,
 | 
			
		||||
		mesecons = homedecor.mesecon_alldir_light,
 | 
			
		||||
		digiline = homedecor.digiline_alldir_light,
 | 
			
		||||
		on_punch = digiline_on_punch
 | 
			
		||||
	})
 | 
			
		||||
 | 
			
		||||
@@ -599,11 +554,11 @@ for light_brightn_name in pairs(brightn_light_source) do
 | 
			
		||||
		sm_light = default.LIGHT_MAX-5
 | 
			
		||||
	else
 | 
			
		||||
 | 
			
		||||
			homedecor.register("lattice_lantern_large_"..light_brightn_name, {
 | 
			
		||||
		homedecor.register("lattice_lantern_large_"..brightness_level, {
 | 
			
		||||
			description = S("Lattice lantern/Light (large)"),
 | 
			
		||||
			tiles = { gen_ls_tex_yellow.."^homedecor_lattice_lantern_large_overlay.png" },
 | 
			
		||||
			groups = { snappy = 3, not_in_creative_inventory = nici },
 | 
			
		||||
				light_source = brightn_light_source[light_brightn_name],
 | 
			
		||||
			light_source = brightness_level,
 | 
			
		||||
			sounds = default.node_sound_glass_defaults(),
 | 
			
		||||
			on_rightclick = homedecor.toggle_light,
 | 
			
		||||
			drop = {
 | 
			
		||||
@@ -628,7 +583,7 @@ for light_brightn_name in pairs(brightn_light_source) do
 | 
			
		||||
		lighttex_sides = "homedecor_generic_light_source_off.png"
 | 
			
		||||
	end
 | 
			
		||||
 | 
			
		||||
		homedecor.register("lattice_lantern_small_"..light_brightn_name, {
 | 
			
		||||
	homedecor.register("lattice_lantern_small_"..brightness_level, {
 | 
			
		||||
		description = S("Lattice lantern/light (small)"),
 | 
			
		||||
		tiles = {
 | 
			
		||||
			lighttex_tb.."^homedecor_lattice_lantern_small_tb_overlay.png",
 | 
			
		||||
@@ -644,7 +599,7 @@ for light_brightn_name in pairs(brightn_light_source) do
 | 
			
		||||
			fixed = { -0.25, -0.5, -0.25, 0.25, 0, 0.25 }
 | 
			
		||||
		},
 | 
			
		||||
		groups = { snappy = 3, not_in_creative_inventory = nici },
 | 
			
		||||
			light_source = brightn_light_source[light_brightn_name],
 | 
			
		||||
		light_source = brightness_level,
 | 
			
		||||
		sounds = default.node_sound_glass_defaults(),
 | 
			
		||||
		on_place = minetest.rotate_node,
 | 
			
		||||
		on_rightclick = homedecor.toggle_light,
 | 
			
		||||
@@ -665,14 +620,14 @@ for light_brightn_name in pairs(brightn_light_source) do
 | 
			
		||||
		wall_side = { -0.2, -0.5, -0.15, 0.32, 0.12, 0.15 },
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
		homedecor.register("desk_lamp_"..light_brightn_name, {
 | 
			
		||||
	homedecor.register("desk_lamp_"..brightness_level, {
 | 
			
		||||
		description = S("Desk Lamp/Light"),
 | 
			
		||||
		mesh = "homedecor_desk_lamp.obj",
 | 
			
		||||
		tiles = {
 | 
			
		||||
			"homedecor_generic_metal.png",
 | 
			
		||||
			"homedecor_generic_metal.png",
 | 
			
		||||
			{ name = "homedecor_generic_metal.png", color = homedecor.color_med_grey },
 | 
			
		||||
				{ name = gen_ls_tex_white, color = brightn_hex[light_brightn_name] },
 | 
			
		||||
			{ name = gen_ls_tex_white, color = brightness_hex },
 | 
			
		||||
		},
 | 
			
		||||
		inventory_image = "homedecor_desk_lamp_inv.png",
 | 
			
		||||
		paramtype = "light",
 | 
			
		||||
@@ -685,22 +640,23 @@ for light_brightn_name in pairs(brightn_light_source) do
 | 
			
		||||
		after_place_node = function(pos, placer, itemstack, pointed_thing)
 | 
			
		||||
			unifieddyes.fix_rotation_nsew(pos, placer, itemstack, pointed_thing)
 | 
			
		||||
		end,
 | 
			
		||||
		on_dig = unifieddyes.on_dig,
 | 
			
		||||
		on_rotate = unifieddyes.fix_after_screwdriver_nsew,
 | 
			
		||||
			light_source = brightn_light_source[light_brightn_name],
 | 
			
		||||
		light_source = brightness_level,
 | 
			
		||||
		on_rightclick = homedecor.toggle_light,
 | 
			
		||||
		drop = {
 | 
			
		||||
			items = {
 | 
			
		||||
				{items = {"homedecor:desk_lamp_on"}, inherit_color = true },
 | 
			
		||||
			}
 | 
			
		||||
		},
 | 
			
		||||
			mesecons = homedecor.mesecon_xz_light,
 | 
			
		||||
			digiline = homedecor.digiline_xz_light,
 | 
			
		||||
		mesecons = homedecor.mesecon_alldir_light,
 | 
			
		||||
		digiline = homedecor.digiline_alldir_light,
 | 
			
		||||
		on_punch = digiline_on_punch
 | 
			
		||||
	})
 | 
			
		||||
 | 
			
		||||
	-- "kitchen"/"dining room" ceiling lamp
 | 
			
		||||
 | 
			
		||||
		homedecor.register("ceiling_lamp_"..light_brightn_name, {
 | 
			
		||||
	homedecor.register("ceiling_lamp_"..brightness_level, {
 | 
			
		||||
		description = S("Ceiling Lamp/Light"),
 | 
			
		||||
		mesh = "homedecor_ceiling_lamp.obj",
 | 
			
		||||
		tiles = {
 | 
			
		||||
@@ -710,7 +666,7 @@ for light_brightn_name in pairs(brightn_light_source) do
 | 
			
		||||
			{ name = "homedecor_generic_plastic.png", color = 0xff442d04 },
 | 
			
		||||
		},
 | 
			
		||||
		inventory_image = "homedecor_ceiling_lamp_inv.png",
 | 
			
		||||
			light_source = brightn_light_source[light_brightn_name],
 | 
			
		||||
		light_source = brightness_level,
 | 
			
		||||
		groups = {snappy=3, not_in_creative_inventory = nici},
 | 
			
		||||
		walkable = false,
 | 
			
		||||
		on_rightclick = homedecor.toggle_light,
 | 
			
		||||
@@ -719,8 +675,8 @@ for light_brightn_name in pairs(brightn_light_source) do
 | 
			
		||||
				{items = {"homedecor:ceiling_lamp_on"}},
 | 
			
		||||
			}
 | 
			
		||||
		},
 | 
			
		||||
			mesecons = homedecor.mesecon_toponly_light,
 | 
			
		||||
			digiline = homedecor.digiline_toponly_light,
 | 
			
		||||
		mesecons = homedecor.mesecon_alldir_light,
 | 
			
		||||
		digiline = homedecor.digiline_alldir_light,
 | 
			
		||||
		on_punch = digiline_on_punch
 | 
			
		||||
	})
 | 
			
		||||
 | 
			
		||||
@@ -734,14 +690,14 @@ for light_brightn_name in pairs(brightn_light_source) do
 | 
			
		||||
		fixed = { -0.25, -0.5, -0.25, 0.25, 1.5, 0.25 }
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
		local wool_brightened = "wool_grey.png^[colorize:#ffffff:"..(brightn_light_source[light_brightn_name] * 15)
 | 
			
		||||
	local wool_brightened = "wool_grey.png^[colorize:#ffffff:"..(brightness_level * 15)
 | 
			
		||||
	
 | 
			
		||||
		homedecor.register("table_lamp_"..light_brightn_name, {
 | 
			
		||||
	homedecor.register("table_lamp_"..brightness_level, {
 | 
			
		||||
		description = S("Table Lamp/Light"),
 | 
			
		||||
		mesh = "homedecor_table_lamp.obj",
 | 
			
		||||
		tiles = {
 | 
			
		||||
			wool_brightened,
 | 
			
		||||
				{ name = gen_ls_tex_white, color = brightn_hex[light_brightn_name] },
 | 
			
		||||
			{ name = gen_ls_tex_white, color = brightness_hex },
 | 
			
		||||
			{ name = "homedecor_generic_wood_red.png", color = 0xffffffff },
 | 
			
		||||
			{ name = "homedecor_generic_metal.png", color = homedecor.color_black },
 | 
			
		||||
		},
 | 
			
		||||
@@ -750,7 +706,7 @@ for light_brightn_name in pairs(brightn_light_source) do
 | 
			
		||||
		paramtype2 = "color",
 | 
			
		||||
		palette = "unifieddyes_palette_extended.png",
 | 
			
		||||
		walkable = false,
 | 
			
		||||
			light_source = brightn_light_source[light_brightn_name],
 | 
			
		||||
		light_source = brightness_level,
 | 
			
		||||
		selection_box = tlamp_cbox,
 | 
			
		||||
		sounds = default.node_sound_wood_defaults(),
 | 
			
		||||
		groups = {cracky=2,oddly_breakable_by_hand=1, ud_param2_colorable = 1, not_in_creative_inventory=nici },
 | 
			
		||||
@@ -759,18 +715,19 @@ for light_brightn_name in pairs(brightn_light_source) do
 | 
			
		||||
				{items = {"homedecor:table_lamp_hi"}, inherit_color = true },
 | 
			
		||||
			}
 | 
			
		||||
		},
 | 
			
		||||
			digiline =      homedecor.digiline_xz_light,
 | 
			
		||||
		digiline =      homedecor.digiline_alldir_light,
 | 
			
		||||
		mesecons =      homedecor.mesecon_wall_light,
 | 
			
		||||
		on_rightclick = homedecor.toggle_light,
 | 
			
		||||
			on_punch =      digiline_on_punch
 | 
			
		||||
		on_punch =      digiline_on_punch,
 | 
			
		||||
		on_dig = unifieddyes.on_dig,
 | 
			
		||||
	})
 | 
			
		||||
 | 
			
		||||
		homedecor.register("standing_lamp_"..light_brightn_name, {
 | 
			
		||||
	homedecor.register("standing_lamp_"..brightness_level, {
 | 
			
		||||
		description = S("Standing Lamp/Light"),
 | 
			
		||||
		mesh = "homedecor_standing_lamp.obj",
 | 
			
		||||
		tiles = {
 | 
			
		||||
			wool_brightened,
 | 
			
		||||
				{ name = gen_ls_tex_white, color = brightn_hex[light_brightn_name] },
 | 
			
		||||
			{ name = gen_ls_tex_white, color = brightness_hex },
 | 
			
		||||
			{ name = "homedecor_generic_wood_red.png", color = 0xffffffff },
 | 
			
		||||
			{ name = "homedecor_generic_metal.png", color = homedecor.color_black },
 | 
			
		||||
		},
 | 
			
		||||
@@ -779,7 +736,7 @@ for light_brightn_name in pairs(brightn_light_source) do
 | 
			
		||||
		paramtype2 = "color",
 | 
			
		||||
		palette = "unifieddyes_palette_extended.png",
 | 
			
		||||
		walkable = false,
 | 
			
		||||
			light_source = brightn_light_source[light_brightn_name],
 | 
			
		||||
		light_source = brightness_level,
 | 
			
		||||
		groups = {cracky=2,oddly_breakable_by_hand=1, ud_param2_colorable = 1, not_in_creative_inventory=nici },
 | 
			
		||||
		selection_box = slamp_cbox,
 | 
			
		||||
		sounds = default.node_sound_wood_defaults(),
 | 
			
		||||
@@ -790,12 +747,12 @@ for light_brightn_name in pairs(brightn_light_source) do
 | 
			
		||||
				{items = {"homedecor:standing_lamp_hi"}, inherit_color = true },
 | 
			
		||||
			}
 | 
			
		||||
		},
 | 
			
		||||
			digiline =      homedecor.digiline_xz_light,
 | 
			
		||||
		digiline =      homedecor.digiline_alldir_light,
 | 
			
		||||
		mesecons =      homedecor.mesecon_wall_light,
 | 
			
		||||
		on_rightclick = homedecor.toggle_light,
 | 
			
		||||
			on_punch =      digiline_on_punch
 | 
			
		||||
		on_punch =      digiline_on_punch,
 | 
			
		||||
		on_dig = unifieddyes.on_dig,
 | 
			
		||||
	})
 | 
			
		||||
	end
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
------------------------------------------
 | 
			
		||||
@@ -805,6 +762,15 @@ for _, light_brightn_name in ipairs({"off", "on"}) do
 | 
			
		||||
 | 
			
		||||
	local onflag = (light_brightn_name == "on")
 | 
			
		||||
	local nici = (light_brightn_name == "off") and 1 or nil
 | 
			
		||||
	local nici_m = (light_brightn_name == "off") and 1 or nil
 | 
			
		||||
	local on_rc = homedecor.toggle_light
 | 
			
		||||
	local di = "on"
 | 
			
		||||
 | 
			
		||||
	if hd_mesecons then
 | 
			
		||||
		nici_m = (light_brightn_name ~= "off") and 1 or nil
 | 
			
		||||
		on_rc = nil
 | 
			
		||||
		di = "off"
 | 
			
		||||
	end
 | 
			
		||||
 | 
			
		||||
	local gen_ls_tex_white =           "homedecor_generic_light_source_off.png"
 | 
			
		||||
	if onflag then gen_ls_tex_white =  "homedecor_generic_light_source_white.png" end
 | 
			
		||||
@@ -821,7 +787,7 @@ for _, light_brightn_name in ipairs({"off", "on"}) do
 | 
			
		||||
	end
 | 
			
		||||
 | 
			
		||||
	homedecor.register("plasma_ball_"..light_brightn_name, {
 | 
			
		||||
		description = S("Plasma Ball"),
 | 
			
		||||
		description = S("Plasma Ball/light"),
 | 
			
		||||
		mesh = "homedecor_plasma_ball.obj",
 | 
			
		||||
		tiles = {
 | 
			
		||||
			{ name = "homedecor_generic_plastic.png", color = homedecor.color_black },
 | 
			
		||||
@@ -845,8 +811,8 @@ for _, light_brightn_name in ipairs({"off", "on"}) do
 | 
			
		||||
				{items = {"homedecor:plasma_ball_on"}},
 | 
			
		||||
			}
 | 
			
		||||
		},
 | 
			
		||||
		mesecons = homedecor.mesecon_xz_light,
 | 
			
		||||
		digiline = homedecor.digiline_xz_light,
 | 
			
		||||
		mesecons = homedecor.mesecon_alldir_light,
 | 
			
		||||
		digiline = homedecor.digiline_alldir_light,
 | 
			
		||||
		on_punch = digiline_on_punch
 | 
			
		||||
	})
 | 
			
		||||
 | 
			
		||||
@@ -861,7 +827,7 @@ for _, light_brightn_name in ipairs({"off", "on"}) do
 | 
			
		||||
		description = "Rope lighting (on floor)",
 | 
			
		||||
		inventory_image =  "homedecor_rope_light_on_floor.png",
 | 
			
		||||
		paramtype = "light",
 | 
			
		||||
		light_source = brightn_light_source[light_brightn_name],
 | 
			
		||||
		light_source = word_to_bright[light_brightn_name],
 | 
			
		||||
		walkable = false,
 | 
			
		||||
		sunlight_propagates = true,
 | 
			
		||||
		tiles = { gen_ls_tex_white },
 | 
			
		||||
@@ -885,20 +851,20 @@ for _, light_brightn_name in ipairs({"off", "on"}) do
 | 
			
		||||
			"homedecor:rope_light_on_floor_off",
 | 
			
		||||
			"group:mesecon_conductor_craftable"
 | 
			
		||||
		},
 | 
			
		||||
		groups = {cracky=3, not_in_creative_inventory = nici},
 | 
			
		||||
		groups = {cracky=3, oddly_breakable_by_hand=3, not_in_creative_inventory = nici_m},
 | 
			
		||||
		sounds =  default.node_sound_stone_defaults(),
 | 
			
		||||
		on_rightclick = homedecor.toggle_light,
 | 
			
		||||
		drop = {
 | 
			
		||||
			items = {
 | 
			
		||||
				{items = {"homedecor:rope_light_on_floor_on"} },
 | 
			
		||||
				{items = {"homedecor:rope_light_on_floor_"..di} },
 | 
			
		||||
			}
 | 
			
		||||
		},
 | 
			
		||||
		on_rightclick = on_rc,
 | 
			
		||||
		mesecons = {
 | 
			
		||||
			conductor = {
 | 
			
		||||
				state = mesecon and (onflag and mesecon.state.on or mesecon.state.off),
 | 
			
		||||
				onstate =  "homedecor:rope_light_on_floor_on",
 | 
			
		||||
				offstate = "homedecor:rope_light_on_floor_off",
 | 
			
		||||
				rules = rules_xz
 | 
			
		||||
				rules = rules_alldir
 | 
			
		||||
			},
 | 
			
		||||
		}
 | 
			
		||||
	})
 | 
			
		||||
@@ -907,7 +873,7 @@ for _, light_brightn_name in ipairs({"off", "on"}) do
 | 
			
		||||
		description = "Rope lighting (on ceiling)",
 | 
			
		||||
		inventory_image =  "homedecor_rope_light_on_ceiling.png",
 | 
			
		||||
		paramtype = "light",
 | 
			
		||||
		light_source = brightn_light_source[light_brightn_name],
 | 
			
		||||
		light_source = word_to_bright[light_brightn_name],
 | 
			
		||||
		walkable = false,
 | 
			
		||||
		sunlight_propagates = true,
 | 
			
		||||
		tiles = { gen_ls_tex_white },
 | 
			
		||||
@@ -931,14 +897,14 @@ for _, light_brightn_name in ipairs({"off", "on"}) do
 | 
			
		||||
			"homedecor:rope_light_on_ceiling_off",
 | 
			
		||||
			"group:mesecon_conductor_craftable"
 | 
			
		||||
		},
 | 
			
		||||
		groups = {cracky=3, not_in_creative_inventory = nici},
 | 
			
		||||
		groups = {cracky=3, oddly_breakable_by_hand=3, not_in_creative_inventory = nici_m},
 | 
			
		||||
		sounds =  default.node_sound_stone_defaults(),
 | 
			
		||||
		on_rightclick = homedecor.toggle_light,
 | 
			
		||||
		drop = {
 | 
			
		||||
			items = {
 | 
			
		||||
				{items = {"homedecor:rope_light_on_ceiling_on"}},
 | 
			
		||||
				{items = {"homedecor:rope_light_on_ceiling_"..di}},
 | 
			
		||||
			}
 | 
			
		||||
		},
 | 
			
		||||
		on_rightclick = on_rc,
 | 
			
		||||
		mesecons = {
 | 
			
		||||
			conductor = {
 | 
			
		||||
				state = mesecon and (onflag and mesecon.state.on or mesecon.state.off),
 | 
			
		||||
@@ -950,7 +916,7 @@ for _, light_brightn_name in ipairs({"off", "on"}) do
 | 
			
		||||
	})
 | 
			
		||||
 | 
			
		||||
	homedecor.register("wall_lamp_"..light_brightn_name, {
 | 
			
		||||
		description = S("Wall Lamp"),
 | 
			
		||||
		description = S("Wall Lamp/light"),
 | 
			
		||||
		mesh = "homedecor_wall_lamp.obj",
 | 
			
		||||
		tiles = {
 | 
			
		||||
			{ name = "homedecor_generic_metal.png", color = homedecor.color_med_grey },
 | 
			
		||||
@@ -1841,72 +1807,91 @@ unifieddyes.register_color_craft({
 | 
			
		||||
minetest.register_alias("chains:chain_top",                    "homedecor:chain_steel_top")
 | 
			
		||||
minetest.register_alias("chains:chain_top_brass",              "homedecor:chain_brass_top")
 | 
			
		||||
 | 
			
		||||
minetest.register_alias("chains:chandelier",                   "homedecor:chandelier_steel")
 | 
			
		||||
minetest.register_alias("chains:chandelier_steel",             "homedecor:chandelier_steel")
 | 
			
		||||
minetest.register_alias("chains:chandelier_brass",             "homedecor:chandelier_brass")
 | 
			
		||||
 | 
			
		||||
minetest.register_alias("homedecor:glowlight_half",            "homedecor:glowlight_half_on")
 | 
			
		||||
minetest.register_alias("homedecor:glowlight_half_max",        "homedecor:glowlight_half_on")
 | 
			
		||||
minetest.register_alias("homedecor:glowlight_half",            "homedecor:glowlight_half_14")
 | 
			
		||||
minetest.register_alias("homedecor:glowlight_half_max",        "homedecor:glowlight_half_14")
 | 
			
		||||
 | 
			
		||||
minetest.register_alias("homedecor:glowlight_quarter",         "homedecor:glowlight_quarter_on")
 | 
			
		||||
minetest.register_alias("homedecor:glowlight_quarter_max",     "homedecor:glowlight_quarter_on")
 | 
			
		||||
minetest.register_alias("homedecor:glowlight_quarter",         "homedecor:glowlight_quarter_14")
 | 
			
		||||
minetest.register_alias("homedecor:glowlight_quarter_max",     "homedecor:glowlight_quarter_14")
 | 
			
		||||
 | 
			
		||||
minetest.register_alias("homedecor:glowlight_small_cube",      "homedecor:glowlight_small_cube_on")
 | 
			
		||||
minetest.register_alias("homedecor:glowlight_small_cube_max",  "homedecor:glowlight_small_cube_on")
 | 
			
		||||
minetest.register_alias("homedecor:glowlight_small_cube",      "homedecor:glowlight_small_cube_14")
 | 
			
		||||
minetest.register_alias("homedecor:glowlight_small_cube_max",  "homedecor:glowlight_small_cube_14")
 | 
			
		||||
 | 
			
		||||
minetest.register_alias("homedecor:rope_light_on_floor",       "homedecor:rope_light_on_floor_on")
 | 
			
		||||
minetest.register_alias("homedecor:rope_light_on_floor_max",   "homedecor:rope_light_on_floor_on")
 | 
			
		||||
minetest.register_alias("homedecor:plasma_lamp",               "homedecor:plasma_lamp_14")
 | 
			
		||||
minetest.register_alias("homedecor:plasma_lamp_max",           "homedecor:plasma_lamp_14")
 | 
			
		||||
 | 
			
		||||
minetest.register_alias("homedecor:rope_light_on_ceiling",     "homedecor:rope_light_on_ceiling_on")
 | 
			
		||||
minetest.register_alias("homedecor:rope_light_on_ceiling_max", "homedecor:rope_light_on_ceiling_on")
 | 
			
		||||
minetest.register_alias("homedecor:ground_lantern",            "homedecor:ground_lantern_14")
 | 
			
		||||
minetest.register_alias("homedecor:ground_lantern_max",        "homedecor:ground_lantern_14")
 | 
			
		||||
 | 
			
		||||
minetest.register_alias("homedecor:plasma_lamp",               "homedecor:plasma_lamp_on")
 | 
			
		||||
minetest.register_alias("homedecor:plasma_lamp_max",           "homedecor:plasma_lamp_on")
 | 
			
		||||
minetest.register_alias("homedecor:hanging_lantern",           "homedecor:hanging_lantern_14")
 | 
			
		||||
minetest.register_alias("homedecor:hanging_lantern_max",       "homedecor:hanging_lantern_14")
 | 
			
		||||
 | 
			
		||||
minetest.register_alias("homedecor:plasma_ball",               "homedecor:plasma_ball_on")
 | 
			
		||||
minetest.register_alias("homedecor:plasma_ball_max",           "homedecor:plasma_ball_on")
 | 
			
		||||
minetest.register_alias("homedecor:ceiling_lantern",           "homedecor:ceiling_lantern_14")
 | 
			
		||||
minetest.register_alias("homedecor:ceiling_lantern_max",       "homedecor:ceiling_lantern_14")
 | 
			
		||||
 | 
			
		||||
minetest.register_alias("homedecor:ground_lantern",            "homedecor:ground_lantern_on")
 | 
			
		||||
minetest.register_alias("homedecor:ground_lantern_max",        "homedecor:ground_lantern_on")
 | 
			
		||||
minetest.register_alias("homedecor:lattice_lantern_large",     "homedecor:lattice_lantern_large_14")
 | 
			
		||||
minetest.register_alias("homedecor:lattice_lantern_large_max", "homedecor:lattice_lantern_large_14")
 | 
			
		||||
 | 
			
		||||
minetest.register_alias("homedecor:hanging_lantern",           "homedecor:hanging_lantern_on")
 | 
			
		||||
minetest.register_alias("homedecor:hanging_lantern_max",       "homedecor:hanging_lantern_on")
 | 
			
		||||
minetest.register_alias("homedecor:lattice_lantern_small",     "homedecor:lattice_lantern_small_14")
 | 
			
		||||
minetest.register_alias("homedecor:lattice_lantern_small_max", "homedecor:lattice_lantern_small_14")
 | 
			
		||||
 | 
			
		||||
minetest.register_alias("homedecor:ceiling_lantern",           "homedecor:ceiling_lantern_on")
 | 
			
		||||
minetest.register_alias("homedecor:ceiling_lantern_max",       "homedecor:ceiling_lantern_on")
 | 
			
		||||
minetest.register_alias("homedecor:desk_lamp",                 "homedecor:desk_lamp_14")
 | 
			
		||||
minetest.register_alias("homedecor:desk_lamp_max",             "homedecor:desk_lamp_14")
 | 
			
		||||
 | 
			
		||||
minetest.register_alias("homedecor:lattice_lantern_large",     "homedecor:lattice_lantern_large_on")
 | 
			
		||||
minetest.register_alias("homedecor:lattice_lantern_large_max", "homedecor:lattice_lantern_large_on")
 | 
			
		||||
minetest.register_alias("homedecor:ceiling_lamp",              "homedecor:ceiling_lamp_14")
 | 
			
		||||
minetest.register_alias("homedecor:ceiling_lamp_max",          "homedecor:ceiling_lamp_14")
 | 
			
		||||
 | 
			
		||||
minetest.register_alias("homedecor:lattice_lantern_small",     "homedecor:lattice_lantern_small_on")
 | 
			
		||||
minetest.register_alias("homedecor:lattice_lantern_small_max", "homedecor:lattice_lantern_small_on")
 | 
			
		||||
minetest.register_alias("homedecor:table_lamp",                "homedecor:table_lamp_14")
 | 
			
		||||
minetest.register_alias("homedecor:table_lamp_max",            "homedecor:table_lamp_14")
 | 
			
		||||
 | 
			
		||||
minetest.register_alias("homedecor:desk_lamp",                 "homedecor:desk_lamp_on")
 | 
			
		||||
minetest.register_alias("homedecor:desk_lamp_max",             "homedecor:desk_lamp_on")
 | 
			
		||||
minetest.register_alias("homedecor:standing_lamp",             "homedecor:standing_lamp_14")
 | 
			
		||||
minetest.register_alias("homedecor:standing_lamp_max",         "homedecor:standing_lamp_14")
 | 
			
		||||
 | 
			
		||||
minetest.register_alias("homedecor:ceiling_lamp",              "homedecor:ceiling_lamp_on")
 | 
			
		||||
minetest.register_alias("homedecor:ceiling_lamp_max",          "homedecor:ceiling_lamp_on")
 | 
			
		||||
 | 
			
		||||
minetest.register_alias("homedecor:table_lamp",                "homedecor:table_lamp_on")
 | 
			
		||||
minetest.register_alias("homedecor:table_lamp_max",            "homedecor:table_lamp_on")
 | 
			
		||||
 | 
			
		||||
minetest.register_alias("homedecor:standing_lamp",             "homedecor:standing_lamp_on")
 | 
			
		||||
minetest.register_alias("homedecor:standing_lamp_max",         "homedecor:standing_lamp_on")
 | 
			
		||||
 | 
			
		||||
minetest.register_alias("homedecor:wall_lamp",                 "homedecor:wall_lamp_on")
 | 
			
		||||
minetest.register_alias("homedecor:wall_lamp_max",             "homedecor:wall_lamp_on")
 | 
			
		||||
 | 
			
		||||
-- for old maps that had the original 3dforniture mod
 | 
			
		||||
minetest.register_alias("3dforniture:table_lamp",              "homedecor:table_lamp_on")
 | 
			
		||||
minetest.register_alias("3dforniture:table_lamp",              "homedecor:table_lamp_14")
 | 
			
		||||
minetest.register_alias("3dforniture:table_lamp_max",          "homedecor:table_lamp_14")
 | 
			
		||||
 | 
			
		||||
minetest.register_alias("3dforniture:torch_wall",              "homedecor:torch_wall")
 | 
			
		||||
minetest.register_alias("torch_wall",                          "homedecor:torch_wall")
 | 
			
		||||
 | 
			
		||||
if minetest.get_modpath("darkage") then
 | 
			
		||||
	minetest.register_alias("homedecor:lattice_lantern_large_off", "darkage:lamp")
 | 
			
		||||
	minetest.register_alias("homedecor:lattice_lantern_large_low", "darkage:lamp")
 | 
			
		||||
	minetest.register_alias("homedecor:lattice_lantern_large_med", "darkage:lamp")
 | 
			
		||||
	minetest.register_alias("homedecor:lattice_lantern_large_hi",  "darkage:lamp")
 | 
			
		||||
	minetest.register_alias("homedecor:lattice_lantern_large_max", "darkage:lamp")
 | 
			
		||||
	minetest.register_alias("homedecor:lattice_lantern_large_on",  "darkage:lamp")
 | 
			
		||||
	minetest.register_alias("homedecor:lattice_lantern_large",     "darkage:lamp")
 | 
			
		||||
minetest.register_alias("homedecor:plasma_ball",               "homedecor:plasma_ball_on")
 | 
			
		||||
minetest.register_alias("homedecor:wall_lamp",                 "homedecor:wall_lamp_on")
 | 
			
		||||
 | 
			
		||||
minetest.register_alias("homedecor:rope_light_on_floor_0",     "homedecor:rope_light_on_floor_off")
 | 
			
		||||
minetest.register_alias("homedecor:rope_light_on_floor_14",    "homedecor:rope_light_on_floor_on")
 | 
			
		||||
 | 
			
		||||
minetest.register_alias("homedecor:rope_light_on_ceiling_0",   "homedecor:rope_light_on_ceiling_off")
 | 
			
		||||
minetest.register_alias("homedecor:rope_light_on_ceiling_14",  "homedecor:rope_light_on_ceiling_on")
 | 
			
		||||
 | 
			
		||||
for name, level in pairs(word_to_bright) do
 | 
			
		||||
	minetest.register_alias("homedecor:glowlight_half_"..name,        "homedecor:glowlight_half_"..level)
 | 
			
		||||
	minetest.register_alias("homedecor:glowlight_quarter_"..name,     "homedecor:glowlight_quarter_"..level)
 | 
			
		||||
	minetest.register_alias("homedecor:glowlight_small_cube_"..name,  "homedecor:glowlight_small_cube_"..level)
 | 
			
		||||
	minetest.register_alias("homedecor:rope_light_on_floor_"..name,   "homedecor:rope_light_on_floor_"..level)
 | 
			
		||||
	minetest.register_alias("homedecor:rope_light_on_ceiling_"..name, "homedecor:rope_light_on_ceiling_"..level)
 | 
			
		||||
	minetest.register_alias("homedecor:plasma_lamp_"..name,           "homedecor:plasma_lamp_"..level)
 | 
			
		||||
	minetest.register_alias("homedecor:plasma_ball_"..name,           "homedecor:plasma_ball_"..level)
 | 
			
		||||
	minetest.register_alias("homedecor:ground_lantern_"..name,        "homedecor:ground_lantern_"..level)
 | 
			
		||||
	minetest.register_alias("homedecor:hanging_lantern_"..name,       "homedecor:hanging_lantern_"..level)
 | 
			
		||||
	minetest.register_alias("homedecor:ceiling_lantern_"..name,       "homedecor:ceiling_lantern_"..level)
 | 
			
		||||
	minetest.register_alias("homedecor:lattice_lantern_large_"..name, "homedecor:lattice_lantern_large_"..level)
 | 
			
		||||
	minetest.register_alias("homedecor:lattice_lantern_small_"..name, "homedecor:lattice_lantern_small_"..level)
 | 
			
		||||
	minetest.register_alias("homedecor:desk_lamp_"..name,             "homedecor:desk_lamp_"..level)
 | 
			
		||||
	minetest.register_alias("homedecor:ceiling_lamp_"..name,          "homedecor:ceiling_lamp_"..level)
 | 
			
		||||
	minetest.register_alias("homedecor:table_lamp_"..name,            "homedecor:table_lamp_"..level)
 | 
			
		||||
	minetest.register_alias("homedecor:standing_lamp_"..name,         "homedecor:standing_lamp_"..level)
 | 
			
		||||
	minetest.register_alias("3dforniture:table_lamp_"..name,          "homedecor:table_lamp_"..level)
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
if minetest.get_modpath("darkage") then
 | 
			
		||||
	minetest.register_alias("homedecor:lattice_lantern_large",        "darkage:lamp")
 | 
			
		||||
	for n = 0, 14 do
 | 
			
		||||
		minetest.register_alias("homedecor:lattice_lantern_large_"..n, "darkage:lamp")
 | 
			
		||||
	end
 | 
			
		||||
	for name, level in pairs(word_to_bright) do
 | 
			
		||||
		minetest.register_alias("homedecor:lattice_lantern_large_"..name, "darkage:lamp")
 | 
			
		||||
	end
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -5,3 +5,4 @@ unifieddyes
 | 
			
		||||
building_blocks?
 | 
			
		||||
technic?
 | 
			
		||||
bucket?
 | 
			
		||||
signs_lib?
 | 
			
		||||
 
 | 
			
		||||
@@ -145,6 +145,7 @@ homedecor.register("pole_brass", {
 | 
			
		||||
	},
 | 
			
		||||
	groups = {snappy=3},
 | 
			
		||||
	sounds = default.node_sound_wood_defaults(),
 | 
			
		||||
	check_for_pole = true
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
homedecor.register("pole_wrought_iron", {
 | 
			
		||||
@@ -478,6 +479,7 @@ for _, side in ipairs({"diagonal_left", "diagonal_right", "horizontal"}) do
 | 
			
		||||
			def.airbrush_replacement_node = "homedecor:banister_wood_"..side.."_grey"
 | 
			
		||||
			def.groups.ud_param2_colorable = 1
 | 
			
		||||
			def.paramtype2 = "colorfacedir"
 | 
			
		||||
			def.on_dig = unifieddyes.on_dig
 | 
			
		||||
		end
 | 
			
		||||
		homedecor.register(nodename, def)
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -26,6 +26,7 @@ minetest.register_node(":lrfurn:armchair", {
 | 
			
		||||
	after_place_node = function(pos, placer, itemstack, pointed_thing)
 | 
			
		||||
		unifieddyes.fix_rotation_nsew(pos, placer, itemstack, pointed_thing)
 | 
			
		||||
	end,
 | 
			
		||||
	on_dig = unifieddyes.on_dig,
 | 
			
		||||
	on_rotate = unifieddyes.fix_after_screwdriver_nsew,
 | 
			
		||||
	on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
 | 
			
		||||
		if not clicker:is_player() then
 | 
			
		||||
@@ -51,10 +52,11 @@ homedecor.register("armchair", {
 | 
			
		||||
	palette = "unifieddyes_palette_colorwallmounted.png",
 | 
			
		||||
	groups = {snappy=3, ud_param2_colorable = 1},
 | 
			
		||||
	sounds = default.node_sound_wood_defaults(),
 | 
			
		||||
	node_box = ac_cbox,
 | 
			
		||||
	node_box = armchair_cbox,
 | 
			
		||||
	after_place_node = function(pos, placer, itemstack, pointed_thing)
 | 
			
		||||
		unifieddyes.fix_rotation_nsew(pos, placer, itemstack, pointed_thing)
 | 
			
		||||
	end,
 | 
			
		||||
	on_dig = unifieddyes.on_dig,
 | 
			
		||||
	on_rotate = unifieddyes.fix_after_screwdriver_nsew,
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -41,6 +41,7 @@ minetest.register_node(":lrfurn:longsofa", {
 | 
			
		||||
		end
 | 
			
		||||
		return itemstack
 | 
			
		||||
	end,
 | 
			
		||||
	on_dig = unifieddyes.on_dig,
 | 
			
		||||
	on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
 | 
			
		||||
		if not clicker:is_player() then
 | 
			
		||||
			return itemstack
 | 
			
		||||
 
 | 
			
		||||
@@ -153,6 +153,7 @@ homedecor.register("kitchen_chair_padded", {
 | 
			
		||||
	after_place_node = function(pos, placer, itemstack, pointed_thing)
 | 
			
		||||
		unifieddyes.fix_rotation_nsew(pos, placer, itemstack, pointed_thing)
 | 
			
		||||
	end,
 | 
			
		||||
	on_dig = unifieddyes.on_dig,
 | 
			
		||||
	on_rotate = unifieddyes.fix_after_screwdriver_nsew,
 | 
			
		||||
	on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
 | 
			
		||||
		pos.y = pos.y+0 -- where do I put my ass ?
 | 
			
		||||
 
 | 
			
		||||
@@ -41,6 +41,7 @@ minetest.register_node(":lrfurn:sofa", {
 | 
			
		||||
		end
 | 
			
		||||
		return itemstack
 | 
			
		||||
	end,
 | 
			
		||||
	on_dig = unifieddyes.on_dig,
 | 
			
		||||
	on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
 | 
			
		||||
		if not clicker:is_player() then
 | 
			
		||||
			return itemstack
 | 
			
		||||
 
 | 
			
		||||
@@ -1,5 +1,7 @@
 | 
			
		||||
homedecor_common
 | 
			
		||||
default
 | 
			
		||||
player_api
 | 
			
		||||
homedecor_kitchen?
 | 
			
		||||
homedecor_misc?
 | 
			
		||||
3d_armor?
 | 
			
		||||
skinsdb?
 | 
			
		||||
 
 | 
			
		||||
@@ -106,7 +106,7 @@ minetest.register_node(":homedecor:curtain_closed", {
 | 
			
		||||
	drawtype = 'signlike',
 | 
			
		||||
	use_texture_alpha = true,
 | 
			
		||||
	walkable = false,
 | 
			
		||||
	groups = { snappy = 3, ud_param2_colorable = 1 },
 | 
			
		||||
	groups = { snappy = 3, ud_param2_colorable = 1, not_in_creative_inventory=1 },
 | 
			
		||||
	sounds = default.node_sound_leaves_defaults(),
 | 
			
		||||
	paramtype = "light",
 | 
			
		||||
	paramtype2 = "colorwallmounted",
 | 
			
		||||
@@ -115,13 +115,9 @@ minetest.register_node(":homedecor:curtain_closed", {
 | 
			
		||||
	after_place_node = function(pos, placer, itemstack, pointed_thing)
 | 
			
		||||
		unifieddyes.fix_rotation(pos, placer, itemstack, pointed_thing)
 | 
			
		||||
	end,
 | 
			
		||||
	on_dig = unifieddyes.on_dig,
 | 
			
		||||
	on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
 | 
			
		||||
		local topnode = minetest.get_node({x=pos.x, y=pos.y+1.0, z=pos.z})
 | 
			
		||||
		if string.find(topnode.name, "homedecor:curtainrod") then
 | 
			
		||||
			-- Open the curtains
 | 
			
		||||
			local fdir = node.param2
 | 
			
		||||
			minetest.set_node(pos, { name = "homedecor:curtain_open", param2 = fdir })
 | 
			
		||||
		end
 | 
			
		||||
		minetest.set_node(pos, { name = "homedecor:curtain_open", param2 = node.param2 })
 | 
			
		||||
		return itemstack
 | 
			
		||||
	end
 | 
			
		||||
})
 | 
			
		||||
@@ -142,13 +138,9 @@ minetest.register_node(":homedecor:curtain_open", {
 | 
			
		||||
	after_place_node = function(pos, placer, itemstack, pointed_thing)
 | 
			
		||||
		unifieddyes.fix_rotation(pos, placer, itemstack, pointed_thing)
 | 
			
		||||
	end,
 | 
			
		||||
	on_dig = unifieddyes.on_dig,
 | 
			
		||||
	on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
 | 
			
		||||
		local topnode = minetest.get_node({x=pos.x, y=pos.y+1.0, z=pos.z})
 | 
			
		||||
		if string.find(topnode.name, "homedecor:curtainrod") then
 | 
			
		||||
			-- Close the curtains
 | 
			
		||||
			local fdir = node.param2
 | 
			
		||||
			minetest.set_node(pos, { name = "homedecor:curtain_closed", param2 = fdir })
 | 
			
		||||
		end
 | 
			
		||||
		minetest.set_node(pos, { name = "homedecor:curtain_closed", param2 = node.param2 })
 | 
			
		||||
		return itemstack
 | 
			
		||||
	end
 | 
			
		||||
})
 | 
			
		||||
@@ -253,6 +245,7 @@ homedecor.register("shutter", {
 | 
			
		||||
	after_place_node = function(pos, placer, itemstack, pointed_thing)
 | 
			
		||||
		unifieddyes.fix_rotation(pos, placer, itemstack, pointed_thing)
 | 
			
		||||
	end,
 | 
			
		||||
	on_dig = unifieddyes.on_dig,
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
homedecor.register("shutter_colored", {
 | 
			
		||||
@@ -270,6 +263,7 @@ homedecor.register("shutter_colored", {
 | 
			
		||||
	after_place_node = function(pos, placer, itemstack, pointed_thing)
 | 
			
		||||
		unifieddyes.fix_rotation(pos, placer, itemstack, pointed_thing)
 | 
			
		||||
	end,
 | 
			
		||||
	on_dig = unifieddyes.on_dig,
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
minetest.register_alias("homedecor:shutter_purple", "homedecor:shutter_violet")
 | 
			
		||||
@@ -390,7 +384,7 @@ minetest.register_craft({
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
minetest.register_craft( {
 | 
			
		||||
	output = "homedecor:curtain_closed 4",
 | 
			
		||||
	output = "homedecor:curtain_open 4",
 | 
			
		||||
		recipe = {
 | 
			
		||||
		{ "wool:white", "", ""},
 | 
			
		||||
		{ "wool:white", "", ""},
 | 
			
		||||
@@ -399,7 +393,7 @@ minetest.register_craft( {
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
minetest.register_craft( {
 | 
			
		||||
	output = "homedecor:curtain_closed 4",
 | 
			
		||||
	output = "homedecor:curtain_open 4",
 | 
			
		||||
		recipe = {
 | 
			
		||||
		{ "cottages:wool", "", ""},
 | 
			
		||||
		{ "cottages:wool", "", ""},
 | 
			
		||||
 
 | 
			
		||||
@@ -38,6 +38,7 @@ minetest.register_node("lavalamp:lavalamp", {
 | 
			
		||||
	groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3, ud_param2_colorable = 1},
 | 
			
		||||
	sounds = default.node_sound_glass_defaults(),
 | 
			
		||||
	on_construct = unifieddyes.on_construct,
 | 
			
		||||
	on_dig = unifieddyes.on_dig,
 | 
			
		||||
	on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
 | 
			
		||||
		node.name = "lavalamp:lavalamp_off"
 | 
			
		||||
		minetest.swap_node(pos, node)
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user