1
0
mirror of https://github.com/ComfyFactory/ComfyFactorio.git synced 2024-12-28 23:06:38 +02:00
ComfyFactorio/maps/mountain_race/gui.lua
2021-03-24 16:46:00 +01:00

54 lines
1.7 KiB
Lua

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