60 lines
2.0 KiB
Lua
60 lines
2.0 KiB
Lua
|
|
mod_gui = require("mod-gui")
|
|
require "todo/todo"
|
|
|
|
-- when creating a new game, initialize data structure
|
|
script.on_init(todo.mod_init)
|
|
|
|
-- When a player is joining, create the UI for them
|
|
script.on_event(defines.events.on_player_created, function(event)
|
|
local player = game.players[event.player_index]
|
|
todo.create_maximize_button(player)
|
|
end)
|
|
|
|
-- if the version of the mod or any other version changed
|
|
script.on_configuration_changed(function(_)
|
|
todo.mod_init()
|
|
end)
|
|
|
|
script.on_event(defines.events.on_gui_click, function(event)
|
|
todo.on_gui_click(event)
|
|
end)
|
|
|
|
script.on_event(defines.events.on_gui_closed, function(event)
|
|
if event.element and event.element.name == "todo_main_frame" then
|
|
local player = game.get_player(event.player_index)
|
|
todo.on_add_cancel_click(player)
|
|
todo.on_edit_cancel_click(player)
|
|
todo.on_import_cancel_click(player)
|
|
todo.on_export_cancel_click(player)
|
|
todo.destroy_clean_dialog(player)
|
|
todo.destroy_clean_confirm_dialog(player)
|
|
todo.minimize_main_frame(player)
|
|
elseif event.element and event.element.name == "todo_add_dialog" then
|
|
local player = game.get_player(event.player_index)
|
|
todo.on_add_cancel_click(player)
|
|
elseif event.element and event.element.name == "todo_edit_dialog" then
|
|
local player = game.get_player(event.player_index)
|
|
todo.on_edit_cancel_click(player)
|
|
end
|
|
end)
|
|
|
|
script.on_event(defines.events.on_lua_shortcut, function(event)
|
|
todo.on_lua_shortcut(event)
|
|
end)
|
|
|
|
script.on_event("todolist-toggle-ui", function(event)
|
|
local player = game.players[event.player_index]
|
|
todo.toggle_main_frame(player)
|
|
end)
|
|
|
|
script.on_event(defines.events.on_runtime_mod_setting_changed, function(event)
|
|
-- This can happen if the event was raised by a script.
|
|
-- We don't expect this to affect us so we will just ignore it.
|
|
if (event.player_index) then
|
|
local player = game.players[event.player_index]
|
|
local key = event.setting
|
|
todo.on_runtime_mod_setting_changed(player, key)
|
|
end
|
|
end)
|