1
0
mirror of https://github.com/ComfyFactory/ComfyFactorio.git synced 2025-01-10 00:43:27 +02:00
ComfyFactorio/maps/mountain_race/gui.lua

45 lines
1.5 KiB
Lua
Raw Normal View History

local Public = {}
function Public.create_top_gui(player)
local element = player.gui.top.mountain_race
if element then return end
element = player.gui.top.add({type = "frame", name = "mountain_race", direction = "horizontal"})
element.style.maximal_height = 38
local team = element.add({type = "label", caption = "Loading..."})
team.style.font = "heading-2"
local text = element.add({type = "label"})
text.style.font = "heading-2"
text.style.font_color = {225, 225, 225}
end
local function get_status_string(mountain_race)
local north = mountain_race.locomotives.north
local south = mountain_race.locomotives.south
if not north then return {{255, 65, 65}, "SOUTH", " has won the race!"} end
if not south then return {{75, 75, 255}, "NORTH", " has won the race!"} end
local distance = math.floor(math.abs(north.position.x - south.position.x))
if distance == 0 then return {{200, 200, 0}, "Teams", " are equal"} end
if north.position.x > south.position.x then
return {{75, 75, 255}, "NORTH", " is " .. distance .. " units in the lead"}
else
return {{255, 65, 65}, "SOUTH", " is " .. distance .. " units in the lead"}
end
end
function Public.update_top_gui(mountain_race)
local status = get_status_string(mountain_race)
for _, player in pairs(game.connected_players) do
local element = player.gui.top.mountain_race
if element and element.valid then
element.children[1].style.font_color = status[1]
element.children[1].caption = status[2]
element.children[2].caption = status[3]
end
end
end
return Public