z_mirror/MouseOverConstruction

git clone https://git.raiguard.me/z_mirror/MouseOverConstruction

Caleb HeuerRemove obselete TODOsf1d4656

trunk
1.2 KiB40 linesraw
1--- @param e EventData.on_lua_shortcut|EventData.CustomInputEvent
2local function toggle_mouseover(e)
3  local name = e.input_name or e.prototype_name
4  if name ~= "moc-toggle" then
5    return
6  end
7  local player = game.get_player(e.player_index)
8  if not player then
9    return
10  end
11  local new_value = not storage.mouseover_active[e.player_index]
12  storage.mouseover_active[e.player_index] = new_value
13  player.set_shortcut_toggled("moc-toggle", new_value)
14  if e.input_name then
15    player.create_local_flying_text({
16      text = new_value and { "message.moc-enabled" } or { "message.moc-disabled" },
17      create_at_cursor = true,
18    })
19  end
20end
21
22--- @class shortcut_handler : event_handler
23local shortcut_handler = {}
24
25function shortcut_handler.on_init()
26  --- @type Set<PlayerIndex>
27  storage.mouseover_active = {}
28  for _, player in pairs(game.players) do
29    storage.mouseover_active[player.index] = player.is_shortcut_toggled("moc-toggle")
30  end
31end
32
33shortcut_handler.on_configuration_changed = shortcut_handler.on_init
34
35shortcut_handler.events = {
36  [defines.events.on_lua_shortcut] = toggle_mouseover,
37  ["moc-toggle"] = toggle_mouseover,
38}
39
40return shortcut_handler