78 lines
2.0 KiB
Lua
78 lines
2.0 KiB
Lua
require("config")
|
|
|
|
function init()
|
|
global.mapview = global.mapview or {}
|
|
for i, player in pairs(game.players) do
|
|
if global.mapview[i] == nil then
|
|
global.mapview[i] = player.game_view_settings.show_minimap
|
|
end
|
|
end
|
|
end
|
|
|
|
function toggle_view(player_index, view)
|
|
local settings = game.players[player_index].game_view_settings
|
|
settings[view] = not settings[view]
|
|
end
|
|
|
|
function toggle_view_map(event)
|
|
toggle_view(event.player_index, "show_minimap")
|
|
global.mapview[event.player_index] = game.players[event.player_index].game_view_settings.show_minimap
|
|
end
|
|
|
|
function toggle_view_research(event)
|
|
toggle_view(event.player_index, "show_research_info")
|
|
end
|
|
|
|
function toggle_view_toolbar(event)
|
|
toggle_view(event.player_index, "show_controller_gui")
|
|
end
|
|
|
|
function toggle_view_alerts(event)
|
|
toggle_view(event.player_index, "show_alert_gui")
|
|
end
|
|
|
|
if viewsettings.enable_minimap_hotkey then
|
|
script.on_event("toggle_view_map", toggle_view_map)
|
|
end
|
|
|
|
if viewsettings.enable_research_hotkey then
|
|
script.on_event("toggle_view_research", toggle_view_research)
|
|
end
|
|
|
|
if viewsettings.enable_toolbar_hotkey then
|
|
script.on_event("toggle_view_toolbar", toggle_view_toolbar)
|
|
end
|
|
|
|
if viewsettings.enable_alerts_hotkey then
|
|
script.on_event("toggle_view_alerts", toggle_view_alerts)
|
|
end
|
|
|
|
function set_map_view(player, state)
|
|
if player.game_view_settings.show_minimap ~= state then
|
|
toggle_view(player.index, "show_minimap")
|
|
end
|
|
end
|
|
|
|
function updated_selected(event)
|
|
local player = game.players[event.player_index]
|
|
local selected = player.selected
|
|
if global.mapview[event.player_index] then
|
|
if selected and viewsettings.hide_minimap_on[selected.type] then
|
|
set_map_view(player, false)
|
|
else
|
|
set_map_view(player, true)
|
|
end
|
|
end
|
|
end
|
|
|
|
local autohide_minimap = false
|
|
for _, bool in pairs(viewsettings.hide_minimap_on) do
|
|
autohide_minimap = autohide_minimap or bool
|
|
end
|
|
if autohide_minimap then
|
|
script.on_event(defines.events.on_selected_entity_changed, updated_selected)
|
|
end
|
|
|
|
script.on_init(init)
|
|
script.on_configuration_changed(init)
|
|
script.on_event(defines.events.on_player_created, init) |