Add legacy support for updating node meta

master
Wuzzy 2022-04-23 18:46:50 +02:00
parent f447635651
commit 5a1c085384
4 changed files with 124 additions and 13 deletions

View File

@ -1,4 +1,5 @@
local water_level = tonumber(minetest.get_mapgen_setting("water_level"))
local S = minetest.get_translator("rp_default")
--
-- Functions/ABMs
@ -127,6 +128,43 @@ minetest.register_lbm(
}
)
-- Update nodes after the rename orgy after 1.5.3
minetest.register_lbm(
{
label = "Update signs",
name = "rp_default:update_signs",
nodenames = {"rp_default:sign"},
action = function(pos, node)
local meta = minetest.get_meta(pos)
local text = meta:get_string("text")
meta:set_string("infotext", S('"@1"', text))
end
}
)
minetest.register_lbm(
{
label = "Update bookshelves",
name = "rp_default:update_bookshelves",
nodenames = {"rp_default:bookshelf"},
action = function(pos, node)
local def = minetest.registered_nodes[node.name]
def.on_construct(pos)
end
}
)
minetest.register_lbm(
{
label = "Update chests",
name = "rp_default:update_chests",
nodenames = {"rp_default:chest"},
action = function(pos, node)
local def = minetest.registered_nodes[node.name]
def.on_construct(pos)
end
}
)
-- Vertical plants
function default.dig_up(pos, node, digger)

View File

@ -400,6 +400,19 @@ achievements.register_achievement(
dignode = "rp_jewels:jewel_ore",
})
-- Update node after the rename orgy after 1.5.3
minetest.register_lbm(
{
label = "Update jeweler's workbench",
name = "rp_jewels:update_bench",
nodenames = {"rp_jewels:bench"},
action = function(pos, node)
local def = minetest.registered_nodes[node.name]
def.on_construct(pos)
end
}
)
-- The tool jewel definitions
dofile(minetest.get_modpath("rp_jewels").."/jewels.lua")

View File

