add /drawers_fix command to restore broken drawer visuals

master
BuckarooBanzay 2021-09-03 09:56:32 +02:00
parent fef023412b
commit 60651aa486
4 changed files with 34 additions and 1 deletions

View File

@ -38,5 +38,5 @@ read_globals = {
"advtrains",
"letters", "player_monoids",
"pipeworks", "planetoidgen",
"xban"
"xban", "drawers"
}

28
chat/drawers_fix.lua Normal file
View File

@ -0,0 +1,28 @@
minetest.register_chatcommand("drawers_fix", {
description = "recreates the drawer-visuals in your area",
func = function(name)
local player = minetest.get_player_by_name(name)
if not player then
return
end
local t1 = minetest.get_us_time()
local ppos = player:get_pos()
local pos1 = vector.subtract(ppos, 10)
local pos2 = vector.add(ppos, 10)
local poslist = minetest.find_nodes_in_area(pos1, pos2, {"group:drawer"})
for _, pos in ipairs(poslist) do
drawers.remove_visuals(pos)
drawers.spawn_visuals(pos)
end
local t2 = minetest.get_us_time()
local diff = t2 - t1
local millis = diff / 1000
return true, "Restored " .. #poslist .. " drawers in " .. millis .. " ms"
end
})

View File

@ -211,3 +211,7 @@ end
if minetest.get_modpath("illumination") then
dofile(MP.."/illumination.lua")
end
if minetest.get_modpath("drawers") then
dofile(MP.."/chat/drawers_fix.lua")
end

View File

@ -15,6 +15,7 @@ computer,
currency,
digistuff,
digtron,
drawers,
ehlphabet,
fancy_vend,
gravity_manager,