1
0
mirror of https://github.com/Refactorio/RedMew.git synced 2024-12-14 10:13:13 +02:00
RedMew/map_gen/maps/space_race/gui/join_gui.lua
2019-10-12 14:09:24 +02:00

127 lines
4.1 KiB
Lua

local Gui = require 'utils.gui'
local Public = {}
-- <Join GUI start>
local join_USA = Gui.uid_name()
local join_USSR = Gui.uid_name()
function Public.show_gui(event)
local frame
local player = game.get_player(event.player_index)
local center = player.gui.center
local gui = center['Space-Race-Lobby']
if (gui) then
Gui.destroy(gui)
end
frame = player.gui.center.add {name = 'Space-Race-Lobby', type = 'frame', direction = 'vertical', style = 'captionless_frame'}
frame.style.minimal_width = 300
--Header
local top_flow = frame.add {type = 'flow', direction = 'horizontal'}
top_flow.style.horizontal_align = 'center'
top_flow.style.horizontally_stretchable = true
local title_flow = top_flow.add {type = 'flow'}
title_flow.style.horizontal_align = 'center'
title_flow.style.top_padding = 8
title_flow.style.horizontally_stretchable = false
local title = title_flow.add {type = 'label', caption = 'Welcome to Space Race'}
title.style.font = 'default-large-bold'
--Body
local content_flow = frame.add {type = 'flow', direction = 'horizontal'}
content_flow.style.top_padding = 8
content_flow.style.bottom_padding = 16
content_flow.style.left_padding = 24
content_flow.style.right_padding = 24
content_flow.style.horizontal_align = 'center'
content_flow.style.horizontally_stretchable = true
local label_flow = content_flow.add {type = 'flow'}
label_flow.style.horizontal_align = 'center'
label_flow.style.horizontally_stretchable = true
local label = label_flow.add {type = 'label', caption = 'Feel free to pick a side!'}
label.style.horizontal_align = 'center'
label.style.single_line = false
label.style.font = 'default'
--Footer
local button_flow = frame.add {type = 'flow'}
button_flow.style.horizontal_align = 'center'
button_flow.style.horizontally_stretchable = true
local usa_button_flow = button_flow.add {type = 'flow', direction = 'vertical'}
usa_button_flow.style.horizontally_stretchable = true
usa_button_flow.style.horizontal_align = 'center'
local ussr_button_flow = button_flow.add {type = 'flow', direction = 'vertical'}
ussr_button_flow.style.horizontally_stretchable = true
ussr_button_flow.style.horizontal_align = 'center'
local teams = remote.call('space-race', 'get_teams')
local force_USSR = teams[2]
local force_USA = teams[1]
local usa_players = #force_USA.players
local ussr_players = #force_USSR.players
local usa_connected = #force_USA.connected_players
local ussr_connected = #force_USSR.connected_players
label = usa_button_flow.add {type = 'label', caption = usa_connected .. ' online / ' .. usa_players .. ' total'}
label.style.horizontal_align = 'center'
label.style.single_line = false
label.style.font = 'default'
local join_usa_button = usa_button_flow.add {type = 'button', name = join_USA, caption = 'Join United Factory Workers'}
label = ussr_button_flow.add {type = 'label', caption = ussr_connected .. ' online / ' .. ussr_players .. ' total'}
label.style.horizontal_align = 'center'
label.style.single_line = false
label.style.font = 'default'
local join_ussr_button = ussr_button_flow.add {type = 'button', name = join_USSR, caption = 'Join Union of Factory Employees'}
Gui.set_data(join_usa_button, frame)
Gui.set_data(join_ussr_button, frame)
end
Gui.on_click(
join_USA,
function(event)
local frame = Gui.get_data(event.element)
local player = event.player
if remote.call('space-race', 'join_usa', nil, player) then
Gui.remove_data_recursively(frame)
frame.destroy()
remote.call('space-race-lobby' ,'update_gui')
end
end
)
Gui.on_click(
join_USSR,
function(event)
local frame = Gui.get_data(event.element)
local player = event.player
if remote.call('space-race', 'join_ussr', nil, player) then
Gui.remove_data_recursively(frame)
frame.destroy()
remote.call('space-race-lobby' ,'update_gui')
end
end
)
-- <Join GUI end>
return Public