mirror of
https://github.com/Xevion/project-cybersyn.git
synced 2025-12-11 08:08:15 -06:00
Only refresh open tab and exclude virtual signals from provided/requested on stations tab
This commit is contained in:
@@ -13,9 +13,7 @@ function inventory_tab.create()
|
|||||||
type = "tab",
|
type = "tab",
|
||||||
caption = { "cybersyn-gui.inventory" },
|
caption = { "cybersyn-gui.inventory" },
|
||||||
ref = { "inventory", "tab" },
|
ref = { "inventory", "tab" },
|
||||||
actions = {
|
handler = inventory_tab.handle.on_inventory_tab_selected
|
||||||
on_click = { gui = "main", action = "change_tab", tab = "inventory" },
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
content = {
|
content = {
|
||||||
name = "manager_inventory_content_frame",
|
name = "manager_inventory_content_frame",
|
||||||
@@ -243,4 +241,22 @@ function inventory_tab.build(map_data, player_data)
|
|||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
inventory_tab.handle = {}
|
||||||
|
|
||||||
|
--- @param e {player_index: uint}
|
||||||
|
function inventory_tab.wrapper(e, handler)
|
||||||
|
local player = game.get_player(e.player_index)
|
||||||
|
if not player then return end
|
||||||
|
local player_data = global.manager.players[e.player_index]
|
||||||
|
handler(player, player_data, player_data.refs, e)
|
||||||
|
end
|
||||||
|
|
||||||
|
---@param player LuaPlayer
|
||||||
|
---@param player_data PlayerData
|
||||||
|
function inventory_tab.handle.on_inventory_tab_selected(player, player_data)
|
||||||
|
player_data.selected_tab = "inventory_tab"
|
||||||
|
end
|
||||||
|
|
||||||
|
gui.add_handlers(inventory_tab.handle, inventory_tab.wrapper)
|
||||||
|
|
||||||
return inventory_tab
|
return inventory_tab
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ local manager = require("scripts.gui.manager")
|
|||||||
--- @field trains_orderings uint[]
|
--- @field trains_orderings uint[]
|
||||||
--- @field trains_orderings_invert boolean[]
|
--- @field trains_orderings_invert boolean[]
|
||||||
--- @field pinning boolean
|
--- @field pinning boolean
|
||||||
|
--- @field selected_tab string?
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -134,7 +134,8 @@ function manager.build(player_data)
|
|||||||
currently_selected_surface = surface_dropdown.get_item(currently_selected_index)
|
currently_selected_surface = surface_dropdown.get_item(currently_selected_index)
|
||||||
end
|
end
|
||||||
surface_dropdown.clear_items()
|
surface_dropdown.clear_items()
|
||||||
i = 0
|
surface_dropdown.add_item("all", 1)
|
||||||
|
i = 1
|
||||||
for name, _ in pairs(surfaces) do
|
for name, _ in pairs(surfaces) do
|
||||||
i = i + 1
|
i = i + 1
|
||||||
surface_dropdown.add_item(name, i)
|
surface_dropdown.add_item(name, i)
|
||||||
@@ -159,9 +160,14 @@ end
|
|||||||
--- @param map_data MapData
|
--- @param map_data MapData
|
||||||
--- @param player_data PlayerData
|
--- @param player_data PlayerData
|
||||||
function manager.update(map_data, player_data)
|
function manager.update(map_data, player_data)
|
||||||
manager.build(player_data)
|
if player_data.selected_tab ~= nil then
|
||||||
stations_tab.build(map_data, player_data)
|
manager.build(player_data)
|
||||||
inventory_tab.build(map_data, player_data)
|
end
|
||||||
|
if player_data.selected_tab == "stations_tab" then
|
||||||
|
stations_tab.build(map_data, player_data)
|
||||||
|
elseif player_data.selected_tab == "inventory_tab" then
|
||||||
|
inventory_tab.build(map_data, player_data)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
@@ -305,7 +311,8 @@ function manager.handle.manager_update_surface(player, player_data, refs, e)
|
|||||||
local i = element.selected_index
|
local i = element.selected_index
|
||||||
local refs = player_data.refs
|
local refs = player_data.refs
|
||||||
local surface_id = -1
|
local surface_id = -1
|
||||||
if i > 0 then
|
--all surfaces should always be the first entry with an index of 1
|
||||||
|
if i > 1 then
|
||||||
local surface_name = refs.manager_surface_dropdown.get_item(i)
|
local surface_name = refs.manager_surface_dropdown.get_item(i)
|
||||||
local surface = game.get_surface(surface_name)
|
local surface = game.get_surface(surface_name)
|
||||||
surface_id = surface.index
|
surface_id = surface.index
|
||||||
|
|||||||
@@ -13,9 +13,7 @@ function stations_tab.create(widths)
|
|||||||
type = "tab",
|
type = "tab",
|
||||||
caption = { "cybersyn-gui.stations" },
|
caption = { "cybersyn-gui.stations" },
|
||||||
ref = { "stations", "tab" },
|
ref = { "stations", "tab" },
|
||||||
actions = {
|
handler = stations_tab.handle.on_stations_tab_selected
|
||||||
on_click = { gui = "main", action = "change_tab", tab = "stations" },
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
content = {
|
content = {
|
||||||
name = "manager_stations_content_frame",
|
name = "manager_stations_content_frame",
|
||||||
@@ -315,6 +313,12 @@ function stations_tab.handle.open_station_gui(player, player_data, refs, e)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
---@param player LuaPlayer
|
||||||
|
---@param player_data PlayerData
|
||||||
|
function stations_tab.handle.on_stations_tab_selected(player, player_data)
|
||||||
|
player_data.selected_tab = "stations_tab"
|
||||||
|
end
|
||||||
|
|
||||||
gui.add_handlers(stations_tab.handle, stations_tab.wrapper)
|
gui.add_handlers(stations_tab.handle, stations_tab.wrapper)
|
||||||
|
|
||||||
return stations_tab
|
return stations_tab
|
||||||
|
|||||||
@@ -100,6 +100,9 @@ function util.slot_table_build_from_station(station)
|
|||||||
if comb1_signals then
|
if comb1_signals then
|
||||||
for _, v in pairs(comb1_signals) do
|
for _, v in pairs(comb1_signals) do
|
||||||
local item = v.signal
|
local item = v.signal
|
||||||
|
if item.type == "virtual" then
|
||||||
|
goto continue
|
||||||
|
end
|
||||||
local count = v.count
|
local count = v.count
|
||||||
local name = item.name
|
local name = item.name
|
||||||
local sprite, img_path, item_string = util.generate_item_references(name)
|
local sprite, img_path, item_string = util.generate_item_references(name)
|
||||||
@@ -126,6 +129,7 @@ function util.slot_table_build_from_station(station)
|
|||||||
}
|
}
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
::continue::
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
return children
|
return children
|
||||||
|
|||||||
Reference in New Issue
Block a user