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

Compare commits

...

9 Commits

Author SHA1 Message Date
7e7b2bcabb use table.copy instead of own clone node 2019-06-18 15:04:08 -04:00
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
5 changed files with 53 additions and 69 deletions

View File

@ -89,28 +89,19 @@ end
-- 3d-ify default mtg wood and steel doors and trap doors -- 3d-ify default mtg wood and steel doors and trap doors
if minetest.get_modpath("doors") then 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 local def
for _,mat in ipairs({"wood", "steel"}) do 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" def.mesh = "homedecor_3d_door_"..mat.."_a.obj"
minetest.register_node(":doors:door_"..mat.."_a", def) 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" def.mesh = "homedecor_3d_door_"..mat.."_b.obj"
minetest.register_node(":doors:door_"..mat.."_b", def) minetest.register_node(":doors:door_"..mat.."_b", def)
end end
for _,mat in ipairs({"", "_steel"}) do 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.drawtype = "mesh"
def.mesh = "homedecor_3d_trapdoor"..mat..".obj" def.mesh = "homedecor_3d_trapdoor"..mat..".obj"
def.tiles = { def.tiles = {
@ -119,7 +110,7 @@ if minetest.get_modpath("doors") then
} }
minetest.register_node(":doors:trapdoor"..mat, def) 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.mesh = "homedecor_3d_trapdoor"..mat.."_open.obj"
def.drawtype = "mesh" def.drawtype = "mesh"
def.tiles = { def.tiles = {

View File

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

View File

@ -3,17 +3,6 @@
local S = homedecor.gettext local S = homedecor.gettext
local mesecons_mp = minetest.get_modpath("mesecons") 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 -- new doors using minetest_game doors API
local door_list = { local door_list = {
@ -181,22 +170,22 @@ for _, door in ipairs(door_list) do
local nn_b = "doors:homedecor_"..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 = table.copy(minetest.registered_nodes[nn_a])
def.use_texture_alpha = true def.use_texture_alpha = true
def.mesh = "door_a.obj" -- leaving this out will break the _a model 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 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 def.use_texture_alpha = true
minetest.register_node(":"..nn_b, def) minetest.register_node(":"..nn_b, def)
end end
if door.custom_model and hd_3d then 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" def.mesh = door.custom_model.."_a.obj"
minetest.register_node(":"..nn_a, def) 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" def.mesh = door.custom_model.."_b.obj"
minetest.register_node(":"..nn_b, def) minetest.register_node(":"..nn_b, def)
end end

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 = {
@ -51,7 +53,7 @@ local rules_alldir = {
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)
@ -132,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,
@ -182,10 +184,14 @@ function homedecor.toggle_light(pos, node, clicker, itemstack, pointed_thing)
local level = string.sub(node.name, sep + 1) local level = string.sub(node.name, sep + 1)
local n = tonumber(level) or 0 local n = tonumber(level) or 0
if level == "off" or n < 4 then if level == "on" then
newsuff = "_14" newsuff = "_off"
else elseif level == "off" then
newsuff = "_on"
elseif n > 3 then
newsuff = "_0" newsuff = "_0"
else
newsuff = "_14"
end end
minetest.swap_node(pos, {name = string.sub(node.name, 1, sep - 1)..newsuff, param2 = node.param2}) minetest.swap_node(pos, {name = string.sub(node.name, 1, sep - 1)..newsuff, param2 = node.param2})
@ -724,7 +730,7 @@ for brightness_level = 0, 14 do
paramtype2 = "color", paramtype2 = "color",
palette = "unifieddyes_palette_extended.png", palette = "unifieddyes_palette_extended.png",
walkable = false, walkable = false,
light_source = word_to_bright[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(),
@ -749,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
@ -765,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 },
@ -829,14 +844,14 @@ 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),
@ -875,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),
@ -894,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 },
@ -1785,6 +1800,7 @@ 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")
@ -1797,18 +1813,9 @@ minetest.register_alias("homedecor:glowlight_quarter_max", "homedecor:glowli
minetest.register_alias("homedecor:glowlight_small_cube", "homedecor:glowlight_small_cube_14") 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:glowlight_small_cube_max", "homedecor:glowlight_small_cube_14")
minetest.register_alias("homedecor:rope_light_14_floor", "homedecor:rope_light_on_floor_14")
minetest.register_alias("homedecor:rope_light_on_floor_max", "homedecor:rope_light_on_floor_14")
minetest.register_alias("homedecor:rope_light_on_ceiling", "homedecor:rope_light_on_ceiling_14")
minetest.register_alias("homedecor:rope_light_on_ceiling_max", "homedecor:rope_light_on_ceiling_14")
minetest.register_alias("homedecor:plasma_lamp", "homedecor:plasma_lamp_14") 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:plasma_lamp_max", "homedecor:plasma_lamp_14")
minetest.register_alias("homedecor:plasma_ball", "homedecor:plasma_ball_14")
minetest.register_alias("homedecor:plasma_ball_max", "homedecor:plasma_ball_14")
minetest.register_alias("homedecor:ground_lantern", "homedecor:ground_lantern_14") 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:ground_lantern_max", "homedecor:ground_lantern_14")
@ -1836,14 +1843,21 @@ minetest.register_alias("homedecor:table_lamp_max", "homedecor:table_
minetest.register_alias("homedecor:standing_lamp", "homedecor:standing_lamp_14") 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:standing_lamp_max", "homedecor:standing_lamp_14")
minetest.register_alias("homedecor:wall_lamp", "homedecor:wall_lamp_on")
minetest.register_alias("3dforniture:table_lamp", "homedecor:table_lamp_14") 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:table_lamp_max", "homedecor:table_lamp_14")
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")
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 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_half_"..name, "homedecor:glowlight_half_"..level)
minetest.register_alias("homedecor:glowlight_quarter_"..name, "homedecor:glowlight_quarter_"..level) minetest.register_alias("homedecor:glowlight_quarter_"..name, "homedecor:glowlight_quarter_"..level)

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", "", ""},