mirror of
https://github.com/ComfyFactory/ComfyFactorio.git
synced 2025-01-08 00:39:30 +02:00
3cb39ad94a
Adds a new gui button at top that allows players to toggle all the top buttons Minor changes to fish defender Minor changes to Mtn v3
71 lines
2.2 KiB
Lua
71 lines
2.2 KiB
Lua
-- toggle your flashlight -- by mewmew
|
|
|
|
local Event = require 'utils.event'
|
|
local Gui = require 'utils.gui'
|
|
local message_color = {r = 200, g = 200, b = 0}
|
|
|
|
local function on_gui_click(event)
|
|
if not event.element then
|
|
return
|
|
end
|
|
if not event.element.valid then
|
|
return
|
|
end
|
|
if not event.element.name then
|
|
return
|
|
end
|
|
if event.element.name ~= 'flashlight_toggle' then
|
|
return
|
|
end
|
|
local player = game.players[event.player_index]
|
|
|
|
if global.flashlight_enabled[player.name] == true then
|
|
player.character.disable_flashlight()
|
|
player.print('Flashlight disabled.', message_color)
|
|
global.flashlight_enabled[player.name] = false
|
|
return
|
|
end
|
|
|
|
if global.flashlight_enabled[player.name] == false then
|
|
player.character.enable_flashlight()
|
|
player.print('Flashlight enabled.', message_color)
|
|
global.flashlight_enabled[player.name] = true
|
|
return
|
|
end
|
|
end
|
|
|
|
local function on_player_respawned(event)
|
|
local player = game.players[event.player_index]
|
|
if global.flashlight_enabled[player.name] == false then
|
|
player.character.disable_flashlight()
|
|
return
|
|
end
|
|
if global.flashlight_enabled[player.name] == true then
|
|
player.character.enable_flashlight()
|
|
return
|
|
end
|
|
end
|
|
|
|
local function on_player_joined_game(event)
|
|
if not global.flashlight_enabled then
|
|
global.flashlight_enabled = {}
|
|
end
|
|
local player = game.players[event.player_index]
|
|
global.flashlight_enabled[player.name] = true
|
|
if player.gui.top['flashlight_toggle'] then
|
|
return
|
|
end
|
|
local b = player.gui.top.add({type = 'sprite-button', name = 'flashlight_toggle', sprite = 'item/small-lamp', tooltip = 'Toggle flashlight', style = Gui.button_style})
|
|
b.style.minimal_height = 38
|
|
b.style.maximal_height = 38
|
|
b.style.minimal_width = 38
|
|
b.style.top_padding = 2
|
|
b.style.left_padding = 4
|
|
b.style.right_padding = 4
|
|
b.style.bottom_padding = 2
|
|
end
|
|
|
|
Event.add(defines.events.on_player_joined_game, on_player_joined_game)
|
|
Event.add(defines.events.on_player_respawned, on_player_respawned)
|
|
Event.add(defines.events.on_gui_click, on_gui_click)
|