UnrealisticReactors/control.lua
2024-07-14 22:14:25 +03:00

77 lines
2.2 KiB
Lua

local rpath = "scripts."
require(rpath .. "const") -- globals
local mod = require(rpath .. "init")
local gui = require(rpath .. "gui.init")
local events = require(rpath .. "events.init")
local interface = require(rpath .. "interface")
local network = require(rpath .. "heat.network")
local fx = require(rpath .. "fx")
-- INITIALIZING AND UPDATING FUNCTIONS
-- mod initialization
script.on_init(mod.init)
script.on_load(mod.load)
script.on_configuration_changed(mod.migration)
-- hook ticks
script.on_event(events.defined.tick, function (event)
mod.tick(event.tick)
end)
-- hook gui
script.on_event(events.defined.gui.opened, function (event)
gui.opened(event.player_index)
end)
script.on_event(events.defined.gui.clicked, function (event)
gui.clicked(event.player_index, event.element, event.tick)
end)
-- hook heat network
script.on_event(events.defined.removed.surface, function (event)
network.remove_from_surface(event.surface_index)
end)
script.on_event(events.defined.removed.chunk, function (event)
local z = event.surface_index
for _,p in pairs(event.positions) do
network.remove_from_chunk(p.x,p.y,z)
end
end)
-- hook fx
script.on_event(events.defined.trigger.effect, function (event)
fx.effect(event.effect_id, event.target_entity, event.force, event.tick)
end)
-- hook construct events
script.on_event(events.defined.pipette, function (event)
events.construct.pipette(event.player_index, event.item)
end)
script.on_event(events.defined.added.entity, function (event)
events.construct.entity(event.created_entity or event.entity, event.tick)
end)
-- hook destruct events
script.on_event(events.defined.removed.ghost, function (event)
if event.ghost.type == "item-request-proxy" then return end
events.destruct.ghost(event.ghost)
end)
script.on_event(events.defined.removed.entity, function (event)
local has_died = event.name == defines.events.on_entity_died
events.destruct.entity(event.entity, event.tick, has_died, event.name)
end)
-- add events filter
for action,event_filters in pairs(events.filters) do
for key,filters in pairs(event_filters) do
for _,event in pairs(events.defined[action][key]) do
script.set_event_filter(event, filters)
end
end
end
remote.add_interface(REMOTE_INTERFACE_NAME, interface)