1
0
mirror of https://github.com/mt-mods/homedecor_modpack.git synced 2025-07-15 20:20:28 +02:00

Compare commits

...

17 Commits

Author SHA1 Message Date
b28f1314da add aliases for rope lights (on/14, off/0)
make right-click handler work properly for plain "on"/"off" items
2019-06-15 06:52:58 -04:00
17ea2040e2 fix groups on "floor" rope lights
if mesecons, put "off" rope lights in creative inv, and drop them as "off" as
well.  else, put "on" in creative inv and drop "on"

allow right-click on rope lights only if no mesecons

also cache minetest.get_modpath("mesecons")
2019-06-15 06:45:41 -04:00
ed9fb6a34d allow player to open/close curtains without a curtainrod
also remove "closed" curtain from creative inv
change recipe to give the "open" one
2019-06-07 05:41:16 -04:00
13862c1a48 missing chandelier alias 2019-06-07 00:50:06 -04:00
e289e79aea add intllib as optdepend in homedecor_common
should fix #17 ?
2019-06-07 00:36:05 -04:00
80ab12710b add "light" to a couple of descriptions, for easier searching 2019-06-06 04:38:13 -04:00
1b94c940d7 fix wrong light value on standing lamps 2019-06-06 04:37:26 -04:00
df44dd3dad remove some bogus aliases, fix plasma ball 2019-06-06 01:48:44 -04:00
bff90189fc fixed french door conversions, for real now. :P
bumped LBM version
2019-06-06 01:17:43 -04:00
b407f06dc4 fix wall lantern aliases, for real this time :P 2019-06-06 01:03:57 -04:00
e6dc2c5508 bump doors LBM name to force it to run again 2019-06-05 06:16:33 -04:00
bde2bf2bf6 fix some missing door LBM entries 2019-06-05 04:26:22 -04:00
ea160a6519 simplify mesecons/digilines rules
replaced all "xz" and "toponly" with "alldir"
made on-floor rope lights use "alldir"
2019-06-04 01:37:02 -04:00
631813bb2d make all dimmable lights fully dimmable to any level 0-14
for backward compat, they'll resond to the usual strings, too:

"off" -> 0
"min" -> 3
"med" -> 7
"hi"  -> 11
"max"/"on" -> 14

all dimmable nodes have been renamed to bear the light value in their
names, and aliased.

the non-dimmable lights still respond as before
("off" or n < 4; "on" or n > 3)
2019-06-04 00:56:00 -04:00
f33636d473 move wall lamp and torch models to the correct dir 2019-06-03 07:17:12 -04:00
cbb41f7d98 give most doors more meaningful, distinct node names
to avoid confusion

doors:wood_glass_{oak,white,mahogany}_{a,b} --> doors:homedecor_french_{oak,white,mahogany}_{a,b}
doors:woodglass2_{a,b}                      --> doors:homedecor_carolina_{a,b}
doors:bedroom_{a,b}                         --> doors:homedecor_basic_panel_{a,b}

All others:
doors:$foo_{a,b}                            --> doors:homedecor_$foo_{a,b}
2019-06-03 03:42:06 -04:00
c98ec41ba7 move some images to the right places :P 2019-06-02 08:24:13 -04:00
21 changed files with 726 additions and 709 deletions

View File

@ -1,3 +1,3 @@
default default
creative creative
intllib?

View File

