You've already forked ComfyFactorio
mirror of
https://github.com/ComfyFactory/ComfyFactorio.git
synced 2026-04-26 21:02:59 +02:00
84 lines
2.7 KiB
Lua
84 lines
2.7 KiB
Lua
-- This file is part of thesixthroc's Pirate Ship softmod, licensed under GPLv3 and stored at https://github.com/ComfyFactory/ComfyFactorio and https://github.com/danielmartin0/ComfyFactorio-Pirates.
|
|
|
|
local Public = {}
|
|
|
|
function Public.show_welcome_window(player)
|
|
if player.gui.center['welcome_window'] then
|
|
player.gui.center['welcome_window'].destroy()
|
|
end
|
|
|
|
local frame = player.gui.center.add({
|
|
type = 'frame',
|
|
name = 'welcome_window',
|
|
direction = 'vertical',
|
|
})
|
|
frame.style.width = 240
|
|
-- frame.style.color = {r = 0.5, g = 0, b = 0, a = 0.5}
|
|
|
|
local title_flow = frame.add({ type = 'flow', direction = 'horizontal' })
|
|
title_flow.style.horizontal_align = 'center'
|
|
title_flow.style.top_margin = 10
|
|
title_flow.style.width = 220
|
|
|
|
local colors = {
|
|
{ r = 1, g = 0.5, b = 0.5 },
|
|
{ r = 1, g = 0.7, b = 0.5 },
|
|
{ r = 1, g = 1, b = 0.5 },
|
|
{ r = 0.7, g = 1, b = 0.5 },
|
|
{ r = 0.5, g = 0.7, b = 1 },
|
|
{ r = 0.7, g = 0.5, b = 1 },
|
|
}
|
|
|
|
-- Todo: Localize
|
|
local welcome = { 'W', 'E', 'L', 'C', 'O', 'M', 'E', '!' }
|
|
|
|
for i, letter in ipairs(welcome) do
|
|
local label = title_flow.add({ type = 'label', caption = letter })
|
|
label.style.font = 'default-large-bold'
|
|
label.style.font_color = colors[(i - 1) % #colors + 1]
|
|
end
|
|
|
|
local message1 = frame.add({ type = 'label', caption = { 'pirates.welcome_main_1' } })
|
|
message1.style.font = 'scenario-message-dialog'
|
|
message1.style.horizontal_align = 'center'
|
|
message1.style.single_line = false
|
|
message1.style.top_margin = 12
|
|
message1.style.width = 220
|
|
message1.style.rich_text_setting = defines.rich_text_setting.enabled
|
|
|
|
local message2 = frame.add({ type = 'label', caption = { 'pirates.welcome_main_2' } })
|
|
message2.style.font = 'scenario-message-dialog'
|
|
message2.style.horizontal_align = 'center'
|
|
message2.style.single_line = false
|
|
message2.style.top_margin = 10
|
|
message2.style.width = 220
|
|
message2.style.rich_text_setting = defines.rich_text_setting.enabled
|
|
|
|
local close_instruction = frame.add({ type = 'label', caption = { 'pirates.welcome_end' } })
|
|
close_instruction.style.font = 'default-small'
|
|
close_instruction.style.horizontal_align = 'center'
|
|
close_instruction.style.top_margin = 20
|
|
close_instruction.style.width = 220
|
|
end
|
|
|
|
function Public.handle_click(event)
|
|
if event.element and event.element.valid then
|
|
local player = game.players[event.player_index]
|
|
if player.gui.center['welcome_window'] then
|
|
if event.element.name == 'welcome_window' or event.element.parent.name == 'welcome_window' then
|
|
Public.close_welcome_window(player)
|
|
return true
|
|
end
|
|
end
|
|
end
|
|
return false
|
|
end
|
|
|
|
function Public.close_welcome_window(player)
|
|
if player.gui.center['welcome_window'] then
|
|
player.gui.center['welcome_window'].destroy()
|
|
end
|
|
end
|
|
|
|
return Public
|