Narrow the gui player lookups

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
bbassie
2026-08-07 15:31:43 +00:00
co-authored by Claude Opus 5
parent 3c0b5069fc
commit 231c3a9ea0
4 changed files with 14 additions and 12 deletions
+5 -3
View File
@@ -46,8 +46,10 @@ end
--- @return LuaPlayer --- @return LuaPlayer
function Gui.get_player(input) function Gui.get_player(input)
if type(input) == "table" and not input.player_index then if type(input) == "table" and not input.player_index then
--- @cast input { element: LuaGuiElement }
return assert(game.get_player(input.element.player_index)) return assert(game.get_player(input.element.player_index))
end end
--- @cast input LuaGuiElement | { player_index: uint }
return assert(game.get_player(input.player_index)) return assert(game.get_player(input.player_index))
end end
@@ -114,7 +116,7 @@ end
--- @param player LuaPlayer --- @param player LuaPlayer
--- @return LuaGuiElement --- @return LuaGuiElement
function Gui.get_top_element(define, player) function Gui.get_top_element(define, player)
return assert(player_elements[player.index].top[define.name], "Element is not on the top flow") return assert(assert(player_elements[player.index]).top[define.name], "Element is not on the top flow")
end end
--- Register a element define to be drawn to the left flow on join --- Register a element define to be drawn to the left flow on join
@@ -122,7 +124,7 @@ end
--- @param player LuaPlayer --- @param player LuaPlayer
--- @return LuaGuiElement --- @return LuaGuiElement
function Gui.get_left_element(define, player) function Gui.get_left_element(define, player)
return assert(player_elements[player.index].left[define.name], "Element is not on the left flow") return assert(assert(player_elements[player.index]).left[define.name], "Element is not on the left flow")
end end
--- Register a element define to be drawn to the relative flow on join --- Register a element define to be drawn to the relative flow on join
@@ -130,7 +132,7 @@ end
--- @param player LuaPlayer --- @param player LuaPlayer
--- @return LuaGuiElement --- @return LuaGuiElement
function Gui.get_relative_element(define, player) function Gui.get_relative_element(define, player)
return assert(player_elements[player.index].relative[define.name], "Element is not on the relative flow") return assert(assert(player_elements[player.index]).relative[define.name], "Element is not on the relative flow")
end end
--- Ensure all the correct elements are visible and exist --- Ensure all the correct elements are visible and exist
+1 -1
View File
@@ -172,7 +172,7 @@ local function on_object_destroyed(event)
for _, scope in pairs(registered_scopes) do for _, scope in pairs(registered_scopes) do
local data = scope._raw.element_data local data = scope._raw.element_data
local player_elements = data and data[player_index] local player_elements = data and data[player_index]
if player_elements then if data and player_elements then
player_elements[element_index] = nil player_elements[element_index] = nil
if not next(player_elements) then if not next(player_elements) then
data[player_index] = nil data[player_index] = nil