Module Event
Makes working with events in factorio a lot more simple.
Factorio can only have one handler registered per event. This module allows you to easily register multiple handlers for each event. Using this module is as simple as replacing script.on_event(...) with Event.register(...)
Usage:
require('stdlib/event/event')
Functions
| register (event, handler) | Registers a function for a given event. |
| dispatch (event) | Calls the registerd handlers Will stop dispatching remaning handlers if any handler passes invalid event userdata. |
| remove (event, handler) | Removes the handler from the event. |
Functions
- register (event, handler)
-
Registers a function for a given event. If a nil handler is passed remove all events and stop listening for that event.
Events are dispatched in the order they are registered.
Parameters:
- event defines.events or {defines.events,...} events to register
- handler function Function to call when event is triggered
Returns:
-
Event
Usage:
Event.register(defines.events.on_tick, function(event) print event.tick end) -- creates an event that prints the current tick every tick.
- dispatch (event)
-
Calls the registerd handlers
Will stop dispatching remaning handlers if any handler passes invalid event userdata.
Handlers are dispatched in the order they were created
Parameters:
- event table LuaEvent as created by script.raise_event
See also:
- remove (event, handler)
-
Removes the handler from the event. If it removes the last handler for an event stop listening for that event.
Parameters:
- event defines.events or {defines.events,...} events to remove the handler for
- handler function to remove
Returns:
-
Event