Lua scripts can listen for game events using the global events API.
trx.events.before_level_file(callback)trx.events.after_level_file(callback)trx.events.after_level_state(callback)trx.events.on_game_start(callback)trx.events.on_pickup(callback)trx.events.on_control(callback)trx.events.on_control_post(callback)listener_id.trx.events.detach(listener_id)before_level_file
Happens prior to loading the level file.
Arguments:
level_numafter_level_file
Happens after the level finishes loading, prior to loading information from a savegame.
Arguments:
level_numafter_level_state
Happens after the level finishes loading, after loading information from a
savegame. If the game is started normally, this duplicates after_level_file.
Arguments:
level_numon_game_start
Happens after the level finishes loading and the game is about to start.
The difference from after_level_file and after_level_state is that this waits for the fade-to-black / cross-fade effects to
finish, and is suitable to play sound effects and run game logic.
Arguments:
level_numis_saveon_pickup
Happens just after Lara picks up an item.
Arguments:
item_numbefore_control
Happens on every logical game frame, before executing main game logic.
Arguments: none
after_control
Happens on every logical game frame, after executing main game logic.
Arguments: none
trx.events.before_level_file(function(level_num)
-- handle pre-file-load setup
end)
trx.events.after_level_state(function(level_num)
-- handle post-savegame state restore
end)
trx.events.on_pickup(function(item_num)
trx.console.log(trx.items[item_num].object_id)
end)
local control_handler = trx.events.on_control(function()
-- handle control loop event
end)
-- detach a handler
trx.events.detach(control_handler)