mirror of
https://github.com/PHIDIAS0303/ExpCluster.git
synced 2025-12-27 11:35:22 +09:00
Convert rocket info and autofill
This commit is contained in:
@@ -138,7 +138,7 @@ local function ensure_elements(player, element_defines, elements, parent)
|
||||
local done = {}
|
||||
for define, visible in pairs(element_defines) do
|
||||
local element = elements[define.name]
|
||||
if not element then
|
||||
if not element or not element.valid then
|
||||
element = define(parent)
|
||||
elements[define.name] = element
|
||||
assert(element, "Element define did not return an element: " .. define.name)
|
||||
@@ -200,7 +200,7 @@ local function on_gui_opened(event)
|
||||
if visible then
|
||||
event.element = element
|
||||
--- @diagnostic disable-next-line invisible
|
||||
define:_raise_event(event)
|
||||
define:raise_event(event)
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@@ -13,12 +13,14 @@ elements.aligned_flow = ExpGui.element("aligned_flow")
|
||||
}
|
||||
:style(function(def, element, parent, opts)
|
||||
opts = opts or {}
|
||||
local vertical_align = opts.vertical_align or "center"
|
||||
local horizontal_align = opts.horizontal_align or "right"
|
||||
return {
|
||||
padding = { 1, 2 },
|
||||
vertical_align = opts.vertical_align or "center",
|
||||
horizontal_align = opts.horizontal_align or "right",
|
||||
vertically_stretchable = opts.vertical_align and opts.vertical_align ~= "center",
|
||||
horizontally_stretchable = opts.horizontal_align and opts.horizontal_align ~= "center",
|
||||
vertical_align = vertical_align,
|
||||
horizontal_align = horizontal_align,
|
||||
vertically_stretchable = vertical_align ~= "center",
|
||||
horizontally_stretchable = horizontal_align ~= "center",
|
||||
}
|
||||
end)
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@ 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)): ExpElement
|
||||
--- @alias ExpElement.OnEventAdder<E> fun(self: ExpElement, handler: fun(def: ExpElement, event: E, element: LuaGuiElement)): ExpElement
|
||||
|
||||
--- @class ExpElement._debug
|
||||
--- @field defined_at string
|
||||
@@ -343,7 +343,7 @@ function ExpElement._prototype:unlink_element(element)
|
||||
assert(self._has_handlers, "Element has no event handlers")
|
||||
local element_tags = element.tags
|
||||
if not element_tags then
|
||||
element_tags = {}
|
||||
return element, ExpElement._prototype.unlink_element
|
||||
end
|
||||
|
||||
local event_tags = element_tags["ExpGui"]
|
||||
@@ -371,24 +371,24 @@ local function event_handler(event)
|
||||
for _, define_name in ipairs(event_tags) do
|
||||
local define = ExpElement._elements[define_name]
|
||||
if define then
|
||||
define:_raise_event(event)
|
||||
define:raise_event(event)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
--- Raise all handlers for an event on this definition
|
||||
--- @param event EventData
|
||||
function ExpElement._prototype:_raise_event(event)
|
||||
--- @param event EventData | { element: LuaGuiElement }
|
||||
function ExpElement._prototype:raise_event(event)
|
||||
local handlers = self._events[event.name]
|
||||
if not handlers then return end
|
||||
for _, handler in ipairs(handlers) do
|
||||
handler(self, event)
|
||||
handler(self, event, event.element)
|
||||
end
|
||||
end
|
||||
|
||||
--- Add an event handler
|
||||
--- @param event defines.events
|
||||
--- @param handler fun(def: ExpElement, event: EventData)
|
||||
--- @param handler fun(def: ExpElement, event: EventData, element: LuaGuiElement)
|
||||
--- @return ExpElement
|
||||
function ExpElement._prototype:on_event(event, handler)
|
||||
ExpElement.events[event] = event_handler
|
||||
|
||||
Reference in New Issue
Block a user