This commit is contained in:
Jordan Irwin 2021-07-12 08:40:45 -07:00
parent 774b22a55b
commit 261d0ed5e7
7 changed files with 53 additions and 17 deletions

View file

@ -1,4 +1,3 @@
TODO:
- add chat commands to update cleaning in-game
- add API

39
api.lua Normal file
View file

@ -0,0 +1,39 @@
local replace_items = {}
local replace_nodes = {}
function cleaner.get_replace_items()
return replace_items
end
function cleaner.get_replace_nodes()
return replace_nodes
end
function cleaner.remove_entity(src)
core.register_entity(":" .. src, {
on_activate = function(self, staticdata)
self.object:remove()
end,
})
end
function cleaner.remove_node(src)
core.register_node(":" .. src, {
groups = {to_remove=1},
})
end
function cleaner.replace_item(src, tgt)
replace_items[src] = tgt
end
function cleaner.replace_node(src, tgt)
core.register_node(":" .. src, {
groups = {to_replace=1},
})
replace_nodes[src] = tgt
end

View file

@ -1,4 +1,8 @@
v1.2
----
- added API
v1.1
----
- uses "register_lbm" with "run_at_every_load" instead of "register_abm" to save resources

View file

@ -46,10 +46,5 @@ end
for _, e in ipairs(e_list.remove) do
cleaner.log("debug", "Cleaning entity: " .. e)
core.register_entity(":" .. e, {
on_activate = function(self, staticdata)
self.object:remove()
end,
})
cleaner.remove_entity(e)
end

View file

@ -32,6 +32,7 @@ end
local scripts = {
"api",
"entities",
"nodes",
"items",

View file

@ -25,9 +25,13 @@ if i_file then
i_file:close()
end
for i_old, i_new in pairs(i_list.replace) do
cleaner.replace_item(i_old, i_new)
end
-- register actions for after server startup
core.register_on_mods_loaded(function()
for i_old, i_new in pairs(i_list.replace) do
for i_old, i_new in pairs(cleaner.get_replace_items()) do
cleaner.log("action", "replacing item \"" .. i_old .. "\" with \"" .. i_new .. "\"")
if not core.registered_items[i_old] then

View file

@ -50,10 +50,7 @@ end
for _, n in ipairs(n_list.remove) do
cleaner.log("debug", "Cleaning node: " .. n)
core.register_node(":" .. n, {
groups = {to_remove=1},
})
cleaner.remove_node(n)
end
core.register_lbm({
@ -67,10 +64,7 @@ core.register_lbm({
for n_old, n_new in pairs(n_list.replace) do
cleaner.log("debug", "Replacing node \"" .. n_old .. "\" with \"" .. n_new .. "\"")
core.register_node(":" .. n_old, {
groups = {to_replace=1},
})
cleaner.replace_node(n_old, n_new)
end
core.register_lbm({
@ -80,7 +74,7 @@ core.register_lbm({
action = function(pos, node)
core.remove_node(pos)
local new_node_name = n_list.replace[node.name]
local new_node_name = cleaner.get_replace_nodes()[node.name]
local new_node = core.registered_nodes[new_node_name]
if new_node then
core.place_node(pos, new_node)