z_mirror/CursorEnhancements

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

Caleb HeuerSmart quickbar experimentaa43e4b

smart-quickbar
1019 B42 linesraw
1local util = require("__CursorEnhancements__/scripts/util")
2
3--- @param e EventData.on_player_cursor_stack_changed
4local function on_player_cursor_stack_changed(e)
5  local player = game.get_player(e.player_index)
6  if not player then
7    return
8  end
9  local item = util.get_cursor_item(player)
10  if not item then
11    return
12  end
13
14  for i = 1, 100 do
15    local slot = player.get_quick_bar_slot(i)
16    if slot and slot.name == item then
17      player.set_active_quick_bar_page(1, math.floor(i / 10) + 1)
18    end
19  end
20end
21
22--- @param e EventData.CustomInputEvent
23local function on_smart_pipette(e)
24  global.pipetting[e.player_index] = true
25end
26
27local function init()
28  --- @type table<uint, boolean>
29  global.pipetting = {}
30end
31
32local smart_quickbar = {}
33
34smart_quickbar.on_init = init
35smart_quickbar.on_configuration_changed = init
36
37smart_quickbar.events = {
38  ["cen-linked-smart-pipette"] = on_smart_pipette,
39  [defines.events.on_player_cursor_stack_changed] = on_player_cursor_stack_changed,
40}
41
42return smart_quickbar