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)