1
0
mirror of https://github.com/ComfyFactory/ComfyFactorio.git synced 2025-01-06 00:23:49 +02:00
ComfyFactorio/modules/flashlight_toggle_button.lua
2021-03-24 20:14:55 +01:00

70 lines
2.1 KiB
Lua

-- toggle your flashlight -- by mewmew
local Event = require 'utils.event'
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'})
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)