mirror of
https://github.com/PHIDIAS0303/ExpCluster.git
synced 2026-08-13 00:45:11 +09:00
Type vlayer forward declarations and config entries
The gui element locals are declared at the top and assigned far below, so emmylua inferred them as nil at every use site. circuit_oc was reassigned from a control behaviour to a logistic section, which hid every section method behind the wrong type. allowed_items entries carry heterogeneous optional properties, now described by a class. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -14,10 +14,10 @@ local mega = 1000000
|
||||
local vlayer = {}
|
||||
local vlayer_data = {
|
||||
entity_interfaces = {
|
||||
energy = {},
|
||||
circuit = {},
|
||||
storage_input = {},
|
||||
storage_output = {},
|
||||
energy = {}, --- @type LuaEntity[]
|
||||
circuit = {}, --- @type LuaEntity[]
|
||||
storage_input = {}, --- @type LuaEntity[]
|
||||
storage_output = {}, --- @type LuaEntity[]
|
||||
},
|
||||
properties = {
|
||||
total_surface_area = 0,
|
||||
@@ -582,11 +582,11 @@ local function handle_circuit_interfaces()
|
||||
if not interface.valid then
|
||||
vlayer_data.entity_interfaces.circuit[index] = nil
|
||||
else
|
||||
local circuit_oc = interface.get_or_create_control_behavior()
|
||||
if circuit_oc.sections_count == 0 then
|
||||
circuit_oc.add_section()
|
||||
local control = interface.get_or_create_control_behavior()
|
||||
if control.sections_count == 0 then
|
||||
control.add_section()
|
||||
end
|
||||
circuit_oc = circuit_oc.sections[1]
|
||||
local circuit_oc = control.sections[1]
|
||||
local signal_index = 1
|
||||
local circuit = vlayer.get_circuits()
|
||||
|
||||
|
||||
@@ -22,9 +22,9 @@ local function aabb_align_expand(aabb)
|
||||
}
|
||||
end
|
||||
|
||||
local vlayer_container
|
||||
local vlayer_gui_control_type
|
||||
local vlayer_gui_control_list
|
||||
local vlayer_container --- @type ExpElement
|
||||
local vlayer_gui_control_type --- @type ExpElement
|
||||
local vlayer_gui_control_list --- @type ExpElement
|
||||
|
||||
local vlayer_control_type_list = {
|
||||
[1] = "energy",
|
||||
@@ -87,7 +87,7 @@ SelectArea:on_selection(function(event)
|
||||
local container = Gui.get_left_element(vlayer_container, player)
|
||||
local disp = container.frame["vlayer_st_2"].disp.table
|
||||
local target = vlayer_control_type_list[disp[vlayer_gui_control_type.name].selected_index]
|
||||
local entities
|
||||
local entities --- @type LuaEntity[]
|
||||
|
||||
if config.power_on_space and event.surface and event.surface.platform and target == "energy" then
|
||||
if player.force.technologies[config.power_on_space_research.name].level >= config.power_on_space_research.level then
|
||||
|
||||
Reference in New Issue
Block a user