1
0
mirror of https://github.com/Refactorio/RedMew.git synced 2024-12-12 10:04:40 +02:00
RedMew/features/snake/gui.lua
RedRafe 926032b276
GUIs refactor using mod-gui (#1418)
* Use mod-gui for GUIs

* Height 40 and score reorder
2024-08-03 17:31:10 +01:00

53 lines
1.1 KiB
Lua

local Game = require 'features.snake.game'
local Gui = require 'utils.gui'
local Event = require 'utils.event'
local Public = {}
local main_button_name = Gui.uid_name()
local function show_gui_for_player(player)
if not player or not player.valid then
return
end
Gui.add_top_element(player, {
type = 'button',
name = main_button_name,
caption = {'snake.name'}
})
end
local function player_created(event)
if Game.is_running() then
local player = game.get_player(event.player_index)
show_gui_for_player(player)
end
end
Event.add(defines.events.on_player_created, player_created)
function Public.show()
for _, player in pairs(game.players) do
show_gui_for_player(player)
end
end
function Public.destroy()
for _, player in pairs(game.players) do
local button = Gui.get_top_element(player, main_button_name)
if button and button.valid then
button.destroy()
end
end
end
Gui.on_click(
main_button_name,
function(event)
Game.new_snake(event.player)
end
)
return Public