@ -40,41 +40,41 @@ local door_list = {
custom_model = "homedecor_door_fancy" custom_model = "homedecor_door_fancy"
}, },
{ name = "wood_glass_oak", { name = "french_oak",
description = "Glass and Wood, Oak-colored", description = "French door, Oak-colored",
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}, groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
sounds = { sounds = {
main = default.node_sound_glass_defaults(), main = default.node_sound_glass_defaults(),
}, },
backface = true, backface = true,
alpha = true, alpha = true,
custom_model = "homedecor_door_wood_glass" custom_model = "homedecor_door_french"
}, },
{ name = "wood_glass_mahogany", { name = "french_mahogany",
description = "Glass and Wood, Mahogany-colored", description = "French door, Mahogany-colored",
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}, groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
sounds = { sounds = {
main = default.node_sound_glass_defaults(), main = default.node_sound_glass_defaults(),
}, },
backface = true, backface = true,
alpha = true, alpha = true,
custom_model = "homedecor_door_wood_glass" custom_model = "homedecor_door_french"
}, },
{ name = "wood_glass_white", { name = "french_white",
description = "Glass and Wood, White", description = "French door, White",
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}, groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
sounds = { sounds = {
main = default.node_sound_glass_defaults(), main = default.node_sound_glass_defaults(),
}, },
backface = true, backface = true,
alpha = true, alpha = true,
custom_model = "homedecor_door_wood_glass" custom_model = "homedecor_door_french"
}, },
{ name = "bedroom", { name = "basic_panel",
description = "White Bedroom Door", description = "Basic white panel Door",
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}, groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
sounds = { sounds = {
main = default.node_sound_wood_defaults(), main = default.node_sound_wood_defaults(),
@ -95,8 +95,8 @@ local door_list = {
custom_model = "homedecor_door_wrought_iron" custom_model = "homedecor_door_wrought_iron"
}, },
{ name = "woodglass2", { name = "carolina",
description = "Wooden door with glass insert, type 2", description = "Wooden Carolina door",
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}, groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
sounds = { sounds = {
main = default.node_sound_wood_defaults(), main = default.node_sound_wood_defaults(),
@ -166,7 +166,7 @@ end
local hd_3d = minetest.get_modpath("homedecor_3d_extras") local hd_3d = minetest.get_modpath("homedecor_3d_extras")
for _, door in ipairs(door_list) do for _, door in ipairs(door_list) do
doors.register(door.name, { doors.register("homedecor_"..door.name, {
tiles = {{ name = "homedecor_door_"..door.name..".png", backface_culling = door.backface }}, tiles = {{ name = "homedecor_door_"..door.name..".png", backface_culling = door.backface }},
description = door.description, description = door.description,
inventory_image = "homedecor_door_"..door.name.."_inv.png", inventory_image = "homedecor_door_"..door.name.."_inv.png",
@ -177,9 +177,8 @@ for _, door in ipairs(door_list) do
mesecons = mesecons mesecons = mesecons
}) })
local nn_a = "doors:"..door.name.."_a" local nn_a = "doors:homedecor_"..door.name.."_a"
local nn_b = "doors:"..door.name.."_b" local nn_b = "doors:homedecor_"..door.name.."_b"
if door.alpha then if door.alpha then
local def = hd_doors_clone_node(nn_a) local def = hd_doors_clone_node(nn_a)
@ -204,6 +203,9 @@ for _, door in ipairs(door_list) do
old_doors[#old_doors + 1] = "homedecor:door_"..door.name.."_left" old_doors[#old_doors + 1] = "homedecor:door_"..door.name.."_left"
old_doors[#old_doors + 1] = "homedecor:door_"..door.name.."_right" old_doors[#old_doors + 1] = "homedecor:door_"..door.name.."_right"
minetest.register_alias("doors:"..door.name.."_a", "doors:homedecor_"..door.name.."_a")
minetest.register_alias("doors:"..door.name.."_b", "doors:homedecor_"..door.name.."_b")
end end
-- Gates -- Gates
@ -697,18 +699,63 @@ minetest.register_craft({
-- aliases -- aliases
minetest.register_alias("homedecor:jpn_door_top", "air") minetest.register_alias("homedecor:jpn_door_top", "air")
minetest.register_alias("homedecor:jpn_door_bottom", "homedecor:door_japanese_closed")
minetest.register_alias("homedecor:jpn_door_top_open", "air") minetest.register_alias("homedecor:jpn_door_top_open", "air")
minetest.register_alias("homedecor:jpn_door_bottom", "homedecor:door_japanese_closed")
minetest.register_alias("homedecor:jpn_door_bottom_open", "homedecor:door_japanese_open") minetest.register_alias("homedecor:jpn_door_bottom_open", "homedecor:door_japanese_open")
minetest.register_alias("homedecor:door_glass_right", "doors:door_glass_b") minetest.register_alias("homedecor:door_glass_right", "doors:door_glass_b")
minetest.register_alias("homedecor:door_glass_left", "doors:door_glass_a") minetest.register_alias("homedecor:door_glass_left", "doors:door_glass_a")
minetest.register_alias("doors:wood_glass_oak_a", "doors:homedecor_french_oak_a")
minetest.register_alias("doors:wood_glass_oak_b", "doors:homedecor_french_oak_b")
minetest.register_alias("doors:wood_glass_white_a", "doors:homedecor_french_white_a")
minetest.register_alias("doors:wood_glass_white_b", "doors:homedecor_french_white_b")
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")
minetest.register_alias("doors:woodglass2_a", "doors:homedecor_carolina_a")
minetest.register_alias("doors:woodglass2_b", "doors:homedecor_carolina_b")
minetest.register_alias("doors:homedecor_bedroom_a", "doors:homedecor_basic_panel_a")
minetest.register_alias("doors:homedecor_bedroom_b", "doors:homedecor_basic_panel_b")
minetest.register_alias("doors:bedroom_a", "doors:homedecor_basic_panel_a")
minetest.register_alias("doors:bedroom_b", "doors:homedecor_basic_panel_b")
-- flip old homedecor doors around, since they use minetest_game doors API now -- 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({ minetest.register_lbm({
name = ":homedecor:convert_doors", name = ":homedecor:convert_doors_3",
label = "Convert Homedecor doors to mtg doors API", label = "Convert Homedecor doors to mtg doors API",
nodenames = old_doors, nodenames = old_doors,
run_at_every_load = false, run_at_every_load = false,
@ -717,10 +764,12 @@ minetest.register_lbm({
local newparam2 = (node.param2 + 2) % 4 local newparam2 = (node.param2 + 2) % 4
local e = string.find(node.name, "_", -7) local e = string.find(node.name, "_", -7)
local dir = string.sub(node.name, e+1) 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 if dir == "right" then
print("Want to replace "..node.name.." with "..newname.."_a")
minetest.set_node(pos, {name = newname.."_a", param2 = newparam2 }) minetest.set_node(pos, {name = newname.."_a", param2 = newparam2 })
else else
print("Want to replace "..node.name.." with "..newname.."_b")
minetest.set_node(pos, {name = newname.."_b", param2 = newparam2 }) minetest.set_node(pos, {name = newname.."_b", param2 = newparam2 })
end end
minetest.set_node({x=pos.x, y=pos.y+1, z=pos.z}, {name = "doors:hidden"}) minetest.set_node({x=pos.x, y=pos.y+1, z=pos.z}, {name = "doors:hidden"})

View File

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

Before

Width:  |  Height:  |  Size: 7.8 KiB

After

Width:  |  Height:  |  Size: 7.8 KiB

View File

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

View File

@ -11,6 +11,8 @@ local function is_protected(pos, clicker)
return false return false
end end
local hd_mesecons = minetest.get_modpath("mesecons")
-- control and brightness for dimmable lamps -- control and brightness for dimmable lamps
local brightn_cycle = { local brightn_cycle = {
@ -22,7 +24,7 @@ local brightn_cycle = {
["on"] = "off", ["on"] = "off",
} }
local brightn_light_source = { local word_to_bright = {
["off"] = 0, ["off"] = 0,
["low"] = 3, ["low"] = 3,
["med"] = 7, ["med"] = 7,
@ -31,40 +33,6 @@ local brightn_light_source = {
["max"] = 14, ["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 = { local rules_alldir = {
{x = 0, y = 0, z = -1}, -- borrowed from lightstones {x = 0, y = 0, z = -1}, -- borrowed from lightstones
{x = 1, y = 0, z = 0}, {x = 1, y = 0, z = 0},
@ -81,18 +49,11 @@ local rules_alldir = {
{x = 0, y = -1, z = 0}, {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 -- mesecons compatibility
local actions local actions
if minetest.get_modpath("mesecons") then if hd_mesecons then
actions = { actions = {
action_off = function(pos, node) 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_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 = { homedecor.mesecon_alldir_light = {
effector = table.copy(actions), effector = table.copy(actions),
} }
homedecor.mesecon_alldir_light.effector.rules = rules_alldir 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 end
-- digilines compatibility -- digilines compatibility
@ -154,21 +104,23 @@ if minetest.get_modpath("digilines") then
if msg and msg ~= "" then if msg and msg ~= "" then
local n = tonumber(msg) local n = tonumber(msg)
local msg = bright_to_word[n] or msg local suff = word_to_bright[msg] or "invalid"
print(node.name, dump(msg))
local basename = string.sub(node.name, 1, string.find(node.name, "_", -5) - 1) 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 if minetest.registered_nodes[basename.."_"..msg] then
minetest.swap_node(pos, {name = basename.."_"..msg, param2 = node.param2}) 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}) 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}) minetest.swap_node(pos, {name = basename.."_off", param2 = node.param2})
end end
end end
end end
end
minetest.register_on_player_receive_fields(function(player, formname, fields) minetest.register_on_player_receive_fields(function(player, formname, fields)
local name = player:get_player_name() local name = player:get_player_name()
@ -182,7 +134,7 @@ if minetest.get_modpath("digilines") then
end end
end) end)
if minetest.get_modpath("mesecons") then if hd_mesecons then
homedecor.digiline_wall_light = { homedecor.digiline_wall_light = {
effector = { effector = {
action = on_digiline_receive_string, action = on_digiline_receive_string,
@ -202,15 +154,6 @@ if minetest.get_modpath("digilines") then
} }
end end
homedecor.digiline_xz_light = {
effector = {
action = on_digiline_receive_string,
},
wire = {
rules = rules_xz
}
}
homedecor.digiline_alldir_light = { homedecor.digiline_alldir_light = {
effector = { effector = {
action = on_digiline_receive_string, action = on_digiline_receive_string,
@ -220,15 +163,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) function digiline_on_punch(pos, node, puncher, pointed_thing)
if is_protected(pos, puncher) then return end if is_protected(pos, puncher) then return end
@ -246,24 +180,35 @@ end
function homedecor.toggle_light(pos, node, clicker, itemstack, pointed_thing) function homedecor.toggle_light(pos, node, clicker, itemstack, pointed_thing)
if is_protected(pos, clicker) then return end if is_protected(pos, clicker) then return end
local sep = string.find(node.name, "_o", -5) local sep = string.find(node.name, "_", -5)
local onoff = string.sub(node.name, sep + 1) local level = string.sub(node.name, sep + 1)
local newname = string.sub(node.name, 1, sep - 1)..((onoff == "off") and "_on" or "_off") local n = tonumber(level) or 0
minetest.swap_node(pos, {name = newname, param2 = node.param2})
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 end
------------------ ------------------
-- Dimmable lights -- 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 tiles
local overlay local overlay
local onflag = (light_brightn_name ~= "off") local onflag = (brightness_level > 0)
local nici = (light_brightn_name ~= "on") and 1 or nil local nici = (brightness_level ~= 14) and 1 or nil
local gen_ls_tex_white = "homedecor_generic_light_source_off.png" 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 if onflag then gen_ls_tex_white = "homedecor_generic_light_source_white.png" end
@ -271,6 +216,9 @@ for light_brightn_name in pairs(brightn_light_source) do
local gen_ls_tex_yellow = "homedecor_generic_light_source_off.png" 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 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 = { local glowlight_nodebox = {
half = homedecor.nodebox.slab_y(1/2), half = homedecor.nodebox.slab_y(1/2),
quarter = homedecor.nodebox.slab_y(1/4), quarter = homedecor.nodebox.slab_y(1/4),
@ -315,7 +263,7 @@ for light_brightn_name in pairs(brightn_light_source) do
overlay = nil overlay = nil
end end
minetest.register_node(":homedecor:glowlight_half_"..light_brightn_name, { minetest.register_node(":homedecor:glowlight_half_"..brightness_level, {
description = S("Thick Glowlight"), description = S("Thick Glowlight"),
tiles = tiles, tiles = tiles,
overlay_tiles = overlay, overlay_tiles = overlay,
@ -332,7 +280,7 @@ for light_brightn_name in pairs(brightn_light_source) do
}, },
node_box = glowlight_nodebox.half, node_box = glowlight_nodebox.half,
groups = { snappy = 3, ud_param2_colorable = 1, not_in_creative_inventory = nici }, 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(), sounds = default.node_sound_glass_defaults(),
after_place_node = function(pos, placer, itemstack, pointed_thing) after_place_node = function(pos, placer, itemstack, pointed_thing)
unifieddyes.fix_rotation(pos, placer, itemstack, pointed_thing) unifieddyes.fix_rotation(pos, placer, itemstack, pointed_thing)
@ -380,7 +328,7 @@ for light_brightn_name in pairs(brightn_light_source) do
overlay = nil overlay = nil
end end
minetest.register_node(":homedecor:glowlight_quarter_"..light_brightn_name, { minetest.register_node(":homedecor:glowlight_quarter_"..brightness_level, {
description = S("Thin Glowlight"), description = S("Thin Glowlight"),
tiles = tiles, tiles = tiles,
overlay_tiles = overlay, overlay_tiles = overlay,
@ -397,7 +345,7 @@ for light_brightn_name in pairs(brightn_light_source) do
}, },
node_box = glowlight_nodebox.quarter, node_box = glowlight_nodebox.quarter,
groups = { snappy = 3, ud_param2_colorable = 1, not_in_creative_inventory = nici }, 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(), sounds = default.node_sound_glass_defaults(),
after_place_node = function(pos, placer, itemstack, pointed_thing) after_place_node = function(pos, placer, itemstack, pointed_thing)
unifieddyes.fix_rotation(pos, placer, itemstack, pointed_thing) unifieddyes.fix_rotation(pos, placer, itemstack, pointed_thing)
@ -446,7 +394,7 @@ for light_brightn_name in pairs(brightn_light_source) do
overlay = nil overlay = nil
end 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"), description = S("Small Glowlight Cube"),
tiles = tiles, tiles = tiles,
overlay_tiles = overlay, overlay_tiles = overlay,
@ -463,7 +411,7 @@ for light_brightn_name in pairs(brightn_light_source) do
}, },
node_box = glowlight_nodebox.small_cube, node_box = glowlight_nodebox.small_cube,
groups = { snappy = 3, ud_param2_colorable = 1, not_in_creative_inventory = nici }, 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(), sounds = default.node_sound_glass_defaults(),
after_place_node = function(pos, placer, itemstack, pointed_thing) after_place_node = function(pos, placer, itemstack, pointed_thing)
unifieddyes.fix_rotation(pos, placer, itemstack, pointed_thing) unifieddyes.fix_rotation(pos, placer, itemstack, pointed_thing)
@ -482,15 +430,18 @@ for light_brightn_name in pairs(brightn_light_source) do
local lighttex local lighttex
if onflag then if onflag then
local b = (brightness_level > 6) and brightness_level or 6
local brightened = "^[multiply:#"..string.rep(string.format("%x", b), 6)
lighttex = { 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}, animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=2.0},
} }
else else
lighttex = "homedecor_plasma_lamp_off.png" lighttex = "homedecor_plasma_lamp_off.png"
end end
homedecor.register("plasma_lamp_"..light_brightn_name, { homedecor.register("plasma_lamp_"..brightness_level, {
description = S("Plasma Lamp/Light"), description = S("Plasma Lamp/Light"),
drawtype = "mesh", drawtype = "mesh",
mesh = "plasma_lamp.obj", mesh = "plasma_lamp.obj",
@ -499,7 +450,7 @@ for light_brightn_name in pairs(brightn_light_source) do
lighttex lighttex
}, },
use_texture_alpha = true, use_texture_alpha = true,
light_source = brightn_light_source[light_brightn_name], light_source = brightness_level,
sunlight_propagates = true, sunlight_propagates = true,
groups = {cracky=3, oddly_breakable_by_hand=3, not_in_creative_inventory = nici}, groups = {cracky=3, oddly_breakable_by_hand=3, not_in_creative_inventory = nici},
sounds = default.node_sound_glass_defaults(), sounds = default.node_sound_glass_defaults(),
@ -519,7 +470,7 @@ for light_brightn_name in pairs(brightn_light_source) do
fixed = { -0.25, -0.5, -0.25, 0.25, 0.45, 0.25 }, 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"), description = S("Ground Lantern/Light"),
mesh = "homedecor_ground_lantern.obj", mesh = "homedecor_ground_lantern.obj",
tiles = { gen_ls_tex_yellow, "homedecor_generic_metal_wrought_iron.png" }, tiles = { gen_ls_tex_yellow, "homedecor_generic_metal_wrought_iron.png" },
@ -527,7 +478,7 @@ for light_brightn_name in pairs(brightn_light_source) do
inventory_image = "homedecor_ground_lantern_inv.png", inventory_image = "homedecor_ground_lantern_inv.png",
wield_image = "homedecor_ground_lantern_inv.png", wield_image = "homedecor_ground_lantern_inv.png",
groups = {snappy=3, not_in_creative_inventory = nici}, groups = {snappy=3, not_in_creative_inventory = nici},
light_source = brightn_light_source[light_brightn_name], light_source = brightness_level,
selection_box = gl_cbox, selection_box = gl_cbox,
walkable = false, walkable = false,
on_rightclick = homedecor.toggle_light, on_rightclick = homedecor.toggle_light,
@ -536,8 +487,8 @@ for light_brightn_name in pairs(brightn_light_source) do
{items = {"homedecor:ground_lantern_on"}}, {items = {"homedecor:ground_lantern_on"}},
} }
}, },
mesecons = homedecor.mesecon_xz_light, mesecons = homedecor.mesecon_alldir_light,
digiline = homedecor.digiline_xz_light, digiline = homedecor.digiline_alldir_light,
on_punch = digiline_on_punch on_punch = digiline_on_punch
}) })
@ -546,7 +497,7 @@ for light_brightn_name in pairs(brightn_light_source) do
fixed = { -0.25, -0.5, -0.2, 0.25, 0.5, 0.5 }, 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"), description = S("Hanging Lantern/Light"),
mesh = "homedecor_hanging_lantern.obj", mesh = "homedecor_hanging_lantern.obj",
tiles = { "homedecor_generic_metal_wrought_iron.png", gen_ls_tex_yellow }, tiles = { "homedecor_generic_metal_wrought_iron.png", gen_ls_tex_yellow },
@ -554,7 +505,7 @@ for light_brightn_name in pairs(brightn_light_source) do
inventory_image = "homedecor_hanging_lantern_inv.png", inventory_image = "homedecor_hanging_lantern_inv.png",
wield_image = "homedecor_hanging_lantern_inv.png", wield_image = "homedecor_hanging_lantern_inv.png",
groups = {snappy=3, not_in_creative_inventory = nici}, groups = {snappy=3, not_in_creative_inventory = nici},
light_source = brightn_light_source[light_brightn_name], light_source = brightness_level,
selection_box = hl_cbox, selection_box = hl_cbox,
walkable = false, walkable = false,
on_rightclick = homedecor.toggle_light, on_rightclick = homedecor.toggle_light,
@ -573,7 +524,7 @@ for light_brightn_name in pairs(brightn_light_source) do
fixed = { -0.35, -0.45, -0.35, 0.35, 0.5, 0.35 } 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", drawtype = "mesh",
mesh = "homedecor_ceiling_lantern.obj", mesh = "homedecor_ceiling_lantern.obj",
tiles = { gen_ls_tex_yellow, "homedecor_generic_metal_wrought_iron.png" }, tiles = { gen_ls_tex_yellow, "homedecor_generic_metal_wrought_iron.png" },
@ -581,7 +532,7 @@ for light_brightn_name in pairs(brightn_light_source) do
inventory_image = "homedecor_ceiling_lantern_inv.png", inventory_image = "homedecor_ceiling_lantern_inv.png",
description = S("Ceiling Lantern/Light"), description = S("Ceiling Lantern/Light"),
groups = {snappy=3, not_in_creative_inventory = nici}, groups = {snappy=3, not_in_creative_inventory = nici},
light_source = brightn_light_source[light_brightn_name], light_source = brightness_level,
selection_box = cl_cbox, selection_box = cl_cbox,
walkable = false, walkable = false,
on_rightclick = homedecor.toggle_light, on_rightclick = homedecor.toggle_light,
@ -590,8 +541,8 @@ for light_brightn_name in pairs(brightn_light_source) do
{items = {"homedecor:ceiling_lantern_on"}}, {items = {"homedecor:ceiling_lantern_on"}},
} }
}, },
mesecons = homedecor.mesecon_toponly_light, mesecons = homedecor.mesecon_alldir_light,
digiline = homedecor.digiline_toponly_light, digiline = homedecor.digiline_alldir_light,
on_punch = digiline_on_punch on_punch = digiline_on_punch
}) })
@ -599,11 +550,11 @@ for light_brightn_name in pairs(brightn_light_source) do
sm_light = default.LIGHT_MAX-5 sm_light = default.LIGHT_MAX-5
else else
homedecor.register("lattice_lantern_large_"..light_brightn_name, { homedecor.register("lattice_lantern_large_"..brightness_level, {
description = S("Lattice lantern/Light (large)"), description = S("Lattice lantern/Light (large)"),
tiles = { gen_ls_tex_yellow.."^homedecor_lattice_lantern_large_overlay.png" }, tiles = { gen_ls_tex_yellow.."^homedecor_lattice_lantern_large_overlay.png" },
groups = { snappy = 3, not_in_creative_inventory = nici }, 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(), sounds = default.node_sound_glass_defaults(),
on_rightclick = homedecor.toggle_light, on_rightclick = homedecor.toggle_light,
drop = { drop = {
@ -628,7 +579,7 @@ for light_brightn_name in pairs(brightn_light_source) do
lighttex_sides = "homedecor_generic_light_source_off.png" lighttex_sides = "homedecor_generic_light_source_off.png"
end end
homedecor.register("lattice_lantern_small_"..light_brightn_name, { homedecor.register("lattice_lantern_small_"..brightness_level, {
description = S("Lattice lantern/light (small)"), description = S("Lattice lantern/light (small)"),
tiles = { tiles = {
lighttex_tb.."^homedecor_lattice_lantern_small_tb_overlay.png", lighttex_tb.."^homedecor_lattice_lantern_small_tb_overlay.png",
@ -644,7 +595,7 @@ for light_brightn_name in pairs(brightn_light_source) do
fixed = { -0.25, -0.5, -0.25, 0.25, 0, 0.25 } fixed = { -0.25, -0.5, -0.25, 0.25, 0, 0.25 }
}, },
groups = { snappy = 3, not_in_creative_inventory = nici }, 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(), sounds = default.node_sound_glass_defaults(),
on_place = minetest.rotate_node, on_place = minetest.rotate_node,
on_rightclick = homedecor.toggle_light, on_rightclick = homedecor.toggle_light,
@ -665,14 +616,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 }, 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"), description = S("Desk Lamp/Light"),
mesh = "homedecor_desk_lamp.obj", mesh = "homedecor_desk_lamp.obj",
tiles = { tiles = {
"homedecor_generic_metal.png", "homedecor_generic_metal.png",
"homedecor_generic_metal.png", "homedecor_generic_metal.png",
{ name = "homedecor_generic_metal.png", color = homedecor.color_med_grey }, { 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", inventory_image = "homedecor_desk_lamp_inv.png",
paramtype = "light", paramtype = "light",
@ -686,21 +637,21 @@ for light_brightn_name in pairs(brightn_light_source) do
unifieddyes.fix_rotation_nsew(pos, placer, itemstack, pointed_thing) unifieddyes.fix_rotation_nsew(pos, placer, itemstack, pointed_thing)
end, end,
on_rotate = unifieddyes.fix_after_screwdriver_nsew, on_rotate = unifieddyes.fix_after_screwdriver_nsew,
light_source = brightn_light_source[light_brightn_name], light_source = brightness_level,
on_rightclick = homedecor.toggle_light, on_rightclick = homedecor.toggle_light,
drop = { drop = {
items = { items = {
{items = {"homedecor:desk_lamp_on"}, inherit_color = true }, {items = {"homedecor:desk_lamp_on"}, inherit_color = true },
} }
}, },
mesecons = homedecor.mesecon_xz_light, mesecons = homedecor.mesecon_alldir_light,
digiline = homedecor.digiline_xz_light, digiline = homedecor.digiline_alldir_light,
on_punch = digiline_on_punch on_punch = digiline_on_punch
}) })
-- "kitchen"/"dining room" ceiling lamp -- "kitchen"/"dining room" ceiling lamp
homedecor.register("ceiling_lamp_"..light_brightn_name, { homedecor.register("ceiling_lamp_"..brightness_level, {
description = S("Ceiling Lamp/Light"), description = S("Ceiling Lamp/Light"),
mesh = "homedecor_ceiling_lamp.obj", mesh = "homedecor_ceiling_lamp.obj",
tiles = { tiles = {
@ -710,7 +661,7 @@ for light_brightn_name in pairs(brightn_light_source) do
{ name = "homedecor_generic_plastic.png", color = 0xff442d04 }, { name = "homedecor_generic_plastic.png", color = 0xff442d04 },
}, },
inventory_image = "homedecor_ceiling_lamp_inv.png", 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}, groups = {snappy=3, not_in_creative_inventory = nici},
walkable = false, walkable = false,
on_rightclick = homedecor.toggle_light, on_rightclick = homedecor.toggle_light,
@ -719,8 +670,8 @@ for light_brightn_name in pairs(brightn_light_source) do
{items = {"homedecor:ceiling_lamp_on"}}, {items = {"homedecor:ceiling_lamp_on"}},
} }
}, },
mesecons = homedecor.mesecon_toponly_light, mesecons = homedecor.mesecon_alldir_light,
digiline = homedecor.digiline_toponly_light, digiline = homedecor.digiline_alldir_light,
on_punch = digiline_on_punch on_punch = digiline_on_punch
}) })
@ -734,14 +685,14 @@ for light_brightn_name in pairs(brightn_light_source) do
fixed = { -0.25, -0.5, -0.25, 0.25, 1.5, 0.25 } 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"), description = S("Table Lamp/Light"),
mesh = "homedecor_table_lamp.obj", mesh = "homedecor_table_lamp.obj",
tiles = { tiles = {
wool_brightened, 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_wood_red.png", color = 0xffffffff },
{ name = "homedecor_generic_metal.png", color = homedecor.color_black }, { name = "homedecor_generic_metal.png", color = homedecor.color_black },
}, },
@ -750,7 +701,7 @@ for light_brightn_name in pairs(brightn_light_source) do
paramtype2 = "color", paramtype2 = "color",
palette = "unifieddyes_palette_extended.png", palette = "unifieddyes_palette_extended.png",
walkable = false, walkable = false,
light_source = brightn_light_source[light_brightn_name], light_source = brightness_level,
selection_box = tlamp_cbox, selection_box = tlamp_cbox,
sounds = default.node_sound_wood_defaults(), sounds = default.node_sound_wood_defaults(),
groups = {cracky=2,oddly_breakable_by_hand=1, ud_param2_colorable = 1, not_in_creative_inventory=nici }, groups = {cracky=2,oddly_breakable_by_hand=1, ud_param2_colorable = 1, not_in_creative_inventory=nici },
@ -759,18 +710,18 @@ for light_brightn_name in pairs(brightn_light_source) do
{items = {"homedecor:table_lamp_hi"}, inherit_color = true }, {items = {"homedecor:table_lamp_hi"}, inherit_color = true },
} }
}, },
digiline = homedecor.digiline_xz_light, digiline = homedecor.digiline_alldir_light,
mesecons = homedecor.mesecon_wall_light, mesecons = homedecor.mesecon_wall_light,
on_rightclick = homedecor.toggle_light, on_rightclick = homedecor.toggle_light,
on_punch = digiline_on_punch on_punch = digiline_on_punch
}) })
homedecor.register("standing_lamp_"..light_brightn_name, { homedecor.register("standing_lamp_"..brightness_level, {
description = S("Standing Lamp/Light"), description = S("Standing Lamp/Light"),
mesh = "homedecor_standing_lamp.obj", mesh = "homedecor_standing_lamp.obj",
tiles = { tiles = {
wool_brightened, 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_wood_red.png", color = 0xffffffff },
{ name = "homedecor_generic_metal.png", color = homedecor.color_black }, { name = "homedecor_generic_metal.png", color = homedecor.color_black },
}, },
@ -779,7 +730,7 @@ for light_brightn_name in pairs(brightn_light_source) do
paramtype2 = "color", paramtype2 = "color",
palette = "unifieddyes_palette_extended.png", palette = "unifieddyes_palette_extended.png",
walkable = false, 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 }, groups = {cracky=2,oddly_breakable_by_hand=1, ud_param2_colorable = 1, not_in_creative_inventory=nici },
selection_box = slamp_cbox, selection_box = slamp_cbox,
sounds = default.node_sound_wood_defaults(), sounds = default.node_sound_wood_defaults(),
@ -790,13 +741,12 @@ for light_brightn_name in pairs(brightn_light_source) do
{items = {"homedecor:standing_lamp_hi"}, inherit_color = true }, {items = {"homedecor:standing_lamp_hi"}, inherit_color = true },
} }
}, },
digiline = homedecor.digiline_xz_light, digiline = homedecor.digiline_alldir_light,
mesecons = homedecor.mesecon_wall_light, mesecons = homedecor.mesecon_wall_light,
on_rightclick = homedecor.toggle_light, on_rightclick = homedecor.toggle_light,
on_punch = digiline_on_punch on_punch = digiline_on_punch
}) })
end end
end
------------------------------------------ ------------------------------------------
-- Simple non-dimmable, on/off-only lights -- Simple non-dimmable, on/off-only lights
@ -805,6 +755,15 @@ for _, light_brightn_name in ipairs({"off", "on"}) do
local onflag = (light_brightn_name == "on") local onflag = (light_brightn_name == "on")
local nici = (light_brightn_name == "off") and 1 or nil 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" 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 if onflag then gen_ls_tex_white = "homedecor_generic_light_source_white.png" end
@ -821,7 +780,7 @@ for _, light_brightn_name in ipairs({"off", "on"}) do
end end
homedecor.register("plasma_ball_"..light_brightn_name, { homedecor.register("plasma_ball_"..light_brightn_name, {
description = S("Plasma Ball"), description = S("Plasma Ball/light"),
mesh = "homedecor_plasma_ball.obj", mesh = "homedecor_plasma_ball.obj",
tiles = { tiles = {
{ name = "homedecor_generic_plastic.png", color = homedecor.color_black }, { name = "homedecor_generic_plastic.png", color = homedecor.color_black },
@ -845,8 +804,8 @@ for _, light_brightn_name in ipairs({"off", "on"}) do
{items = {"homedecor:plasma_ball_on"}}, {items = {"homedecor:plasma_ball_on"}},
} }
}, },
mesecons = homedecor.mesecon_xz_light, mesecons = homedecor.mesecon_alldir_light,
digiline = homedecor.digiline_xz_light, digiline = homedecor.digiline_alldir_light,
on_punch = digiline_on_punch on_punch = digiline_on_punch
}) })
@ -861,7 +820,7 @@ for _, light_brightn_name in ipairs({"off", "on"}) do
description = "Rope lighting (on floor)", description = "Rope lighting (on floor)",
inventory_image = "homedecor_rope_light_on_floor.png", inventory_image = "homedecor_rope_light_on_floor.png",
paramtype = "light", paramtype = "light",
light_source = brightn_light_source[light_brightn_name], light_source = word_to_bright[light_brightn_name],
walkable = false, walkable = false,
sunlight_propagates = true, sunlight_propagates = true,
tiles = { gen_ls_tex_white }, tiles = { gen_ls_tex_white },
@ -885,20 +844,20 @@ for _, light_brightn_name in ipairs({"off", "on"}) do
"homedecor:rope_light_on_floor_off", "homedecor:rope_light_on_floor_off",
"group:mesecon_conductor_craftable" "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(), sounds = default.node_sound_stone_defaults(),
on_rightclick = homedecor.toggle_light,
drop = { drop = {
items = { items = {
{items = {"homedecor:rope_light_on_floor_on"} }, {items = {"homedecor:rope_light_on_floor_"..di} },
} }
}, },
on_rightclick = on_rc,
mesecons = { mesecons = {
conductor = { conductor = {
state = mesecon and (onflag and mesecon.state.on or mesecon.state.off), state = mesecon and (onflag and mesecon.state.on or mesecon.state.off),
onstate = "homedecor:rope_light_on_floor_on", onstate = "homedecor:rope_light_on_floor_on",
offstate = "homedecor:rope_light_on_floor_off", offstate = "homedecor:rope_light_on_floor_off",
rules = rules_xz rules = rules_alldir
}, },
} }
}) })
@ -907,7 +866,7 @@ for _, light_brightn_name in ipairs({"off", "on"}) do
description = "Rope lighting (on ceiling)", description = "Rope lighting (on ceiling)",
inventory_image = "homedecor_rope_light_on_ceiling.png", inventory_image = "homedecor_rope_light_on_ceiling.png",
paramtype = "light", paramtype = "light",
light_source = brightn_light_source[light_brightn_name], light_source = word_to_bright[light_brightn_name],
walkable = false, walkable = false,
sunlight_propagates = true, sunlight_propagates = true,
tiles = { gen_ls_tex_white }, tiles = { gen_ls_tex_white },
@ -931,14 +890,14 @@ for _, light_brightn_name in ipairs({"off", "on"}) do
"homedecor:rope_light_on_ceiling_off", "homedecor:rope_light_on_ceiling_off",
"group:mesecon_conductor_craftable" "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(), sounds = default.node_sound_stone_defaults(),
on_rightclick = homedecor.toggle_light,
drop = { drop = {
items = { items = {
{items = {"homedecor:rope_light_on_ceiling_on"}}, {items = {"homedecor:rope_light_on_ceiling_"..di}},
} }
}, },
on_rightclick = on_rc,
mesecons = { mesecons = {
conductor = { conductor = {
state = mesecon and (onflag and mesecon.state.on or mesecon.state.off), state = mesecon and (onflag and mesecon.state.on or mesecon.state.off),
@ -950,7 +909,7 @@ for _, light_brightn_name in ipairs({"off", "on"}) do
}) })
homedecor.register("wall_lamp_"..light_brightn_name, { homedecor.register("wall_lamp_"..light_brightn_name, {
description = S("Wall Lamp"), description = S("Wall Lamp/light"),
mesh = "homedecor_wall_lamp.obj", mesh = "homedecor_wall_lamp.obj",
tiles = { tiles = {
{ name = "homedecor_generic_metal.png", color = homedecor.color_med_grey }, { name = "homedecor_generic_metal.png", color = homedecor.color_med_grey },
@ -1841,72 +1800,91 @@ unifieddyes.register_color_craft({
minetest.register_alias("chains:chain_top", "homedecor:chain_steel_top") 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: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_steel", "homedecor:chandelier_steel")
minetest.register_alias("chains:chandelier_brass", "homedecor:chandelier_brass") 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", "homedecor:glowlight_half_14")
minetest.register_alias("homedecor:glowlight_half_max", "homedecor:glowlight_half_on") 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", "homedecor:glowlight_quarter_14")
minetest.register_alias("homedecor:glowlight_quarter_max", "homedecor:glowlight_quarter_on") 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", "homedecor:glowlight_small_cube_14")
minetest.register_alias("homedecor:glowlight_small_cube_max", "homedecor:glowlight_small_cube_on") 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:plasma_lamp", "homedecor:plasma_lamp_14")
minetest.register_alias("homedecor:rope_light_on_floor_max", "homedecor:rope_light_on_floor_on") 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:ground_lantern", "homedecor:ground_lantern_14")
minetest.register_alias("homedecor:rope_light_on_ceiling_max", "homedecor:rope_light_on_ceiling_on") 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:hanging_lantern", "homedecor:hanging_lantern_14")
minetest.register_alias("homedecor:plasma_lamp_max", "homedecor:plasma_lamp_on") 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:ceiling_lantern", "homedecor:ceiling_lantern_14")
minetest.register_alias("homedecor:plasma_ball_max", "homedecor:plasma_ball_on") 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:lattice_lantern_large", "homedecor:lattice_lantern_large_14")
minetest.register_alias("homedecor:ground_lantern_max", "homedecor:ground_lantern_on") 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:lattice_lantern_small", "homedecor:lattice_lantern_small_14")
minetest.register_alias("homedecor:hanging_lantern_max", "homedecor:hanging_lantern_on") 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:desk_lamp", "homedecor:desk_lamp_14")
minetest.register_alias("homedecor:ceiling_lantern_max", "homedecor:ceiling_lantern_on") 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:ceiling_lamp", "homedecor:ceiling_lamp_14")
minetest.register_alias("homedecor:lattice_lantern_large_max", "homedecor:lattice_lantern_large_on") 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:table_lamp", "homedecor:table_lamp_14")
minetest.register_alias("homedecor:lattice_lantern_small_max", "homedecor:lattice_lantern_small_on") 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:standing_lamp", "homedecor:standing_lamp_14")
minetest.register_alias("homedecor:desk_lamp_max", "homedecor:desk_lamp_on") minetest.register_alias("homedecor:standing_lamp_max", "homedecor:standing_lamp_14")
minetest.register_alias("homedecor:ceiling_lamp", "homedecor:ceiling_lamp_on") minetest.register_alias("3dforniture:table_lamp", "homedecor:table_lamp_14")
minetest.register_alias("homedecor:ceiling_lamp_max", "homedecor:ceiling_lamp_on") minetest.register_alias("3dforniture:table_lamp_max", "homedecor:table_lamp_14")
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:torch_wall", "homedecor:torch_wall") minetest.register_alias("3dforniture:torch_wall", "homedecor:torch_wall")
minetest.register_alias("torch_wall", "homedecor:torch_wall") minetest.register_alias("torch_wall", "homedecor:torch_wall")
if minetest.get_modpath("darkage") then minetest.register_alias("homedecor:plasma_ball", "homedecor:plasma_ball_on")
minetest.register_alias("homedecor:lattice_lantern_large_off", "darkage:lamp") minetest.register_alias("homedecor:wall_lamp", "homedecor:wall_lamp_on")
minetest.register_alias("homedecor:lattice_lantern_large_low", "darkage:lamp")
minetest.register_alias("homedecor:lattice_lantern_large_med", "darkage:lamp") minetest.register_alias("homedecor:rope_light_on_floor_0", "homedecor:rope_light_on_floor_off")
minetest.register_alias("homedecor:lattice_lantern_large_hi", "darkage:lamp") minetest.register_alias("homedecor:rope_light_on_floor_14", "homedecor:rope_light_on_floor_on")
minetest.register_alias("homedecor:lattice_lantern_large_max", "darkage:lamp")
minetest.register_alias("homedecor:lattice_lantern_large_on", "darkage:lamp") minetest.register_alias("homedecor:rope_light_on_ceiling_0", "homedecor:rope_light_on_ceiling_off")
minetest.register_alias("homedecor:lattice_lantern_large", "darkage:lamp") 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 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

View File

Before

Width:  |  Height:  |  Size: 6.2 KiB

After

Width:  |  Height:  |  Size: 6.2 KiB

View File

Before

Width:  |  Height:  |  Size: 4.0 KiB

After

Width:  |  Height:  |  Size: 4.0 KiB

View File

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

@ -106,7 +106,7 @@ minetest.register_node(":homedecor:curtain_closed", {
drawtype = 'signlike', drawtype = 'signlike',
use_texture_alpha = true, use_texture_alpha = true,
walkable = false, 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(), sounds = default.node_sound_leaves_defaults(),
paramtype = "light", paramtype = "light",
paramtype2 = "colorwallmounted", paramtype2 = "colorwallmounted",
@ -116,12 +116,7 @@ minetest.register_node(":homedecor:curtain_closed", {
unifieddyes.fix_rotation(pos, placer, itemstack, pointed_thing) unifieddyes.fix_rotation(pos, placer, itemstack, pointed_thing)
end, end,
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) 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}) minetest.set_node(pos, { name = "homedecor:curtain_open", param2 = node.param2 })
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
return itemstack return itemstack
end end
}) })
@ -143,12 +138,7 @@ minetest.register_node(":homedecor:curtain_open", {
unifieddyes.fix_rotation(pos, placer, itemstack, pointed_thing) unifieddyes.fix_rotation(pos, placer, itemstack, pointed_thing)
end, end,
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) 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}) minetest.set_node(pos, { name = "homedecor:curtain_closed", param2 = node.param2 })
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
return itemstack return itemstack
end end
}) })
@ -390,7 +380,7 @@ minetest.register_craft({
minetest.register_craft( { minetest.register_craft( {
output = "homedecor:curtain_closed 4", output = "homedecor:curtain_open 4",
recipe = { recipe = {
{ "wool:white", "", ""}, { "wool:white", "", ""},
{ "wool:white", "", ""}, { "wool:white", "", ""},
@ -399,7 +389,7 @@ minetest.register_craft( {
}) })
minetest.register_craft( { minetest.register_craft( {
output = "homedecor:curtain_closed 4", output = "homedecor:curtain_open 4",
recipe = { recipe = {
{ "cottages:wool", "", ""}, { "cottages:wool", "", ""},
{ "cottages:wool", "", ""}, { "cottages:wool", "", ""},