z_mirror/RecipeBook

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

Caleb HeuerRemove shortcut and make top-left button enabled by default05cc11f

trunk
1.7 KiB65 linesraw
1local flib_gui = require("__flib__.gui")
2local mod_gui = require("__core__.lualib.mod-gui")
3
4local main_gui = require("scripts.gui.main")
5
6--- @param player LuaPlayer
7local function refresh_button(player)
8  local button_flow = mod_gui.get_button_flow(player)
9  if button_flow.rb_toggle then
10    button_flow.rb_toggle.destroy()
11  end
12  if player.mod_settings["rb-show-overhead-button"].value then
13    button_flow.add({
14      type = "sprite-button",
15      name = "rb_toggle",
16      style = mod_gui.button_style,
17      tooltip = { "", { "gui.rb-title" }, " (", { "gui.rb-toggle-instruction" }, ")" },
18      sprite = "rb_logo",
19      tags = flib_gui.format_handlers({ [defines.events.on_gui_click] = main_gui.toggle }),
20    }).style.padding =
21      7
22  end
23end
24
25--- @param e EventData.on_player_created
26local function on_player_created(e)
27  local player = game.get_player(e.player_index)
28  if not player then
29    return
30  end
31  refresh_button(player)
32end
33
34--- @param e EventData.on_runtime_mod_setting_changed
35local function on_runtime_mod_setting_changed(e)
36  if e.setting ~= "rb-show-overhead-button" then
37    return
38  end
39  local player = game.get_player(e.player_index)
40  if not player then
41    return
42  end
43  refresh_button(player)
44end
45
46local overhead_button = {}
47
48function overhead_button.on_init()
49  for _, player in pairs(game.players) do
50    refresh_button(player)
51  end
52end
53
54function overhead_button.on_configuration_changed()
55  for _, player in pairs(game.players) do
56    refresh_button(player)
57  end
58end
59
60overhead_button.events = {
61  [defines.events.on_player_created] = on_player_created,
62  [defines.events.on_runtime_mod_setting_changed] = on_runtime_mod_setting_changed,
63}
64
65return overhead_button