Kryzeth Standard Library

event.event

Methods23

function Event.register(event_id: defines.events | integer | string | defines.events | integer | string[], handler: function, filter: EventFilter | nil, pattern: any, options: nil | table) -> StdLib.Event

Registers a handler for the given events. If a nil handler is passed, remove the given events and stop listening to them. <p>Events dispatch in the order they are registered. <p>An event ID can be obtained via @{defines.events}, @{LuaBootstrap.generateeventname|script.generateeventname} which is in <span class="types">@{int}</span>, and can be a custom input name which is in <span class="types">@{string}</span>. <p>The event_id parameter takes in either a single, multiple, or mixture of @{defines.events}, @{int}, and @{string}. @usage -- Create an event that prints the current tick every tick. Event.register(defines.events.on_tick, function(event) game.print(event.tick) end) -- Register something for Nth tick using negative numbers. Event.register(-120, function() game.print('Every 120 ticks') end -- Function call chaining Event.register(event1, handler1).register(event2, handler2)

Parameters
event_iddefines.events | integer | string | defines.events | integer | string[]
handlerfunction

the function to call when the given events are triggered

filterEventFilter | nil

[opt=nil] native Factorio event filters

patternany

[opt=nil] an optional value passed as the second parameter to the handler

optionsnil | table

[opt=nil] a table of options that take precedence over the module options.

Returns
StdLib.Event

Event module object allowing for call chaining

function Event.remove(event_id: defines.events | integer | string | {defines.events | integer | string}, handler: function[opt] | nil, pattern: any) -> StdLib.Event

Removes a handler from the given events. <p>When the last handler for an event is removed, stop listening to that event. <p>An event ID can be obtained via @{defines.events}, @{LuaBootstrap.generateeventname|script.generateeventname} which is in <span class="types">@{int}</span>, and can be a custom input name which is in <span class="types">@{string}</span>. <p>The event_id parameter takes in either a single, multiple, or mixture of @{defines.events}, @{int}, and @{string}.

Parameters
event_iddefines.events | integer | string | {defines.events | integer | string}
handlerfunction[opt] | nil

the handler to remove, if not present remove all registered handlers for the event_id

patternany
Returns
StdLib.Event

Event module object allowing for call chaining

function Event.on_load(...) -> StdLib.Event

Shortcut for Event.register(Event.core_events.on_load, function) @return (<span class="types">@{Event}</span>) Event module object allowing for call chaining

function Event.on_load_if(truthy, ...) -> StdLib.Event | StdLib.Event
function Event.on_configuration_changed(...) -> StdLib.Event

Shortcut for Event.register(Event.core_events.on_configuration_changed, function) @return (<span class="types">@{Event}</span>) Event module object allowing for call chaining

function Event.on_init(...) -> StdLib.Event

Shortcut for Event.register(Event.core_events.on_init, function) @return (<span class="types">@{Event}</span>) Event module object allowing for call chaining

function Event.on_init_if(truthy, ...) -> StdLib.Event | StdLib.Event
function Event.on_nth_tick(nth_tick, ...) -> StdLib.Event

Shortcut for Event.register(-nthTick, function) @return (<span class="types">@{Event}</span>) Event module object allowing for call chaining

function Event.on_event(event_id: defines.events | integer | string | defines.events | integer | string[], handler: function, filter: EventFilter | nil, pattern: any, options: nil | table) -> StdLib.Event

Shortcut for Event.register(defines.events, function) @function Event.on_event @return (<span class="types">@{Event}</span>) Event module object allowing for call chaining

Parameters
event_iddefines.events | integer | string | defines.events | integer | string[]
handlerfunction

the function to call when the given events are triggered

filterEventFilter | nil

[opt=nil] native Factorio event filters

patternany

[opt=nil] an optional value passed as the second parameter to the handler

optionsnil | table

[opt=nil] a table of options that take precedence over the module options.

Returns
StdLib.Event

Event module object allowing for call chaining

function Event.register_if(truthy, id, ...) -> StdLib.Event | StdLib.Event
function Event.on_event_if(truthy, id, ...) -> StdLib.Event | StdLib.Event
function Event.dispatch(event) -> nil

Calls the handlers that are registered to the given event. <p>Abort calling remaining handlers if any one of them has invalid userdata. <p>Handlers are dispatched in the order they were created. @param event (<span class="types">@{event_data}</span>) the event data table @see https://forums.factorio.com/viewtopic.php?t=32039#p202158 Invalid Event Objects

function Event.register_player(bool) -> StdLib.Event
function Event.register_force(bool) -> StdLib.Event
function Event.register_surface(bool) -> StdLib.Event
function Event.generate_event_name(event_name: string) -> id defines.events

Retrieves or generates an event ID and stores it in Event.custom_events.

Parameters
event_namestring

The custom name for the event.

Returns
iddefines.events

The generated event ID.

@usage Event.register(Event.generateeventname("mycustomevent"), handler)

function Event.set_event_name(event_name, id) -> nil
function Event.get_event_name(event_name) -> nil
function Event.raise_event(...) -> nil

@todo complete stub

function Event.get_event_handler(event_id) -> table

Get event handler.

function Event.set_protected_mode(bool) -> StdLib.Event

Set protected mode.

function Event.set_debug_mode(bool) -> StdLib.Event

Set debug mode default for Event module.

function Event.set_option(option, bool) -> StdLib.Event

Set default options for the event module.

Fields11

Event.__class: string = "Event"
Event.registry: table

Holds registered events

Event.custom_events: table

Holds custom event ids

Event.stop_processing: table

just has to be unique

Event.Filters : unknown
Event.__index : unknown
Event.options: table
Event.core_events: table
Event.script: table
Event.debug_mode: true
Event.dump_data : unknown