60 lines
1.5 KiB
Lua
60 lines
1.5 KiB
Lua
|
|
local aux = dofile(cleaner.modpath .. "/misc_functions.lua")
|
|
|
|
-- populate entities list from file in world path
|
|
local entities_data = aux.get_world_data().entities
|
|
|
|
|
|
-- START: backward compat
|
|
|
|
local e_path = core.get_worldpath() .. "/clean_entities.json"
|
|
local e_file = io.open(e_path, "r")
|
|
|
|
if e_file then
|
|
cleaner.log("action", "found deprecated clean_entities.json, updating")
|
|
|
|
local data_in = core.parse_json(e_file:read("*a"))
|
|
e_file:close()
|
|
if data_in and data_in.remove then
|
|
for _, r in ipairs(data_in.remove) do
|
|
table.insert(entities_data.remove, r)
|
|
end
|
|
end
|
|
|
|
-- don't read deprecated file again
|
|
os.rename(e_path, e_path .. ".old")
|
|
end
|
|
|
|
local e_path_old = core.get_worldpath() .. "/clean_entities.txt"
|
|
e_file = io.open(e_path_old, "r")
|
|
|
|
if e_file then
|
|
cleaner.log("action", "found deprecated clean_entities.txt, converting to json")
|
|
|
|
local data_in = string.split(e_file:read("*a"), "\n")
|
|
for _, e in ipairs(data_in) do
|
|
e = e:trim()
|
|
if e ~= "" and e:sub(1, 1) ~= "#" then
|
|
table.insert(entities_data.remove, e)
|
|
end
|
|
end
|
|
|
|
e_file:close()
|
|
os.rename(e_path_old, e_path_old .. ".bak") -- don't read deprecated file again
|
|
end
|
|
|
|
-- END: backward compat
|
|
|
|
|
|
entities_data.remove = aux.clean_duplicates(entities_data.remove)
|
|
|
|
-- update json file with any changes
|
|
aux.update_world_data("entities", entities_data)
|
|
|
|
core.register_on_mods_loaded(function()
|
|
for _, e in ipairs(entities_data.remove) do
|
|
cleaner.log("action", "registering entity for removal: " .. e)
|
|
cleaner.register_entity_removal(e)
|
|
end
|
|
end)
|