mirror of
https://github.com/PHIDIAS0303/ExpCluster.git
synced 2025-12-27 03:25:23 +09:00
Add player as an event argument
This commit is contained in:
@@ -14,7 +14,8 @@ ExpElement.events = {}
|
||||
--- @alias ExpElement.DrawCallback fun(def: ExpElement, parent: LuaGuiElement, ...): LuaGuiElement?, function?
|
||||
--- @alias ExpElement.PostDrawCallback fun(def: ExpElement, element: LuaGuiElement?, parent: LuaGuiElement, ...): table?
|
||||
--- @alias ExpElement.PostDrawCallbackAdder fun(self: ExpElement, definition: table | ExpElement.PostDrawCallback): ExpElement
|
||||
--- @alias ExpElement.OnEventAdder<E> fun(self: ExpElement, handler: fun(def: ExpElement, event: E, element: LuaGuiElement)): ExpElement
|
||||
--- @alias ExpElement.EventHandler<E> fun(def: ExpElement, player: LuaPlayer, element: LuaGuiElement, event: E)
|
||||
--- @alias ExpElement.OnEventAdder<E> fun(self: ExpElement, handler: fun(def: ExpElement, player: LuaPlayer, element: LuaGuiElement, event: E)): ExpElement
|
||||
|
||||
--- @class ExpElement._debug
|
||||
--- @field defined_at string
|
||||
@@ -41,7 +42,7 @@ ExpElement.events = {}
|
||||
--- @field _player_data ExpElement.PostDrawCallback?
|
||||
--- @field _force_data ExpElement.PostDrawCallback?
|
||||
--- @field _global_data ExpElement.PostDrawCallback?
|
||||
--- @field _events table<defines.events, function[]>
|
||||
--- @field _events table<defines.events, ExpElement.EventHandler<EventData>[]>
|
||||
--- @overload fun(parent: LuaGuiElement, ...: any): LuaGuiElement
|
||||
ExpElement._prototype = {
|
||||
_track_elements = false,
|
||||
@@ -393,18 +394,22 @@ local function event_handler(event)
|
||||
end
|
||||
|
||||
--- Raise all handlers for an event on this definition
|
||||
--- @param event EventData | { element: LuaGuiElement }
|
||||
--- @param event EventData | { element: LuaGuiElement, player_index: number? }
|
||||
function ExpElement._prototype:raise_event(event)
|
||||
local handlers = self._events[event.name]
|
||||
if not handlers then return end
|
||||
local player = event.player_index and game.get_player(event.player_index)
|
||||
if event.element then player = game.get_player(event.element.player_index) end
|
||||
for _, handler in ipairs(handlers) do
|
||||
handler(self, event, event.element)
|
||||
-- All gui elements will contain player and element, other events might have these as nil
|
||||
-- Therefore only the signature of on_event has these values as optional
|
||||
handler(self, player --[[ @as LuaPlayer ]], event.element, event --[[ @as EventData ]])
|
||||
end
|
||||
end
|
||||
|
||||
--- Add an event handler
|
||||
--- @param event defines.events
|
||||
--- @param handler fun(def: ExpElement, event: EventData, element: LuaGuiElement)
|
||||
--- @param handler fun(def: ExpElement, player: LuaPlayer?, element: LuaGuiElement?, event: EventData)
|
||||
--- @return ExpElement
|
||||
function ExpElement._prototype:on_event(event, handler)
|
||||
ExpElement.events[event] = event_handler
|
||||
|
||||
@@ -204,8 +204,7 @@ function Toolbar.create_button(options)
|
||||
|
||||
-- Setup auto toggle, required if there is a left element
|
||||
if auto_toggle or left_element then
|
||||
toolbar_button:on_click(function(def, event)
|
||||
local player = ExpGui.get_player(event)
|
||||
toolbar_button:on_click(function(def, player)
|
||||
if left_element then
|
||||
Toolbar.set_left_element_visible_state(left_element, player)
|
||||
else
|
||||
@@ -233,8 +232,7 @@ elements.close_toolbar = ExpGui.element("close_toolbar")
|
||||
width = 18,
|
||||
height = 36,
|
||||
}
|
||||
:on_click(function(def, event, element)
|
||||
local player = ExpGui.get_player(event)
|
||||
:on_click(function(def, player, element, event)
|
||||
if event.button == defines.mouse_button_type.left then
|
||||
Toolbar.set_left_element_visible_state(elements.toolbar_settings, player)
|
||||
else
|
||||
@@ -256,8 +254,7 @@ elements.open_toolbar = ExpGui.element("open_toolbar")
|
||||
width = 18,
|
||||
height = 20,
|
||||
}
|
||||
:on_click(function(def, event, element)
|
||||
local player = ExpGui.get_player(event)
|
||||
:on_click(function(def, player, element, event)
|
||||
if event.button == defines.mouse_button_type.left then
|
||||
Toolbar.set_left_element_visible_state(elements.toolbar_settings, player)
|
||||
else
|
||||
@@ -279,9 +276,8 @@ elements.clear_left_flow = ExpGui.element("clear_left_flow")
|
||||
width = 18,
|
||||
height = 20,
|
||||
}
|
||||
:on_click(function(def, event, element)
|
||||
:on_click(function(def, player, element)
|
||||
element.visible = false
|
||||
local player = ExpGui.get_player(event)
|
||||
for define in pairs(ExpGui.left_elements) do
|
||||
if define ~= elements.core_button_flow then
|
||||
Toolbar.set_left_element_visible_state(define, player, false, true)
|
||||
@@ -564,8 +560,7 @@ elements.toggle_toolbar = ExpGui.element("toggle_toolbar")
|
||||
:style(ExpGui.styles.sprite{
|
||||
size = 22,
|
||||
})
|
||||
:on_click(function(def, event, element)
|
||||
local player = ExpGui.get_player(event)
|
||||
:on_click(function(def, player, element)
|
||||
Toolbar.set_visible_state(player, element.toggled)
|
||||
end)
|
||||
|
||||
@@ -581,8 +576,7 @@ elements.reset_toolbar = ExpGui.element("reset_toolbar")
|
||||
size = 22,
|
||||
padding = -1,
|
||||
})
|
||||
:on_click(function(def, event, element)
|
||||
local player = ExpGui.get_player(event)
|
||||
:on_click(function(def, player, element)
|
||||
Toolbar.set_order(player, Toolbar.get_default_order())
|
||||
end)
|
||||
|
||||
@@ -596,8 +590,7 @@ elements.move_item_up = ExpGui.element("move_item_up")
|
||||
:style(ExpGui.styles.sprite{
|
||||
size = toolbar_button_small,
|
||||
})
|
||||
:on_click(function(def, event, element)
|
||||
local player = ExpGui.get_player(event)
|
||||
:on_click(function(def, player, element)
|
||||
local item = assert(element.parent.parent)
|
||||
move_toolbar_button(player, item, -1)
|
||||
end)
|
||||
@@ -612,8 +605,7 @@ elements.move_item_down = ExpGui.element("move_item_down")
|
||||
:style(ExpGui.styles.sprite{
|
||||
size = toolbar_button_small,
|
||||
})
|
||||
:on_click(function(def, event, element)
|
||||
local player = ExpGui.get_player(event)
|
||||
:on_click(function(def, player, element)
|
||||
local item = assert(element.parent.parent)
|
||||
move_toolbar_button(player, item, 1)
|
||||
end)
|
||||
@@ -637,8 +629,7 @@ elements.set_favourite = ExpGui.element("set_favourite")
|
||||
:style{
|
||||
width = 180,
|
||||
}
|
||||
:on_checked_state_changed(function(def, event, element)
|
||||
local player = ExpGui.get_player(event)
|
||||
:on_checked_state_changed(function(def, player, element)
|
||||
local define = ExpElement.get(element.tags.element_name --[[ @as string ]])
|
||||
local top_element = ExpGui.get_top_element(define, player)
|
||||
local had_visible = Toolbar.has_visible_buttons(player)
|
||||
|
||||
@@ -64,8 +64,7 @@ end
|
||||
--- Teleports the user to the action player
|
||||
-- @element goto_player
|
||||
local goto_player = new_button("utility/export", { "player-list.goto-player" })
|
||||
:on_click(function(def, event, element)
|
||||
local player = Gui.get_player(event)
|
||||
:on_click(function(def, player, element)
|
||||
local selected_player_name = get_action_player_name(player)
|
||||
local selected_player = game.players[selected_player_name]
|
||||
if not player.character or not selected_player.character then
|
||||
@@ -78,8 +77,7 @@ local goto_player = new_button("utility/export", { "player-list.goto-player" })
|
||||
--- Teleports the action player to the user
|
||||
-- @element bring_player
|
||||
local bring_player = new_button("utility/import", { "player-list.bring-player" })
|
||||
:on_click(function(def, event, element)
|
||||
local player = Gui.get_player(event)
|
||||
:on_click(function(def, player, element)
|
||||
local selected_player_name = get_action_player_name(player)
|
||||
local selected_player = game.players[selected_player_name]
|
||||
if not player.character or not selected_player.character then
|
||||
@@ -92,8 +90,7 @@ local bring_player = new_button("utility/import", { "player-list.bring-player" }
|
||||
--- Reports the action player, requires a reason to be given
|
||||
-- @element report_player
|
||||
local report_player = new_button("utility/spawn_flag", { "player-list.report-player" })
|
||||
:on_click(function(def, event, element)
|
||||
local player = Gui.get_player(event)
|
||||
:on_click(function(def, player, element)
|
||||
local selected_player_name = get_action_player_name(player)
|
||||
if Reports.is_reported(selected_player_name, player.name) then
|
||||
player.print({ "exp-commands_report.already-reported" }, Colors.orange_red)
|
||||
@@ -113,8 +110,7 @@ end
|
||||
--- Gives the action player a warning, requires a reason
|
||||
-- @element warn_player
|
||||
local warn_player = new_button("utility/spawn_flag", { "player-list.warn-player" })
|
||||
:on_click(function(def, event, element)
|
||||
local player = Gui.get_player(event)
|
||||
:on_click(function(def, player, element)
|
||||
SelectedAction:set(player, "command/give-warning")
|
||||
end)
|
||||
|
||||
@@ -128,8 +124,7 @@ end
|
||||
--- Jails the action player, requires a reason
|
||||
-- @element jail_player
|
||||
local jail_player = new_button("utility/multiplayer_waiting_icon", { "player-list.jail-player" })
|
||||
:on_click(function(def, event, element)
|
||||
local player = Gui.get_player(event)
|
||||
:on_click(function(def, player, element)
|
||||
local selected_player_name, selected_player_color = get_action_player_name(player)
|
||||
if Jail.is_jailed(selected_player_name) then
|
||||
player.print({ "exp-commands_jail.already-jailed", selected_player_color }, Colors.orange_red)
|
||||
@@ -148,8 +143,7 @@ end
|
||||
--- Kicks the action player, requires a reason
|
||||
-- @element kick_player
|
||||
local kick_player = new_button("utility/warning_icon", { "player-list.kick-player" })
|
||||
:on_click(function(def, event, element)
|
||||
local player = Gui.get_player(event)
|
||||
:on_click(function(def, player, element)
|
||||
SelectedAction:set(player, "command/kick")
|
||||
end)
|
||||
|
||||
@@ -161,8 +155,7 @@ end
|
||||
--- Bans the action player, requires a reason
|
||||
-- @element ban_player
|
||||
local ban_player = new_button("utility/danger_icon", { "player-list.ban-player" })
|
||||
:on_click(function(def, event, element)
|
||||
local player = Gui.get_player(event)
|
||||
:on_click(function(def, player, element)
|
||||
SelectedAction:set(player, "command/ban")
|
||||
end)
|
||||
|
||||
|
||||
@@ -123,11 +123,13 @@ follow_label = Gui.element("follow-label")
|
||||
|
||||
return label
|
||||
end)
|
||||
:on_click(Public.stop_follow)
|
||||
:on_closed(function(def, event)
|
||||
:on_click(function(def, player, element)
|
||||
Public.stop_follow(player)
|
||||
end)
|
||||
:on_closed(function(def, player, element)
|
||||
-- Don't call set_controller during on_close as it invalidates the controller
|
||||
-- Setting an invalid position (as to not equal their current) will call stop_follow on the next tick
|
||||
following[event.player_index][3] = {}
|
||||
following[player.index][3] = {}
|
||||
end)
|
||||
|
||||
----- Events -----
|
||||
|
||||
@@ -36,7 +36,7 @@ local toggle_section = Gui.element("autofill_toggle_section")
|
||||
:style(Gui.styles.sprite{
|
||||
size = 20
|
||||
})
|
||||
:on_click(function(def, event, element)
|
||||
:on_click(function(def, player, element)
|
||||
local header_flow = assert(element.parent)
|
||||
local flow_name = header_flow.caption
|
||||
local flow = header_flow.parent.parent[flow_name]
|
||||
@@ -64,8 +64,7 @@ local entity_toggle = Gui.element("entity_toggle")
|
||||
:style(Gui.styles.sprite{
|
||||
size = 22
|
||||
})
|
||||
:on_click(function(def, event, element)
|
||||
local player = Gui.get_player(event)
|
||||
:on_click(function(def, player, element)
|
||||
local entity_name = string.match(element.parent.parent.name, "(.*)%-header")
|
||||
if not autofill_player_settings[player.name] then return end
|
||||
local setting = autofill_player_settings[player.name][entity_name]
|
||||
@@ -115,7 +114,7 @@ local section = Gui.element("autofill_section")
|
||||
|
||||
return def:unlink_element(section_table)
|
||||
end)
|
||||
:on_click(function(def, event, element)
|
||||
:on_click(function(def, player, element, event)
|
||||
event.element = element.parent.alignment[toggle_section.name]
|
||||
toggle_section:raise_event(event)
|
||||
end)
|
||||
@@ -135,8 +134,7 @@ local toggle_item_button = Gui.element("toggle_item_button")
|
||||
size = 32,
|
||||
right_margin = -3,
|
||||
})
|
||||
:on_click(function(def, event, element)
|
||||
local player = Gui.get_player(event)
|
||||
:on_click(function(def, player, element)
|
||||
local item_name = element.parent.tooltip
|
||||
local entity_name = element.parent.parent.parent.name
|
||||
if not autofill_player_settings[player.name] then return end
|
||||
@@ -178,10 +176,9 @@ local amount_textfield = Gui.element("amount_textfield")
|
||||
height = 31,
|
||||
padding = -2,
|
||||
}
|
||||
:on_text_changed(function(def, event, element)
|
||||
:on_text_changed(function(def, player, element)
|
||||
local value = tonumber(element.text)
|
||||
if not value then value = 0 end
|
||||
local player = Gui.get_player(event)
|
||||
local clamped = math.clamp(value, 0, 1000)
|
||||
local item_name = element.parent.tooltip
|
||||
local entity_name = element.parent.parent.parent.name
|
||||
|
||||
@@ -176,8 +176,7 @@ local bonus_gui_control_reset = Gui.element("bonus_gui_control_reset")
|
||||
caption = { "bonus.control-reset" },
|
||||
}:style{
|
||||
width = config.gui_display_width["half"],
|
||||
}:on_click(function(def, event, element)
|
||||
local player = Gui.get_player(event)
|
||||
}:on_click(function(def, player, element)
|
||||
local container = Gui.get_left_element(bonus_container, player)
|
||||
local disp = container.frame["bonus_st_2"].disp.table
|
||||
|
||||
@@ -210,8 +209,7 @@ local bonus_gui_control_apply = Gui.element("bonus_gui_control_apply")
|
||||
caption = { "bonus.control-apply" },
|
||||
}:style{
|
||||
width = config.gui_display_width["half"],
|
||||
}:on_click(function(def, event, element)
|
||||
local player = Gui.get_player(event)
|
||||
}:on_click(function(def, player, element)
|
||||
local n = bonus_gui_pts_needed(player)
|
||||
element.parent[bonus_gui_control_pts_n_count.name].caption = n
|
||||
local r = tonumber(element.parent[bonus_gui_control_pts_a_count.name].caption) - n
|
||||
@@ -290,8 +288,7 @@ local bonus_gui_slider = Gui.element("bonus_gui_slider")
|
||||
|
||||
return slider
|
||||
end)
|
||||
:on_value_changed(function(def, event, element)
|
||||
local player = Gui.get_player(event)
|
||||
:on_value_changed(function(def, player, element)
|
||||
if element.tags.is_percentage then
|
||||
element.parent[element.tags.counter].caption = format_number(element.slider_value * 100, false) .. " %"
|
||||
else
|
||||
|
||||
@@ -174,8 +174,7 @@ Gui.toolbar.create_button{
|
||||
visible = function(player, element)
|
||||
return Roles.player_allowed(player, "gui/landfill")
|
||||
end
|
||||
}:on_click(function(def, event, element)
|
||||
local player = Gui.get_player(event)
|
||||
}:on_click(function(def, player, element)
|
||||
if player.cursor_stack and player.cursor_stack.valid_for_read then
|
||||
if player.cursor_stack.type == "blueprint" and player.cursor_stack.is_blueprint_setup() then
|
||||
local modified = landfill_gui_add_landfill(player.cursor_stack)
|
||||
|
||||
@@ -252,7 +252,7 @@ local button_apply = Gui.element("button_apply")
|
||||
type = "button",
|
||||
caption = { "module.apply" },
|
||||
style = "button",
|
||||
}:on_click(function(player)
|
||||
}:on_click(function(def, player, element)
|
||||
if Selection.is_selecting(player, SelectionModuleArea) then
|
||||
Selection.stop(player)
|
||||
else
|
||||
@@ -268,7 +268,7 @@ module_container = Gui.element("module_container")
|
||||
})
|
||||
|
||||
local slots_per_row = config.module_slots_per_row + 1
|
||||
local scroll_table = Gui.elements.scroll_table(container, (config.module_slots_per_row + 2) * 36, slots_per_row)
|
||||
local scroll_table = Gui.elements.scroll_table(container, (config.module_slots_per_row + 2) * 36, slots_per_row, "scroll")
|
||||
|
||||
for i = 1, config.default_module_row_count do
|
||||
scroll_table.add{
|
||||
|
||||
@@ -36,8 +36,7 @@ local open_action_bar = Gui.element("open_action_bar")
|
||||
width = 8,
|
||||
height = 14,
|
||||
}
|
||||
:on_click(function(def, event, element)
|
||||
local player = Gui.get_player(event)
|
||||
:on_click(function(def, player, element)
|
||||
local selected_player_name = element.parent.name
|
||||
local old_selected_player_name = SelectedPlayer:get(player)
|
||||
if selected_player_name == old_selected_player_name then
|
||||
@@ -62,8 +61,7 @@ local close_action_bar = Gui.element("close_action_bar")
|
||||
top_margin = -1,
|
||||
right_margin = -1,
|
||||
})
|
||||
:on_click(function(def, event, element)
|
||||
local player = Gui.get_player(event)
|
||||
:on_click(function(def, player, element)
|
||||
SelectedPlayer:remove(player)
|
||||
SelectedAction:remove(player)
|
||||
end)
|
||||
@@ -83,8 +81,7 @@ local reason_confirm = Gui.element("reason_confirm")
|
||||
left_margin = -2,
|
||||
right_margin = -1,
|
||||
})
|
||||
:on_click(function(def, event, element)
|
||||
local player = Gui.get_player(event)
|
||||
:on_click(function(def, player, element)
|
||||
local reason = element.parent.entry.text
|
||||
local action_name = SelectedAction:get(player)
|
||||
local reason_callback = config.buttons[action_name].reason_callback
|
||||
@@ -125,8 +122,7 @@ local add_player_base = Gui.element("add_player_base")
|
||||
|
||||
return player_name
|
||||
end)
|
||||
:on_click(function(def, event, element)
|
||||
local player = Gui.get_player(event)
|
||||
:on_click(function(def, player, element, event)
|
||||
local selected_player_name = element.caption
|
||||
local selected_player = game.players[selected_player_name]
|
||||
if event.button == defines.mouse_button_type.left then
|
||||
|
||||
@@ -140,7 +140,7 @@ local pd_username_player = Gui.element("pd_username_player")
|
||||
end)
|
||||
:style{
|
||||
horizontally_stretchable = true,
|
||||
}:on_selection_state_changed(function(def, event, element)
|
||||
}:on_selection_state_changed(function(def, player, element)
|
||||
local player_name = game.connected_players[element.selected_index]
|
||||
local table = element.parent.parent.parent.parent["pd_st_2"].disp.table
|
||||
pd_update(table, player_name)
|
||||
@@ -153,7 +153,7 @@ local pd_username_update = Gui.element("pd_username_update")
|
||||
caption = "update",
|
||||
}:style{
|
||||
width = 128,
|
||||
}:on_click(function(def, event, element)
|
||||
}:on_click(function(def, player, element)
|
||||
local player_index = element.parent[pd_username_player.name].selected_index
|
||||
|
||||
if player_index > 0 then
|
||||
|
||||
@@ -103,9 +103,8 @@ local join_server = Gui.element("readme_join_server")
|
||||
size = 20,
|
||||
padding = -1,
|
||||
}
|
||||
:on_click(function(def, event)
|
||||
local player = Gui.get_player(event)
|
||||
local server_id = event.element.parent.name
|
||||
:on_click(function(def, player, element)
|
||||
local server_id = element.parent.name
|
||||
External.request_connection(player, server_id, true)
|
||||
end)
|
||||
|
||||
@@ -436,12 +435,10 @@ local readme = Gui.element("readme")
|
||||
|
||||
return container
|
||||
end)
|
||||
:on_opened(function(def, event)
|
||||
local player = Gui.get_player(event)
|
||||
:on_opened(function(def, player, element)
|
||||
Gui.toolbar.set_button_toggled_state(readme_toggle, player, true)
|
||||
end)
|
||||
:on_closed(function(def, event, element)
|
||||
local player = Gui.get_player(event)
|
||||
:on_closed(function(def, player, element)
|
||||
Gui.toolbar.set_button_toggled_state(readme_toggle, player, false)
|
||||
Gui.destroy_if_valid(element)
|
||||
end)
|
||||
@@ -457,8 +454,7 @@ readme_toggle =
|
||||
return Roles.player_allowed(player, "gui/readme")
|
||||
end
|
||||
}
|
||||
:on_click(function(def, event)
|
||||
local player = Gui.get_player(event)
|
||||
:on_click(function(def, player, element)
|
||||
local center = player.gui.center
|
||||
if center[readme.name] then
|
||||
player.opened = nil
|
||||
|
||||
@@ -49,7 +49,7 @@ local toggle_launch = Gui.element("toggle_launch")
|
||||
:style(Gui.styles.sprite{
|
||||
size = 16,
|
||||
})
|
||||
:on_click(function(def, event, element)
|
||||
:on_click(function(def, player, element)
|
||||
local rocket_silo_name = element.parent.name:sub(8)
|
||||
local rocket_silo = Rockets.get_silo_entity(rocket_silo_name)
|
||||
if rocket_silo.auto_launch then
|
||||
@@ -106,8 +106,7 @@ local silo_cords = Gui.element("silo_cords")
|
||||
definition:link_element(label_y)
|
||||
end
|
||||
end)
|
||||
:on_click(function(def, event, element)
|
||||
local player = Gui.get_player(event)
|
||||
:on_click(function(def, player, element)
|
||||
local rocket_silo_name = element.parent.caption
|
||||
local rocket_silo = Rockets.get_silo_entity(rocket_silo_name)
|
||||
player.set_controller{ type = defines.controllers.remote, position = rocket_silo.position, surface = rocket_silo.surface }
|
||||
@@ -405,7 +404,7 @@ local toggle_section = Gui.element("rocket_info_toggle_section")
|
||||
:style(Gui.styles.sprite{
|
||||
size = 20,
|
||||
})
|
||||
:on_click(function(def, event, element)
|
||||
:on_click(function(def, player, element)
|
||||
local header_flow = assert(element.parent)
|
||||
local flow_name = header_flow.caption
|
||||
local flow = header_flow.parent.parent[flow_name]
|
||||
@@ -443,7 +442,7 @@ local section = Gui.element("rocket_info_section")
|
||||
-- Return the flow table
|
||||
return definition:unlink_element(scroll_table)
|
||||
end)
|
||||
:on_click(function(def, event, element)
|
||||
:on_click(function(def, player, element, event)
|
||||
event.element = element.parent.alignment[toggle_section.name]
|
||||
toggle_section:raise_event(event)
|
||||
end)
|
||||
|
||||
@@ -25,7 +25,7 @@ local cctv_status = Gui.element("cctv_status")
|
||||
selected_index = 2,
|
||||
}:style{
|
||||
width = 96,
|
||||
}:on_selection_state_changed(function(def, event, element)
|
||||
}:on_selection_state_changed(function(def, player, element)
|
||||
if element.selected_index == 1 then
|
||||
element.parent.parent.parent.cctv_display.visible = true
|
||||
else
|
||||
@@ -50,8 +50,7 @@ local cctv_location = Gui.element("cctv_location")
|
||||
caption = { "surveillance.func-set" },
|
||||
}:style{
|
||||
width = 48,
|
||||
}:on_click(function(def, event, element)
|
||||
local player = Gui.get_player(event)
|
||||
}:on_click(function(def, player, element)
|
||||
element.parent.parent.parent.cctv_display.position = player.physical_position
|
||||
end)
|
||||
|
||||
@@ -62,7 +61,7 @@ local zoom_in = Gui.element("zoom_in")
|
||||
caption = "+",
|
||||
}:style{
|
||||
width = 32,
|
||||
}:on_click(function(def, event, element)
|
||||
}:on_click(function(def, player, element)
|
||||
local display = element.parent.parent.parent.cctv_display
|
||||
if display.zoom < 2.0 then
|
||||
display.zoom = display.zoom + 0.05
|
||||
@@ -76,7 +75,7 @@ local zoom_out = Gui.element("zoom_out")
|
||||
caption = "-",
|
||||
}:style{
|
||||
width = 32,
|
||||
}:on_click(function(def, event, element)
|
||||
}:on_click(function(def, player, element)
|
||||
local display = element.parent.parent.parent.cctv_display
|
||||
if display.zoom > 0.2 then
|
||||
display.zoom = display.zoom - 0.05
|
||||
|
||||
@@ -93,8 +93,7 @@ local add_new_task = Gui.element("add_new_task")
|
||||
}
|
||||
:style(Styles.sprite22)
|
||||
:on_click(
|
||||
function(def, event, element)
|
||||
local player = Gui.get_player(event)
|
||||
function(def, player, element)
|
||||
-- Disable editing
|
||||
PlayerIsEditing:set(player, false)
|
||||
-- Clear selected
|
||||
@@ -198,8 +197,7 @@ local task_list_item = Gui.element("task_list_item")
|
||||
end
|
||||
)
|
||||
:on_click(
|
||||
function(def, event, element)
|
||||
local player = Gui.get_player(event)
|
||||
function(def, player, element)
|
||||
local task_id = element.parent.caption
|
||||
PlayerSelected:set(player, task_id)
|
||||
end
|
||||
@@ -266,8 +264,7 @@ local task_view_close_button = Gui.element("task_view_close_button")
|
||||
}
|
||||
:style(Styles.sprite22)
|
||||
:on_click(
|
||||
function(def, event, element)
|
||||
local player = Gui.get_player(event)
|
||||
function(def, player, element)
|
||||
PlayerSelected:set(player, nil)
|
||||
end
|
||||
)
|
||||
@@ -284,8 +281,7 @@ local task_view_delete_button = Gui.element("task_view_delete_button")
|
||||
}
|
||||
:style(Styles.footer_button)
|
||||
:on_click(
|
||||
function(def, event, element)
|
||||
local player = Gui.get_player(event)
|
||||
function(def, player, element)
|
||||
local selected = PlayerSelected:get(player)
|
||||
PlayerSelected:set(player, nil)
|
||||
Tasks.remove_task(selected)
|
||||
@@ -361,8 +357,7 @@ local task_message_textfield = Gui.element("task_message_textfield")
|
||||
horizontally_stretchable = true,
|
||||
}
|
||||
:on_text_changed(
|
||||
function(def, event, element)
|
||||
local player = Gui.get_player(event)
|
||||
function(def, player, element)
|
||||
local is_editing = PlayerIsEditing:get(player)
|
||||
local is_creating = PlayerIsCreating:get(player)
|
||||
|
||||
@@ -388,8 +383,7 @@ task_edit_confirm_button = Gui.element("task_edit_confirm_button")
|
||||
}
|
||||
:style(Styles.footer_button)
|
||||
:on_click(
|
||||
function(def, event, element)
|
||||
local player = Gui.get_player(event)
|
||||
function(def, player, element)
|
||||
local selected = PlayerSelected:get(player)
|
||||
PlayerIsEditing:set(player, false)
|
||||
local new_message = element.parent.parent[task_message_textfield.name].text
|
||||
@@ -410,8 +404,7 @@ local edit_task_discard_button = Gui.element("edit_task_discard_button")
|
||||
}
|
||||
:style(Styles.footer_button)
|
||||
:on_click(
|
||||
function(def, event, element)
|
||||
local player = Gui.get_player(event)
|
||||
function(def, player, element)
|
||||
local selected = PlayerSelected:get(player)
|
||||
Tasks.set_editing(selected, player.name, nil)
|
||||
PlayerIsEditing:set(player, false)
|
||||
@@ -450,8 +443,7 @@ task_create_confirm_button = Gui.element("task_create_confirm_button")
|
||||
}
|
||||
:style(Styles.footer_button)
|
||||
:on_click(
|
||||
function(def, event, element)
|
||||
local player = Gui.get_player(event)
|
||||
function(def, player, element)
|
||||
local message = element.parent.parent[task_message_textfield.name].text
|
||||
PlayerIsCreating:set(player, false)
|
||||
local parsed = parse_message(message)
|
||||
@@ -471,8 +463,7 @@ local task_create_discard_button = Gui.element("task_create_discard_button")
|
||||
}
|
||||
:style(Styles.footer_button)
|
||||
:on_click(
|
||||
function(def, event, element)
|
||||
local player = Gui.get_player(event)
|
||||
function(def, player, element)
|
||||
PlayerIsCreating:set(player, false)
|
||||
end
|
||||
)
|
||||
|
||||
@@ -47,8 +47,7 @@ local tool_gui_arty_b = Gui.element("tool_gui_arty_b")
|
||||
caption = { "tool.apply" }
|
||||
}:style(
|
||||
style.button
|
||||
):on_click(function(def, event, element)
|
||||
local player = Gui.get_player(event)
|
||||
):on_click(function(def, player, element)
|
||||
if Selection.is_selecting(player, SelectionArtyArea) then
|
||||
Selection.stop(player)
|
||||
|
||||
@@ -80,8 +79,7 @@ local tool_gui_waterfill_b = Gui.element("tool_gui_waterfill_b")
|
||||
caption = { "tool.apply" }
|
||||
}:style(
|
||||
style.button
|
||||
):on_click(function(def, event, element)
|
||||
local player = Gui.get_player(event)
|
||||
):on_click(function(def, player, element)
|
||||
if Selection.is_selecting(player, SelectionWaterfillArea) then
|
||||
Selection.stop(player)
|
||||
return player.print{ "exp-commands_waterfill.exit" }
|
||||
@@ -115,8 +113,7 @@ local tool_gui_train_b = Gui.element("tool_gui_train_b")
|
||||
caption = { "tool.apply" }
|
||||
}:style(
|
||||
style.button
|
||||
):on_click(function(def, event, element)
|
||||
local player = Gui.get_player(event)
|
||||
):on_click(function(def, player, element)
|
||||
addon_train.manual(player)
|
||||
end)
|
||||
|
||||
@@ -142,8 +139,7 @@ local tool_gui_research_b = Gui.element("tool_gui_research_b")
|
||||
caption = { "tool.apply" }
|
||||
}:style(
|
||||
style.button
|
||||
):on_click(function(def, event, element)
|
||||
local player = Gui.get_player(event)
|
||||
):on_click(function(def, player, element)
|
||||
local enabled = addon_research.set_auto_research()
|
||||
|
||||
if enabled then
|
||||
@@ -176,8 +172,7 @@ local tool_gui_spawn_b = Gui.element("tool_gui_spawn_b")
|
||||
caption = { "tool.apply" }
|
||||
}:style(
|
||||
style.button
|
||||
):on_click(function(def, event, element)
|
||||
local player = Gui.get_player(event)
|
||||
):on_click(function(def, player, element)
|
||||
if not player.character
|
||||
or player.character.health <= 0
|
||||
or not ExpUtil.teleport_player(player, game.surfaces.nauvis, { 0, 0 }, "dismount") then
|
||||
|
||||
@@ -334,8 +334,8 @@ vlayer_gui_control_type = Gui.element("vlayer_gui_control_type")
|
||||
selected_index = 1,
|
||||
}:style{
|
||||
width = 200,
|
||||
}:on_selection_state_changed(function(def, event, element)
|
||||
vlayer_gui_list_refresh(Gui.get_player(event))
|
||||
}:on_selection_state_changed(function(def, player, element)
|
||||
vlayer_gui_list_refresh(player)
|
||||
end)
|
||||
|
||||
--- A drop down list to see the exact item to remove
|
||||
@@ -357,8 +357,8 @@ local vlayer_gui_control_refresh = Gui.element("vlayer_gui_control_refresh")
|
||||
caption = { "vlayer.control-refresh" },
|
||||
}:style{
|
||||
width = 200,
|
||||
}:on_click(function(def, event, element)
|
||||
vlayer_gui_list_refresh(Gui.get_player(event))
|
||||
}:on_click(function(def, player, element)
|
||||
vlayer_gui_list_refresh(player)
|
||||
end)
|
||||
|
||||
--- A button to check if the item is the one wanted to remove
|
||||
@@ -370,7 +370,7 @@ local vlayer_gui_control_see = Gui.element("vlayer_gui_control_see")
|
||||
caption = { "vlayer.control-see" },
|
||||
}:style{
|
||||
width = 200,
|
||||
}:on_click(function(def, event, element)
|
||||
}:on_click(function(def, player, element, event)
|
||||
local target = element.parent[vlayer_gui_control_type.name].selected_index
|
||||
local n = element.parent[vlayer_gui_control_list.name].selected_index
|
||||
|
||||
@@ -394,8 +394,7 @@ local vlayer_gui_control_build = Gui.element("vlayer_gui_control_build")
|
||||
caption = { "vlayer.control-build" },
|
||||
}:style{
|
||||
width = 200,
|
||||
}:on_click(function(def, event, element)
|
||||
local player = Gui.get_player(event)
|
||||
}:on_click(function(def, player, element)
|
||||
if Selection.is_selecting(player, SelectionConvertArea) then
|
||||
Selection.stop(player)
|
||||
player.print{ "vlayer.exit" }
|
||||
@@ -416,8 +415,7 @@ local vlayer_gui_control_remove = Gui.element("vlayer_gui_control_remove")
|
||||
caption = { "vlayer.control-remove" },
|
||||
}:style{
|
||||
width = 200,
|
||||
}:on_click(function(def, event, element)
|
||||
local player = Gui.get_player(event)
|
||||
}:on_click(function(def, player, element)
|
||||
local target = element.parent[vlayer_gui_control_type.name].selected_index
|
||||
local n = element.parent[vlayer_gui_control_list.name].selected_index
|
||||
|
||||
|
||||
@@ -87,8 +87,7 @@ local add_new_warp = Gui.element("add_new_warp")
|
||||
name = Gui.property_from_name,
|
||||
}
|
||||
:style(Styles.sprite22)
|
||||
:on_click(function(def, event, element)
|
||||
local player = Gui.get_player(event)
|
||||
:on_click(function(def, player, element)
|
||||
if player.controller_type ~= defines.controllers.character then return end
|
||||
-- Add the new warp
|
||||
local force_name = player.force.name
|
||||
@@ -179,9 +178,8 @@ local warp_icon_button = Gui.element("warp_icon_button")
|
||||
}
|
||||
end)
|
||||
:style(Styles.sprite32)
|
||||
:on_click(function(def, event, element)
|
||||
:on_click(function(def, player, element)
|
||||
if element.type == "choose-elem-button" then return end
|
||||
local player = Gui.get_player(event)
|
||||
local warp_id = element.parent.caption
|
||||
Warps.teleport_player(warp_id, player)
|
||||
|
||||
@@ -227,8 +225,7 @@ local warp_label = Gui.element("warp_label")
|
||||
right_padding = 2,
|
||||
horizontally_stretchable = true,
|
||||
}
|
||||
:on_click(function(def, event, element)
|
||||
local player = Gui.get_player(event)
|
||||
:on_click(function(def, player, element)
|
||||
local warp_id = element.parent.caption
|
||||
local warp = Warps.get_warp(warp_id)
|
||||
player.set_controller{ type = defines.controllers.remote, position = warp.position, surface = warp.surface }
|
||||
@@ -273,8 +270,7 @@ local warp_textfield = Gui.element("warp_textfield")
|
||||
left_margin = 2,
|
||||
right_margin = 2,
|
||||
}
|
||||
:on_confirmed(function(def, event, element)
|
||||
local player = Gui.get_player(event)
|
||||
:on_confirmed(function(def, player, element)
|
||||
local warp_id = element.parent.caption
|
||||
local warp_name = element.text
|
||||
local warp_icon = element.parent.parent["icon-" .. warp_id][warp_icon_editing.name].elem_value --[[ @as SignalID ]]
|
||||
@@ -294,8 +290,7 @@ local confirm_edit_button = Gui.element("confirm_edit_button")
|
||||
name = Gui.property_from_name,
|
||||
}
|
||||
:style(Styles.sprite22)
|
||||
:on_click(function(def, event, element)
|
||||
local player = Gui.get_player(event)
|
||||
:on_click(function(def, player, element)
|
||||
local warp_id = element.parent.caption
|
||||
local warp_name = element.parent.parent["name-" .. warp_id][warp_textfield.name].text
|
||||
local warp_icon = element.parent.parent["icon-" .. warp_id][warp_icon_editing.name].elem_value --[[ @as SignalID ]]
|
||||
@@ -315,8 +310,7 @@ local cancel_edit_button = Gui.element("cancel_edit_button")
|
||||
name = Gui.property_from_name,
|
||||
}
|
||||
:style(Styles.sprite22)
|
||||
:on_click(function(def, event, element)
|
||||
local player = Gui.get_player(event)
|
||||
:on_click(function(def, player, element)
|
||||
local warp_id = element.parent.caption
|
||||
-- Check if this is the first edit, if so remove the warp.
|
||||
local warp = Warps.get_warp(warp_id)
|
||||
@@ -338,7 +332,7 @@ local remove_warp_button = Gui.element("remove_warp_button")
|
||||
name = Gui.property_from_name,
|
||||
}
|
||||
:style(Styles.sprite22)
|
||||
:on_click(function(def, event, element)
|
||||
:on_click(function(def, player, element)
|
||||
local warp_id = element.parent.caption
|
||||
Warps.remove_warp(warp_id)
|
||||
end)
|
||||
@@ -354,8 +348,7 @@ local edit_warp_button = Gui.element("edit_warp_button")
|
||||
name = Gui.property_from_name,
|
||||
}
|
||||
:style(Styles.sprite22)
|
||||
:on_click(function(def, event, element)
|
||||
local player = Gui.get_player(event)
|
||||
:on_click(function(def, player, element)
|
||||
local warp_id = element.parent.caption
|
||||
Warps.set_editing(warp_id, player.name, true)
|
||||
end)
|
||||
@@ -711,9 +704,8 @@ Gui.toolbar.create_button{
|
||||
visible = function(player, element)
|
||||
return Roles.player_allowed(player, "gui/warp-list")
|
||||
end
|
||||
}:on_click(function(def, event, element)
|
||||
}:on_click(function(def, player, element)
|
||||
-- Set gui keep open state for player that clicked the button: true if visible, false if invisible
|
||||
local player = Gui.get_player(event)
|
||||
keep_gui_open[player.name] = Gui.toolbar.get_button_toggled_state(def, player)
|
||||
end)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user