@ -5,6 +5,13 @@
--
local S = minetest.get_translator("rp_locks")
local N = function(s) return s end
local INFOTEXT_PUBLIC = N("Locked Chest")
local INFOTEXT_OWNED = N("Locked Chest (Owned by @1)")
local INFOTEXT_CRACKED_PUBLIC = N("Locked Chest (cracked open)")
local INFOTEXT_CRACKED_OWNED = N("Locked Chest (cracked open) (Owned by @1)")
local INFOTEXT_NAMED_OWNED = N("@1 (Owned by @2)")
locks = {}
@ -91,9 +98,9 @@ minetest.register_tool(
local owner = meta:get_string("lock_owner")
if owner == "" then
meta:set_string("infotext", S("Locked Chest (cracked open)"))
meta:set_string("infotext", S(INFOTEXT_CRACKED_PUBLIC))
else
meta:set_string("infotext", S("Locked Chest (cracked open) (Owned by @1)", owner))
meta:set_string("infotext", S(INFOTEXT_CRACKED_OWNED, owner))
end
-- TODO: Add graphical effect to show success
@ -153,10 +160,10 @@ local put_lock = function(itemstack, putter, pointed_thing)
minetest.swap_node(pos, node)
local meta = minetest.get_meta(pos)
if name ~= "" then
meta:set_string("infotext", S("Locked Chest (Owned by @1)", name))
meta:set_string("infotext", S(INFOTEXT_OWNED, name))
meta:set_string("lock_owner", name)
else
meta:set_string("infotext", S("Locked Chest"))
meta:set_string("infotext", S(INFOTEXT_PUBLIC))
end
if not minetest.settings:get_bool("creative_mode") then
itemstack:take_item()
@ -199,7 +206,7 @@ minetest.register_node(
on_construct = function(pos)
local meta = minetest.get_meta(pos)
meta:set_int("lock_cracked", 0)
meta:set_string("infotext", S("Locked Chest"))
meta:set_string("infotext", S(INFOTEXT_PUBLIC))
local inv = meta:get_inventory()
inv:set_size("main", 8 * 4)
@ -208,7 +215,7 @@ minetest.register_node(
local name = player:get_player_name()
local meta = minetest.get_meta(pos)
meta:set_string("infotext", S("Locked Chest (Owned by @1)", name))
meta:set_string("infotext", S(INFOTEXT_OWNED, name))
meta:set_string("lock_owner", name)
end,
on_rightclick = function(pos, node, player)
@ -238,9 +245,9 @@ minetest.register_node(
meta:set_int("lock_cracked", 0)
local owner = meta:get_string("lock_owner")
if owner == "" then
meta:set_string("infotext", S("Locked Chest"))
meta:set_string("infotext", INFOTEXT_PUBLIC)
else
meta:set_string("infotext", S("Locked Chest (Owned by @1)", owner))
meta:set_string("infotext", S(INFOTEXT_OWNED, owner))
end
end,
allow_metadata_inventory_move = function(pos, from_l, from_i, to_l, to_i, cnt, player)
@ -288,10 +295,10 @@ minetest.register_node(
local meta = minetest.get_meta(pos)
if text == "" then
meta:set_string("infotext", S("Locked Chest (Owned by @1)",
meta:set_string("infotext", S(INFOTEXT_OWNED,
meta:get_string("lock_owner")))
else
meta:set_string("infotext", S("@1 (Owned by @2)",
meta:set_string("infotext", S(INFOTEXT_NAMED_OWNED,
text, meta:get_string("lock_owner")))
end
end,
@ -346,6 +353,33 @@ achievements.register_achievement(
times = 1,
})
-- Update node after the rename orgy after 1.5.3
minetest.register_lbm(
{
label = "Update locked chests",
name = "rp_locks:update_locked_chests",
nodenames = {"rp_locks:chest"},
action = function(pos, node)
local meta = minetest.get_meta(pos)
local owner = meta:get_string("lock_owner")
local cracked = meta:get_int("lock_cracked") == 1
if cracked then
if owner ~= "" then
meta:set_string("infotext", S(INFOTEXT_CRACKED_OWNED, owner))
else
meta:set_string("infotext", S(INFOTEXT_CRACKED_PUBLIC))
end
else
if owner ~= "" then
meta:set_string("infotext", S(INFOTEXT_OWNED, owner))
else
meta:set_string("infotext", S(INFOTEXT_PUBLIC))
end
end
end,
}
)
minetest.register_alias("locks:chest", "rp_locks:chest")
minetest.register_alias("locks:lock", "rp_locks:lock")
minetest.register_alias("locks:pick", "rp_locks:pick")

View File

@ -5,6 +5,10 @@
--
local S = minetest.get_translator("rp_music")
local INFOTEXT_ON = S("Music Player (on)")
local INFOTEXT_OFF = S("Music Player (off)")
local INFOTEXT_DISABLED = S("Music Player (disabled by server)")
music = {}
music.tracks = {
@ -23,7 +27,7 @@ if minetest.settings:get_bool("music_enable") then
local dp = minetest.hash_node_position(pos)
local meta = minetest.get_meta(pos)
meta:set_string("infotext", S("Music Player (off)"))
meta:set_string("infotext", INFOTEXT_OFF)
meta:set_int("music_player_enabled", 0)
if music.players[dp] ~= nil then
@ -36,7 +40,7 @@ if minetest.settings:get_bool("music_enable") then
local dp = minetest.hash_node_position(pos)
local meta = minetest.get_meta(pos)
meta:set_string("infotext", S("Music Player (on)"))
meta:set_string("infotext", INFOTEXT_ON)
meta:set_int("music_player_enabled", 1)
-- Get track or set random track if not set
@ -201,7 +205,7 @@ else
on_construct = function(pos)
local meta = minetest.get_meta(pos)
meta:set_string("infotext", S("Music Player (disabled by server)"))
meta:set_string("infotext", INFOTEXT_DISABLED)
end,
groups = {oddly_breakable_by_hand = 3, attached_node = 1}
@ -217,6 +221,28 @@ crafting.register_craft(
}
})
-- Update nodes after the rename orgy after 1.5.3
minetest.register_lbm(
{
label = "Update music players",
name = "rp_music:update_music_players",
nodenames = {"rp_music:player"},
action = function(pos, node)
local def = minetest.registered_nodes[node.name]
if minetest.settings:get_bool("music_enable") then
local meta = minetest.get_meta(pos)
if meta:get_int("music_player_enabled") == 1 then
meta:set_string("infotext", INFOTEXT_ON)
else
meta:set_string("infotext", INFOTEXT_OFF)
end
else
meta:set_string("infotext", INFOTEXT_DISABLED)
end
end
}
)
minetest.register_alias("music:player", "rp_music:player")
default.log("mod:rp_music", "loaded")