Move node & entity functions into segregated modules

master
Jordan Irwin 2021-05-18 18:11:24 -07:00
parent 5c58fd8f5d
commit 839c32f5c0
3 changed files with 88 additions and 81 deletions

37
entities.lua Normal file
View File

@ -0,0 +1,37 @@
local old_entities = {}
-- Populate entities list from file in world path
local e_list = nil
local e_path = core.get_worldpath() .. "/clean_entities.txt"
local e_file = io.open(e_path, "r")
if e_file then
e_list = e_file:read("*a")
e_file:close()
else
-- Create empty file
e_file = io.open(e_path, "w")
if e_file then
e_file:close()
end
end
if e_list then
cleaner.log("debug", "Loading entities to clean from file ...")
e_list = string.split(e_list, "\n")
for _, entity_name in ipairs(e_list) do
table.insert(old_entities, entity_name)
end
end
for _, entity_name in ipairs(old_entities) do
cleaner.log("debug", "Cleaning entity: " .. entity_name)
core.register_entity(":" .. entity_name, {
on_activate = function(self, staticdata)
self.object:remove()
end,
})
end

View File

@ -5,6 +5,7 @@
cleaner = {}
cleaner.modname = core.get_current_modname()
cleaner.modpath = core.get_modpath(cleaner.modname)
local cleaner_debug = core.settings:get_bool("enable_debug_mods", false)
@ -21,86 +22,11 @@ function cleaner.log(lvl, msg)
end
-- ENTITIES
local scripts = {
"entities",
"nodes",
}
local old_entities = {}
-- Populate entities list from file in world path
local e_list = nil
local e_path = core.get_worldpath() .. "/clean_entities.txt"
local e_file = io.open(e_path, "r")
if e_file then
e_list = e_file:read("*a")
e_file:close()
else
-- Create empty file
e_file = io.open(e_path, "w")
if e_file then
e_file:close()
end
for _, script in ipairs(scripts) do
dofile(cleaner.modpath .. "/" .. script .. ".lua")
end
if e_list then
cleaner.log("debug", "Loading entities to clean from file ...")
e_list = string.split(e_list, "\n")
for _, entity_name in ipairs(e_list) do
table.insert(old_entities, entity_name)
end
end
for _, entity_name in ipairs(old_entities) do
cleaner.log("debug", "Cleaning entity: " .. entity_name)
core.register_entity(":" .. entity_name, {
on_activate = function(self, staticdata)
self.object:remove()
end,
})
end
-- NODES
local old_nodes = {}
-- Populate nodes list from file in world path
local n_list = nil
local n_path = core.get_worldpath() .. "/clean_nodes.txt"
local n_file = io.open(n_path, "r")
if n_file then
n_list = n_file:read("*a")
n_file:close()
else
-- Create empty file
n_file = io.open(n_path, "w")
if n_file then
n_file:close()
end
end
if n_list then
cleaner.log("debug", "Loading nodes to clean from file ...")
n_list = string.split(n_list, "\n")
for _, node_name in ipairs(n_list) do
table.insert(old_nodes, node_name)
end
end
for _, node_name in ipairs(old_nodes) do
cleaner.log("debug", "Cleaning node: " .. node_name)
core.register_node(":" .. node_name, {
groups = {old=1},
})
end
core.register_abm({
nodenames = {"group:old"},
interval = 1,
chance = 1,
action = function(pos, node)
core.remove_node(pos)
end,
})

44
nodes.lua Normal file
View File

@ -0,0 +1,44 @@
local old_nodes = {}
-- Populate nodes list from file in world path
local n_list = nil
local n_path = core.get_worldpath() .. "/clean_nodes.txt"
local n_file = io.open(n_path, "r")
if n_file then
n_list = n_file:read("*a")
n_file:close()
else
-- Create empty file
n_file = io.open(n_path, "w")
if n_file then
n_file:close()
end
end
if n_list then
cleaner.log("debug", "Loading nodes to clean from file ...")
n_list = string.split(n_list, "\n")
for _, node_name in ipairs(n_list) do
table.insert(old_nodes, node_name)
end
end
for _, node_name in ipairs(old_nodes) do
cleaner.log("debug", "Cleaning node: " .. node_name)
core.register_node(":" .. node_name, {
groups = {old=1},
})
end
core.register_abm({
nodenames = {"group:old"},
interval = 1,
chance = 1,
action = function(pos, node)
core.remove_node(pos)
end,
})