mirror of
https://github.com/Refactorio/RedMew.git
synced 2025-01-05 22:53:39 +02:00
52 lines
1.1 KiB
Lua
52 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
|
|
|
|
local top = player.gui.top
|
|
if not top[main_button_name] then
|
|
top.add {type = 'button', name = main_button_name, caption = {'snake.name'}}
|
|
end
|
|
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 = player.gui.top[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
|