z_mirror/BlueprintTools

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

raiguardStart on set tiles GUId93cdd3

clipboards
1.9 KiB64 linesraw
1local gui = require("__flib__.gui-beta")
2local mod_gui = require("__core__.lualib.mod-gui")
3
4local buttons_gui = {}
5
6local function mod_gui_button(color, action)
7  return {
8    type = "sprite-button",
9    style = "bpt_mod_gui_button_"..color,
10    sprite = "bpt_"..action.."_white",
11    tooltip = {"bpt-gui."..string.gsub(string.gsub(action, "bpt_", ""), "_", "-").."-tooltip"},
12    elem_mods = {visible = false},
13    actions = {
14      on_click = {gui = "buttons", action = action}
15    },
16    ref = {action}
17  }
18end
19
20function buttons_gui.refresh(player, player_table)
21  local button_flow = mod_gui.get_button_flow(player)
22
23  for _, button in pairs(player_table.guis.blueprint_buttons or {}) do
24    button.destroy()
25  end
26  player_table.guis.blueprint_buttons = gui.build(button_flow, {
27    -- mod_gui_button("blue", "flip_horizontally"),
28    -- mod_gui_button("blue", "flip_vertically"),
29    mod_gui_button("blue", "swap_wire_colors"),
30    mod_gui_button("blue", "set_tiles"),
31    mod_gui_button("blue", "quick_grid"),
32    mod_gui_button("blue", "configure")
33  })
34
35  for _, button in pairs(player_table.guis.upgrade_planner_buttons or {}) do
36    button.destroy()
37  end
38  player_table.guis.upgrade_planner_buttons = gui.build(button_flow, {
39    mod_gui_button("green", "configure")
40  })
41
42  for _, button in pairs(player_table.guis.deconstruction_planner_buttons or {}) do
43    button.destroy()
44  end
45  player_table.guis.deconstruction_planner_buttons = gui.build(button_flow, {
46    mod_gui_button("red", "configure")
47  })
48end
49
50function buttons_gui.show(player_table, button_type)
51  for _, button in pairs(player_table.guis[button_type.."_buttons"]) do
52    button.visible = true
53  end
54  player_table.flags[button_type.."_buttons_shown"] = true
55end
56
57function buttons_gui.hide(player_table, button_type)
58  for _, button in pairs(player_table.guis[button_type.."_buttons"]) do
59    button.visible = false
60  end
61  player_table.flags[button_type.."_buttons_shown"] = false
62end
63
64return buttons_gui