From b144a06f1a6b67651d1d57be99eaa1f01c98e264 Mon Sep 17 00:00:00 2001 From: Monica Moniot Date: Fri, 6 Jan 2023 19:24:24 -0500 Subject: [PATCH] 1.2.8 (#28) Version: 1.2.8 Date: 2022-1-5 Features: - Improved placeholder cybernetic combinator art - Added a wagon control setting to bar unfiltered slots in adjacent cargo wagons - Added a setting and keybind for toggling on or off the central planner Changes: - Sped up the rate at which copy-paste by blueprint will be noticed Bugfixes: - Fixed a bug with combinators sometimes failing to connect with train stops - Fixed wagon control combinators outputting wagon contents after inserters have already taken out items - Fixed a rare crash on world migration Scripting: - Added missing return values to some interface functions - Migrated to non-deprecated flib modules --- .luarc.json | 57 -- .vscode/flib/LICENSE | 21 + .vscode/flib/README.md | 24 + .vscode/flib/area.lua | 359 ++++++++++++ .vscode/flib/bounding-box.lua | 329 +++++++++++ .vscode/flib/changelog.txt | 319 ++++++++++ .vscode/flib/data-util.lua | 182 ++++++ .vscode/flib/data.lua | 2 + .vscode/flib/dictionary-lite.lua | 476 +++++++++++++++ .vscode/flib/dictionary.lua | 424 ++++++++++++++ .vscode/flib/direction.lua | 115 ++++ .../flib/docs/assets/indicator-examples.png | Bin 0 -> 7923 bytes .../flib/docs/assets/slot-style-examples.png | Bin 0 -> 17286 bytes .vscode/flib/docs/gui-styles.md | 115 ++++ .vscode/flib/docs/sprites.md | 9 + .vscode/flib/event.lua | 90 +++ .vscode/flib/format.lua | 79 +++ .vscode/flib/graphics/black.png | Bin 0 -> 119 bytes .vscode/flib/graphics/dark-red-button.png | Bin 0 -> 1177 bytes .vscode/flib/graphics/empty.png | Bin 0 -> 131 bytes .vscode/flib/graphics/frame-action-icons.png | Bin 0 -> 13855 bytes .vscode/flib/graphics/indicators.png | Bin 0 -> 15584 bytes .vscode/flib/graphics/planner.png | Bin 0 -> 6429 bytes .vscode/flib/graphics/slots.png | Bin 0 -> 89337 bytes .vscode/flib/graphics/slots.xcf | Bin 0 -> 571872 bytes .vscode/flib/graphics/subheader-line.png | Bin 0 -> 90 bytes .vscode/flib/gui-beta.lua | 2 + .vscode/flib/gui-lite.lua | 201 +++++++ .vscode/flib/gui.lua | 328 +++++++++++ .vscode/flib/info.json | 24 + .vscode/flib/locale/af/dictionary.cfg | 3 + .vscode/flib/locale/ar/dictionary.cfg | 3 + .vscode/flib/locale/be/dictionary.cfg | 2 + .vscode/flib/locale/bg/dictionary.cfg | 2 + .vscode/flib/locale/ca/dictionary.cfg | 3 + .vscode/flib/locale/cs/dictionary.cfg | 3 + .vscode/flib/locale/da/dictionary.cfg | 3 + .vscode/flib/locale/de/dictionary.cfg | 3 + .vscode/flib/locale/de/flib.cfg | 10 + .vscode/flib/locale/el/dictionary.cfg | 3 + .vscode/flib/locale/en/dictionary.cfg | 2 + .vscode/flib/locale/en/flib.cfg | 11 + .vscode/flib/locale/eo/dictionary.cfg | 2 + .vscode/flib/locale/es-ES/dictionary.cfg | 3 + .vscode/flib/locale/et/dictionary.cfg | 2 + .vscode/flib/locale/fi/dictionary.cfg | 3 + .vscode/flib/locale/fr/dictionary.cfg | 3 + .vscode/flib/locale/fy-NL/dictionary.cfg | 2 + .vscode/flib/locale/ga-IE/dictionary.cfg | 2 + .vscode/flib/locale/he/dictionary.cfg | 3 + .vscode/flib/locale/hr/dictionary.cfg | 2 + .vscode/flib/locale/hu/dictionary.cfg | 3 + .vscode/flib/locale/id/dictionary.cfg | 2 + .vscode/flib/locale/it/dictionary.cfg | 3 + .vscode/flib/locale/ja/dictionary.cfg | 3 + .vscode/flib/locale/ko/dictionary.cfg | 3 + .vscode/flib/locale/lt/dictionary.cfg | 2 + .vscode/flib/locale/lv/dictionary.cfg | 2 + .vscode/flib/locale/nl/dictionary.cfg | 3 + .vscode/flib/locale/no/dictionary.cfg | 3 + .vscode/flib/locale/pl/dictionary.cfg | 3 + .vscode/flib/locale/pt-BR/dictionary.cfg | 2 + .vscode/flib/locale/pt-PT/dictionary.cfg | 3 + .vscode/flib/locale/ro/dictionary.cfg | 3 + .vscode/flib/locale/ru/dictionary.cfg | 3 + .vscode/flib/locale/sk/dictionary.cfg | 2 + .vscode/flib/locale/sl/dictionary.cfg | 2 + .vscode/flib/locale/sq/dictionary.cfg | 2 + .vscode/flib/locale/sr/dictionary.cfg | 3 + .vscode/flib/locale/sv-SE/dictionary.cfg | 3 + .vscode/flib/locale/th/dictionary.cfg | 2 + .vscode/flib/locale/tr/dictionary.cfg | 3 + .vscode/flib/locale/uk/dictionary.cfg | 3 + .vscode/flib/locale/vi/dictionary.cfg | 3 + .vscode/flib/locale/zh-CN/dictionary.cfg | 3 + .vscode/flib/locale/zh-TW/dictionary.cfg | 3 + .vscode/flib/math.lua | 190 ++++++ .vscode/flib/migration.lua | 134 +++++ .vscode/flib/misc.lua | 72 +++ .vscode/flib/on-tick-n.lua | 91 +++ .vscode/flib/orientation.lua | 39 ++ .vscode/flib/position.lua | 257 ++++++++ .vscode/flib/prototypes/sprite.lua | 53 ++ .vscode/flib/prototypes/style.lua | 335 +++++++++++ .vscode/flib/queue.lua | 142 +++++ .vscode/flib/reverse-defines.lua | 30 + .vscode/flib/table.lua | 552 ++++++++++++++++++ .vscode/flib/thumbnail.png | Bin 0 -> 4433 bytes .vscode/flib/train.lua | 130 +++++ .vscode/flib/translation.lua | 220 +++++++ .vscode/settings.json | 66 ++- README.md | 8 +- TODO | 5 + cybersyn/changelog.txt | 16 + cybersyn/control.lua | 1 - cybersyn/data-final-fixes.lua | 1 + cybersyn/data.lua | 6 + .../cybernetic-combinator-remnants.png | Bin 23141 -> 25938 bytes .../combinator/cybernetic-combinator.png | Bin 28224 -> 31134 bytes .../hr-cybernetic-combinator-remnants.png | Bin 77621 -> 85584 bytes .../combinator/hr-cybernetic-combinator.png | Bin 98625 -> 106003 bytes cybersyn/info.json | 2 +- cybersyn/locale/en/base.cfg | 7 + cybersyn/prototypes/tech.lua | 1 + cybersyn/scripts/central-planning.lua | 180 +++--- cybersyn/scripts/constants.lua | 1 + cybersyn/scripts/factorio-api.lua | 6 +- cybersyn/scripts/global.lua | 1 + cybersyn/scripts/gui.lua | 377 ++++++------ cybersyn/scripts/layout.lua | 26 +- cybersyn/scripts/main.lua | 75 +-- cybersyn/scripts/migrations.lua | 20 +- cybersyn/scripts/remote-interface.lua | 18 +- cybersyn/scripts/train-events.lua | 121 ++-- cybersyn/settings.lua | 11 +- 115 files changed, 6013 insertions(+), 474 deletions(-) delete mode 100644 .luarc.json create mode 100644 .vscode/flib/LICENSE create mode 100644 .vscode/flib/README.md create mode 100644 .vscode/flib/area.lua create mode 100644 .vscode/flib/bounding-box.lua create mode 100644 .vscode/flib/changelog.txt create mode 100644 .vscode/flib/data-util.lua create mode 100644 .vscode/flib/data.lua create mode 100644 .vscode/flib/dictionary-lite.lua create mode 100644 .vscode/flib/dictionary.lua create mode 100644 .vscode/flib/direction.lua create mode 100644 .vscode/flib/docs/assets/indicator-examples.png create mode 100644 .vscode/flib/docs/assets/slot-style-examples.png create mode 100644 .vscode/flib/docs/gui-styles.md create mode 100644 .vscode/flib/docs/sprites.md create mode 100644 .vscode/flib/event.lua create mode 100644 .vscode/flib/format.lua create mode 100644 .vscode/flib/graphics/black.png create mode 100644 .vscode/flib/graphics/dark-red-button.png create mode 100644 .vscode/flib/graphics/empty.png create mode 100644 .vscode/flib/graphics/frame-action-icons.png create mode 100644 .vscode/flib/graphics/indicators.png create mode 100644 .vscode/flib/graphics/planner.png create mode 100644 .vscode/flib/graphics/slots.png create mode 100644 .vscode/flib/graphics/slots.xcf create mode 100644 .vscode/flib/graphics/subheader-line.png create mode 100644 .vscode/flib/gui-beta.lua create mode 100644 .vscode/flib/gui-lite.lua create mode 100644 .vscode/flib/gui.lua create mode 100644 .vscode/flib/info.json create mode 100644 .vscode/flib/locale/af/dictionary.cfg create mode 100644 .vscode/flib/locale/ar/dictionary.cfg create mode 100644 .vscode/flib/locale/be/dictionary.cfg create mode 100644 .vscode/flib/locale/bg/dictionary.cfg create mode 100644 .vscode/flib/locale/ca/dictionary.cfg create mode 100644 .vscode/flib/locale/cs/dictionary.cfg create mode 100644 .vscode/flib/locale/da/dictionary.cfg create mode 100644 .vscode/flib/locale/de/dictionary.cfg create mode 100644 .vscode/flib/locale/de/flib.cfg create mode 100644 .vscode/flib/locale/el/dictionary.cfg create mode 100644 .vscode/flib/locale/en/dictionary.cfg create mode 100644 .vscode/flib/locale/en/flib.cfg create mode 100644 .vscode/flib/locale/eo/dictionary.cfg create mode 100644 .vscode/flib/locale/es-ES/dictionary.cfg create mode 100644 .vscode/flib/locale/et/dictionary.cfg create mode 100644 .vscode/flib/locale/fi/dictionary.cfg create mode 100644 .vscode/flib/locale/fr/dictionary.cfg create mode 100644 .vscode/flib/locale/fy-NL/dictionary.cfg create mode 100644 .vscode/flib/locale/ga-IE/dictionary.cfg create mode 100644 .vscode/flib/locale/he/dictionary.cfg create mode 100644 .vscode/flib/locale/hr/dictionary.cfg create mode 100644 .vscode/flib/locale/hu/dictionary.cfg create mode 100644 .vscode/flib/locale/id/dictionary.cfg create mode 100644 .vscode/flib/locale/it/dictionary.cfg create mode 100644 .vscode/flib/locale/ja/dictionary.cfg create mode 100644 .vscode/flib/locale/ko/dictionary.cfg create mode 100644 .vscode/flib/locale/lt/dictionary.cfg create mode 100644 .vscode/flib/locale/lv/dictionary.cfg create mode 100644 .vscode/flib/locale/nl/dictionary.cfg create mode 100644 .vscode/flib/locale/no/dictionary.cfg create mode 100644 .vscode/flib/locale/pl/dictionary.cfg create mode 100644 .vscode/flib/locale/pt-BR/dictionary.cfg create mode 100644 .vscode/flib/locale/pt-PT/dictionary.cfg create mode 100644 .vscode/flib/locale/ro/dictionary.cfg create mode 100644 .vscode/flib/locale/ru/dictionary.cfg create mode 100644 .vscode/flib/locale/sk/dictionary.cfg create mode 100644 .vscode/flib/locale/sl/dictionary.cfg create mode 100644 .vscode/flib/locale/sq/dictionary.cfg create mode 100644 .vscode/flib/locale/sr/dictionary.cfg create mode 100644 .vscode/flib/locale/sv-SE/dictionary.cfg create mode 100644 .vscode/flib/locale/th/dictionary.cfg create mode 100644 .vscode/flib/locale/tr/dictionary.cfg create mode 100644 .vscode/flib/locale/uk/dictionary.cfg create mode 100644 .vscode/flib/locale/vi/dictionary.cfg create mode 100644 .vscode/flib/locale/zh-CN/dictionary.cfg create mode 100644 .vscode/flib/locale/zh-TW/dictionary.cfg create mode 100644 .vscode/flib/math.lua create mode 100644 .vscode/flib/migration.lua create mode 100644 .vscode/flib/misc.lua create mode 100644 .vscode/flib/on-tick-n.lua create mode 100644 .vscode/flib/orientation.lua create mode 100644 .vscode/flib/position.lua create mode 100644 .vscode/flib/prototypes/sprite.lua create mode 100644 .vscode/flib/prototypes/style.lua create mode 100644 .vscode/flib/queue.lua create mode 100644 .vscode/flib/reverse-defines.lua create mode 100644 .vscode/flib/table.lua create mode 100644 .vscode/flib/thumbnail.png create mode 100644 .vscode/flib/train.lua create mode 100644 .vscode/flib/translation.lua diff --git a/.luarc.json b/.luarc.json deleted file mode 100644 index d672eb8..0000000 --- a/.luarc.json +++ /dev/null @@ -1,57 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/sumneko/vscode-lua/master/setting/schema.json", - "Lua.diagnostics.disable": [ - "lowercase-global" - ], - "Lua.diagnostics.globals": [ - "mods", - "table_size", - "log", - "localised_print", - "serpent", - "global", - "__DebugAdapter", - "__Profiler", - "create_inactivity_order" - ], - "Lua.runtime.builtin": { - "coroutine": "disable", - "debug": "disable", - "io": "disable", - "math": "disable", - "os": "disable", - "package": "disable" - }, - "Lua.runtime.plugin": "/home/mami/.config/Code/User/workspaceStorage/9536dbf0665a54126a4b0958ecd5829f/justarandomgeek.factoriomod-debug/sumneko-3rd/factorio/plugin.lua", - "Lua.runtime.special": { - "__object_name": "type" - }, - "Lua.workspace.checkThirdParty": false, - "Lua.workspace.library": [ - "~/.steam/steam/steamapps/common/Factorio/data", - "~/.steam/steam/steamapps/common/Factorio/data/core/lualib", - "./.vscode/factorio", - "/home/mami/.config/Code/User/workspaceStorage/9536dbf0665a54126a4b0958ecd5829f/justarandomgeek.factoriomod-debug/sumneko-3rd/factorio/library" - ], - "runtime": { - "plugin": "C:\\Users\\mmoni\\files\\data\\projects\\factorio\\cybersyn\\.vscode\\lua\\plugin.lua", - "pluginArgs": [ - "--global-as-class", - "--mode=mods", - "--mod_name=ltndless" - ] - }, - "runtime.path": [ - "?.lua", - "?/init.lua", - "src/?.lua", - "src/scripts/?.lua", - "src/?/init.lua", - "src/scripts/?/init.lua" - ], - "runtime.pathStrict": false, - "workspace": { - "useGitIgnore": false - }, - "workspace.ignoreSubmodules": false -} \ No newline at end of file diff --git a/.vscode/flib/LICENSE b/.vscode/flib/LICENSE new file mode 100644 index 0000000..ba4cee1 --- /dev/null +++ b/.vscode/flib/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 raiguard + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/.vscode/flib/README.md b/.vscode/flib/README.md new file mode 100644 index 0000000..02fd482 --- /dev/null +++ b/.vscode/flib/README.md @@ -0,0 +1,24 @@ +# Factorio Library +The Factorio Library is a set of high-quality, commonly-used utilities for +creating Factorio mods. + +## Usage + +Download the latest release from the +[mod portal](https://mods.factorio.com/mod/flib) unzip it, and put it in your +mods directory. You can access libraries provided by flib with +`require("__flib__/event")`, etc. + +Add the flib directory to your language server's library and install the +[Factorio LSP plugin](https://github.com/JanSharp/FactorioSumnekoLuaPlugin) to +enable autocomplete and in-line documentation of flib functions. + +You can view the legacy online documentation +[here](https://factoriolib.github.io/flib/index.html). Please note that this +documentation is out-of-date, and will be replaced with a new site in the +future. + +## Contributing + +Please use the [factorio-mods-devel](https://lists.sr.ht/~raiguard/factorio-mods-devel) +mailing list for support, suggestions, and/or patches. diff --git a/.vscode/flib/area.lua b/.vscode/flib/area.lua new file mode 100644 index 0000000..c45429c --- /dev/null +++ b/.vscode/flib/area.lua @@ -0,0 +1,359 @@ +--- @diagnostic disable +--- @deprecated Use `bounding-box` instead. +local flib_area = {} + +--- @deprecated Use `bounding-box` instead. +function flib_area.ceil(self) + if not self.left_top then + self = flib_area.from_shorthand(self) + end + self.left_top = { + x = math.floor(self.left_top.x), + y = math.floor(self.left_top.y), + } + self.right_bottom = { + x = math.ceil(self.right_bottom.x), + y = math.ceil(self.right_bottom.y), + } + + return self +end + +--- @deprecated Use `bounding-box` instead. +function flib_area.center(self) + if not self.left_top then + self = flib_area.from_shorthand(self) + end + return { + x = self.left_top.x + (flib_area.width(self) / 2), + y = self.left_top.y + (flib_area.height(self) / 2), + } +end + +--- @deprecated Use `bounding-box` instead. +function flib_area.center_on(self, center_point) + if not self.left_top then + self = flib_area.from_shorthand(self) + end + + local height = flib_area.height(self) + local width = flib_area.width(self) + + self.left_top = { + x = center_point.x - (width / 2), + y = center_point.y - (height / 2), + } + self.right_bottom = { + x = center_point.x + (width / 2), + y = center_point.y + (height / 2), + } + + return self +end + +--- @deprecated Use `bounding-box` instead. +function flib_area.contains_area(self, other_area) + if not self.left_top then + self = flib_area.from_shorthand(self) + end + + return ( + self.left_top.x <= other_area.left_top.x + and self.left_top.y <= other_area.left_top.y + and self.right_bottom.x >= other_area.right_bottom.x + and self.right_bottom.y >= other_area.right_bottom.y + ) +end + +--- @deprecated Use `bounding-box` instead. +function flib_area.contains_position(self, position) + if not self.left_top then + self = flib_area.from_shorthand(self) + end + + return ( + self.left_top.x <= position.x + and self.right_bottom.x >= position.x + and self.left_top.y <= position.y + and self.right_bottom.y >= position.y + ) +end + +--- @deprecated Use `bounding-box` instead. +function flib_area.corners(self) + if not self.left_top then + self = flib_area.from_shorthand(self) + end + + self.left_bottom = { + x = self.left_top.x, + y = self.right_bottom.y, + } + self.right_top = { + x = self.right_bottom.x, + y = self.left_top.y, + } + + return self +end + +--- @deprecated Use `bounding-box` instead. +function flib_area.distance_to_nearest_edge(self, position) + if not self.left_top then + self = flib_area.from_shorthand(self) + end + + local x_distance = math.min(math.abs(self.left_top.x - position.x), math.abs(self.right_bottom.x - position.x)) + local y_distance = math.min(math.abs(self.left_top.y - position.y), math.abs(self.right_bottom.y - position.y)) + + return math.min(x_distance, y_distance) +end + +--- @deprecated Use `bounding-box` instead. +function flib_area.expand(self, delta) + if not self.left_top then + self = flib_area.from_shorthand(self) + end + + self.left_top.x = self.left_top.x - delta + self.right_bottom.x = self.right_bottom.x + delta + self.left_top.y = self.left_top.y - delta + self.right_bottom.y = self.right_bottom.y + delta + + return self +end + +--- @deprecated Use `bounding-box` instead. +function flib_area.expand_to_contain_area(self, other_area) + if not self.left_top then + self = flib_area.from_shorthand(self) + end + + self.left_top = { + x = self.left_top.x < other_area.left_top.x and self.left_top.x or other_area.left_top.x, + y = self.left_top.y < other_area.left_top.y and self.left_top.y or other_area.left_top.y, + } + self.right_bottom = { + x = self.right_bottom.x > other_area.right_bottom.x and self.right_bottom.x or other_area.right_bottom.x, + y = self.right_bottom.y > other_area.right_bottom.y and self.right_bottom.y or other_area.right_bottom.y, + } + + return self +end + +--- @deprecated Use `bounding-box` instead. +function flib_area.expand_to_contain_position(self, position) + if not self.left_top then + self = flib_area.from_shorthand(self) + end + + self.left_top = { + x = self.left_top.x < position.x and self.left_top.x or position.x, + y = self.left_top.y < position.y and self.left_top.y or position.y, + } + self.right_bottom = { + x = self.right_bottom.x > position.x and self.right_bottom.x or position.x, + y = self.right_bottom.y > position.y and self.right_bottom.y or position.y, + } + + return self +end + +--- @deprecated Use `bounding-box` instead. +function flib_area.floor(self) + if not self.left_top then + self = flib_area.from_shorthand(self) + end + + self.left_top = { + x = math.ceil(self.left_top.x), + y = math.ceil(self.left_top.y), + } + self.right_bottom = { + x = math.floor(self.right_bottom.x), + y = math.floor(self.right_bottom.y), + } + + return self +end + +--- @deprecated Use `bounding-box` instead. +function flib_area.from_dimensions(dimensions, center) + center = center or { x = 0, y = 0 } + local self = { + left_top = { + x = center.x - (dimensions.width / 2), + y = center.y - (dimensions.height / 2), + }, + right_bottom = { + x = center.x + (dimensions.width / 2), + y = center.y + (dimensions.height / 2), + }, + } + flib_area.load(self) + return self +end + +--- @deprecated Use `bounding-box` instead. +function flib_area.from_position(position, snap) + local self + if snap then + local floored_position = { x = math.floor(position.x), y = math.floor(position.y) } + self = { + left_top = { x = floored_position.x, y = floored_position.y }, + right_bottom = { x = floored_position.x + 1, y = floored_position.y + 1 }, + } + else + self = { + left_top = { x = position.x - 0.5, y = position.y - 0.5 }, + right_bottom = { x = position.x + 0.5, y = position.y + 0.5 }, + } + end + + if self then + flib_area.load(self) + return self + end +end + +--- @deprecated Use `bounding-box` instead. +function flib_area.from_shorthand(area) + local self = { + left_top = { x = area[1][1], y = area[1][2] }, + right_bottom = { x = area[2][1], y = area[2][2] }, + } + flib_area.load(self) + return self +end + +--- @deprecated Use `bounding-box` instead. +function flib_area.height(self) + if not self.left_top then + self = flib_area.from_shorthand(self) + end + + return math.abs(self.right_bottom.y - self.left_top.y) +end + +--- @deprecated Use `bounding-box` instead. +function flib_area.iterate(self, step, starting_offset) + starting_offset = starting_offset or { x = 0, y = 0 } + if not self.left_top then + self = flib_area.from_shorthand(self) + end + + step = step or 1 + + local x = self.left_top.x + starting_offset.x + local y = self.left_top.y + starting_offset.y + local max_x = self.right_bottom.x + local max_y = self.right_bottom.y + local first = true + + return function() + if first then + first = false + return { x = x, y = y } + end + + local new_x = x + step + if x < max_x and new_x < max_x then + x = new_x + else + local new_y = y + step + if y < max_y and new_y < max_y then + x = self.left_top.x + starting_offset.x + y = new_y + else + return nil + end + end + + return { x = x, y = y } + end +end + +--- @deprecated Use `bounding-box` instead. +function flib_area.load(area) + if not area.left_top then + area = flib_area.from_shorthand(area) + end + return setmetatable(area, { __index = flib_area }) +end + +--- @deprecated Use `bounding-box` instead. +function flib_area.move(self, delta) + if not self.left_top then + self = flib_area.from_shorthand(self) + end + + self.left_top.x = self.left_top.x + delta.x + self.left_top.y = self.left_top.y + delta.y + self.right_bottom.x = self.right_bottom.x + delta.x + self.right_bottom.y = self.right_bottom.y + delta.y + + return self +end + +--- @deprecated Use `bounding-box` instead. +function flib_area.rotate(self) + -- save current properties + local center = flib_area.center(self) + local height = flib_area.height(self) + local width = flib_area.width(self) + + local radius_x = height / 2 + local radius_y = width / 2 + + self.left_top.x = center.x - radius_x + self.right_bottom.x = center.x + radius_x + + self.left_top.y = center.y - radius_y + self.right_bottom.y = center.y + radius_y + + return self +end + +--- @deprecated Use `bounding-box` instead. +function flib_area.square(self) + local radius = math.max(flib_area.height(self), flib_area.width(self)) + + return flib_area.from_dimensions({ height = radius, width = radius }, flib_area.center(self)) +end + +--- @deprecated Use `bounding-box` instead. +function flib_area.strip(self) + return { + left_top = { + x = self.left_top.x, + y = self.left_top.y, + }, + right_bottom = { + x = self.right_bottom.x, + y = self.right_bottom.y, + }, + } +end + +--- @deprecated Use `bounding-box` instead. +function flib_area.to_shorthand(self) + if not self.left_top then + return self + end + + return { + { self.left_top.x, self.left_top.y }, + { self.right_bottom.x, self.right_bottom.y }, + } +end + +--- @deprecated Use `bounding-box` instead. +function flib_area.width(self) + if not self.left_top then + self = flib_area.from_shorthand(self) + end + + return math.abs(self.right_bottom.x - self.left_top.x) +end + +return flib_area diff --git a/.vscode/flib/bounding-box.lua b/.vscode/flib/bounding-box.lua new file mode 100644 index 0000000..da8b998 --- /dev/null +++ b/.vscode/flib/bounding-box.lua @@ -0,0 +1,329 @@ +local position = require("__flib__/position") + +--- Utilities for manipulating bounding boxes. All functions support both the shorthand and explicit syntaxes for boxes +--- and positions, and will preserve the syntax that was passed in. Boxes are considered immutable; all functions will +--- return new boxes. +--- @class flib_bounding_box +local flib_bounding_box = {} + +--- Return a new box expanded to the nearest tile edges. +--- @param box BoundingBox +--- @return BoundingBox +function flib_bounding_box.ceil(box) + if box.left_top then + return { + left_top = { x = math.floor(box.left_top.x), y = math.floor(box.left_top.y) }, + right_bottom = { x = math.ceil(box.right_bottom.x), y = math.ceil(box.right_bottom.y) }, + } + else + return { + { math.floor(box[1][1]), math.floor(box[1][2]) }, + { math.ceil(box[2][1]), math.ceil(box[2][2]) }, + } + end +end + +--- Calculate the centerpoint of the box. +--- @param box BoundingBox +--- @return MapPosition +function flib_bounding_box.center(box) + if box.left_top then + return { + x = (box.left_top.x + box.right_bottom.x) / 2, + y = (box.left_top.y + box.right_bottom.y) / 2, + } + else + return { + (box[1][1] + box[2][1]) / 2, + (box[1][2] + box[2][2]) / 2, + } + end +end + +--- Check if the first box contains the second box. +--- @param box1 BoundingBox +--- @param box2 BoundingBox +--- @return boolean +function flib_bounding_box.contains_box(box1, box2) + local box1 = flib_bounding_box.ensure_explicit(box1) + local box2 = flib_bounding_box.ensure_explicit(box2) + + return box1.left_top.x <= box2.left_top.x + and box1.left_top.y <= box2.left_top.y + and box1.right_bottom.x >= box2.right_bottom.x + and box1.right_bottom.y >= box2.right_bottom.y +end + +--- Check if the given box contains the given position. +--- @param box BoundingBox +--- @param pos MapPosition +--- @return boolean +function flib_bounding_box.contains_position(box, pos) + local box = flib_bounding_box.ensure_explicit(box) + local pos = position.ensure_explicit(pos) + return + box.left_top.x <= pos.x and box.left_top.y <= pos.y and box.right_bottom.x >= pos.x and box.right_bottom.y >= pos.y +end + +--- Return the box in explicit form. +--- @param box BoundingBox +--- @return BoundingBox +function flib_bounding_box.ensure_explicit(box) + return { + left_top = position.ensure_explicit(box.left_top or box[1]), + right_bottom = position.ensure_explicit(box.right_bottom or box[2]), + } +end + +--- Return the box in shorthand form. +--- @param box BoundingBox +--- @return BoundingBox +function flib_bounding_box.ensure_short(box) + return { + position.ensure_short(box.left_top or box[1]), + position.ensure_short(box.right_bottom or box[2]), + } +end + +--- Return a new box with initial dimensions box1, expanded to contain box2. +--- @param box1 BoundingBox +--- @param box2 BoundingBox +--- @return BoundingBox +function flib_bounding_box.expand_to_contain_box(box1, box2) + local box2 = flib_bounding_box.ensure_explicit(box2) + + if box1.left_top then + return { + left_top = { + x = math.min(box1.left_top.x, box2.left_top.x), + y = math.min(box1.left_top.y, box2.left_top.y), + }, + right_bottom = { + x = math.max(box1.right_bottom.x, box2.right_bottom.x), + y = math.max(box1.right_bottom.y, box2.right_bottom.y), + }, + } + else + return { + { + math.min(box1[1][1], box2.left_top.x), + math.min(box1[1][2], box2.left_top.y), + }, + { + math.max(box1[2][1], box2.right_bottom.x), + math.max(box1[2][2], box2.right_bottom.y), + }, + } + end +end + +--- Return a new box expanded to contain the given position. +--- @param box BoundingBox +--- @param pos MapPosition +--- @return BoundingBox +function flib_bounding_box.expand_to_contain_position(box, pos) + local pos = position.ensure_explicit(pos) + + if box.left_top then + return { + left_top = { x = math.min(box.left_top.x, pos.x), y = math.min(box.left_top.y, pos.y) }, + right_bottom = { x = math.max(box.right_bottom.x, pos.x), y = math.max(box.right_bottom.y, pos.y) }, + } + else + return { + { math.min(box[1][1], pos.x), math.min(box[1][2], pos.y) }, + { math.max(box[2][1], pos.x), math.max(box[2][2], pos.y) }, + } + end +end + +--- Return a new box shrunk to the nearest tile edges. +--- @param box BoundingBox +--- @return BoundingBox +function flib_bounding_box.floor(box) + if box.left_top then + return { + left_top = { x = math.ceil(box.left_top.x), y = math.ceil(box.left_top.y) }, + right_bottom = { x = math.floor(box.right_bottom.x), y = math.floor(box.right_bottom.y) }, + } + else + return { + { math.ceil(box[1][1]), math.ceil(box[1][2]) }, + { math.floor(box[2][1]), math.floor(box[2][2]) }, + } + end +end + +--- Create a new box from a centerpoint and dimensions. +--- @param center MapPosition +--- @param width number +--- @param height number +--- @return BoundingBox +function flib_bounding_box.from_dimensions(center, width, height) + if center.x then + return { + left_top = { x = center.x - width / 2, y = center.y - height / 2 }, + right_bottom = { x = center.x - width / 2, y = center.y - height / 2 }, + } + else + return { + { center[1] - width / 2, center[2] - height / 2 }, + { center[1] - width / 2, center[2] - height / 2 }, + } + end +end + +--- Create a 1x1 box from the given position, optionally snapped to the containing tile edges. +--- @param pos MapPosition +--- @param snap boolean? +--- @return BoundingBox +function flib_bounding_box.from_position(pos, snap) + if snap then + pos = position.floor(pos) + else + pos = position.sub(pos, { 0.5, 0.5 }) + end + local x = pos.x or pos[1] + local y = pos.y or pos[2] + if pos.x then + return { + left_top = { x = x, y = y }, + right_bottom = { x = x + 1, y = y + 1 }, + } + else + return { + { x, y }, + { x + 1, y + 1 }, + } + end +end + +--- Calculate the height of the box. +--- @param box BoundingBox +--- @return number +function flib_bounding_box.height(box) + if box.left_top then + return box.right_bottom.y - box.left_top.y + else + return box[2][2] - box[1][2] + end +end + +--- Check if the first box intersects (overlaps) the second box. +--- @param box1 BoundingBox +--- @param box2 BoundingBox +--- @return boolean +function flib_bounding_box.intersects_box(box1, box2) + local box1 = flib_bounding_box.ensure_explicit(box1) + local box2 = flib_bounding_box.ensure_explicit(box2) + return + box1.left_top.x < box2.right_bottom.x + and box2.left_top.x < box1.right_bottom.x + and box1.left_top.y < box2.right_bottom.y + and box2.left_top.y < box1.right_bottom.y +end + +--- Return a new box with the same dimensions, moved by the given delta. +--- @param box BoundingBox +--- @param delta MapPosition +--- @return BoundingBox +function flib_bounding_box.move(box, delta) + local dx = delta.x or delta[1] + local dy = delta.y or delta[2] + if box.left_top then + return { + left_top = { x = box.left_top.x + dx, y = box.left_top.y + dy }, + right_bottom = { x = box.right_bottom.x + dx, y = box.right_bottom.y + dy }, + } + else + return { + { box[1][1] + dx, box[1][2] + dy }, + { box[2][1] + dx, box[2][2] + dy }, + } + end +end + +--- Return a new box with the same dimensions centered on the given position. +--- @param box BoundingBox +--- @param pos MapPosition +--- @return BoundingBox +function flib_bounding_box.recenter_on(box, pos) + local height = flib_bounding_box.height(box) + local width = flib_bounding_box.width(box) + + local pos_x = pos.x or pos[1] + local pos_y = pos.y or pos[2] + + if box.left_top then + return { + left_top = { x = pos_x - (width / 2), y = pos_y - (width / 2) }, + right_bottom = { x = pos_x + (height / 2), y = pos_y + (height / 2) }, + } + else + return { + { pos_x - (width / 2), pos_y - (width / 2) }, + { pos_x + (height / 2), pos_y + (height / 2) }, + } + end +end + +--- Return a new box grown or shrunk by the given delta. A positive delta will grow the box, a negative delta will +--- shrink it. +--- @param box BoundingBox +--- @param delta number +--- @return BoundingBox +function flib_bounding_box.resize(box, delta) + if box.left_top then + return { + left_top = { x = box.left_top.x - delta, y = box.left_top.y - delta }, + right_bottom = { x = box.right_bottom.x + delta, y = box.right_bottom.y + delta }, + } + else + return { + { box[1][1] - delta, box[1][2] - delta }, + { box[2][1] + delta, box[2][2] + delta }, + } + end +end + +--- Return a new box rotated 90 degrees about its center. +--- @param box BoundingBox +--- @return BoundingBox +function flib_bounding_box.rotate(box) + local center = flib_bounding_box.center(box) + local radius_x = flib_bounding_box.width(box) / 2 + local radius_y = flib_bounding_box.height(box) / 2 + + if box.left_top then + return { + left_top = { x = center.x - radius_y, y = center.y - radius_x }, + right_bottom = { x = center.x + radius_y, y = center.y + radius_x }, + } + else + return { + { center.x - radius_y, center.y - radius_x }, + { center.x + radius_y, center.y + radius_x }, + } + end +end + +--- Return a new box expanded to create a square. +--- @param box BoundingBox +--- @return BoundingBox +function flib_bounding_box.square(box) + local radius = math.max(flib_bounding_box.width(box), flib_bounding_box.height(box)) + return flib_bounding_box.from_dimensions(flib_bounding_box.center(box), radius, radius) +end + +--- Calculate the width of the box. +--- @param box BoundingBox +--- @return number +function flib_bounding_box.width(box) + if box.left_top then + return box.right_bottom.x - box.left_top.x + else + return box[2][1] - box[1][1] + end +end + +return flib_bounding_box diff --git a/.vscode/flib/changelog.txt b/.vscode/flib/changelog.txt new file mode 100644 index 0000000..40dc44e --- /dev/null +++ b/.vscode/flib/changelog.txt @@ -0,0 +1,319 @@ +--------------------------------------------------------------------------------------------------- +Version: 0.12.4 +Date: 2022-12-30 + Changes: + - flib_selected_frame_action_button and flib_selected_tool_button styles now have a vertical offset + - Improved slot style coloring to be more consistent + - Updated table module to use more generics for callback return values + Bugfixes: + - Fixed missing clicked graphical sets on slot styles + - Fixed missing return types in table module callback functions + - Fixed that long mod names would cut off in the dictionary-lite progress window +--------------------------------------------------------------------------------------------------- +Version: 0.12.3 +Date: 2022-12-14 + Bugfixes: + - Fixed a crash when calling `bounding_box.rotate()` + - The base mod dependency is no longer optional - it was causing the game to download flib versions that it could not run +--------------------------------------------------------------------------------------------------- +Version: 0.12.2 +Date: 2022-12-06 + Changes: + - [queue] If the queue is empty, returns nil instead of throwing an error + - [queue] Renamed functions to be much more clear, updated types to use generics + - Updated types to work with recent FMTK releases + Bugfixes: + - [dictionary-lite] Fixed an occasional crash related to Lua memory management internals +--------------------------------------------------------------------------------------------------- +Version: 0.12.1 +Date: 2022-12-06 + Bugfixes: + - [dictionary-lite] Fixed a crash when re-requesting a missed translation batch +--------------------------------------------------------------------------------------------------- +Version: 0.12.0 +Date: 2022-12-06 + Features: + - Added 'bounding-box' module + - A cleaned up version of the 'area' module that treats bounding boxes as immutable and does not use metatables + - Since the cleanup was a breaking change, a new module was created + - Added 'dictionary-lite' module + - Takes advantage of new Factorio API features to drastically simplify the process + - Increases translation speed in singleplayer by a factor of 10 + - Added 'format' module with various string formatting functions + - Added 'gui-lite' module + - Removes redundant features, simplifies the building process, and enhances type-checking and autocomplete + - Added 'migration.handle_on_configuration_changed()' + - Added 'position' module with various position manipulation functions + Changes: + - Changed preferred require syntax to '/' instead of '.' + - Deprecated 'area' module in favor of the 'bounding-box' module + - Deprecated 'dictionary' module in favor of the 'dictionary-lite' module + - Deprecated 'event' module - type checking did not work and it didn't provide much over using 'script' directly + - Deprecated 'gui' module in favor of the 'gui-lite' module + - Deprecated 'misc' module in favor of the 'format' and 'position' modules + - Removed 'queue.load()' and queue metatables + - Updated type definitions to use generics where possible + Bugfixes: + - [dictionary] Fixed translations getting stuck on Factorio 1.1.73+ +--------------------------------------------------------------------------------------------------- +Version: 0.11.2 +Date: 2022-09-18 + Bugfixes: + - [dictionary] Fixed a crash when a player left the game under certain circumstances +--------------------------------------------------------------------------------------------------- +Version: 0.11.1 +Date: 2022-09-12 + Changes: + - [dictionary] Added tooltip to GUI header explaining what it is + Bugfixes: + - [dictionary] Fixed that translations would stop being requested under certain circumstances +--------------------------------------------------------------------------------------------------- +Version: 0.11.0 +Date: 2022-09-04 + Features: + - [area] Added `area.square()` to turn the area into a square + - [area] Added `starting_offset` argument to `area.iterate()` + - [dictionary] Added a GUI that shows translation progress + - [math] Added `floored` and `ceiled` for flooring and ceiling to N decimal places. + - [math] Added `sign` to return the signedness of a number as a multiplier + - [math] Added `sum`, `maximum`, `minimum`, `midrange`, `range` for sets of numbers + Changes: + - [math] Deprecated `round_to`, `ceil_to`, `floor_to` + - [math] `clamp` defaults to clamping between 0, 1 when min or max are not set + - [dictionary] Removed string nesting to significantly reduce network traffic + - This makes translation take significantly longer + Bugfixes: + - Fixed missing annotations in math and table libraries + - [dictionary] Fixed that an empty translation would cause the translation after it to be skipped + - [migration] Fixed a crash when loading the tutorial scenario +--------------------------------------------------------------------------------------------------- +Version: 0.10.1 +Date: 2022-02-24 + Bugfixes: + - [event] Fixed a crash when passing `nil` to `event.on_nth_tick` +--------------------------------------------------------------------------------------------------- +Version: 0.10.0 +Date: 2022-02-24 + Features: + - [direction] Added `direction.from_positions()` + - [table] Added `table.get_or_insert()` + Changes: + - Converted from LDoc to EmmyLua annotations, enabling language server intellisense, but removing the docs website + - A new website or other solution for online docs will be added someday. For now, in-line documentation was decided to be more beneficial. + - [area] All constructor functions will automatically call `area.load()` to add the metatable + - [area] All functions will ensure that any passed areas have `left_top` and `right_bottom` keys, and will automatically convert ones that do not + - [migration] `migration.on_config_changed()` version migrations table is now optional +--------------------------------------------------------------------------------------------------- +Version: 0.9.2 +Date: 2021-11-18 + Bugfixes: + - Fixed the dictionary module not separating dictionaries from separate mods properly +--------------------------------------------------------------------------------------------------- +Version: 0.9.1 +Date: 2021-11-16 + Bugfixes: + - Fixed a crash when calling dictionary.load() before dictionary.init() has been able to fire + - Fixed table.slice() and table.splice() stop-n-from-end being one position off +--------------------------------------------------------------------------------------------------- +Version: 0.9.0 +Date: 2021-11-11 + Features: + - Added `queue` module + - Added `table.array_merge()` and `table.retrieve()` + - Added `flib_pin` and `flib_settings` sprites in black, white, and disabled variants + - These are for use with frame action buttons + - Added `gui.flib-keep-open` and `gui.flib-settings` locales for use with the aforementioned sprites +--------------------------------------------------------------------------------------------------- +Version: 0.8.4 +Date: 2021-09-19 + Features: + - Added `flib-dictionary-levels-per-batch` setting + Changes: + - Children may now be defined in `gui.add()` + - If you need to return refs to children, use `gui.build()` instead + - `flib-translations-per-tick` setting is now hidden +--------------------------------------------------------------------------------------------------- +Version: 0.8.3 +Date: 2021-08-20 + Bugfixes: + - Fixed that math.round() was incorrect for some negative numbers + - Fixed that the on-tick-n module was not documented and not mentioned in the v0.8.0 changelog +--------------------------------------------------------------------------------------------------- +Version: 0.8.2 +Date: 2021-08-10 + Bugfixes: + - Fixed the dictionary module not handling if the language detection string was lost across save/load +--------------------------------------------------------------------------------------------------- +Version: 0.8.1 +Date: 2021-08-09 + Changes: + - The dictionary module no longer provides an event to hook, instead returning the finished dictionaries directly from `process_translation` + - This is to allow a single-source-of-truth for the language's dictionaries, which was the original intention, but returning them in an event broke that intention +--------------------------------------------------------------------------------------------------- +Version: 0.8.0 +Date: 2021-08-08 + Features: + - Added `area.from_shorthand` and `area.to_shorthand` + - Added `dictionary` module, which is a fast and easy-to-use dictionary system for localised string translations + - Added `flib_widthless_textfield` style + - Added `gui.add`, `gui.set_action`, and `gui.get_action` + - Added `on-tick-n` module, which allows you to schedule tasks to be executed on a specific tick + - Added support for tags and actions in `gui.update` + - Children in a `GuiBuildStructure` or `GuiUpdateStructure` can now be defined in the array portion, instead of in a `children` or `tabs` table + - The subtables are still accepted for situations where they are appropriate (i.e. dynamically generated children) + - `misc.delineate_number()` now supports decimal numbers + Changes: + - `area.load` will now automatically convert from a shorthanded area to a proper area if needed + - Deprecated the old `gui` module and replaced it with the contents of `gui-beta` + - Mods can still require `gui-beta`, but it will simply redirect to `gui` instead + - Mods that depended on the old GUI module will need to update to the new one or download a copy of it to their mod - it is no longer supported whatsoever + - Deprecated the `translation` module, replaced by the new `dictionary` module + - The `translation` module still exists and can be used, but is no longer documented and its use is recommended against + Bugfixes: + - Fixed a crash when calling `gui.read_action()` when the element was invalid + - Fixed `area.from_position` not actually creating a 1x1 area +--------------------------------------------------------------------------------------------------- +Version: 0.7.0 +Date: 2021-02-12 + Features: + - Added `area` module + - Added `flib_titlebar_flow` style + - Added `divisor` argument to `math.round()`, allowing rounding to the nearest multiple of N + - Added `math.max_double` and `math.min_double` + - Added argument to `misc.ticks_to_timestring` to preserve leading zeroes + Optimizations: + - Significant performance improvements to `gui-beta.build()` + Bugfixes: + - Fixed `math.max_uint` being one number too large + - Fixed `data-util.create_icons()` not using all of the icon specifications +--------------------------------------------------------------------------------------------------- +Version: 0.6.1 +Date: 2021-01-02 + Features: + - Added proper documentation for the `gui-beta` module +--------------------------------------------------------------------------------------------------- +Version: 0.6.0 +Date: 2020-11-23 + Features: + - Added WIP `gui-beta` module + - This module is experimental, but is currently relatively stable. Use at your own risk. See the source code for documentation. + - Additional arguments may be passed to `migration.on_config_changed()` to be available in the migration functions + - Added `data-util.dark_red_button_tileset` + - Added `flib_tool_button_dark_red` button style + Changes: + - Updated to Factorio 1.1 + - Modified `flib_selected_frame_action_button` style to better match the vanilla buttons + - Made `new_layers` argument to `data-util.create_icons()` optional + - Removed deprecated require paths for `data-util` and `reverse-defines` modules +--------------------------------------------------------------------------------------------------- +Version: 0.5.0 +Date: 2020-10-22 + Features: + - Added indicator sprites + - Added `flib_indicator` image style + Changes: + - Updated thumbnail + - Changed `table.reduce()` to work with non-arrays + - Changed `misc.ticks_to_timestring()` to use `game.ticks_played` by default, instead of `game.tick` + Bugfixes: + - Fixed a crash with serialise_localised_string (credit to dbeckwith) +--------------------------------------------------------------------------------------------------- +Version: 0.4.1 +Date: 2020-09-22 + Features: + - Added a third return value to `table.for_n_of` signifying whether or not the end of the table was reached + - Added a third return value to the callback of `table.for_n_of`, which is a flag requesting an immediate iteration abort + - Added `flib_tool_button_light_green` button style + Changes: + - `table.for_n_of` now checks against the first (key) return of `next()` rather than the second (value) return + - This changes how custom `next()` functions will behave, and brings it into consistency with the rest of Lua +--------------------------------------------------------------------------------------------------- +Version: 0.4.0 +Date: 2020-09-13 + Features: + - Added `direction.to_vector_2d` + - Additional arguments passed to `migration.run` will be passed on to the version functions within the migrations table + - Added `math` module + Bugfixes: + - Fixed that using `gui.init()` to reset all filters did not update lookup tables +--------------------------------------------------------------------------------------------------- +Version: 0.3.3 +Date: 2020-08-31 + Features: + - Added a map setting to adjust translation speed (avoid multiplayer drops for those with slow internet speeds) +--------------------------------------------------------------------------------------------------- +Version: 0.3.2 +Date: 2020-08-30 + Features: + - Added `table.array_copy()` + - Added `table.partial_sort()` for sorting an array over multiple ticks + Changes: + - Passing a custom `next` function to `table.for_n_of()` will bypass the key existence check +--------------------------------------------------------------------------------------------------- +Version: 0.3.1 +Date: 2020-08-24 + Features: + - Added event.register_on_entity_destroyed() + - Added flib_naked_scroll_pane_no_padding GUI style + Changes: + - Updated to Factorio 1.0 + - Renamed data_util to data-util and reverse_defines to reverse-defines + - The old paths will still work until v0.4.0, but will print deprecation warnings + - Removed vertically_stretchable from the flib_naked_scroll_pane GUI style to fix zero-height issue in non-fixed-height containers +--------------------------------------------------------------------------------------------------- +Version: 0.3.0 +Date: 2020-08-11 + Features: + - Added "grey" and "orange" colored slot button styles + - Added two new scroll-pane GUI styles + - Added "table" module for working with tables + Changes: + - translation.init() is now required to be run during on_configuration_changed, in addition to on_init + - This is to prevent the module translating and returning strings for things that may not exist anymore +--------------------------------------------------------------------------------------------------- +Version: 0.2.0 +Date: 2020-07-26 + Features: + - Added gui.check_filter_validity(), which is a new REQUIRED setup function for the GUI module + - Added translation.is_translating(), which checks whether the given player is actively translating + - Added translation.translating_players_count(), which returns the number of players that are actively translating + - Added several button and empty-widget styles, see "styles.md" topic in docs + Changes: + - The base mod is now marked as optional, to allow compatibility with total overhaul mods + Bugfixes: + - Fixed a crash with the GUI module when a handler was removed between mod versions while being registered in global + - Fixed that gui.remove_player_filters() would not update lookup tables +--------------------------------------------------------------------------------------------------- +Version: 0.1.5 +Date: 2020-06-30 + Changes: + - Moved styles into prototypes/styles + Bugfixes: + - Fixed nonexistent sound file error by inheriting from parent #13 +--------------------------------------------------------------------------------------------------- +Version: 0.1.4 +Date: 2020-06-18 + Bugfixes: + - Fixed a crash with the translation module related to old code having incorrect variable names +--------------------------------------------------------------------------------------------------- +Version: 0.1.3 +Date: 2020-06-18 + Features: + - Added a myriad of colored slot styles; see "slot-styles.md" topic in docs +--------------------------------------------------------------------------------------------------- +Version: 0.1.2 +Date: 2020-06-10 + Bugfixes: + - get_energy_value didn't parse energy strings with no SI prefix or deka +--------------------------------------------------------------------------------------------------- +Version: 0.1.1 +Date: 2020-06-10 + Features: + - get_energy_value supports exponents from 10^-24 to 10^24 + Bugfixes: + - get_energy_value returned string, string instead of nil when unable to parse exponent +--------------------------------------------------------------------------------------------------- +Version: 0.1.0 +Date: 2020-05-24 + Features: + - Initial release diff --git a/.vscode/flib/data-util.lua b/.vscode/flib/data-util.lua new file mode 100644 index 0000000..e2fa794 --- /dev/null +++ b/.vscode/flib/data-util.lua @@ -0,0 +1,182 @@ +--- Utilities for data stage prototype manipulation. +--- @class flib_data_util +local flib_data_util = {} + +--- Copy a prototype, assigning a new name and minable properties. +--- @param prototype table +--- @param new_name string string +--- @param remove_icon? boolean +--- @return table +function flib_data_util.copy_prototype(prototype, new_name, remove_icon) + if not prototype.type or not prototype.name then + error("Invalid prototype: prototypes must have name and type properties.") + return --- @diagnostic disable-line + end + local p = table.deepcopy(prototype) + p.name = new_name + if p.minable and p.minable.result then + p.minable.result = new_name + end + if p.place_result then + p.place_result = new_name + end + if p.result then + p.result = new_name + end + if p.results then + for _, result in pairs(p.results) do + if result.name == prototype.name then + result.name = new_name + end + end + end + if remove_icon then + p.icon = nil + p.icon_size = nil + p.icon_mipmaps = nil + p.icons = nil + end + + return p +end + +--- Copy prototype.icon/icons to a new fully defined icons array, optionally adding new icon layers. +--- +--- Returns `nil` if the prototype's icons are incorrectly or incompletely defined. +--- @param prototype table +--- @param new_layers? IconSpecification[] +--- @return IconSpecification[]|nil +function flib_data_util.create_icons(prototype, new_layers) + if new_layers then + for _, new_layer in pairs(new_layers) do + if not new_layer.icon or not new_layer.icon_size then + return nil + end + end + end + + if prototype.icons then + local icons = {} + for _, v in pairs(prototype.icons) do + -- Over define as much as possible to minimize weirdness: https://forums.factorio.com/viewtopic.php?f=25&t=81980 + icons[#icons + 1] = { + icon = v.icon, + icon_size = v.icon_size or prototype.icon_size or 32, + icon_mipmaps = v.icon_mipmaps or prototype.icon_mipmaps or 0, + tint = v.tint, + scale = v.scale or 1, + shift = v.shift, + } + end + if new_layers then + for _, new_layer in pairs(new_layers) do + icons[#icons + 1] = new_layer + end + end + return icons + elseif prototype.icon then + local icons = { + { + icon = prototype.icon, + icon_size = prototype.icon_size, + icon_mipmaps = prototype.icon_mipmaps, + tint = { r = 1, g = 1, b = 1, a = 1 }, + }, + } + if new_layers then + for _, new_layer in pairs(new_layers) do + icons[#icons + 1] = new_layer + end + end + return icons + else + return nil + end +end + +local exponent_multipliers = { + ["y"] = 0.000000000000000000000001, + ["z"] = 0.000000000000000000001, + ["a"] = 0.000000000000000001, + ["f"] = 0.000000000000001, + ["p"] = 0.000000000001, + ["n"] = 0.000000001, + ["u"] = 0.000001, -- μ is invalid + ["m"] = 0.001, + ["c"] = 0.01, + ["d"] = 0.1, + [""] = 1, + ["da"] = 10, + ["h"] = 100, + ["k"] = 1000, + ["M"] = 1000000, + ["G"] = 1000000000, + ["T"] = 1000000000000, + ["P"] = 1000000000000000, + ["E"] = 1000000000000000000, + ["Z"] = 1000000000000000000000, + ["Y"] = 1000000000000000000000000, +} + +--- Convert an energy string to base unit value + suffix. +--- +--- Returns `nil` if `energy_string` is incorrectly formatted. +--- @param energy_string string +--- @return number? +--- @return string? +function flib_data_util.get_energy_value(energy_string) + if type(energy_string) == "string" then + local v, _, exp, unit = string.match(energy_string, "([%-+]?[0-9]*%.?[0-9]+)((%D*)([WJ]))") + local value = tonumber(v) + if value and exp and exponent_multipliers[exp] then + value = value * exponent_multipliers[exp] + return value, unit + end + end + return nil +end + +--- Build a sprite from constituent parts. +--- @param name? string +--- @param position? MapPosition +--- @param filename? string +--- @param size? Vector +--- @param mipmap_count? number +--- @param mods? table +--- @return SpriteSpecification +function flib_data_util.build_sprite(name, position, filename, size, mipmap_count, mods) + local def = { + type = "sprite", + name = name, + filename = filename, + position = position, + size = size, + mipmap_count = mipmap_count, + flags = { "icon" }, + } + if mods then + for k, v in pairs(mods) do + def[k] = v + end + end + return def +end + +--- An empty image. This image is 8x8 to facilitate usage with GUI styles. +flib_data_util.empty_image = "__flib__/graphics/empty.png" + +--- A black image, for use with tool backgrounds. This image is 1x1. +flib_data_util.black_image = "__flib__/graphics/black.png" + +--- A desaturated planner image. Tint this sprite to easily add your own planners. +flib_data_util.planner_base_image = "__flib__/graphics/planner.png" + +--- A dark red button tileset. Used for the `flib_tool_button_dark_red` style. +flib_data_util.dark_red_button_tileset = "__flib__/graphics/dark-red-button.png" + +return flib_data_util + +--- @class IconSpecification +--- @field icon string +--- @field icon_size int +--- @class SpriteSpecification diff --git a/.vscode/flib/data.lua b/.vscode/flib/data.lua new file mode 100644 index 0000000..6a28b8b --- /dev/null +++ b/.vscode/flib/data.lua @@ -0,0 +1,2 @@ +require("prototypes/sprite") +require("prototypes/style") diff --git a/.vscode/flib/dictionary-lite.lua b/.vscode/flib/dictionary-lite.lua new file mode 100644 index 0000000..0db3c8c --- /dev/null +++ b/.vscode/flib/dictionary-lite.lua @@ -0,0 +1,476 @@ +local gui = require("__flib__/gui-lite") +local mod_gui = require("__core__/lualib/mod-gui") +local table = require("__flib__/table") + +--- Utilities for creating dictionaries of localised string translations. +--- @class flib_dictionary +local flib_dictionary = {} + +local request_timeout_ticks = (60 * 5) + +--- @param init_only boolean? +--- @return flib_dictionary_global +local function get_data(init_only) + if not global.__flib or not global.__flib.dictionary then + error("Dictionary module was not properly initialized - ensure that all lifecycle events are handled.") + end + local data = global.__flib.dictionary + if init_only and data.init_ran then + error("Dictionaries cannot be modified after initialization.") + end + return data +end + +--- @param data flib_dictionary_global +--- @param language string +--- @return LuaPlayer? +local function get_translator(data, language) + for player_index, player_language in pairs(data.player_languages) do + if player_language == language then + local player = game.get_player(player_index) + if player and player.connected then + return player + end + end + end + -- There is no available translator, so remove this language from the pool + for player_index, player_language in pairs(data.player_languages) do + if player_language == language then + data.player_languages[player_index] = nil + end + end +end + +--- @param data flib_dictionary_global +local function update_gui(data) + local wip = data.wip + for _, player in pairs(game.players) do + local frame_flow = mod_gui.get_frame_flow(player) + local window = frame_flow.flib_translation_progress + if wip then + if not window then + _, window = gui.add(frame_flow, { + type = "frame", + name = "flib_translation_progress", + style = mod_gui.frame_style, + direction = "vertical", + { + type = "label", + style = "frame_title", + caption = { "gui.flib-translating-dictionaries" }, + tooltip = { "gui.flib-translating-dictionaries-description" }, + }, + { + type = "frame", + name = "pane", + style = "inside_shallow_frame_with_padding", + style_mods = { top_padding = 8 }, + direction = "vertical", + }, + }) + end + local pane = window.pane --[[@as LuaGuiElement]] + local mod_flow = pane[script.mod_name] + if not mod_flow then + _, mod_flow = gui.add(pane, { + type = "flow", + name = script.mod_name, + style = "centering_horizontal_flow", + style_mods = { top_margin = 4, horizontal_spacing = 8 }, + { + type = "label", + style = "caption_label", + style_mods = { minimal_width = 130 }, + caption = { "?", { "mod-name." .. script.mod_name }, script.mod_name }, + ignored_by_interaction = true, + }, + { type = "empty-widget", style = "flib_horizontal_pusher" }, + { type = "label", name = "language", style = "bold_label", ignored_by_interaction = true }, + { + type = "progressbar", + name = "bar", + style_mods = { top_margin = 1, width = 100 }, + ignored_by_interaction = true, + }, + { + type = "label", + name = "percentage", + style = "bold_label", + style_mods = { width = 24, horizontal_align = "right" }, + ignored_by_interaction = true, + }, + }) + end + local progress = wip.received_count / data.raw_count + mod_flow.language.caption = wip.language + mod_flow.bar.value = progress --[[@as double]] + mod_flow.percentage.caption = tostring(math.min(math.floor(progress * 100), 99)) .. "%" + mod_flow.tooltip = + { "", (wip.dict or { "gui.flib-finishing" }), "\n" .. wip.received_count .. " / " .. data.raw_count } + else + if window then + local mod_flow = window.pane[script.mod_name] + if mod_flow then + mod_flow.destroy() + end + if #window.pane.children == 0 then + window.destroy() + end + end + end + end +end + +--- @param data flib_dictionary_global +--- @return boolean success +local function request_next_batch(data) + local raw = data.raw + local wip = data.wip --[[@as DictWipData]] + if wip.finished then + return false + end + local requests, strings = {}, {} + for i = 1, game.is_multiplayer() and 5 or 50 do + local string + repeat + wip.key, string = next(raw[wip.dict], wip.key) + if not wip.key then + wip.dict = next(raw, wip.dict) + if not wip.dict then + -- We are done! + wip.finished = true + end + end + until string or wip.finished + if wip.finished then + break + end + requests[i] = { dict = wip.dict, key = wip.key } + strings[i] = string + end + + if #strings == 0 then + return false -- Finished + end + + local translator = wip.translator + if not translator.valid or not translator.connected then + local new_translator = get_translator(data, wip.language) + if new_translator then + wip.translator = new_translator + else + -- Cancel this translation + data.wip = nil + return false + end + end + + local ids = wip.translator.request_translations(strings) + if not ids then + return false + end + for i = 1, #ids do + wip.requests[ids[i]] = requests[i] + end + wip.request_tick = game.tick + + update_gui(data) + + return true +end + +--- @param data flib_dictionary_global +local function handle_next_language(data) + while not data.wip and #data.to_translate > 0 do + local next_language = table.remove(data.to_translate, 1) + if next_language then + local translator = get_translator(data, next_language) + if translator then + -- Start translation + local dicts = {} + local first_dict + for name in pairs(data.raw) do + first_dict = first_dict or name + dicts[name] = {} + end + -- Don't do anything if there are no dictionaries to translate + if not first_dict then + return + end + --- @class DictWipData + data.wip = { + dict = first_dict, + dicts = dicts, + finished = false, + --- @type string? + key = nil, + language = next_language, + received_count = 0, + --- @type table + requests = {}, + request_tick = 0, + translator = translator, + } + end + end + end +end + +-- Events + +flib_dictionary.on_player_dictionaries_ready = script.generate_event_name() +--- Called when a player's dictionaries are ready to be used. Handling this event is not required. +--- @class EventData.on_player_dictionaries_ready: EventData +--- @field player_index uint + +flib_dictionary.on_player_language_changed = script.generate_event_name() +--- Called when a player's language changes. Handling this event is not required. +--- @class EventData.on_player_language_changed: EventData +--- @field player_index uint +--- @field language string + +-- Lifecycle handlers + +function flib_dictionary.on_init() + -- Initialize global data + if not global.__flib then + global.__flib = {} + end + --- @class flib_dictionary_global + global.__flib.dictionary = { + init_ran = false, + --- @type table + player_languages = {}, + --- @type table + player_language_requests = {}, + --- @type table + raw = {}, + raw_count = 0, + --- @type string[] + to_translate = {}, + --- @type table> + translated = {}, + --- @type DictWipData? + wip = nil, + } + -- Initialize all existing players + for player_index, player in pairs(game.players) do + if player.connected then + flib_dictionary.on_player_joined_game({ + --- @cast player_index uint + player_index = player_index, + }) + end + end +end + +flib_dictionary.on_configuration_changed = flib_dictionary.on_init + +function flib_dictionary.on_tick() + local data = get_data() + if not data.init_ran then + data.init_ran = true + end + + -- Player language requests + for id, request in pairs(data.player_language_requests) do + if game.tick - request.tick > request_timeout_ticks then + local player = request.player + if player.valid and player.connected then + local id = player.request_translation({ "locale-identifier" }) + if id then + data.player_language_requests[id] = { + player = player, + tick = game.tick, + } + end + end + -- Deletion must be last so that the deleted entry isn't re-used for the new entry in memory + data.player_language_requests[id] = nil + end + end + + local wip = data.wip + if not wip then + return + end + + if game.tick - wip.request_tick > request_timeout_ticks then + -- next() will return the first string from the last batch because it was inserted first + local _, request = next(wip.requests) + wip.dict = request.dict + wip.finished = false + wip.key = request.key + wip.requests = {} + request_next_batch(data) + update_gui(data) + end +end + +--- @param e EventData.on_string_translated +function flib_dictionary.on_string_translated(e) + local data = get_data() + local id = e.id + + -- Player language requests + local request = data.player_language_requests[id] + if request then + data.player_language_requests[id] = nil + if not e.translated then + error("Language key request for player " .. e.player_index .. " failed") + end + if data.player_languages[e.player_index] ~= e.result then + data.player_languages[e.player_index] = e.result + script.raise_event( + flib_dictionary.on_player_language_changed, + { player_index = e.player_index, language = e.result } + ) + if data.translated[e.result] then + script.raise_event(flib_dictionary.on_player_dictionaries_ready, { player_index = e.player_index }) + return + elseif data.wip and data.wip.language == e.result then + return + elseif table.find(data.to_translate, e.result) then + return + else + table.insert(data.to_translate, e.result) + end + end + end + + handle_next_language(data) + + local wip = data.wip + if not wip then + return + end + + local request = wip.requests[id] + if request then + wip.requests[id] = nil + wip.received_count = wip.received_count + 1 + if e.translated then + wip.dicts[request.dict][request.key] = e.result + end + end + + while wip and table_size(wip.requests) == 0 and not request_next_batch(data) do + if wip.finished then + data.translated[wip.language] = wip.dicts + data.wip = nil + for player_index, language in pairs(data.player_languages) do + if wip.language == language then + script.raise_event(flib_dictionary.on_player_dictionaries_ready, { player_index = player_index }) + end + end + end + handle_next_language(data) + update_gui(data) + wip = data.wip + end +end + +--- @param e EventData.on_player_joined_game +function flib_dictionary.on_player_joined_game(e) + -- Request the player's locale identifier + local player = game.get_player(e.player_index) --[[@as LuaPlayer]] + local id = player.request_translation({ "locale-identifier" }) + if not id then + return + end + local data = get_data() + data.player_language_requests[id] = { + player = player, + tick = game.tick, + } + update_gui(data) +end + +--- Handle all non-bootstrap events with default event handlers. Will not overwrite any existing handlers. If you have +--- custom handlers for on_tick, on_string_translated, or on_player_joined_game, ensure that you call the corresponding +--- module lifecycle handler.. +function flib_dictionary.handle_events() + for id, handler in pairs({ + [defines.events.on_tick] = flib_dictionary.on_tick, + [defines.events.on_string_translated] = flib_dictionary.on_string_translated, + [defines.events.on_player_joined_game] = flib_dictionary.on_player_joined_game, + }) do + if + not script.get_event_handler(id --[[@as uint]]) + then + script.on_event(id, handler) + end + end +end + +-- Dictionary creation + +--- Create a new dictionary. The name must be unique. +--- @param name string +--- @param initial_strings Dictionary? +function flib_dictionary.new(name, initial_strings) + local raw = get_data(true).raw + if raw[name] then + error("Attempted to create dictionary '" .. name .. "' twice.") + end + raw[name] = initial_strings or {} +end + +--- Add the given string to the dictionary. +--- @param dict_name string +--- @param key string +--- @param localised LocalisedString +function flib_dictionary.add(dict_name, key, localised) + local data = get_data(true) + local raw = data.raw[dict_name] + if not raw then + error("Dictionary '" .. dict_name .. "' does not exist.") + end + if not raw[key] then + data.raw_count = data.raw_count + 1 + end + raw[key] = localised +end + +--- Get all dictionaries for the player. Will return `nil` if the player's language has not finished translating. +--- @param player_index uint +--- @return table? +function flib_dictionary.get_all(player_index) + local data = get_data() + local language = data.player_languages[player_index] + if not language then + return + end + return data.translated[language] +end + +--- Get the specified dictionary for the player. Will return `nil` if the dictionary has not finished translating. +--- @param player_index uint +--- @param dict_name string +--- @return TranslatedDictionary? +function flib_dictionary.get(player_index, dict_name) + local data = get_data() + if not data.raw[dict_name] then + error("Dictionary '" .. dict_name .. "' does not exist.") + end + local language_dicts = flib_dictionary.get_all(player_index) or {} + return language_dicts[dict_name] +end + +--- @class DictLangRequest +--- @field player LuaPlayer +--- @field tick uint + +--- @class DictTranslationRequest +--- @field language string +--- @field dict string +--- @field key string + +--- Localised strings identified by an internal key. Keys must be unique and language-agnostic. +--- @alias Dictionary table + +--- Translations are identified by their internal key. If the translation failed, then it will not be present. Locale +--- fallback groups can be used if every key needs a guaranteed translation. +--- @alias TranslatedDictionary table + +return flib_dictionary diff --git a/.vscode/flib/dictionary.lua b/.vscode/flib/dictionary.lua new file mode 100644 index 0000000..430b176 --- /dev/null +++ b/.vscode/flib/dictionary.lua @@ -0,0 +1,424 @@ +local gui = require("__flib__/gui-lite") +local mod_gui = require("__core__/lualib/mod-gui") +local table = require("__flib__/table") + +--- @diagnostic disable +--- @deprecated Use 'dictionary-lite' instead. +local flib_dictionary = {} + +local inner_separator = "" -- U+E000 +local separator = "" -- U+E001 +local translation_timeout = 600 + +-- Depending on the value of `use_local_storage`, this will be tied to `global` or will be re-generated during `on_load` +local raw = { _total_strings = 0 } + +local use_local_storage = false + +local function key_value(key, value) + return key .. inner_separator .. value .. separator +end + +local RawDictionary = {} + +--- @deprecated Use 'dictionary-lite' instead. +function RawDictionary:add(internal, translation) + local to_add = { "", internal, inner_separator, { "?", translation, "FLIB_TRANSLATION_FAILED" }, separator } + + local ref = self.ref + local i = self.batch_i + 1 + -- Due to network saturation concerns, only group five strings together + -- See https://github.com/factoriolib/flib/issues/45 + if i < 5 then + ref[i] = to_add --- @diagnostic disable-line + self.batch_i = i + else + local s_i = self.dict_i + 1 + self.dict_i = s_i + local new_set = { "", to_add } + self.ref = new_set + self.strings[s_i] = new_set + self.batch_i = 2 + end + self.total = self.total + 1 + raw._total_strings = raw._total_strings + 1 +end + +--- @class RawDictionary +function flib_dictionary.new(name, keep_untranslated, initial_contents) + if raw[name] then + error("Dictionary with the name `" .. name .. "` already exists.") + end + + --- @type LocalisedString + local initial_string = { "" } + --- @class RawDictionary + local self = { + -- Indices + batch_i = 1, + dict_i = 1, + total = 1, + -- Internal + ref = initial_string, + --- @type LocalisedString + strings = { initial_string }, + -- Meta + name = name, + } + setmetatable(self, { __index = RawDictionary }) + + for key, value in pairs(initial_contents or {}) do + self:add(key, value) + end + --- @diagnostic disable-next-line + raw[name] = { strings = self.strings, keep_untranslated = keep_untranslated } + + return self +end + +--- @deprecated Use 'dictionary-lite' instead. +function flib_dictionary.init() + if not global.__flib then + global.__flib = {} + end + global.__flib.dictionary = { + in_process = {}, + players = {}, + raw = { _total_strings = 0 }, + translated = {}, + } + if use_local_storage then + raw = { _total_strings = 0 } + else + raw = global.__flib.dictionary.raw + end +end + +--- @deprecated Use 'dictionary-lite' instead. +function flib_dictionary.load() + if not use_local_storage and global.__flib and global.__flib.dictionary then + raw = global.__flib.dictionary.raw + end +end + +--- @deprecated Use 'dictionary-lite' instead. +function flib_dictionary.translate(player) + if not player.connected then + error("Player must be connected to the game before this function can be called!") + end + + local player_data = global.__flib.dictionary.players[player.index] + if player_data then + return + end + global.__flib.dictionary.players[player.index] = { + player = player, + status = "get_language", + requested_tick = game.tick, + } + + player.request_translation({ "", "FLIB_LOCALE_IDENTIFIER", separator, { "locale-identifier" } }) +end + +local function request_translation(player_data) + local string = raw[player_data.dictionary].strings[player_data.i] + + -- We use `while` instead of `if` here just in case a dictionary doesn't have any strings in it + while not string do + local next_dictionary = next(raw, player_data.dictionary) + if next_dictionary then + -- Set the next dictionary and reset index + player_data.dictionary = next_dictionary + player_data.i = 1 + string = raw[next_dictionary].strings[1] + else + -- We're done! + player_data.status = "finished" + return + end + end + + player_data.player.request_translation({ + "", + key_value("FLIB_DICTIONARY_MOD", script.mod_name), + key_value("FLIB_DICTIONARY_NAME", player_data.dictionary), + key_value("FLIB_DICTIONARY_LANGUAGE", player_data.language), + key_value("FLIB_DICTIONARY_STRING_INDEX", player_data.i), + string, + }) + + player_data.requested_tick = game.tick +end + +--- @deprecated Use 'dictionary-lite' instead. +function flib_dictionary.check_skipped() + local script_data = global.__flib.dictionary + local tick = game.tick + for _, player_data in pairs(script_data.players) do + -- If it's been longer than the timeout, request the string again + -- This is to solve a very rare edge case where translations requested on the same tick that a singleplayer game + -- is saved will not be returned when that save is loaded + if (player_data.requested_tick or 0) + translation_timeout <= tick then + if player_data.status == "get_language" then + player_data.player.request_translation({ "", "FLIB_LOCALE_IDENTIFIER", separator, { "locale-identifier" } }) + end + if player_data.status == "translating" then + request_translation(player_data) + end + end + end +end + +--- Escape match special characters +local function match_literal(s) + return string.gsub(s, "%-", "%%-") +end + +--- @param dict_lang string +local function clean_gui(dict_lang) + for _, player in pairs(game.players) do + local window = mod_gui.get_frame_flow(player).flib_translation_progress + if window then + local pane = window.pane + local mod_flow = pane[script.mod_name] + if mod_flow then + local lang_flow = mod_flow[dict_lang] + if lang_flow then + lang_flow.destroy() + end + if #mod_flow.children == 1 then + mod_flow.destroy() + end + end + if #pane.children == 0 then + window.destroy() + end + end + end +end + +local dictionary_match_string = key_value("^FLIB_DICTIONARY_MOD", match_literal(script.mod_name)) + .. key_value("FLIB_DICTIONARY_NAME", "(.-)") + .. key_value("FLIB_DICTIONARY_LANGUAGE", "(.-)") + .. key_value("FLIB_DICTIONARY_STRING_INDEX", "(%d-)") + .. "(.*)$" + +--- @deprecated Use 'dictionary-lite' instead. +function flib_dictionary.process_translation(event_data) + if not event_data.translated then + return + end + local script_data = global.__flib.dictionary + if string.find(event_data.result, "FLIB_DICTIONARY_NAME") then + local _, _, dict_name, dict_lang, string_index, translation = + string.find(event_data.result, dictionary_match_string) + + if dict_name and dict_lang and string_index and translation then + local language_data = script_data.in_process[dict_lang] + -- In some cases, this can fire before on_configuration_changed + if not language_data then + return + end + local dictionary = language_data.dictionaries[dict_name] + if not dictionary then + return + end + local dict_data = raw[dict_name] + local player_data = script_data.players[event_data.player_index] + + -- If this number does not match, this is a duplicate, so ignore it + if tonumber(string_index) == player_data.i then + -- Extract current string's translations + for str in string.gmatch(translation, "(.-)" .. separator) do + local _, _, key, value = string.find(str, "^(.-)" .. inner_separator .. "(.-)$") + if key then + -- If `keep_untranslated` is true, then use the key as the value if it failed + local failed = string.find(value, "FLIB_TRANSLATION_FAILED") + if failed and dict_data.keep_untranslated then + value = key + elseif failed then + value = nil + end + if value then + dictionary[key] = value + end + language_data.translated_i = language_data.translated_i + 1 + end + end + + -- Request next translation + player_data.i = player_data.i + 1 + request_translation(player_data) + + -- GUI + for _, player in pairs(game.players) do + --- @type LuaGuiElement + local flow = mod_gui.get_frame_flow(player) + if not flow.flib_translation_progress then + gui.add(flow, { + type = "frame", + name = "flib_translation_progress", + style = mod_gui.frame_style, + style_mods = { width = 350 }, + direction = "vertical", + { + type = "label", + style = "frame_title", + caption = { "gui.flib-translating-dictionaries" }, + tooltip = { "gui.flib-translating-dictionaries-description" }, + }, + { + type = "frame", + name = "pane", + style = "inside_shallow_frame_with_padding", + style_mods = { top_padding = 8 }, + direction = "vertical", + }, + }) + end + local pane = flow.flib_translation_progress.pane --[[@as LuaGuiElement]] + if not pane[script.mod_name] then + gui.add(pane, { + type = "flow", + name = script.mod_name, + direction = "vertical", + { type = "label", style = "caption_label", style_mods = { top_margin = 4 }, caption = script.mod_name }, + }) + end + local mod_flow = pane[script.mod_name] --[[@as LuaGuiElement]] + if not mod_flow[dict_lang] then + gui.add(mod_flow, { + type = "flow", + name = dict_lang, + style_mods = { vertical_align = "center", horizontal_spacing = 8 }, + { type = "label", style = "bold_label", caption = dict_lang }, + { type = "progressbar", name = "bar", style_mods = { horizontally_stretchable = true } }, + { type = "label", name = "label", style = "bold_label" }, + }) + end + local progress = language_data.translated_i / raw._total_strings + mod_flow[dict_lang].bar.value = progress --[[@as double]] + mod_flow[dict_lang].label.caption = tostring(math.ceil(progress * 100)) .. "%" + mod_flow[dict_lang].label.tooltip = dict_name + .. "\n" + .. language_data.translated_i + .. " / " + .. raw._total_strings + end + + if player_data.status == "finished" then + -- Clean up translation data + script_data.translated[dict_lang] = language_data.dictionaries + script_data.in_process[dict_lang] = nil + for _, player_index in pairs(language_data.players) do + script_data.players[player_index] = nil + end + + -- Clean up GUI + clean_gui(dict_lang) + + return { dictionaries = language_data.dictionaries, language = dict_lang, players = language_data.players } + end + end + end + elseif string.find(event_data.result, "^FLIB_LOCALE_IDENTIFIER") then + local _, _, language = string.find(event_data.result, "^FLIB_LOCALE_IDENTIFIER" .. separator .. "(.*)$") + if language then + local player_data = script_data.players[event_data.player_index] + -- Handle duplicates + if not player_data or player_data.status ~= "get_language" then + return + end + + player_data.language = language + + -- Check if this language is already translated or being translated + local dictionaries = script_data.translated[language] + if dictionaries then + script_data.players[event_data.player_index] = nil + return { dictionaries = dictionaries, language = language, players = { event_data.player_index } } + end + local in_process = script_data.in_process[language] + if in_process then + table.insert(in_process.players, event_data.player_index) + player_data.status = "waiting" + return + end + + -- Set up player data for translating + player_data.status = "translating" + player_data.dictionary = next(raw, "_total_strings") + player_data.i = 1 + + -- Add language to in process data + script_data.in_process[language] = { + dictionaries = table.map(raw, function(_, k) + if k ~= "_total_strings" then + return {} + end + end), + players = { event_data.player_index }, + translated_i = 0, + } + + -- Start translating + request_translation(player_data) + end + end +end + +--- @deprecated Use 'dictionary-lite' instead. +function flib_dictionary.cancel_translation(player_index) + local script_data = global.__flib.dictionary + local player_data = script_data.players[player_index] + if not player_data then + return + end + -- Delete this player's data from global + script_data.players[player_index] = nil + + local in_process = script_data.in_process[player_data.language] + if not in_process then + return + end + + -- Remove this player from the players table + local i = table.find(in_process.players, player_index) + if i then + table.remove(in_process.players, i) + end + + if player_data.status ~= "translating" then + return + end + + -- Find the next player in the list with valid data + local next_player_data + for _, player_index in pairs(in_process.players) do + local player_data = script_data.players[player_index] + if player_data then + next_player_data = player_data + break + end + end + -- If there are no more valid players + if not next_player_data then + -- Completely cancel the translation + script_data.in_process[player_data.language] = nil + clean_gui(player_data.language) + return + end + --Update player info + next_player_data.status = "translating" + next_player_data.dictionary = player_data.dictionary + next_player_data.i = player_data.i + -- Resume translating with the new player + request_translation(next_player_data) +end + +--- @deprecated Use 'dictionary-lite' instead. +function flib_dictionary.set_use_local_storage(value) + use_local_storage = value +end + +return flib_dictionary diff --git a/.vscode/flib/direction.lua b/.vscode/flib/direction.lua new file mode 100644 index 0000000..50840e9 --- /dev/null +++ b/.vscode/flib/direction.lua @@ -0,0 +1,115 @@ +local flib_math = require("__flib__/math") + +--- Functions for working with directions. +--- @class flib_direction +local flib_direction = {} + +--- defines.direction.north +flib_direction.north = defines.direction.north +--- defines.direction.east +flib_direction.east = defines.direction.east +--- defines.direction.west +flib_direction.west = defines.direction.west +--- defines.direction.south +flib_direction.south = defines.direction.south +--- defines.direction.northeast +flib_direction.northeast = defines.direction.northeast +--- defines.direction.northwest +flib_direction.northwest = defines.direction.northwest +--- defines.direction.southeast +flib_direction.southeast = defines.direction.southeast +--- defines.direction.southwest +flib_direction.southwest = defines.direction.southwest + +--- Calculate the opposite direction. +--- @param direction defines.direction +--- @return defines.direction +function flib_direction.opposite(direction) + return (direction + 4) % 8 --[[@as defines.direction]] +end + +--- Calculate the next four-way or eight-way direction. +--- @param direction defines.direction +--- @param eight_way? boolean +--- @return defines.direction +function flib_direction.next(direction, eight_way) + return (direction + (eight_way and 1 or 2)) % 8 --[[@as defines.direction]] +end + +--- Calculate the previous four-way or eight-way direction. +--- @param direction defines.direction +--- @param eight_way? boolean +--- @return defines.direction +function flib_direction.previous(direction, eight_way) + return (direction + (eight_way and -1 or -2)) % 8 --[[@as defines.direction]] +end + +--- Calculate an orientation from a direction. +--- @param direction defines.direction +--- @return RealOrientation +function flib_direction.to_orientation(direction) + return direction / 8 --[[@as RealOrientation]] +end + +--- Calculate a vector from a direction. +--- @param direction defines.direction +--- @param distance? number default: `1` +--- @return MapPosition +function flib_direction.to_vector(direction, distance) + distance = distance or 1 + local x, y = 0, 0 + if direction == flib_direction.north then + y = y - distance + elseif direction == flib_direction.northeast then + x, y = x + distance, y - distance + elseif direction == flib_direction.east then + x = x + distance + elseif direction == flib_direction.southeast then + x, y = x + distance, y + distance + elseif direction == flib_direction.south then + y = y + distance + elseif direction == flib_direction.southwest then + x, y = x - distance, y + distance + elseif direction == flib_direction.west then + x = x - distance + elseif direction == flib_direction.northwest then + x, y = x - distance, y - distance + end + return { x = x, y = y } +end + +--- Calculate a two-dimensional vector from a cardinal direction. +--- @param direction defines.direction +--- @param longitudinal number Distance to move in the specified direction. +--- @param orthogonal number Distance to move perpendicular to the specified direction. A negative distance will move "left" and a positive distance will move "right" from the perspective of the direction. +--- @return MapPosition? +function flib_direction.to_vector_2d(direction, longitudinal, orthogonal) + if direction == defines.direction.north then + return { x = orthogonal, y = -longitudinal } + elseif direction == defines.direction.south then + return { x = -orthogonal, y = longitudinal } + elseif direction == defines.direction.east then + return { x = longitudinal, y = orthogonal } + elseif direction == defines.direction.west then + return { x = -longitudinal, y = -orthogonal } + end +end + +--- Calculate the direction of travel from the source to the target. +--- @param source MapPosition +--- @param target MapPosition +--- @param round? boolean If true, round to the nearest `defines.direction`. +--- @return defines.direction +function flib_direction.from_positions(source, target, round) + local deg = math.deg(math.atan2(target.y - source.y, target.x - source.x)) + local direction = (deg + 90) / 45 + if direction < 0 then + direction = direction + 8 + end + if round then + direction = flib_math.round(direction) + end + return direction --[[@as defines.direction]] +end + +return flib_direction diff --git a/.vscode/flib/docs/assets/indicator-examples.png b/.vscode/flib/docs/assets/indicator-examples.png new file mode 100644 index 0000000000000000000000000000000000000000..86611a3dc712bc0267ee976088a5aadab6522e46 GIT binary patch literal 7923 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 literal 0 HcmV?d00001 diff --git a/.vscode/flib/docs/assets/slot-style-examples.png b/.vscode/flib/docs/assets/slot-style-examples.png new file mode 100644 index 0000000000000000000000000000000000000000..fe277c8529323941d9a6d083039898b5551617e6 GIT binary patch literal 17286 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 literal 0 HcmV?d00001 diff --git a/.vscode/flib/docs/gui-styles.md b/.vscode/flib/docs/gui-styles.md new file mode 100644 index 0000000..919d33e --- /dev/null +++ b/.vscode/flib/docs/gui-styles.md @@ -0,0 +1,115 @@ +flib includes several GUI styles for your use and convenience. For help and information on how to use these styles effectively, refer to the [work-in-progress GUI style guide](https://github.com/raiguard/Factorio-SmallMods/wiki/GUI-Style-Guide). + +**IMPORTANT:** Modifying these styles in any way will modify them for all mods using them. Therefore, unless you are specifically creating a GUI skin mod, **DO NOT MODIFY THESE STYLES!** Instead, create your own new styles using these styles as parents, then modify those new styles as you wish. + +### Button styles + +**flib_selected_frame_action_button** + +A "selected" frame action button. Use when a frame action button can "toggle" on and off. + +**flib_selected_tool_button** + +A "selected" tool button. Use when a tool button can "toggle" on and off. + +**flib_tool_button_light_green** + +A light green tool button. Similar to the `item_and_count_select_confirm` style, but has margin and padding fixes to match other tool buttons. + +**flib_tool_button_dark_red** + +A dark red tool button, similar to the red shortcut button style. + +#### Slot styles + +flib includes a myriad of colored slot styles for use with `sprite-button`s: + +![](https://raw.githubusercontent.com/factoriolib/flib/master/docs/assets/slot-style-examples.png) + +There are three categories of style, from top to bottom: `slot`, `slot_button`, and `standalone_slot_button`. From left to right, the colors are `default`, `grey`, `red`, `orange`, `yellow`, `green`, `cyan`, `blue`, `purple`, and `pink`. + +The styles are formatted as `flib_CATEGORY_COLOR`. For example, if I want a pink standalone slot button (bottom-right on the preview image), I would use `flib_standalone_slot_button_pink`. + +Each slot style also has a `selected` variant, which uses the hovered graphics as default. This is intended to let a user "select" a button, and to let the mod visually distinguish it from other buttons around it. To use these styles, replace `flib_` with `flib_selected_` in the style you wish to use (e.g. `flib_selected_slot_button_green`). + +### Empty widget styles + +**flib_dialog_footer_drag_handle** + +A drag handle suitable for placement in the footer of a **dialog** window. + +**flib_dialog_footer_drag_handle_no_right** + +A dialog footer drag handle with the right margin removed. Suitable for dialog windows without a `confirm` button. + +**flib_dialog_titlebar_drag_handle** + +A drag handle suitable for placement in the titlebar of a **dialog** window. Use inside of a `flib_titlebar_flow` flow. + +**flib_horizontal_pusher** + +An invisible element that has `horizontally_stretchable` set, thereby "pushing" everything to the right. + +**flib_titlebar_drag_handle** + +A drag handle suitable for placement in the titlebar of a **standard** window (a window with a close button, or any other frame action buttons in the titlebar). Use inside of a `flib_titlebar_flow` flow. + +**flib_vertical_pusher** + +An invisible element that has `vertically_stretchable` set, thereby "pushing" everything to the bottom. + +### Flow styles + +**flib_indicator_flow** + +A flow designed for use with indicators (see below). + +**flib_titlebar_flow** + +A flow for use in a custom window titlebar. Identical to a regular horizontal flow, except for an increased horizontal spacing. + +### Frame styles + +**flib_shallow_frame_in_shallow_frame** + +A shallow frame nested in another shallow frame. Use of this is generally recommended against, but can be useful in some specific situations. + +### Image styles + +**flib_indicator** + +A 16x16 image style. Designed for use with flib's indicator sprites (see `sprites.md`). + +### Scroll pane styles + +**flib_naked_scroll_pane** + +A marginless scroll pane for use inside of content panes. When activated, it draws a shadow around its edges to give a more "inset" effect, to make it more obviously scrollable. The content is given an automatic 12px padding. + +**flib_naked_scroll_pane_under_tabs** + +Identical to `flib_naked_scroll_pane`, but has an inset on the top side when activated. Designed for use inside of a `tabbed_pane_with_no_side_padding` when not using a toolbar. + +**flib_naked_scroll_pane_no_padding** + +Identical to `flib_naked_scroll_pane`, but has no padding for the content that's put inside. Useful for wrapping a table in a scroll pane, for example. + +**flib_shallow_scroll_pane** + +A scroll pane that is inset from a shallow frame, instead of an outer frame. + +### Tabbed pane styles + +**flib_tabbed_pane_with_no_padding** + +A tabbed pane with no padding whatsoever on the content container. Useful for specific situations where you need to have full control of the content padding. + +### Textfield styles + +**flib_widthless_textfield** + +A textfield with no width defined on it. The default textfield style has a width of 200, which can wreak havoc. + +**flib_widthless_invalid_textfield** + +A widthless textfield that has a red background. Suitable for situations where the content of the textfield is invalid in some way. diff --git a/.vscode/flib/docs/sprites.md b/.vscode/flib/docs/sprites.md new file mode 100644 index 0000000..f5c3fa4 --- /dev/null +++ b/.vscode/flib/docs/sprites.md @@ -0,0 +1,9 @@ +The following are sprites provided by flib for your use: + +## Indicator sprites + +![](https://raw.githubusercontent.com/factoriolib/flib/master/docs/assets/indicator-examples.png) + +As seen above, indicator sprites are used to display the "status" of something. They are 16x16 in size, and are intended to be accompanied by a status label. The sprite names follow the `flib_indicator_COLOR` pattern, replacing `COLOR` with the corresponding color as shown in the preview above (e.g. `flib_indicator_blue`). + +To align the indicator with an adjacent label, create both the indicator and label as children of a flow with the `flib_indicator_flow` style (see `gui-styles.md`). \ No newline at end of file diff --git a/.vscode/flib/event.lua b/.vscode/flib/event.lua new file mode 100644 index 0000000..73d8ae6 --- /dev/null +++ b/.vscode/flib/event.lua @@ -0,0 +1,90 @@ +--- @diagnostic disable +--- @deprecated use `script` directly +local flib_event = {} + +for name, id in pairs(defines.events) do + flib_event[name] = function(handler, filters) + return script.on_event(id, handler, filters) + end +end + +--- @deprecated use `script` directly +function flib_event.on_init(handler) -- + script.on_init(handler) +end + +--- @deprecated use `script` directly +function flib_event.on_load(handler) -- + script.on_load(handler) +end + +--- @deprecated use `script` directly +function flib_event.on_configuration_changed(handler) -- + script.on_configuration_changed(handler) +end + +--- @deprecated use `script` directly +function flib_event.on_nth_tick(nth_tick, handler) -- + if handler then + script.on_nth_tick(nth_tick, handler) + else + script.on_nth_tick(nth_tick) + end +end + +--- @deprecated use `script` directly +function flib_event.register(ids, handler, filters) -- + if type(ids) ~= "table" then + ids = { ids } + end + for i = 1, #ids do + -- the game doesn't like you passing filters to events that don't support them, even if they're `nil` + if filters then + script.on_event(ids[i], handler, filters) + else + script.on_event(ids[i], handler) + end + end +end + +--- @deprecated use `script` directly +function flib_event.register_on_entity_destroyed(entity) -- + return script.register_on_entity_destroyed(entity) +end + +--- @deprecated use `script` directly +function flib_event.generate_id() -- + return script.generate_event_name() +end + +--- @deprecated use `script` directly +function flib_event.get_handler(id) -- + return script.get_event_handler(id) +end + +--- @deprecated use `script` directly +function flib_event.raise(id, event_data) -- + script.raise_event(id, event_data) +end + +--- @deprecated use `script` directly +function flib_event.get_order() -- + return script.get_event_order() +end + +--- @deprecated use `script` directly +function flib_event.set_filters(ids, filters) -- + if type(ids) ~= "table" then + ids = { ids } + end + for i = 1, #ids do + script.set_event_filter(ids[i], filters) + end +end + +--- @deprecated use `script` directly +function flib_event.get_filters(id) -- + script.get_event_filter(id) +end + +return flib_event diff --git a/.vscode/flib/format.lua b/.vscode/flib/format.lua new file mode 100644 index 0000000..66395b5 --- /dev/null +++ b/.vscode/flib/format.lua @@ -0,0 +1,79 @@ +--- Various string formatting functions. +--- @class flib_format +local flib_format = {} + +local suffix_list = { + { "Y", 1e24 }, -- yotta + { "Z", 1e21 }, -- zetta + { "E", 1e18 }, -- exa + { "P", 1e15 }, -- peta + { "T", 1e12 }, -- tera + { "G", 1e9 }, -- giga + { "M", 1e6 }, -- mega + { "k", 1e3 }, -- kilo +} + +--- Format a number for display, adding commas and an optional SI suffix. +--- Specify `fixed_precision` to display the number with the given width, +--- adjusting precision as necessary. +--- @param amount number +--- @param append_suffix boolean? +--- @param fixed_precision number? +--- @return string +function flib_format.number(amount, append_suffix, fixed_precision) + local suffix = "" + if append_suffix then + for _, data in ipairs(suffix_list) do + if math.abs(amount) >= data[2] then + amount = amount / data[2] + suffix = " " .. data[1] + break + end + end + if not fixed_precision then + amount = math.floor(amount * 10) / 10 + end + end + local formatted, k = tostring(amount), nil + if fixed_precision then + -- Show the number with fixed width precision + local len_before = #tostring(math.floor(amount)) + local len_after = math.max(0, fixed_precision - len_before - 1) + formatted = string.format("%." .. len_after .. "f", amount) + end + -- Add commas to result + while true do + formatted, k = string.gsub(formatted, "^(-?%d+)(%d%d%d)", "%1,%2") + if k == 0 then + break + end + end + return formatted .. suffix +end + +--- Convert the given tick or game.tick into "[hh:]mm:ss" format. +--- @param tick uint? +--- @param include_leading_zeroes boolean? +--- @return string +function flib_format.time(tick, include_leading_zeroes) + local total_seconds = math.floor((tick or game.ticks_played) / 60) + local seconds = total_seconds % 60 + local minutes = math.floor(total_seconds / 60) + if minutes > 59 then + minutes = minutes % 60 + local hours = math.floor(total_seconds / 3600) + if include_leading_zeroes then + return string.format("%02d:%02d:%02d", hours, minutes, seconds) + else + return string.format("%d:%02d:%02d", hours, minutes, seconds) + end + else + if include_leading_zeroes then + return string.format("%02d:%02d", minutes, seconds) + else + return string.format("%d:%02d", minutes, seconds) + end + end +end + +return flib_format diff --git a/.vscode/flib/graphics/black.png b/.vscode/flib/graphics/black.png new file mode 100644 index 0000000000000000000000000000000000000000..3cf27f47d2f6feba4ef91b8eba997329bf447d58 GIT binary patch literal 119 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx1SBVv2j2s6ii6yp7}lMWc?smOq&xaLGB9lH z=l+w(3gmMZctjR6Fz_7)VaDV6D^h@hJf1F&Arj%q2?+@xEewn?Xa8pcSqz@8elF{r G5}E*=o*MH2 literal 0 HcmV?d00001 diff --git a/.vscode/flib/graphics/dark-red-button.png b/.vscode/flib/graphics/dark-red-button.png new file mode 100644 index 0000000000000000000000000000000000000000..661b7b123258496700f5862dc1cf5e6cfd902304 GIT binary patch literal 1177 zcmV;K1ZMk*P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D1TINLK~zXf&6Ycl z97Pbvt9o8L`Ff9I8Q&+RXt#f3#!y|e*6)7w!L-OXrOvc2DqYrfWvn%BS8T}4pWnFg z%J^_R8V#bzYtgm`%B{FowMp}QwpyLfF5bI;pM2kV-qyhqbj@wkY*kgH^_Qn7t2|p2 z1s<=gDqUf}on$?xh!wv-nY?^$JV{1LFZP+0+p$Xq)kNBuWw!Zax%&0b+3AA^z%tAb zLShdPiD42?jH^;?j8#>A`^8zTbyaFz*TBLp*z=j^aXY|S*$wMiRq;DXa=?5z80?2( zNF0zsD7d}FFjYh)aY1HY6c=gw)R@oC&W1^Xtql&sFi7uDR@4or^ zpf&*(m9kHTYquD1FHo>gQPg?9$@5=|oZlXfMojwzai2_N2ym)BrDltjGp&i|fFoKN zIyw0?>h+=^u+N9R%F-ZZfD;3j=cypzFszlz%QDZh-yS|ZVvaq}>-7i`fKUvs9;~^H zQ=ZdiqgSiTH2qAwj%`d7m2q=oI;+Q}w!q`n35aZo)^?Vp%N1K|z(<+IE zP=#H|jH?0hY{-NF4Wc9}n7hIZ=Eb2Qg9#HlmNYH&h*oy&`?4f_*59_z76=WZEUk*7 zk&H1faF8o*#$TLTxW1J!XG|MvgfV6?k5%~C?uyr-4V5rig`w99W0|ykZSWc_tr-yL zTds9cmNmlIO|tMIY-luZ42S4gG1{Q*7v%rjH$dYXAh^Z=^z`msv`hsuyoS;saH?bh zh7?LT(Y+L!F+LO3;?bj*lnO^9H5{TxG(QL+F~=>?WYco>bxJRE}9HVC*#qG2vb z5>&HXW>22{`14PE97SneXL$O?Yo}qGo>Bv)KE8c>F`cH1MN`+i4TOWey}hHOo0Ca; z{d$!o)Qf>-@afrNZ4H|NBhS3~JbC<>U-kX+zYgeH!2IFyalT$R|Njq*`u&@4zO^{G rro#|<1XlAq<*Ffeb?ueq{_Nr}>=f1>7Pj&b00000NkvXXu0mjf&_6CB literal 0 HcmV?d00001 diff --git a/.vscode/flib/graphics/empty.png b/.vscode/flib/graphics/empty.png new file mode 100644 index 0000000000000000000000000000000000000000..a799dbbc353977ec2ed482fc77cc5a26c01f72fe GIT binary patch literal 131 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqjKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBugD~Uq{1qucK?zS6#}JL+pmBEz?hXk~AhmNxcKYIh%JC^gjE#u5PVUaZcx@uX;T4SzC!W-Nhh$%3-U zzZ#r=a#9dOC{_Qy+Dc(e+(L^Ew~rEj!SQJ>@c9kZZFlt40UHWs#U1@zmVetT!$)$m| zNcTfpbs}!-$wJJppKnetDTRaCzl2Ua@^%^<`Lj@U>8JiV9UOhV6AWCSV~%bd5~tWV7TS?(!jo9i;40d(Mt7atK?D%24H6-M-#d-Y(*Hq(Bq&xDD9WWx*}9pWZc$NR{~v8 zxQ;UJ8a9a4r>hn)mv5=dgQ_pdY^%z5^lhuFuXhXpV2zRLrbYe396!&RWgo9yq)r^s zPf;)0l4VFenx^Qtxi%HKCO8l68`-))!Ha4eL%)92UTbD7ru16$NjLIZ`l)J5-%6k& zaF?Q?BKVWb?xgA0*$rERieY3D9z1n+3KugsQ_lI8@Jn{O`<(W)5qF-KXywvngQfZt{_ZuBJRsAMZ_~O(49nX!S0qe6e z+d2*FC7cuUoVS{vh0sh@HVXYbZrUFQ9ac?LtRlCzGB1~W)Sowzs>vPUZe)p3edu!_ zhz`)E|5ejGGmU^sXW$ptld24ApD(kjn$G3a5adP~={!@@ov)ixAfqoPxISj#k&yYN z3STswJye#$b*SqS8BkEOc>T-m3zf-@z|xR6AM3dJPuw`+4SniQBp(cZH2%Q9$a7aW zhWD*_4F;xEzj-%wJ(HPlFBnRK*;2VJ&hh3D*MM$h(_)zD+}iF~lQ-@M)Dsp{nM++gW8$;SSWNhDi$s;;R#UCY zSbnZFOD}l~1O{^LtP19Aa~W&6uzwidk{;?7)}FKI^Xe&HA68CzO+-1Kr0BkWy@O^G z2JsiQJ2fLui{RDmZ0fA@I`D!?(~c3m5-=N_#iw7Z z(|4Iiyq#(OnA;_-h>=A8!3V`Tn34;J&^OD^N;FpGqti?M;QJqxd`+76QiYHW^^Z}N z?1|Qv(Q7LO*|k3v^~bey3f-0{_G;_iQ;5&6(DzulV=@qil(H-mDt-u9QNfloD z^{*p1i^WEQW(ib1>tK>bDwSgb&Fp86?tldPFhgGrrfC0f4p>o25OG`Ew>_RCXrIcq zFSFd2IF(y!M!hGbKUQ`i5TfMLQuqZ=AhnJ%LGPIZ2OGrst|iS9k~Kr>wAE#a0^(mO zIV6ZR3x&@J%tMCW%SM*b?Z4A+o#K&wQ(UFT?h{{w{M9ZVx)VlHY}9iAmOBj5vraGX zt}}2Td9zs49=U|RjnO|lb{z){tk!tU=+N`ru);-AKQ`}AS|XrZ%H<0`qM6pr_k0R+ zG=o;SC>EGIRL+@Z)-Q=2LYjBd*@}FK5GBN47bR13 zJA12s5~3eBDb7eACUImdOea~yBjNwBBA%=kle8LDl#hP9ce{~-x$$5Zf@Vs&EAE)* ze~WaNCrXx@II(2<@)_b){$?~g{c=~ti)_))pS#G-G=aSg7xQ# zg9%}A347wW(((r)%LKa2Ep2+^Lh^cH-U6ML0hdD!u6dkH7{O?djeG2GXnmwbL67MD z%yc@f5BkK$bVA1WdLSZ|`zc{V3XdRehNKbO32o+-luy;yWfc^VZ`1`ZY%Mzb#*Oi~ zn})I`S7~aMOUA_Cv`G^r6-mCD7`Dw^S_xIApF}Ftr2T?kt>js(MW)a6`FlE8?Hu-*#a!XWmPQ0`Ap!Ci1;$J%0#eUkRRg!yF{!25&!h{54Kmn;6`A=% zP0uJLs!@{VN+(|iOdY(!xOc(s#_-|8Ipw8Hx~rt?@>lXe)J{u!gAixA3)Touni5B8 z5}FQkF~W5ng0sf)UW5>m-oN1fC6|hS6}v<2AEjCoCMZz`WKc+q>Yx5ZgEeoq*Y*;f z+*-F@$X|T{mHa^V=IJfN3W`PmKD1*ruvej2p%5NtQVuxALkmKk{g@)udU$3Q3Y=$= zL>ez|;Bao$gbZ>9-Qs^o4je4*IRhuZu;mG!<9d3vKBseYg`#jykkn`#EXJg!U!Tj5 zw_#7>g1RA@U|kYn)6YK|QvkGyn!+(A#OlsG8;iBS8;eu>G|fAl@;Mo5e5`i3YyY8& zPth)BpG3EWnGJ)cfAi6 zVUn8}aRq=Sd)Wpr$GJNCgfA=Wdy^(ZJ`#5JJ_XAap4m!lXyaj>S1Cvx8MU64ASa%s zb}P!@Q#HNKFkbATRo|=q_kwf3O5x=`yNZV)dY>Vib@sn8KmdtLI{ z`LF>#<66Wh@9)$Qj){72$Vg&WD}Yo(I6q|GzrZ2O486#cokrPk>noLLHbq84yF0?K zGr4pHSx~l{WA#l^ijAO7uVQ7!A*_dl2Vk+_7_Hk)Zyoez=D%AO{rdUDWF{Wfku`L8 zS)kI2Nls8qBq<|TtJo9zgP=P6TQoT`LHl;4uO1vDe0zbg@~;rf=q#J4?+CS#=vQ{m=>x~U7>l5} zhaF%aeG&RgH~?6r0w2>kH{;bQ(`OYW1xllq4|V&p5~Dx9?pl*+RP>Jja-;8<Jl5l9yne&x(LBq9F?g&S<2;(z!G>S0jP=1xxnBIKTnKDvHi0^t%N^u# zx4*sk9VH&1;nXkOAukfu684e*!4%*W{#`t^I((`^Arw z-88DM01Rm_iS0Q{CvPkaW+~zt#4p)V;yyYdLgYoX*s@8qXd%+!5;tk{kLvg+Pkg=h zw|<(7TeFi^d7oX{y|dvSkomI86g#uU*0b2B)+tV;84<}IiHFvz7l<+=*!N$(?g>l8 zzin}y$a9?&+NjhDe=GhH3!(1f7JKXicEe5|^yrPrs@KQ^e%w?d4Smgxzv_;TUmj;; z1z70A>&{$16WrKURQ*8#o7qTETWHc!)>GwPhv=s#C+RhRtf%#9Y6jI{jSwpMpDPJ8 zFIqkGE}6=5W%~7nE7ff!Ld2M>ppHbbSmmKo^KVEAn^suEZbS_VRjV`8#!bT*2=~gt ze6f&p8TK;ptINp^+Hj(tgmvPQECC89@A3GB;`}N7L$mb$fwHhRh;5$Yvgta&ao2Sy zr|3bWRwzc7m3 z`UV9%OiR>ZwWdY*#;e~CffAKPE;dXqYF#~k@ba!Qcj83#Q{V_79(}quB>5N`>`pAn ziWh@HHf@?W(!6z`7@Aocil`!!wuu!=&(X2UU%+B>FrmH_G*t-VOn%D1na?_23JM}J zqaxyD`~GdOEb~XN95_JcC6Ku%34pA0&#|d@72st51FZKT2~V3V&Q9cJ)NCxS2H(-L z%1!12B4`Mu=zV%gXi6MS(idFTQr{*U2#*^tJdrKK$e@%SG zXm-{+Vvi#IKF)Oay#5P95-0wVj_}^gy?4m0r>JS?U+$t~fQTW_MYh5PsygfGB@VZ` zkmmOjg7ap-a=5lfM%*4k9i^{O#>4l0o{g2c@jWV)@)O)sdKXX=fTHH@@_QAt?8ODO zIBNK=Y^7L!lBkW&?<_L#;!+OMdxiWA3#f}l7(Ev2pxB$z#Z4QHH!jt3(+`4k)%hhY z1}50S&o{%6Dlf;XS1{fmc*COe{DJeVHC^IMHHmSv^h$*Gp%lVwc=p+);7@p0?vPlt zbgn`T3c81==>=_pjbk5(ekcivPaQryVki7nq{mk|Nd9^+Zv`j){j^3wN`hc+g;YiT zz~W1FYOo05urb5%wtuV(PhVPNJ}Ec>sv=iFDvGl;IpRqzt3D>t`?9%biED+MASech zIR)_q;>8woP#I691g#8z^-fM3MfAtjVQU89`oS?OLkIx*6dKbe-0D1+JLsbc@XB8`tMjdN4Lh% zTDWg^!l_u2PjHGs8Dy`EzWYi16fpzK0-B69!ZH`{3?l5=l(o)b`5190Ry^+TlVg96$tpNG0%9BTcuY@yeA||1~qtVcpO3Ofweh?T7X?EFT_L@)(1jjxtlId6^raGI3gX6dt+3UB{)Ml+Sa^mFiX+sc zeP$*GB(tIhw9~cV&>DpBZ&D+O#2h?&gd6?c2PBUcaEuqmKkChLg}ybqH9(uHtsvn9_5^OS&{U_;++a7BX`m4U4D~f8=tYrleIggjh*I zaGQ`*c^JZr#=;Fg;er{XPUOtpCdqmSO3klMQh<9^*s-Xcra^nYRCjNQb-s8xhBnPI z8nF+(bZ5R{X>DC%bP7mzzG+m-iDnt4e~D1!a~&-?<9q~q(2G+J+?-q&RBO&heALf3 zOp*-ZFy>o50~F_FtvGXLZm;fz6l0XD5s5$&P3*7Hdk77ZM%C{{+Ldp%L32BVMAN<0YTWChn%8jF#h?cB4O*C5b zBw|I$lvEMO8iMFPVGt&j3MSRos>Mb&D-y(LI)Ulw&H;2Mc=(U71g z&yo$~MIhS1R3O@kYHRgTrcI!-bzCi&Xc(uwuORqK(6liDyAv!H+;&&!73y z;j@*kBrMDB_h7*})NIHJd5rz?366#veSl*axL!Xt`RWFfTt=;RF$A^liOYdT0Z;fu=rHG#21f$LJROp)LCKA5WWQcpR7C9j^2E=3|g z5Tn5>KW%H|VDbx1R6!d}8*TLu!n)FShz2xIX)MJG_A&1erts&G4oWTexr^TaX=t>)9bAtK$AsG z8$&u3=Z0{4jwTBkt$)tsyJdSDC#=a(lzP1yyR9~S1D4hqj>OU9p+!j|AM0cGPK-oC z((wpKkGKTY;tn7?r#~{>4m^8F;1^jXh*ll#J83U^!s3#HCw~v{XOLyMBBh5TW_U?8 z1d(Wt_KPVCI|it@#{{!No;wX4B`X}q0?DMUd?}g`2-XkiTEgYi?VnqdD$(U}Uee!v zT$Gp;f8&l_Oi#`P%)64FOnd&U=T^Lu1+6jLnb?Lf3*}1i8QL5uJhYfSy;Cnsf~ez_o?GC9>-O<#We}3w5)GY0bt zIiguS=c61_?PJ{{5(!H{@n{%$BuoDsk|Oy$cHy(=Or0pIZ;^ZN02Ust==U4{nf)y6 z^}3t5n|--@a;*)NUZbjDK6Cv3O#zWnfh~Oq(oms-nmy^Y1bs!{w)oO_*6{34o3|`^ zO)93iJ$Wr)KV`bHuw~U}@5312mA?nPzEt;!8}6bSUR3zCCmsz1Ir#RVQ4Phkp*P3J zXW1mgDJopF$AxgXrj$iy2;@P?3a0Y1Na8k^a&e?4c~(A{yI+PZ{_CcDYACd9m!EiXI;=+Yr^6@@@oW9_!V#k3nCkLw1Q_GZS zCC8F+*a8vs@p)uoL$s7ssO+SHw_k12(nYPwO^PKcZ8b|Xd^cEt>C`Xw_#5DxYA2rg z@aEie=f7W{ky1DcG9%4WJM5P=|4_*gsk}v_R8>4EGxY`KM{1CFn62{1-hB8%TLR&n zlMA@4U?JxHU~Kf~)ZO#I;V*=ANEK7H;2outAiWPE=6F_{9D)-VX$an^cB zDFeQQRiGrKRJMyo6fNeEI+(#H&(&cNemo^6H5u@b{mJ>skTg((e;-(57bD>1+2Ql6+0mnLc&Qc%!3c&VN$%J;C1v1=I zXW@?p240NnDez1_$>9kb!1LGJcs{~X(Zf1Y2WTi@jF>EB@3(}cy&1}$G_MLhN*NmY zg;`@}i*w};h6Loo3>PruW4`s2iE& z$z3U1Iu_r15CgBB+0AW1Ua(PCFcM-}zJf#0T8fcpY1DaXROE$-!G2( zYdG%761{Ma%h8k&yptLAmS@43UV3hIPlPgMz6WaB>ERhJ*nCDe#T22>hF-W%4cDwc zQ@9XR*L#D<(Gq$PbeZk^vNlg@;hhTV|0cB^E^Kt91jl4lS|lt%-z7q zic}!S3Vsg9LcZvGY~w#2CS=qn_^wKK=HyXSq{6qmhL#dP`}vcCf!%atxgj3!eX4}vDh9>sOxQoDr)eagp3TkcRXKa^^zIho=#9{3HG4bM<|DzYxx|4RM?R6YNg(YdG zruxvfPWU>rL{x928idyJz^x!7!peU|gZ`^gh?URHPraY=y%s?#)Va`hGdw3;6(@ax zUH=URW(D*!{<92mV%mVM_M>z1-8X#!xuo0;nLZl~^{NN2+G6zQ^^j3*TY%Avr)Z51U@en&Bzn(uhe@KGQU#5$}+WiN?&K7k-pXFriIXtU)K? zCsGYX|8f@k)O)g!_4x}LFXKBzUlaQWa}v~J`05CUK&mCrLqt>|1RecB6FYdW_eHz{ z`j4n2^T@0|F?437b!D(x1s350puY(&8~T=ykHxNS%hcE`($yL|qD25{vima{Wz zTndBV%I1pyirYg=sc<)y*{EwC6T!_m?BtTn26jTJtE4Dk?&QE~X5sV-%IfXl3_HOD z0E9%noz2YcpzhSKpjI}H!oZV`ZXmUdg)mTuTZvuCSrTe(BkSu5)$mo;H21YL=eGcg zil7U53%~#zpzdbW-VXMTZUWxIz(2SGuVM?t;H;$dPk2YS zzgd9s!RBq|%*MgW&gS62_OBjp?oysGkiQf9Up?G3VF$fz>QFZ)4_9-jlqb~D{l&jR zSeXCQ-`T^}{!cj;=4?=Vr~}N@4HlK--$KgBDXIR`<2MCXHV)2zykKPio29#r<^PcN zZ@K-R`BTonCIWN+C+@#l|D*Ol#xN@-B>{+&xySGHZ_fTNP;!oL?q-hW(BDuna8?@_4%mW^ zpOc3l3NkmdJFX$CFlnVqlgPQa5a&YtWaPt0vvM?8rc5-zvgDt0xgP9eS&DqiF z&%|%S1;kb5gn^u_e@z#dAy1|tA8aSbC-saB~HT56a3YeMy6~xWV z6Ke4%5X|qdDRXNxM=L1o{{CA~{}{LVUl!{Xn9l+V=6wa?<>WI1fi27}Kzy)u25~^a zP+opZJ`N5Z@V}$GIa#`UnYlv6tzebHs(}gUPc_sGf2d^qcWW>y5F z*w$PC%pm{e;3U5`>y^+#X@ZV7bil04F07J!2JFigS8h}w_^KeyZW26 z-!%Sz{P}w={y#>5LH{?%f5h*9>H05S{}BWKk@0`k^MfUykOgzB;Q8ZE(w7AN4Xy>nwc>8$olH)pG*?u={?$;Rc<`EMS8u?s7^} zDBI{1aEvU~0dfog0LGRaL|oH*@yEMBdy3D`2D_cE$I(o)rF-k$I{fT(bywM3tbOn)cK-LWN71S}g_Nit45 ziLXo~5%n2S$0*K%0D>Mqyv~tPzpSjRTz;Q(i>_QOPYNpzyp@Sjjn@E;$ApB0_H(1T z9JXRZafm`jn-(e!946OAvb(^_($v(MS|>#wv~dA6`p5-HmrC(@AH}oK{IgWwgpbRv z=FkyNHQ9+oTKM*p#|nAo9Wx{)fx$C4>Y6m-Y%NQWI(y8~dnaji)a$Xe9I(ty;E#R0-sqx#R0bErsC&iSHrAXf>C1jS2mAUx!cte$>+`%(B zbiK3>xtW1gBDpBeItmIS8~koN%L))SlP#@+Qmj5*!#=a_=RJh)Gf&7!N%h_-m!2S< zx{{`rQVy2C3`7gkI@n|g>fUef0_7+_CzPC#`lEyKrB1me>sH8yJ{SQc;Ow<*~fawEIkN*+mNAaLcn< zGzp>R+igD<-rU?2MXIZcLzq?{Cb!)Hj5Krs)<+IDP5jqH>57lw>KZ$~i`rlt_0f;ID9^l>)NGxNC)%J9^x3usIo1?H_Ov~YN-B@Q` z8v!WM76V>#Wpi$eQG^

3$$4?b9it>`y>K2vnM zFl#tx|7Qbsx#e(0DP#G@UnL;XcW7A8sP1j_HHL`Xq8PF@=Wc$M#PGm2+@dX8-_mvaDHinXf^Rc4l}!tvO3Z=))ASoa`nmN`iqy+x0IyY%o=~}*YPBegLGPmyaMi|cyH2``HlB*cMg0zD%R{*h zqOdSAw=(V?0Mc(*$fB)758H`tp+SmtZxNC*s1SRRXTWv?CkF@jV&Oec3hR#-`|kG( z&zQC2=0@Rcxm#6G>ydi`0NWAY`0#$%+S=-yEqRLCvXs~yV}zJu;Yppt9m$u@FtdzQ zpge_@*a$}NS@4T+p#ZQ;)yvmFhOMXe!f#wOlxIBrGjTU~0LXZEOyqa(Hu>n)tjsLG z`>b*TTHx3-7U&DSic=X>V_@r_u}&2918E9{vfACi0OR&*rd!7zS z`2{5i8P|!6(Tz@e!}o;EBfun<7((43cuZlq#o@sKGK(A(hAZQ46zHH2H-H&YAP$); zPdePz+Y>?#I-Gq_7}sI6){v5G+yC~0j5l~8H3ESQ+nO(r1`7pDF_|=xg^QT#m}r zDfQvQ2X6CMI<6^Ino#+}^2I4z18+Rh_Y=GrG};4k38{ClyV?|mxxe3BU2($=^_M|4 zGv|Go#^FZN*;IBf?p6RWWlPo^J|DGg6gAx$iUF#B}nAS!Sqjy5(6 zlWS|DX$bb^>q>0e zC2YP%A=st(WkxcPwCgiclw!grjHMy%1wlPyGn&KcsL3|l@c^)9l-#l4Aw^S|k_>D@ zntaZian?bAk;;rF(jFScqeJ2fvn9j1pK|!nL6_$!sv06e4kb2p8-BSh+VVdBWi=WZ zd@oe7x;1yPX22$8d%rslZSf;cki0=9%Bh^RGg?p$`u1S-p8irZj#le!`&n_yoVGv* zHy>ZCDr$XlR1^9Y7J|1*=X)Ge9^aDJpswD8MhnC zs$&rl5Z=##fAlh-pweJNIWu$1jOK>%4vSMp3h#B8Qty?#4_~RduRr|a&Y0iRY~Iyk z7XjQ>j54de?MmT150hg`joBU~HSxe*V~^AA!UZO*Nkf1YyRe}%DBatAvz;=3iLHlU zsmW$#hwW^*Q%V5ek!3O-9rj--1ey!6A>_dJFCHsHr8*@xUDU-aBlHDhE(17%G=yS= zFxGi9OGpO;WoDX00j+zcktH^4bo@?Y5cQcR;*m#ikoHK&yM1B#V#q*Kmi0CXHFn zq0<;6I7{v$Ruk#TP0ulEHEU|iG2)O!xF{H+2W5_&XWpS%D!bP37ZX`P?-Dj4zdO!u z=AH3}45kef@j9L_45pTNh`o!hKh@=Z5;yr`ft1u?e0W?7s~KaKEjrE;@~P4K@eL(5 z$$tBT0|T$_V9zs&ZW7isL|<@1sEHfV1K(#t`}=KS305b%ecF;>vE{}L(kP$3n`fT| zj|l_1j3PA=0Y_dGRz`+QpIqL>Jld21#UKwJMkd7RF?9|Peh_!1Y7M-YK=rvRqvY}^ z0s76?!1jgaA9I$Bq`Me2jy3KnWyW9l05C0xT5^&Kdg8;HsuS16w>KGG%lVtEfWz6! z<ZJUl&fr@=q2>b?WKp)unKb+Vnqq-&CAf#`c6?f?st z#nsg=q#k1c3ZTk`!it;ADb9LG%G7dok8j-e>hT)Dbu*gDwVPk0)}P5`)r>o3T--6h z9`_Z1e*tF?#x#$?$+L2I2XlzN{qnJYbTET|a8wYhZ=Nx1eq{6+PD~{VryuN+6tNdO zl~}-$WI%LeHI1qNobz?Jqn({yuAtX(A%I6}&z_Q!(tqn{p^++$FSEi>PG#V?$>{FI zSYcsdBK}kfYEHG=?zq22ZwL}qTK|^jn7lyIpjm*4iHQd6F;6FYZxJCa!mbG_szgqD@d9-RpKQ`i;&ASa~^sgW=Z`9E+0fAs(W literal 0 HcmV?d00001 diff --git a/.vscode/flib/graphics/indicators.png b/.vscode/flib/graphics/indicators.png new file mode 100644 index 0000000000000000000000000000000000000000..e43ce3d90b2c300acfbc3d08f4f196876f30d206 GIT binary patch literal 15584 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 literal 0 HcmV?d00001 diff --git a/.vscode/flib/graphics/planner.png b/.vscode/flib/graphics/planner.png new file mode 100644 index 0000000000000000000000000000000000000000..c6003f5a47cebcd27c8bcbc6f789af042308b5d3 GIT binary patch literal 6429 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 literal 0 HcmV?d00001 diff --git a/.vscode/flib/graphics/slots.png b/.vscode/flib/graphics/slots.png new file mode 100644 index 0000000000000000000000000000000000000000..098f51be1826d48cdd26cacbd6d2c27b66bf2001 GIT binary patch literal 89337 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

  • {6*22zp(DdsfL(ANh!lglmKZ`AubK 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 Ef)H@l3IG5A literal 0 HcmV?d00001 diff --git a/.vscode/flib/graphics/slots.xcf b/.vscode/flib/graphics/slots.xcf new file mode 100644 index 0000000000000000000000000000000000000000..1b8febd2b5bdbf41a6815d5ebd48f626b57c8871 GIT binary patch literal 571872 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]L(z3I@pfc$!E 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≠ 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 QhZ;ZP?jFws&42R$UoHY}QUCw| literal 0 HcmV?d00001 diff --git a/.vscode/flib/graphics/subheader-line.png b/.vscode/flib/graphics/subheader-line.png new file mode 100644 index 0000000000000000000000000000000000000000..87ed0fd7bc4c1f32bbe45fb0d4680b0437844007 GIT binary patch literal 90 zcmeAS@N?(olHy`uVBq!ia0vp^j6lr6!3HEPq^3FoDMe2g#}J9| +local handlers = {} +--- @type table +local handlers_lookup = {} + +--- Add a new child or children to the given GUI element. +--- @param parent LuaGuiElement +--- @param def GuiElemDef Can be a single element, or an array of elements. +--- @param elems table? Optional initial `elems` table. +--- @return table elems Elements with names will be collected into this table. +--- @return LuaGuiElement first The element that was created first; the "top level" element. +function flib_gui.add(parent, def, elems) + if not parent or not parent.valid then + error("Parent element is missing or invalid") + end + if not elems then + elems = {} + end + -- If a single def was passed, wrap it in an array + if def.type or (def.tab and def.content) then + def = { def } + end + local first + for i = 1, #def do + local def = def[i] + if def.type then + -- Remove custom attributes from the def so the game doesn't serialize them + local children = def.children + local elem_mods = def.elem_mods + local handler = def.handler + local style_mods = def.style_mods + local drag_target = def.drag_target + -- If children were defined in the array portion, remove and collect them + local has_array_children = false + if def[1] then + if children then + error("Cannot define children in array portion and subtable simultaneously") + end + has_array_children = true + children = {} + for i = 1, #def do + children[i] = def[i] + def[i] = nil + end + end + def.children = nil + def.elem_mods = nil + def.handler = nil + def.style_mods = nil + def.drag_target = nil + + local elem = parent.add(def) + + if not first then + first = elem + end + if def.name then + elems[def.name] = elem + end + if style_mods then + for key, value in pairs(style_mods) do + elem.style[key] = value + end + end + if elem_mods then + for key, value in pairs(elem_mods) do + elem[key] = value + end + end + if drag_target then + local target = elems[drag_target] + if not target then + error("Drag target '" .. drag_target .. "' not found.") + end + elem.drag_target = target + end + if handler then + local out + if type(handler) == "table" then + out = {} + for name, handler in pairs(handler) do + out[tostring(name)] = handlers[handler] + end + else + out = handlers[handler] + end + local tags = elem.tags + tags[handler_tag_key] = out + elem.tags = tags + end + if children then + flib_gui.add(elem, children, elems) + end + + -- Re-add custom attributes + if children and has_array_children then + for i = 1, #children do + def[i] = children[i] + end + else + def.children = children + end + def.elem_mods = elem_mods + def.handler = handler + def.style_mods = style_mods + elseif def.tab and def.content then + local _, tab = flib_gui.add(parent, def.tab, elems) + local _, content = flib_gui.add(parent, def.content, elems) + parent.add_tab(tab, content) + end + end + return elems, first +end + +--- Add the given handler functions to the registry for use with `flib_gui.add`. Each handler must have a unique name. If a +--- `wrapper` function is provided, it will be called instead, and will receive the event data and handler. The wrapper +--- can be used to execute logic or gather data common to all handler functions for this GUI. +--- @param new_handlers table +--- @param wrapper fun(e: GuiEventData, handler: function)? +function flib_gui.add_handlers(new_handlers, wrapper) + for name, handler in pairs(new_handlers) do + if type(handler) == "function" then + if handlers_lookup[name] then + error("Attempted to register two GUI event handlers with the same name: " .. name) + end + handlers[handler] = name + if wrapper then + handlers_lookup[name] = function(e) + wrapper(e, handler) + end + else + handlers_lookup[name] = handler + end + end + end +end + +--- Dispatch the handler associated with this event and GUI element. The handler must have been added using +--- `flib_gui.add_handlers`. +--- @param e GuiEventData +--- @return boolean handled True if an event handler was called. +function flib_gui.dispatch(e) + local elem = e.element + if not elem then + return false + end + local tags = elem.tags --[[@as Tags]] + local handler_def = tags[handler_tag_key] + if not handler_def then + return false + end + local handler_type = type(handler_def) + if handler_type == "table" then + handler_def = handler_def[tostring(e.name)] + end + if handler_def then + local handler = handlers_lookup[handler_def] + if handler then + handler(e) + return true + end + end + return false +end + +--- Handle all GUI events with `flib_gui.dispatch`. Will not override any existing handlers. +function flib_gui.handle_events() + for name, id in pairs(defines.events) do + if string.find(name, "on_gui_") and not script.get_event_handler(id) then + script.on_event(id, flib_gui.dispatch) + end + end +end + +--- A GUI element definition. This extends `LuaGuiElement.add_param` with several new attributes. +--- Children may be defined in the array portion as an alternative to the `children` subtable. +--- @class GuiElemDefClass: LuaGuiElement.add_param +--- @field style_mods LuaStyle? Modifications to make to the element's style +--- @field elem_mods LuaGuiElement? Modifications to make to the element itself +--- @field drag_target string? Set the element's drag target to the element whose name matches this string. The drag target must be present in the `elems` table. +--- @field handler GuiElemHandler? Handler(s) to assign to this element +--- @field children GuiElemDef[]? Children to add to this element +--- @field tab GuiElemDef? To add a tab, specify `tab` and `content` and leave all other fields unset. +--- @field content GuiElemDef? To add a tab, specify `tab` and `content` and leave all other fields unset. + +--- @alias GuiElemDef GuiElemDefClass|GuiElemDef[] + +--- A handler function to invoke when receiving GUI events for this element. Alternatively, separate handlers may be +--- specified for different events. +--- @alias GuiElemHandler fun(e: GuiEventData)|table + +--- Aggregate type of all possible GUI events. +--- @alias GuiEventData EventData.on_gui_checked_state_changed|EventData.on_gui_click|EventData.on_gui_closed|EventData.on_gui_confirmed|EventData.on_gui_elem_changed|EventData.on_gui_location_changed|EventData.on_gui_opened|EventData.on_gui_selected_tab_changed|EventData.on_gui_selection_state_changed|EventData.on_gui_switch_state_changed|EventData.on_gui_text_changed|EventData.on_gui_value_changed + +return flib_gui diff --git a/.vscode/flib/gui.lua b/.vscode/flib/gui.lua new file mode 100644 index 0000000..1e10839 --- /dev/null +++ b/.vscode/flib/gui.lua @@ -0,0 +1,328 @@ +--- @diagnostic disable + +local mod_name = script.mod_name +local gui_event_defines = {} + +local event_id_to_string_mapping = {} +for name, id in pairs(defines.events) do + if string.find(name, "^on_gui") then + gui_event_defines[name] = id + event_id_to_string_mapping[id] = string.gsub(name, "^on_gui", "on") + end +end + +--- @deprecated use `gui-lite` instead +local flib_gui = {} + +--- @deprecated use `gui-lite` instead +function flib_gui.hook_events(callback) + local on_event = script.on_event + for _, id in pairs(gui_event_defines) do + on_event(id, callback) + end +end + +--- @deprecated use `gui-lite` instead +function flib_gui.read_action(event_data) + local elem = event_data.element + if not elem or not elem.valid then + return + end + + local mod_tags = elem.tags[mod_name] + if not mod_tags then + return + end + + local elem_actions = mod_tags.flib + if not elem_actions then + return + end + + local event_name = event_id_to_string_mapping[event_data.name] + local msg = elem_actions[event_name] + + return msg +end + +--- @deprecated use `gui-lite` instead +local function recursive_build(parent, structure, refs) + -- If the structure has no type, just ignore it + -- This is to make it possible to pass unit types `{}` to represent "no element" without breaking things + if not structure.type then + return + end + + -- Prepare tags + local original_tags = structure.tags + local tags = original_tags or {} + local actions = structure.actions + local tags_flib = tags.flib + tags.flib = actions + structure.tags = { [mod_name] = tags } + + -- Make the game not convert these into a property tree for no reason + structure.actions = nil + -- Substructures can be defined in special tables or as the array portion of this structure + local substructures + local substructures_len = #structure + if substructures_len > 0 then + if structure.children or structure.tabs then + error("Children or tab-and-content pairs must ALL be in the array portion, or a subtable. Not both at once!") + end + substructures = {} + for i = 1, substructures_len do + substructures[i] = structure[i] + structure[i] = nil + end + else + substructures = structure.children or structure.tabs + structure.children = nil + structure.tabs = nil + end + + -- Create element + local elem = parent.add(structure) + + -- Restore structure + structure.tags = original_tags + structure.actions = actions + tags.flib = tags_flib + + local style_mods = structure.style_mods + if style_mods then + for k, v in pairs(style_mods) do + elem.style[k] = v + end + end + + local elem_mods = structure.elem_mods + if elem_mods then + for k, v in pairs(elem_mods) do + elem[k] = v + end + end + + local ref = structure.ref + if ref then + -- Recursively create tables as needed + local prev = refs + local ref_length = #ref + for i = 1, ref_length - 1 do + local current_key = ref[i] + local current = prev[current_key] + if not current then + current = {} + prev[current_key] = current + end + prev = current + end + prev[ref[ref_length]] = elem + end + + -- Substructures + if substructures then + if structure.type == "tabbed-pane" then + local add_tab = elem.add_tab + for i = 1, #substructures do + local tab_and_content = substructures[i] + if not (tab_and_content.tab and tab_and_content.content) then + error("TabAndContent must have `tab` and `content` fields") + end + local tab = recursive_build(elem, tab_and_content.tab, refs) + local content = recursive_build(elem, tab_and_content.content, refs) + add_tab(tab, content) + end + else + for i = 1, #substructures do + recursive_build(elem, substructures[i], refs) + end + end + end + + return elem +end + +--- @deprecated use `gui-lite` instead +function flib_gui.build(parent, structures) + local refs = {} + for i = 1, #structures do + recursive_build(parent, structures[i], refs) + end + return refs +end + +--- @deprecated use `gui-lite` instead +function flib_gui.add(parent, structure) + -- Just in case they had a ref in the structure already, extract it + local previous_ref = structure.ref + -- Put in a known ref that we can use later + structure.ref = { "FLIB_ADD_ROOT" } + -- Build the element + local refs = {} + recursive_build(parent, structure, refs) + -- Restore the previous ref + structure.ref = previous_ref + -- Return the element + return refs.FLIB_ADD_ROOT +end + +--- @deprecated use `gui-lite` instead +local function recursive_update(elem, updates) + if updates.cb then + updates.cb(elem) + end + + if updates.style then + elem.style = updates.style + end + + if updates.style_mods then + for key, value in pairs(updates.style_mods) do + elem.style[key] = value + end + end + + if updates.elem_mods then + for key, value in pairs(updates.elem_mods) do + elem[key] = value + end + end + + if updates.tags then + flib_gui.update_tags(elem, updates.tags) + end + + -- TODO: This could be a lot better + if updates.actions then + for event_name, payload in pairs(updates.actions) do + flib_gui.set_action(elem, event_name, payload) + end + end + + local substructures + local substructures_len = #updates + if substructures_len > 0 then + if updates.children or updates.tabs then + error("Children or tab-and-content pairs must ALL be in the array portion, or a subtable. Not both at once!") + end + substructures = {} + for i = 1, substructures_len do + substructures[i] = updates[i] + updates[i] = nil + end + else + substructures = updates.children or updates.tabs + updates.children = nil + updates.tabs = nil + end + local subelements + if elem.type == "tabbed-pane" then + subelements = elem.tabs + else + subelements = elem.children + end + + if substructures then + for i, substructure in pairs(substructures) do + if substructure.tab or substructure.content then + local elem_tab_and_content = subelements[i] + if elem_tab_and_content then + local tab = elem_tab_and_content.tab + local tab_updates = substructures.tab + if tab and tab_updates then + recursive_update(tab, tab_updates) + end + local content = elem_tab_and_content.content + local content_updates = substructures.content + if content and content_updates then + recursive_update(content, content_updates) + end + end + elseif subelements[i] then + recursive_update(subelements[i], substructure) + end + end + end +end + +--- @deprecated use `gui-lite` instead +function flib_gui.update(elem, updates) + recursive_update(elem, updates) +end + +--- @deprecated use `gui-lite` instead +function flib_gui.get_tags(elem) + return elem.tags[mod_name] or {} +end + +--- @deprecated use `gui-lite` instead +function flib_gui.set_tags(elem, tags) + local elem_tags = elem.tags + elem_tags[mod_name] = tags + elem.tags = elem_tags +end + +--- @deprecated use `gui-lite` instead +function flib_gui.delete_tags(elem) + local elem_tags = elem.tags + elem_tags[mod_name] = nil + elem.tags = elem_tags +end + +--- @deprecated use `gui-lite` instead +function flib_gui.update_tags(elem, updates) + local elem_tags = elem.tags + local existing = elem_tags[mod_name] + + if not existing then + existing = {} + elem_tags[mod_name] = existing + end + + for k, v in pairs(updates) do + existing[k] = v + end + + elem.tags = elem_tags +end + +--- @deprecated use `gui-lite` instead +function flib_gui.set_action(elem, event_name, msg) + local elem_tags = elem.tags + local existing = elem_tags[mod_name] + + if not existing then + existing = {} + elem_tags[mod_name] = existing + end + + local actions = existing.flib + if not actions then + actions = {} + existing.flib = actions + end + + actions[event_name] = msg or nil + + elem.tags = elem_tags +end + +--- @deprecated use `gui-lite` instead +function flib_gui.get_action(elem, event_name) + local elem_tags = elem.tags + local existing = elem_tags[mod_name] + + if not existing then + return + end + + local actions = existing.flib + if not actions then + return + end + + return actions[event_name] +end + +return flib_gui diff --git a/.vscode/flib/info.json b/.vscode/flib/info.json new file mode 100644 index 0000000..d75c0a9 --- /dev/null +++ b/.vscode/flib/info.json @@ -0,0 +1,24 @@ +{ + "name": "flib", + "version": "0.12.4", + "title": "Factorio Library", + "author": "raiguard, Optera, justarandomgeek, Nexela", + "contact": "https://lists.sr.ht/~raiguard/factorio-mods-devel", + "homepage": "https://git.sr.ht/~raiguard/flib", + "description": "A set of high-quality, commonly-used utilities for creating Factorio mods.", + "factorio_version": "1.1", + "dependencies": [ "base >= 1.1.74" ], + "package": { + "ignore": [ + "*.code-workspace", + "crowdin.yml", + ".gitattributes", + ".gitignore", + ".kakrc", + ".mailmap", + "stylua.toml", + "tests", + ".vscode" + ] + } +} diff --git a/.vscode/flib/locale/af/dictionary.cfg b/.vscode/flib/locale/af/dictionary.cfg new file mode 100644 index 0000000..c641816 --- /dev/null +++ b/.vscode/flib/locale/af/dictionary.cfg @@ -0,0 +1,3 @@ +locale-identifier=af +locale-name=Afrikaans + diff --git a/.vscode/flib/locale/ar/dictionary.cfg b/.vscode/flib/locale/ar/dictionary.cfg new file mode 100644 index 0000000..52ae371 --- /dev/null +++ b/.vscode/flib/locale/ar/dictionary.cfg @@ -0,0 +1,3 @@ +locale-identifier=ar +locale-name=العَرَبِيَّة + diff --git a/.vscode/flib/locale/be/dictionary.cfg b/.vscode/flib/locale/be/dictionary.cfg new file mode 100644 index 0000000..1a34fcc --- /dev/null +++ b/.vscode/flib/locale/be/dictionary.cfg @@ -0,0 +1,2 @@ +locale-identifier=be +locale-name=Беларуская diff --git a/.vscode/flib/locale/bg/dictionary.cfg b/.vscode/flib/locale/bg/dictionary.cfg new file mode 100644 index 0000000..14edc52 --- /dev/null +++ b/.vscode/flib/locale/bg/dictionary.cfg @@ -0,0 +1,2 @@ +locale-identifier=bg +locale-name=български език diff --git a/.vscode/flib/locale/ca/dictionary.cfg b/.vscode/flib/locale/ca/dictionary.cfg new file mode 100644 index 0000000..e6c1cd7 --- /dev/null +++ b/.vscode/flib/locale/ca/dictionary.cfg @@ -0,0 +1,3 @@ +locale-identifier=ca +locale-name=Català + diff --git a/.vscode/flib/locale/cs/dictionary.cfg b/.vscode/flib/locale/cs/dictionary.cfg new file mode 100644 index 0000000..928a86b --- /dev/null +++ b/.vscode/flib/locale/cs/dictionary.cfg @@ -0,0 +1,3 @@ +locale-identifier=cs +locale-name=Čeština + diff --git a/.vscode/flib/locale/da/dictionary.cfg b/.vscode/flib/locale/da/dictionary.cfg new file mode 100644 index 0000000..744948b --- /dev/null +++ b/.vscode/flib/locale/da/dictionary.cfg @@ -0,0 +1,3 @@ +locale-identifier=da +locale-name=Dansk + diff --git a/.vscode/flib/locale/de/dictionary.cfg b/.vscode/flib/locale/de/dictionary.cfg new file mode 100644 index 0000000..e54173d --- /dev/null +++ b/.vscode/flib/locale/de/dictionary.cfg @@ -0,0 +1,3 @@ +locale-identifier=de +locale-name=Deutsch + diff --git a/.vscode/flib/locale/de/flib.cfg b/.vscode/flib/locale/de/flib.cfg new file mode 100644 index 0000000..45940eb --- /dev/null +++ b/.vscode/flib/locale/de/flib.cfg @@ -0,0 +1,10 @@ +[gui] +flib-keep-open=Offen bleiben +flib-settings=Einstellungen +flib-finishing=Abschließen... +flib-translating-dictionaries=Übersetze Wörterbücher [img=info] +flib-translating-dictionaries-description=Mods, die das Wörterbuchsystem der Factorio Library verwenden, fordern Übersetzungen im Laufe der Zeit an, um Suchen in Ihrer Muttersprache zu ermöglichen. Dieses Fenster zeigt den Fortschritt der Übersetzungen jeder Mod für jede gewünschte Sprache an. Dieses Fenster schließt sich automatisch sobald alle Übersetzungen abgeschlossen sind. + +[mod-name] +flib=Factorio Library + diff --git a/.vscode/flib/locale/el/dictionary.cfg b/.vscode/flib/locale/el/dictionary.cfg new file mode 100644 index 0000000..334f2d3 --- /dev/null +++ b/.vscode/flib/locale/el/dictionary.cfg @@ -0,0 +1,3 @@ +locale-identifier=el +locale-name=Ελληνικά + diff --git a/.vscode/flib/locale/en/dictionary.cfg b/.vscode/flib/locale/en/dictionary.cfg new file mode 100644 index 0000000..842ca05 --- /dev/null +++ b/.vscode/flib/locale/en/dictionary.cfg @@ -0,0 +1,2 @@ +locale-identifier=en +locale-name=English diff --git a/.vscode/flib/locale/en/flib.cfg b/.vscode/flib/locale/en/flib.cfg new file mode 100644 index 0000000..13b7027 --- /dev/null +++ b/.vscode/flib/locale/en/flib.cfg @@ -0,0 +1,11 @@ +[gui] +# For use with the frame action button sprites +flib-keep-open=Keep open +flib-settings=Settings +# Translation progress GUI +flib-finishing=Finishing... +flib-translating-dictionaries=Translating dictionaries [img=info] +flib-translating-dictionaries-description=Mods that use the Factorio Library's dictionary system request translations over time in order to allow text search in your native language. This GUI shows the progress of each mod's translations for each required language. This GUI will automatically remove itself once all translations have finished. + +[mod-name] +flib=Factorio Library diff --git a/.vscode/flib/locale/eo/dictionary.cfg b/.vscode/flib/locale/eo/dictionary.cfg new file mode 100644 index 0000000..d765a78 --- /dev/null +++ b/.vscode/flib/locale/eo/dictionary.cfg @@ -0,0 +1,2 @@ +locale-identifier=eo +locale-name=Esperanto diff --git a/.vscode/flib/locale/es-ES/dictionary.cfg b/.vscode/flib/locale/es-ES/dictionary.cfg new file mode 100644 index 0000000..185e9ac --- /dev/null +++ b/.vscode/flib/locale/es-ES/dictionary.cfg @@ -0,0 +1,3 @@ +locale-identifier=es-ES +locale-name=Español + diff --git a/.vscode/flib/locale/et/dictionary.cfg b/.vscode/flib/locale/et/dictionary.cfg new file mode 100644 index 0000000..b1872fb --- /dev/null +++ b/.vscode/flib/locale/et/dictionary.cfg @@ -0,0 +1,2 @@ +locale-identifier=et +locale-name=Eesti diff --git a/.vscode/flib/locale/fi/dictionary.cfg b/.vscode/flib/locale/fi/dictionary.cfg new file mode 100644 index 0000000..bc79788 --- /dev/null +++ b/.vscode/flib/locale/fi/dictionary.cfg @@ -0,0 +1,3 @@ +locale-identifier=fi +locale-name=Suomi + diff --git a/.vscode/flib/locale/fr/dictionary.cfg b/.vscode/flib/locale/fr/dictionary.cfg new file mode 100644 index 0000000..545ba34 --- /dev/null +++ b/.vscode/flib/locale/fr/dictionary.cfg @@ -0,0 +1,3 @@ +locale-identifier=fr +locale-name=Français + diff --git a/.vscode/flib/locale/fy-NL/dictionary.cfg b/.vscode/flib/locale/fy-NL/dictionary.cfg new file mode 100644 index 0000000..88937e6 --- /dev/null +++ b/.vscode/flib/locale/fy-NL/dictionary.cfg @@ -0,0 +1,2 @@ +locale-identifier=fy-NL +locale-name=Frisian diff --git a/.vscode/flib/locale/ga-IE/dictionary.cfg b/.vscode/flib/locale/ga-IE/dictionary.cfg new file mode 100644 index 0000000..16fccce --- /dev/null +++ b/.vscode/flib/locale/ga-IE/dictionary.cfg @@ -0,0 +1,2 @@ +locale-identifier=ga-IE +locale-name=Gaeilge diff --git a/.vscode/flib/locale/he/dictionary.cfg b/.vscode/flib/locale/he/dictionary.cfg new file mode 100644 index 0000000..cc058a6 --- /dev/null +++ b/.vscode/flib/locale/he/dictionary.cfg @@ -0,0 +1,3 @@ +locale-identifier=he +locale-name=עברית + diff --git a/.vscode/flib/locale/hr/dictionary.cfg b/.vscode/flib/locale/hr/dictionary.cfg new file mode 100644 index 0000000..a3749c2 --- /dev/null +++ b/.vscode/flib/locale/hr/dictionary.cfg @@ -0,0 +1,2 @@ +locale-identifier=hr +locale-name=Hrvatski diff --git a/.vscode/flib/locale/hu/dictionary.cfg b/.vscode/flib/locale/hu/dictionary.cfg new file mode 100644 index 0000000..f1a7357 --- /dev/null +++ b/.vscode/flib/locale/hu/dictionary.cfg @@ -0,0 +1,3 @@ +locale-identifier=hu +locale-name=Magyar + diff --git a/.vscode/flib/locale/id/dictionary.cfg b/.vscode/flib/locale/id/dictionary.cfg new file mode 100644 index 0000000..924ee0a --- /dev/null +++ b/.vscode/flib/locale/id/dictionary.cfg @@ -0,0 +1,2 @@ +locale-identifier=id +locale-name=Bahasa Indonesia diff --git a/.vscode/flib/locale/it/dictionary.cfg b/.vscode/flib/locale/it/dictionary.cfg new file mode 100644 index 0000000..8bc30b7 --- /dev/null +++ b/.vscode/flib/locale/it/dictionary.cfg @@ -0,0 +1,3 @@ +locale-identifier=it +locale-name=Italiano + diff --git a/.vscode/flib/locale/ja/dictionary.cfg b/.vscode/flib/locale/ja/dictionary.cfg new file mode 100644 index 0000000..7ddfdcb --- /dev/null +++ b/.vscode/flib/locale/ja/dictionary.cfg @@ -0,0 +1,3 @@ +locale-identifier=ja +locale-name=日本語 + diff --git a/.vscode/flib/locale/ko/dictionary.cfg b/.vscode/flib/locale/ko/dictionary.cfg new file mode 100644 index 0000000..440baed --- /dev/null +++ b/.vscode/flib/locale/ko/dictionary.cfg @@ -0,0 +1,3 @@ +locale-identifier=ko +locale-name=한국어 + diff --git a/.vscode/flib/locale/lt/dictionary.cfg b/.vscode/flib/locale/lt/dictionary.cfg new file mode 100644 index 0000000..9347b48 --- /dev/null +++ b/.vscode/flib/locale/lt/dictionary.cfg @@ -0,0 +1,2 @@ +locale-identifier=lt +locale-name=Lietuvių diff --git a/.vscode/flib/locale/lv/dictionary.cfg b/.vscode/flib/locale/lv/dictionary.cfg new file mode 100644 index 0000000..808f6a6 --- /dev/null +++ b/.vscode/flib/locale/lv/dictionary.cfg @@ -0,0 +1,2 @@ +locale-identifier=lv +locale-name=Latviešu diff --git a/.vscode/flib/locale/nl/dictionary.cfg b/.vscode/flib/locale/nl/dictionary.cfg new file mode 100644 index 0000000..f39ee4f --- /dev/null +++ b/.vscode/flib/locale/nl/dictionary.cfg @@ -0,0 +1,3 @@ +locale-identifier=nl +locale-name=Nederlands + diff --git a/.vscode/flib/locale/no/dictionary.cfg b/.vscode/flib/locale/no/dictionary.cfg new file mode 100644 index 0000000..f4c0aae --- /dev/null +++ b/.vscode/flib/locale/no/dictionary.cfg @@ -0,0 +1,3 @@ +locale-identifier=no +locale-name=Norsk + diff --git a/.vscode/flib/locale/pl/dictionary.cfg b/.vscode/flib/locale/pl/dictionary.cfg new file mode 100644 index 0000000..eded063 --- /dev/null +++ b/.vscode/flib/locale/pl/dictionary.cfg @@ -0,0 +1,3 @@ +locale-identifier=pl +locale-name=Polski + diff --git a/.vscode/flib/locale/pt-BR/dictionary.cfg b/.vscode/flib/locale/pt-BR/dictionary.cfg new file mode 100644 index 0000000..e66134f --- /dev/null +++ b/.vscode/flib/locale/pt-BR/dictionary.cfg @@ -0,0 +1,2 @@ +locale-identifier=pt-BR +locale-name=Português, Brasil diff --git a/.vscode/flib/locale/pt-PT/dictionary.cfg b/.vscode/flib/locale/pt-PT/dictionary.cfg new file mode 100644 index 0000000..6ec8f8a --- /dev/null +++ b/.vscode/flib/locale/pt-PT/dictionary.cfg @@ -0,0 +1,3 @@ +locale-identifier=pt-PT +locale-name=Português + diff --git a/.vscode/flib/locale/ro/dictionary.cfg b/.vscode/flib/locale/ro/dictionary.cfg new file mode 100644 index 0000000..d1c1684 --- /dev/null +++ b/.vscode/flib/locale/ro/dictionary.cfg @@ -0,0 +1,3 @@ +locale-identifier=ro +locale-name=Română + diff --git a/.vscode/flib/locale/ru/dictionary.cfg b/.vscode/flib/locale/ru/dictionary.cfg new file mode 100644 index 0000000..1cc706a --- /dev/null +++ b/.vscode/flib/locale/ru/dictionary.cfg @@ -0,0 +1,3 @@ +locale-identifier=ru +locale-name=Русский + diff --git a/.vscode/flib/locale/sk/dictionary.cfg b/.vscode/flib/locale/sk/dictionary.cfg new file mode 100644 index 0000000..cc8a985 --- /dev/null +++ b/.vscode/flib/locale/sk/dictionary.cfg @@ -0,0 +1,2 @@ +locale-identifier=sk +locale-name=Slovenčina diff --git a/.vscode/flib/locale/sl/dictionary.cfg b/.vscode/flib/locale/sl/dictionary.cfg new file mode 100644 index 0000000..f75aa6c --- /dev/null +++ b/.vscode/flib/locale/sl/dictionary.cfg @@ -0,0 +1,2 @@ +locale-identifier=sl +locale-name=Slovenščina diff --git a/.vscode/flib/locale/sq/dictionary.cfg b/.vscode/flib/locale/sq/dictionary.cfg new file mode 100644 index 0000000..ce232fd --- /dev/null +++ b/.vscode/flib/locale/sq/dictionary.cfg @@ -0,0 +1,2 @@ +locale-identifier=sq +locale-name=Shqip diff --git a/.vscode/flib/locale/sr/dictionary.cfg b/.vscode/flib/locale/sr/dictionary.cfg new file mode 100644 index 0000000..f6ac4f2 --- /dev/null +++ b/.vscode/flib/locale/sr/dictionary.cfg @@ -0,0 +1,3 @@ +locale-identifier=sr +locale-name=Српски + diff --git a/.vscode/flib/locale/sv-SE/dictionary.cfg b/.vscode/flib/locale/sv-SE/dictionary.cfg new file mode 100644 index 0000000..9b971b5 --- /dev/null +++ b/.vscode/flib/locale/sv-SE/dictionary.cfg @@ -0,0 +1,3 @@ +locale-identifier=sv-SE +locale-name=Svenska + diff --git a/.vscode/flib/locale/th/dictionary.cfg b/.vscode/flib/locale/th/dictionary.cfg new file mode 100644 index 0000000..3c7a558 --- /dev/null +++ b/.vscode/flib/locale/th/dictionary.cfg @@ -0,0 +1,2 @@ +locale-identifier=th +locale-name=ภาษาไทย diff --git a/.vscode/flib/locale/tr/dictionary.cfg b/.vscode/flib/locale/tr/dictionary.cfg new file mode 100644 index 0000000..1375eac --- /dev/null +++ b/.vscode/flib/locale/tr/dictionary.cfg @@ -0,0 +1,3 @@ +locale-identifier=tr +locale-name=Türkçe + diff --git a/.vscode/flib/locale/uk/dictionary.cfg b/.vscode/flib/locale/uk/dictionary.cfg new file mode 100644 index 0000000..36fd0ac --- /dev/null +++ b/.vscode/flib/locale/uk/dictionary.cfg @@ -0,0 +1,3 @@ +locale-identifier=uk +locale-name=Українська + diff --git a/.vscode/flib/locale/vi/dictionary.cfg b/.vscode/flib/locale/vi/dictionary.cfg new file mode 100644 index 0000000..9536727 --- /dev/null +++ b/.vscode/flib/locale/vi/dictionary.cfg @@ -0,0 +1,3 @@ +locale-identifier=vi +locale-name=Tiếng Việt Nam + diff --git a/.vscode/flib/locale/zh-CN/dictionary.cfg b/.vscode/flib/locale/zh-CN/dictionary.cfg new file mode 100644 index 0000000..fdd5c9f --- /dev/null +++ b/.vscode/flib/locale/zh-CN/dictionary.cfg @@ -0,0 +1,3 @@ +locale-identifier=zh-CN +locale-name=简体中文 + diff --git a/.vscode/flib/locale/zh-TW/dictionary.cfg b/.vscode/flib/locale/zh-TW/dictionary.cfg new file mode 100644 index 0000000..1fb4661 --- /dev/null +++ b/.vscode/flib/locale/zh-TW/dictionary.cfg @@ -0,0 +1,3 @@ +locale-identifier=zh-TW +locale-name=繁體中文 + diff --git a/.vscode/flib/math.lua b/.vscode/flib/math.lua new file mode 100644 index 0000000..fba4e5f --- /dev/null +++ b/.vscode/flib/math.lua @@ -0,0 +1,190 @@ +--- Extension of the Lua 5.2 math library. +--- @class flib_math: factorio.mathlib +local flib_math = {} + +local unpack = table.unpack + +-- Import lua math functions +for name, func in pairs(math) do + flib_math[name] = func +end + +--- Multiply by degrees to convert to radians. +--- ```lua +--- local rad = 1 x flib_math.deg_to_rad -- 0.0174533 +--- ``` +flib_math.deg_to_rad = flib_math.pi / 180 --- @type number + +--- Multiply by radians to convert to degrees. +--- +--- ```lua +--- local deg = 1 x flib_math.rad_to_deg -- 57.2958 +--- ``` +flib_math.rad_to_deg = 180 / flib_math.pi --- @type number + +flib_math.max_double = 0X1.FFFFFFFFFFFFFP+1023 +flib_math.min_double = -0X1.FFFFFFFFFFFFFP+1023 +flib_math.max_int8 = 127 --- 127 +flib_math.min_int8 = -128 --- -128 +flib_math.max_uint8 = 255 --- 255 +flib_math.max_int16 = 32767 --- 32,767 +flib_math.min_int16 = -32768 --- -32,768 +flib_math.max_uint16 = 65535 --- 65,535 +flib_math.max_int = 2147483647 --- 2,147,483,647 +flib_math.min_int = -2147483648 --- -2,147,483,648 +flib_math.max_uint = 4294967295 --- 4,294,967,295 +flib_math.max_int53 = 0x1FFFFFFFFFFFFF --- 9,007,199,254,740,991 +flib_math.min_int53 = -0x20000000000000 --- -9,007,199,254,740,992 + +--- Round a number to the nearest multiple of divisor. +--- Defaults to nearest integer if divisor is not provided. +--- +--- From [lua-users.org](http://lua-users.org/wiki/SimpleRound). +--- @param num number +--- @param divisor? number `num` will be rounded to the nearest multiple of `divisor` (default: 1). +--- @return number +function flib_math.round(num, divisor) + divisor = divisor or 1 + if num >= 0 then + return flib_math.floor((num / divisor) + 0.5) * divisor + else + return flib_math.ceil((num / divisor) - 0.5) * divisor + end +end + +--- Ceil a number to the nearest multiple of divisor. +--- @param num number +--- @param divisor? number `num` will be ceiled to the nearest multiple of `divisor` (default: 1). +function flib_math.ceiled(num, divisor) + if divisor then + return flib_math.ceil(num / divisor) * divisor + end + return flib_math.ceil(num) +end + +--- Floor a number to the nearest multiple of divisor. +--- @param num number +--- @param divisor? number `num` will be floored to the nearest multiple of `divisor` (default: 1). +function flib_math.floored(num, divisor) + if divisor then + return flib_math.floor(num / divisor) * divisor + end + return flib_math.floor(num) +end + +--- Round a number to the nearest N decimal places. +--- +--- From [lua-users.org](http://lua-users.org/wiki/SimpleRound). +--- @param num number +--- @param num_decimals number +--- @return number +--- @deprecated Use flib_math.round +function flib_math.round_to(num, num_decimals) + local mult = 10 ^ num_decimals + return flib_math.floor(num * mult + 0.5) / mult +end + +--- Ceil a number to N decimal places. +--- Use `math.ceil` directly if no decimals are needed. +--- @param num number +--- @param num_decimals number +--- @return number +--- @deprecated Use flib_math.ceiled +function flib_math.ceil_to(num, num_decimals) + local mult = 10 ^ num_decimals + return flib_math.ceil(num * mult) / mult +end + +--- Floor a number to N decimal places. +--- Use `math.floor` directly if no decimals are needed. +--- @param num number +--- @param num_decimals number +--- @return number +--- @deprecated use flib_math.floored +function flib_math.floor_to(num, num_decimals) + local mult = 10 ^ num_decimals + return flib_math.floor(num * mult) / mult +end + +--- Returns the argument with the maximum value from a set. +--- @param set number[] +--- @return number +function flib_math.maximum(set) + return flib_math.max(unpack(set)) +end + +--- Returns the argument with the minimum value from a set. +--- @param set number[] +--- @return number +function flib_math.minimum(set) + return flib_math.min(unpack(set)) +end + +--- Calculate the sum of a set of numbers. +--- @param set number[] +--- @return number +function flib_math.sum(set) + local sum = set[2] or 0 + for i = 2, #set do + sum = sum + set[i] + end + return sum +end + +--- Calculate the mean (average) of a set of numbers. +--- @param set number[] +--- @return number +function flib_math.mean(set) + return flib_math.sum(set) / #set +end + +--- Calculate the mean of the largest and the smallest values in a set of numbers. +--- @param set number[] +--- @return number +function flib_math.midrange(set) + return 0.5 * (flib_math.minimum(set) + flib_math.maximum(set)) +end + +--- Calculate the range in a set of numbers. +--- @param set number[] +--- @return number +function flib_math.range(set) + return flib_math.maximum(set) - flib_math.minimum(set) +end + +--- Clamp a number between minimum and maximum values. +--- @param x number +--- @param min? number default 0 +--- @param max? number default 1 +--- @return number +function flib_math.clamp(x, min, max) + x = x == 0 and 0 or x -- Treat -0 as 0 + min, max = min or 0, max or 1 + return x < min and min or (x > max and max or x) +end + +--- Return the signedness of a number as a multiplier. +--- @param x number +--- @return number +function flib_math.sign(x) + return (x >= 0 and 1) or -1 +end + +--- Linearly interpolate between `num1` and `num2` by `amount`. +--- +--- The parameter `amount` is clamped between `0` and `1`. +--- +--- When `amount = 0`, returns `num1`. +--- +--- When `amount = 1`, returns `num2`. +--- +--- When `amount = 0.5`, returns the midpoint of `num1` and `num2`. +--- @param num1 number +--- @param num2 number +--- @param amount number +--- @return number +function flib_math.lerp(num1, num2, amount) + return num1 + (num2 - num1) * flib_math.clamp(amount, 0, 1) +end + +return flib_math diff --git a/.vscode/flib/migration.lua b/.vscode/flib/migration.lua new file mode 100644 index 0000000..93a0e58 --- /dev/null +++ b/.vscode/flib/migration.lua @@ -0,0 +1,134 @@ +--- Mod migration and version comparison functions. +--- @class flib_migration +local flib_migration = {} + +local string = string +local table = table + +local version_pattern = "%d+" +local version_format = "%02d" + +--- Normalize version strings for easy comparison. +--- +--- # Examples +--- +--- ```lua +--- migration.format_version("1.10.1234", "%04d") +--- migration.format_version("3", "%02d") +--- ``` +--- @param version string +--- @param format string? default: `%02d` +--- @return string? +function flib_migration.format_version(version, format) + if version then + format = format or version_format + local tbl = {} + for v in string.gmatch(version, version_pattern) do + tbl[#tbl + 1] = string.format(format, v) + end + if next(tbl) then + return table.concat(tbl, ".") + end + end + return nil +end + +--- Check if current_version is newer than old_version. +--- @param old_version string +--- @param current_version string +--- @param format string? default: `%02d` +--- @return boolean? +function flib_migration.is_newer_version(old_version, current_version, format) + local v1 = flib_migration.format_version(old_version, format) + local v2 = flib_migration.format_version(current_version, format) + if v1 and v2 then + if v2 > v1 then + return true + end + return false + end + return nil +end + +--- Run migrations against the given version. +--- @param old_version string +--- @param migrations MigrationsTable +--- @param format? string default: `%02d` +--- @param ... any All additional arguments will be passed to each function within `migrations`. +function flib_migration.run(old_version, migrations, format, ...) + local migrate = false + for version, func in pairs(migrations) do + if migrate or flib_migration.is_newer_version(old_version, version, format) then + migrate = true + func(...) + end + end +end + +--- Determine if migrations need to be run for this mod, then run them if needed. +--- +--- # Examples +--- +--- ```lua +--- script.on_configuration_changed(function(e) +--- if migration.on_config_changed(e, migrations) then +--- -- Run generic (non-init) migrations +--- rebuild_prototype_data() +--- end +--- end +--- ``` +--- @param e ConfigurationChangedData +--- @param migrations? MigrationsTable +--- @param mod_name? string The mod to check against. Defaults to the current mod. +--- @param ... any All additional arguments will be passed to each function within `migrations`. +--- @return boolean run_generic_micrations +function flib_migration.on_config_changed(e, migrations, mod_name, ...) + local changes = e.mod_changes[mod_name or script.mod_name] + local old_version = changes and changes.old_version + if old_version or not changes then + if migrations then + flib_migration.run(old_version, migrations, nil, ...) + end + return true + end + return false +end + +--- Handle on_configuration_changed with the given generic and version-specific migrations. Will override any existing +--- on_configuration_changed event handler. Both arguments are optional. +--- @param version_migrations MigrationsTable? +--- @param generic_handler fun(e: ConfigurationChangedData)? +function flib_migration.handle_on_configuration_changed(version_migrations, generic_handler) + script.on_configuration_changed(function(e) + if flib_migration.on_config_changed(e, version_migrations) and generic_handler then + generic_handler(e) + end + end) +end + +return flib_migration + +--- Migration code to run for specific mod version. A given function will run if the previous mod version is less +--- than the given version. +--- +--- # Example +--- +--- ```lua +--- { +--- ["1.0.1"] = function() +--- global.foo = nil +--- for _, player_table in pairs(global.players) do +--- player_table.bar = "Lorem ipsum" +--- end +--- end, +--- ["1.0.7"] = function() +--- global.bar = {} +--- end +--- ["1.1.0"] = function(arg) +--- global.foo = arg +--- end +--- } +--- ``` +--- +--- If the mod is upgraded from 1.0.4 to 1.1.0, then the migrations for 1.0.7 and 1.1.0 will be run. +--- @alias MigrationsTable table diff --git a/.vscode/flib/misc.lua b/.vscode/flib/misc.lua new file mode 100644 index 0000000..8957894 --- /dev/null +++ b/.vscode/flib/misc.lua @@ -0,0 +1,72 @@ +--- @diagnostic disable +--- @deprecated use `format` and `position` modules instead.` +local flib_misc = {} + +local math = math +local string = string + +--- @deprecated use `flib_position.distance` instead.` +function flib_misc.get_distance(pos1, pos2) + local x1 = pos1.x or pos1[1] + local y1 = pos1.y or pos1[2] + local x2 = pos2.x or pos2[1] + local y2 = pos2.y or pos2[2] + return math.sqrt((x1 - x2) ^ 2 + (y1 - y2) ^ 2) +end + +--- @deprecated use `flib_position.distance_squared` instead.` +function flib_misc.get_distance_squared(pos1, pos2) + local x1 = pos1.x or pos1[1] + local y1 = pos1.y or pos1[2] + local x2 = pos2.x or pos2[1] + local y2 = pos2.y or pos2[2] + return (x1 - x2) ^ 2 + (y1 - y2) ^ 2 +end + +--- @deprecated Use `flib_format.time`. +function flib_misc.ticks_to_timestring(tick, include_leading_zeroes) + local total_seconds = math.floor((tick or game.ticks_played) / 60) + local seconds = total_seconds % 60 + local minutes = math.floor(total_seconds / 60) + if minutes > 59 then + minutes = minutes % 60 + local hours = math.floor(total_seconds / 3600) + if include_leading_zeroes then + return string.format("%02d:%02d:%02d", hours, minutes, seconds) + else + return string.format("%d:%02d:%02d", hours, minutes, seconds) + end + else + if include_leading_zeroes then + return string.format("%02d:%02d", minutes, seconds) + else + return string.format("%d:%02d", minutes, seconds) + end + end +end + +--- @deprecated Use `flib_format.number`. +function flib_misc.delineate_number(number, delimiter) + delimiter = delimiter or "," + -- Handle decimals + local _, _, before, after = string.find(tostring(number), "^(%d*)(%.%d*)") + if before and after then + number = tonumber(before) --[[@as number]] + after = after + else + before = math.floor(number) + after = "" + end + local formatted = before + local k + while true do + formatted, k = string.gsub(formatted, "^(-?%d+)(%d%d%d)", "%1" .. delimiter .. "%2") + if k == 0 then + break + end + end + return formatted .. after +end + +return flib_misc +--- @diagnostic enable diff --git a/.vscode/flib/on-tick-n.lua b/.vscode/flib/on-tick-n.lua new file mode 100644 index 0000000..e78add2 --- /dev/null +++ b/.vscode/flib/on-tick-n.lua @@ -0,0 +1,91 @@ +--- Schedule tasks to be executed later. +--- @class flib_on_tick_n +local on_tick_n = {} + +--- Initialize the module's script data table. +--- +--- Must be called at the **beginning** of `on_init`. Can also be used to delete all current tasks. +function on_tick_n.init() + if not global.__flib then + global.__flib = {} + end + --- @type table + global.__flib.on_tick_n = {} +end + +--- Retrieve the tasks for the given tick, if any. +--- +--- Must be called **during** `on_tick`. +--- @param tick number +--- @return Tasks? +function on_tick_n.retrieve(tick) + -- Failsafe for rare cases where on_tick can fire before on_init + if not global.__flib or not global.__flib.on_tick_n then + return + end + local actions = global.__flib.on_tick_n[tick] + if actions then + global.__flib.on_tick_n[tick] = nil + return actions + end +end + +--- Add a task to execute on the given tick. +--- @param tick number +--- @param task any The data representing this task. This can be anything except for a `function`. +--- @return TaskIdent ident An identifier for the task. Save this if you might remove the task before execution. +function on_tick_n.add(tick, task) + local list = global.__flib.on_tick_n + local tick_list = list[tick] + if tick_list then + local index = #tick_list + 1 + tick_list[index] = task + return { index = index, tick = tick } + else + list[tick] = { task } + return { index = 1, tick = tick } + end +end + +--- Remove a scheduled task. +--- @param ident TaskIdent The identifier object for the task, as returned from `on-tick-n.add`. +function on_tick_n.remove(ident) + local tick_list = global.__flib.on_tick_n[ident.tick] + if not tick_list or not tick_list[ident.index] then + return false + end + + tick_list[ident.index] = nil + + return true +end + +--- A unique identifier for a previously added task, used in `on-tick-n.remove`. +--- @class TaskIdent +--- @field tick number The tick this task is scheduled for. +--- @field index number The tasks' index in the tick's `Tasks` table. + +--- A table of tasks. +--- +--- Each task can be anything that is not a function, as specified in `on-tick-n.add`. +--- +--- **This is not an array, there may be gaps. Always use `pairs` to iterate this table.** +--- +--- # Example +--- +--- ```lua +--- event.on_tick(function(e) +--- for _, task in pairs(on_tick_n.retrieve(e.tick) or {}) do +--- if task == "say_hi" then +--- game.print("Hello there!") +--- elseif task == "order_66" then +--- for _, player in pairs(game.players) do +--- player.die() +--- end +--- end +--- end +--- end) +--- ``` +--- @alias Tasks table + +return on_tick_n diff --git a/.vscode/flib/orientation.lua b/.vscode/flib/orientation.lua new file mode 100644 index 0000000..12d9aa5 --- /dev/null +++ b/.vscode/flib/orientation.lua @@ -0,0 +1,39 @@ +--- Functions for working with orientations. +--- @class flib_orientation +local flib_orientation = {} + +flib_orientation.north = defines.direction.north / 8 +flib_orientation.east = defines.direction.east / 8 +flib_orientation.west = defines.direction.west / 8 +flib_orientation.south = defines.direction.south / 8 +flib_orientation.northeast = defines.direction.northeast / 8 +flib_orientation.northwest = defines.direction.northwest / 8 +flib_orientation.southeast = defines.direction.southeast / 8 +flib_orientation.southwest = defines.direction.southwest / 8 + +--- Returns a 4way or 8way direction from an orientation. +--- @param orientation number +--- @param eight_way boolean +--- @return defines.direction +function flib_orientation.to_direction(orientation, eight_way) + local ways = eight_way and 8 or 4 + local mod = eight_way and 1 or 2 + return math.floor(orientation * ways + 0.5) % ways * mod --[[@as defines.direction]] +end + +--- Returns the opposite orientation. +--- @param orientation number +--- @return number +function flib_orientation.opposite(orientation) + return (orientation + 0.5) % 1 +end + +--- Add two orientations together. +--- @param orientation1 number +--- @param orientation2 number +--- @return number the orientations added together +function flib_orientation.add(orientation1, orientation2) + return (orientation1 + orientation2) % 1 +end + +return flib_orientation diff --git a/.vscode/flib/position.lua b/.vscode/flib/position.lua new file mode 100644 index 0000000..715f8a0 --- /dev/null +++ b/.vscode/flib/position.lua @@ -0,0 +1,257 @@ +--- Utilities for manipulating positions. All functions support both the shorthand and explicit syntaxes and will +--- preserve the syntax that was passed in. +--- @class flib_position +local flib_position = {} + +--- FIXME: Sumneko doesn't properly handle generics yet and throws a bunch of bogus warnings. +--- @diagnostic disable + +--- Add two positions. +--- @generic P +--- @param pos1 `P` +--- @param pos2 `P` +--- @return P +function flib_position.add(pos1, pos2) + local x1 = pos1.x or pos1[1] + local y1 = pos1.y or pos1[2] + local x2 = pos2.x or pos2[1] + local y2 = pos2.y or pos2[2] + if pos1.x then + return { x = x1 + x2, y = y1 + y2 } + else + return { x1 + x2, y1 + y2 } + end +end + +--- Ceil the given position. +--- @generic P +--- @param pos `P` +--- @return P +function flib_position.ceil(pos) + if pos.x then + return { x = math.ceil(pos.x), y = math.ceil(pos.y) } + else + return { math.ceil(pos[1]), math.ceil(pos[2]) } + end +end + +--- Calculate the distance between two positions. +--- @generic P +--- @param pos1 `P` +--- @param pos2 `P` +--- @return number +function flib_position.distance(pos1, pos2) + local x1 = pos1.x or pos1[1] + local y1 = pos1.y or pos1[2] + local x2 = pos2.x or pos2[1] + local y2 = pos2.y or pos2[2] + return math.sqrt((x1 - x2) ^ 2 + (y1 - y2) ^ 2) +end + +--- Calculate the squared distance between two positions. +--- @generic P +--- @param pos1 `P` +--- @param pos2 `P` +--- @return number +function flib_position.distance_squared(pos1, pos2) + local x1 = pos1.x or pos1[1] + local y1 = pos1.y or pos1[2] + local x2 = pos2.x or pos2[1] + local y2 = pos2.y or pos2[2] + return (x1 - x2) ^ 2 + (y1 - y2) ^ 2 +end + +--- Divide two positions. +--- @generic P +--- @param pos1 `P` +--- @param pos2 `P` +--- @return P +function flib_position.div(pos1, pos2) + local x1 = pos1.x or pos1[1] + local y1 = pos1.y or pos1[2] + local x2 = pos2.x or pos2[1] + local y2 = pos2.y or pos2[2] + if pos1.x then + return { x = x1 / x2, y = y1 / y2 } + else + return { x1 / x2, y1 / y2 } + end +end + +--- Return the position in explicit form. +--- @generic P +--- @param pos `P` +--- @return P +function flib_position.ensure_explicit(pos) + if pos.x then + return pos + else + return { x = pos[1], y = pos[2] } + end +end + +--- Return the position in shorthand form. +--- @generic P +--- @param pos `P` +--- @return P +function flib_position.ensure_short(pos) + if pos.x then + return { pos.x, pos.y } + else + return pos + end +end + +--- Test if two positions are equal. +--- @generic P +--- @param pos1 `P` +--- @param pos2 `P` +--- @return boolean +function flib_position.eq(pos1, pos2) + local x1 = pos1.x or pos1[1] + local y1 = pos1.y or pos1[2] + local x2 = pos2.x or pos2[1] + local y2 = pos2.y or pos2[2] + return x1 == x2 and y1 == y2 +end + +--- Floor the given position. +--- @generic P +--- @param pos `P` +--- @return P +function flib_position.floor(pos) + if pos.x then + return { x = math.floor(pos.x), y = math.floor(pos.y) } + else + return { math.floor(pos[1]), math.floor(pos[2]) } + end +end + +--- Convert a `ChunkPosition` into a `TilePosition` by multiplying by 32. +--- @param pos ChunkPosition +--- @return TilePosition +function flib_position.from_chunk(pos) + if pos.x then + return { x = pos.x * 32, y = pos.y * 32 } + else + return { pos[1] * 32, pos[2] * 32 } + end +end + +--- Test if `pos1` is less than or equal to `pos2`. +--- @generic P +--- @param pos1 `P` +--- @param pos2 `P` +--- @return boolean +function flib_position.le(pos1, pos2) + local x1 = pos1.x or pos1[1] + local y1 = pos1.y or pos1[2] + local x2 = pos2.x or pos2[1] + local y2 = pos2.y or pos2[2] + return x1 <= x2 and y1 <= y2 +end + +--- Test if `pos1` is less than `pos2`. +--- @generic P +--- @param pos1 `P` +--- @param pos2 `P` +--- @return boolean +function flib_position.lt(pos1, pos2) + local x1 = pos1.x or pos1[1] + local y1 = pos1.y or pos1[2] + local x2 = pos2.x or pos2[1] + local y2 = pos2.y or pos2[2] + return x1 < x2 and y1 < y2 +end + +--- Take the remainder (modulus) of two positions. +--- @generic P +--- @param pos1 `P` +--- @param pos2 `P` +--- @return P +function flib_position.mod(pos1, pos2) + local x1 = pos1.x or pos1[1] + local y1 = pos1.y or pos1[2] + local x2 = pos2.x or pos2[1] + local y2 = pos2.y or pos2[2] + if pos1.x then + return { x = x1 % x2, y = y1 % y2 } + else + return { x1 % x2, y1 % y2 } + end +end + +--- Multiply two positions. +--- @generic P +--- @param pos1 `P` +--- @param pos2 `P` +--- @return P +function flib_position.mul(pos1, pos2) + local x1 = pos1.x or pos1[1] + local y1 = pos1.y or pos1[2] + local x2 = pos2.x or pos2[1] + local y2 = pos2.y or pos2[2] + if pos1.x then + return { x = x1 * x2, y = y1 * y2 } + else + return { x1 * x2, y1 * y2 } + end +end + +--- Subtract two positions. +--- @generic P +--- @param pos1 `P` +--- @param pos2 `P` +--- @return P +function flib_position.sub(pos1, pos2) + local x1 = pos1.x or pos1[1] + local y1 = pos1.y or pos1[2] + local x2 = pos2.x or pos2[1] + local y2 = pos2.y or pos2[2] + if pos1.x then + return { x = x1 - x2, y = y1 - y2 } + else + return { x1 - x2, y1 - y2 } + end +end + +--- Take the power of two positions. `pos1^pos2`. +--- @generic P +--- @param pos1 `P` +--- @param pos2 `P` +--- @return P +function flib_position.pow(pos1, pos2) + local x1 = pos1.x or pos1[1] + local y1 = pos1.y or pos1[2] + local x2 = pos2.x or pos2[1] + local y2 = pos2.y or pos2[2] + if pos1.x then + return { x = x1 ^ x2, y = y1 ^ y2 } + else + return { x1 ^ x2, y1 ^ y2 } + end +end + +--- Convert a `MapPosition` or `TilePosition` into a `ChunkPosition` by dividing by 32 and flooring. +--- @param pos MapPosition|TilePosition +--- @return ChunkPosition +function flib_position.to_chunk(pos) + if pos.x then + return { x = math.floor(pos.x / 32), y = math.floor(pos.y / 32) } + else + return { math.floor(pos[1] / 32), math.floor(pos[2] / 32) } + end +end + +--- Convert a `MapPosition` into a `TilePosition` by flooring. +--- @param pos MapPosition +--- @return TilePosition +function flib_position.to_tile(pos) + if pos.x then + return { x = math.floor(pos.x), y = math.floor(pos.y) } + else + return { math.floor(pos[1]), math.floor(pos[2]) } + end +end + +return flib_position diff --git a/.vscode/flib/prototypes/sprite.lua b/.vscode/flib/prototypes/sprite.lua new file mode 100644 index 0000000..0d91021 --- /dev/null +++ b/.vscode/flib/prototypes/sprite.lua @@ -0,0 +1,53 @@ +-- INDICATOR SPRITES + +local indicators = {} +for i, color in ipairs({ "black", "white", "red", "orange", "yellow", "green", "cyan", "blue", "purple", "pink" }) do + indicators[i] = { + type = "sprite", + name = "flib_indicator_" .. color, + filename = "__flib__/graphics/indicators.png", + y = (i - 1) * 32, + size = 32, + flags = { "icon" }, + } +end +data:extend(indicators) + +local fab = "__flib__/graphics/frame-action-icons.png" + +data:extend({ + { type = "sprite", name = "flib_pin_black", filename = fab, position = { 0, 0 }, size = 32, flags = { "icon" } }, + { type = "sprite", name = "flib_pin_white", filename = fab, position = { 32, 0 }, size = 32, flags = { "icon" } }, + { + type = "sprite", + name = "flib_pin_disabled", + filename = fab, + position = { 64, 0 }, + size = 32, + flags = { "icon" }, + }, + { + type = "sprite", + name = "flib_settings_black", + filename = fab, + position = { 0, 32 }, + size = 32, + flags = { "icon" }, + }, + { + type = "sprite", + name = "flib_settings_white", + filename = fab, + position = { 32, 32 }, + size = 32, + flags = { "icon" }, + }, + { + type = "sprite", + name = "flib_settings_disabled", + filename = fab, + position = { 64, 32 }, + size = 32, + flags = { "icon" }, + }, +}) diff --git a/.vscode/flib/prototypes/style.lua b/.vscode/flib/prototypes/style.lua new file mode 100644 index 0000000..dd389a8 --- /dev/null +++ b/.vscode/flib/prototypes/style.lua @@ -0,0 +1,335 @@ +local data_util = require("__flib__/data-util") + +local styles = data.raw["gui-style"].default + +-- SLOT BUTTON STYLES + +local slot_tileset = "__flib__/graphics/slots.png" + +local function gen_slot(x, y, default_offset) + default_offset = default_offset or 0 + return { + type = "button_style", + parent = "slot", + size = 40, + default_graphical_set = { + base = { border = 4, position = { x + default_offset, y }, size = 80, filename = slot_tileset }, + }, + hovered_graphical_set = { + base = { border = 4, position = { x + 80, y }, size = 80, filename = slot_tileset }, + }, + clicked_graphical_set = { + base = { border = 4, position = { x + 160, y }, size = 80, filename = slot_tileset }, + }, + disabled_graphical_set = { -- identical to default graphical set + base = { border = 4, position = { x + default_offset, y }, size = 80, filename = slot_tileset }, + }, + } +end + +local function gen_slot_button(x, y, default_offset, glow) + default_offset = default_offset or 0 + return { + type = "button_style", + parent = "slot_button", + size = 40, + default_graphical_set = { + base = { border = 4, position = { x + default_offset, y }, size = 80, filename = slot_tileset }, + shadow = _ENV.offset_by_2_rounded_corners_glow(_ENV.default_dirt_color), + }, + hovered_graphical_set = { + base = { border = 4, position = { x + 80, y }, size = 80, filename = slot_tileset }, + shadow = _ENV.offset_by_2_rounded_corners_glow(_ENV.default_dirt_color), + glow = _ENV.offset_by_2_rounded_corners_glow(glow), + }, + clicked_graphical_set = { + base = { border = 4, position = { x + 160, y }, size = 80, filename = slot_tileset }, + shadow = _ENV.offset_by_2_rounded_corners_glow(_ENV.default_dirt_color), + }, + disabled_graphical_set = { -- identical to default graphical set + base = { border = 4, position = { x + default_offset, y }, size = 80, filename = slot_tileset }, + shadow = _ENV.offset_by_2_rounded_corners_glow(_ENV.default_dirt_color), + }, + } +end + +local function gen_standalone_slot_button(x, y, default_offset) + default_offset = default_offset or 0 + return { + type = "button_style", + parent = "slot_button", + size = 40, + default_graphical_set = { + base = { border = 4, position = { x + default_offset, y }, size = 80, filename = slot_tileset }, + shadow = _ENV.offset_by_4_rounded_corners_subpanel_inset, + }, + hovered_graphical_set = { + base = { border = 4, position = { x + 80, y }, size = 80, filename = slot_tileset }, + shadow = _ENV.offset_by_4_rounded_corners_subpanel_inset, + }, + clicked_graphical_set = { + base = { border = 4, position = { x + 160, y }, size = 80, filename = slot_tileset }, + shadow = _ENV.offset_by_4_rounded_corners_subpanel_inset, + }, + disabled_graphical_set = { -- identical to default graphical set + base = { border = 4, position = { x + default_offset, y }, size = 80, filename = slot_tileset }, + shadow = _ENV.offset_by_4_rounded_corners_subpanel_inset, + }, + } +end + +local slot_data = { + { name = "default", y = 0, glow = _ENV.default_glow_color }, + { name = "grey", y = 80, glow = _ENV.default_glow_color }, + { name = "red", y = 160, glow = { 230, 135, 135 } }, + { name = "orange", y = 240, glow = { 216, 169, 122 } }, + { name = "yellow", y = 320, glow = { 230, 218, 135 } }, + { name = "green", y = 400, glow = { 153, 230, 135 } }, + { name = "cyan", y = 480, glow = { 135, 230, 230 } }, + { name = "blue", y = 560, glow = { 135, 186, 230 } }, + { name = "purple", y = 640, glow = { 188, 135, 230 } }, + { name = "pink", y = 720, glow = { 230, 135, 230 } }, +} + +for _, data in pairs(slot_data) do + styles["flib_slot_" .. data.name] = gen_slot(0, data.y) + styles["flib_selected_slot_" .. data.name] = gen_slot(0, data.y, 80) + styles["flib_slot_button_" .. data.name] = gen_slot_button(240, data.y, 0, data.glow) + styles["flib_selected_slot_button_" .. data.name] = gen_slot_button(240, data.y, 80, data.glow) + styles["flib_standalone_slot_button_" .. data.name] = gen_standalone_slot_button(240, data.y) + styles["flib_selected_standalone_slot_button_" .. data.name] = gen_standalone_slot_button(240, data.y, 80) +end + +-- BUTTON STYLES + +styles.flib_selected_frame_action_button = { + type = "button_style", + parent = "frame_action_button", + default_font_color = _ENV.button_hovered_font_color, + default_graphical_set = { + base = { position = { 225, 17 }, corner_size = 8 }, + shadow = { position = { 440, 24 }, corner_size = 8, draw_type = "outer" }, + }, + hovered_font_color = _ENV.button_hovered_font_color, + hovered_graphical_set = { + base = { position = { 369, 17 }, corner_size = 8 }, + shadow = { position = { 440, 24 }, corner_size = 8, draw_type = "outer" }, + }, + clicked_font_color = _ENV.button_hovered_font_color, + clicked_graphical_set = { + base = { position = { 352, 17 }, corner_size = 8 }, + shadow = { position = { 440, 24 }, corner_size = 8, draw_type = "outer" }, + }, + -- Simulate clicked-vertical-offset + top_padding = 1, + bottom_padding = -1, +} + +local btn = styles.button + +styles.flib_selected_tool_button = { + type = "button_style", + parent = "tool_button", + default_font_color = btn.selected_font_color, + default_graphical_set = btn.selected_graphical_set, + hovered_font_color = btn.selected_hovered_font_color, + hovered_graphical_set = btn.selected_hovered_graphical_set, + clicked_font_color = btn.selected_clicked_font_color, + clicked_graphical_set = btn.selected_clicked_graphical_set, + -- Simulate clicked-vertical-offset + top_padding = 1, + bottom_padding = -1, +} + +styles.flib_tool_button_light_green = { + type = "button_style", + parent = "item_and_count_select_confirm", + padding = 2, + top_margin = 0, +} + +styles.flib_tool_button_dark_red = { + type = "button_style", + parent = "tool_button", + default_graphical_set = { + base = { filename = data_util.dark_red_button_tileset, position = { 0, 0 }, corner_size = 8 }, + shadow = _ENV.default_dirt, + }, + hovered_graphical_set = { + base = { filename = data_util.dark_red_button_tileset, position = { 17, 0 }, corner_size = 8 }, + shadow = _ENV.default_dirt, + glow = _ENV.default_glow({ 236, 130, 130, 127 }, 0.5), + }, + clicked_graphical_set = { + base = { filename = data_util.dark_red_button_tileset, position = { 34, 0 }, corner_size = 8 }, + shadow = _ENV.default_dirt, + }, +} + +-- EMPTY-WIDGET STYLES + +styles.flib_dialog_footer_drag_handle = { + type = "empty_widget_style", + parent = "draggable_space", + height = 32, + horizontally_stretchable = "on", +} + +styles.flib_dialog_footer_drag_handle_no_right = { + type = "empty_widget_style", + parent = "flib_dialog_footer_drag_handle", + right_margin = 0, +} + +styles.flib_dialog_titlebar_drag_handle = { + type = "empty_widget_style", + parent = "flib_titlebar_drag_handle", + right_margin = 0, +} + +styles.flib_horizontal_pusher = { + type = "empty_widget_style", + horizontally_stretchable = "on", +} + +styles.flib_titlebar_drag_handle = { + type = "empty_widget_style", + parent = "draggable_space", + left_margin = 4, + right_margin = 4, + height = 24, + horizontally_stretchable = "on", +} + +styles.flib_vertical_pusher = { + type = "empty_widget_style", + vertically_stretchable = "on", +} + +-- FLOW STYLES + +styles.flib_indicator_flow = { + type = "horizontal_flow_style", + vertical_align = "center", +} + +styles.flib_titlebar_flow = { + type = "horizontal_flow_style", + horizontal_spacing = 8, +} + +-- FRAME STYLES + +styles.flib_shallow_frame_in_shallow_frame = { + type = "frame_style", + parent = "frame", + padding = 0, + graphical_set = { + base = { + position = { 85, 0 }, + corner_size = 8, + center = { position = { 76, 8 }, size = { 1, 1 } }, + draw_type = "outer", + }, + shadow = _ENV.default_inner_shadow, + }, + vertical_flow_style = { + type = "vertical_flow_style", + vertical_spacing = 0, + }, +} + +-- IMAGE STYLES + +styles.flib_indicator = { + type = "image_style", + size = 16, + stretch_image_to_widget_size = true, +} + +-- LINE STYLES + +styles.flib_subheader_horizontal_line = { + type = "line_style", + horizontally_stretchable = "on", + left_margin = -8, + right_margin = -8, + top_margin = -2, + bottom_margin = -2, + border = { + border_width = 8, + horizontal_line = { filename = "__flib__/graphics/subheader-line.png", size = { 1, 8 } }, + }, +} + +-- SCROLL-PANE STYLES + +styles.flib_naked_scroll_pane = { + type = "scroll_pane_style", + extra_padding_when_activated = 0, + padding = 12, + graphical_set = { + shadow = _ENV.default_inner_shadow, + }, +} + +styles.flib_naked_scroll_pane_under_tabs = { + type = "scroll_pane_style", + parent = "flib_naked_scroll_pane", + graphical_set = { + base = { + top = { position = { 93, 0 }, size = { 1, 8 } }, + draw_type = "outer", + }, + shadow = _ENV.default_inner_shadow, + }, +} + +styles.flib_naked_scroll_pane_no_padding = { + type = "scroll_pane_style", + parent = "flib_naked_scroll_pane", + padding = 0, +} + +styles.flib_shallow_scroll_pane = { + type = "scroll_pane_style", + padding = 0, + graphical_set = { + base = { position = { 85, 0 }, corner_size = 8, draw_type = "outer" }, + shadow = _ENV.default_inner_shadow, + }, +} + +-- TABBED PANE STYLES + +styles.flib_tabbed_pane_with_no_padding = { + type = "tabbed_pane_style", + tab_content_frame = { + type = "frame_style", + top_padding = 0, + bottom_padding = 0, + left_padding = 0, + right_padding = 0, + graphical_set = { + base = { + -- Same as tabbed_pane_graphical_set - but without bottom + top = { position = { 76, 0 }, size = { 1, 8 } }, + center = { position = { 76, 8 }, size = { 1, 1 } }, + }, + shadow = _ENV.top_shadow, + }, + }, +} + +-- TEXTFIELD STYLES + +styles.flib_widthless_textfield = { + type = "textbox_style", + width = 0, +} + +styles.flib_widthless_invalid_textfield = { + type = "textbox_style", + parent = "invalid_value_textfield", + width = 0, +} diff --git a/.vscode/flib/queue.lua b/.vscode/flib/queue.lua new file mode 100644 index 0000000..0a1a79b --- /dev/null +++ b/.vscode/flib/queue.lua @@ -0,0 +1,142 @@ +--- Lua queue implementation. +--- +--- Based on "Queues and Double Queues" from [Programming in Lua](http://www.lua.org/pil/11.4.html). +--- @class flib_queue +local flib_queue = {} + +---@class Queue: { [integer]: T, first: integer, last: integer } + +--- Create a new queue. +--- @return Queue +function flib_queue.new() + return { first = 0, last = -1 } +end + +--- Push an element into the front of the queue. +--- @generic T +--- @param self Queue +--- @param value T +function flib_queue.push_front(self, value) + local first = self.first - 1 + self.first = first + self[first] = value +end + +--- Push an element into the back of the queue. +--- @generic T +--- @param self Queue +--- @param value `T` +function flib_queue.push_back(self, value) + local last = self.last + 1 + self.last = last + self[last] = value +end + +--- Retrieve an element from the front of the queue. +--- @generic T +--- @param self Queue +--- @return T? +function flib_queue.pop_front(self) + local first = self.first + if first > self.last then + return + end + local value = self[first] + self[first] = nil + self.first = first + 1 + return value +end + +--- Retrieve an element from the back of the queue. +--- @generic T +--- @param self Queue +--- @return T? +function flib_queue.pop_back(self) + local last = self.last + if self.first > last then + return + end + local value = self[last] + self[last] = nil + self.last = last - 1 + return value +end + +--- Iterate over a queue's elements from the beginning to the end. +--- +--- # Example +--- +--- ```lua +--- local my_queue = queue.new() +--- for i = 1, 10 do +--- queue.push_back(my_queue, 1) +--- end +--- +--- -- 1 2 3 4 5 6 7 8 9 10 +--- for num in queue.iter(my_queue) do +--- log(i) +--- end +--- ``` +--- @generic T +--- @param self Queue +--- @return fun(self: Queue, index: integer): T +function flib_queue.iter(self) + local i = self.first - 1 + return function() + if i < self.last then + i = i + 1 + return i, self[i] + end + end +end + +--- Iterate over a queue's elements from the end to the beginning. +--- +--- # Example +--- +--- ```lua +--- local my_queue = queue.new() +--- for i = 1, 10 do +--- queue.push_back(my_queue, 1) +--- end +--- +--- -- 10 9 8 7 6 5 4 3 2 1 +--- for num in queue.iter_rev(my_queue) do +--- log(i) +--- end +--- ``` +--- @generic T +--- @param self Queue +--- @return fun(self: Queue, index: integer): T +function flib_queue.iter_rev(self) + local i = self.last + 1 + return function() + if i > self.first then + i = i - 1 + return i, self[i] + end + end +end + +--- Get the length of the queue. +--- @generic T +--- @param self Queue +--- @return number +function flib_queue.length(self) + return math.abs(self.last - self.first + 1) +end + +--- @deprecated Use `flib_queue.push_front` instead +flib_queue.push_left = flib_queue.push_front +--- @deprecated Use `flib_queue.push_back` instead +flib_queue.push_right = flib_queue.push_back +--- @deprecated Use `flib_queue.pop_front` instead +flib_queue.pop_left = flib_queue.pop_front +--- @deprecated Use `flib_queue.pop_back` instead +flib_queue.pop_right = flib_queue.pop_back +--- @deprecated Use `flib_queue.iter` instead +flib_queue.iter_left = flib_queue.iter +--- @deprecated Use `flib_queue.iter_rev` instead +flib_queue.iter_right = flib_queue.iter_rev + +return flib_queue diff --git a/.vscode/flib/reverse-defines.lua b/.vscode/flib/reverse-defines.lua new file mode 100644 index 0000000..68e4364 --- /dev/null +++ b/.vscode/flib/reverse-defines.lua @@ -0,0 +1,30 @@ +--- Defines reverse lookup table. +--- +--- NOTE: Type intellisense simply does not work for this module, and there is no easy way to fix +--- it. Use of this module is discouraged. +--- +--- # Example +--- +--- ```lua +--- event.on_built_entity(function(e) +--- local player = game.get_player(e.player_index) +--- local controller_name = reverse_defines.controllers[player.controller_type] +--- end) +--- ``` +local flib_reverse_defines = {} + +local function build_reverse_defines(lookup_table, base_table) + lookup_table = lookup_table or {} + for k, v in pairs(base_table) do + if type(v) == "table" then + lookup_table[k] = {} + build_reverse_defines(lookup_table[k], v) + else + lookup_table[v] = k + end + end +end + +build_reverse_defines(flib_reverse_defines, defines) + +return flib_reverse_defines diff --git a/.vscode/flib/table.lua b/.vscode/flib/table.lua new file mode 100644 index 0000000..bd3454e --- /dev/null +++ b/.vscode/flib/table.lua @@ -0,0 +1,552 @@ +--- Extension of the Lua 5.2 table library. +--- +--- **NOTE:** Several functions in this module will only work with [arrays](https://www.lua.org/pil/11.1.html), +--- which are tables with sequentially numbered keys. All table functions will work with arrays as well, but +--- array functions **will not** work with tables. +--- @class flib_table: tablelib +local flib_table = {} + +-- Import lua table functions +for name, func in pairs(table) do + flib_table[name] = func +end + +--- Shallow copy an array's values into a new array. +--- +--- This function is optimized specifically for arrays, and should be used in place of `table.shallow_copy` for arrays. +--- @param arr Array +--- @return Array +function flib_table.array_copy(arr) + local new_arr = {} + for i = 1, #arr do + new_arr[i] = arr[i] + end + return new_arr +end + +--- Merge all of the given arrays into a single array. +--- @param arrays Array An array of arrays to merge. +--- @return Array +function flib_table.array_merge(arrays) + local output = {} + local i = 0 + for j = 1, #arrays do + local arr = arrays[j] + for k = 1, #arr do + i = i + 1 + output[i] = arr[k] + end + end + return output +end + +--- Recursively compare two tables for inner equality. +--- +--- Does not compare metatables. +--- @param tbl1 table +--- @param tbl2 table +--- @return boolean +function flib_table.deep_compare(tbl1, tbl2) + if tbl1 == tbl2 then + return true + end + for k, v in pairs(tbl1) do + if type(v) == "table" and type(tbl2[k]) == "table" then + if not flib_table.deep_compare(v, tbl2[k]) then + return false + end + else + if v ~= tbl2[k] then + return false + end + end + end + for k in pairs(tbl2) do + if tbl1[k] == nil then + return false + end + end + return true +end + +--- Recursively copy the contents of a table into a new table. +--- +--- Does not create new copies of Factorio objects. +--- @generic T +--- @param tbl T The table to make a copy of. +--- @return T +function flib_table.deep_copy(tbl) + local lookup_table = {} + local function _copy(object) + if type(object) ~= "table" then + return object + -- don't copy factorio rich objects + elseif object.__self then + return object + elseif lookup_table[object] then + return lookup_table[object] + end + + local new_table = {} + lookup_table[object] = new_table + for index, value in pairs(object) do + new_table[_copy(index)] = _copy(value) + end + + return setmetatable(new_table, getmetatable(object)) + end + return _copy(tbl) +end + +--- Recursively merge two or more tables. +--- +--- Values from earlier tables are overwritten by values from later tables, unless both values are tables, in which case +--- they are recursively merged. +--- +--- Non-merged tables are deep-copied, so the result is brand-new. +--- +--- # Examples +--- +--- ```lua +--- local tbl = {foo = "bar"} +--- log(tbl.foo) -- logs "bar" +--- log (tbl.bar) -- errors (key is nil) +--- tbl = table.merge{tbl, {foo = "baz", set = 3}} +--- log(tbl.foo) -- logs "baz" +--- log(tbl.bar) -- logs "3" +--- ``` +--- @param tables Array An array of tables to merge. +--- @return table +function flib_table.deep_merge(tables) + local output = {} + for _, tbl in ipairs(tables) do + for k, v in pairs(tbl) do + if type(v) == "table" then + if type(output[k] or false) == "table" then + output[k] = flib_table.deep_merge({ output[k], v }) + else + output[k] = flib_table.deep_copy(v) + end + else + output[k] = v + end + end + end + return output +end + +--- Find and return the first key containing the given value. +--- +--- # Examples +--- +--- ```lua +--- local tbl = {"foo", "bar"} +--- local key_of_foo = table.find(tbl, "foo") -- 1 +--- local key_of_baz = table.find(tbl, "baz") -- nil +--- ``` +--- @generic K, V +--- @param tbl table The table to search. +--- @param value V The value to match. Must have an `eq` metamethod set, otherwise will error. +--- @return K? key The first key corresponding to `value`, if any. +function flib_table.find(tbl, value) + for k, v in pairs(tbl) do + if v == value then + return k + end + end +end + +--- Call the given function for each item in the table, and abort if the function returns truthy. +--- +--- Calls `callback(value, key)` for each item in the table, and immediately ceases iteration if the callback returns truthy. +--- +--- # Examples +--- +--- ```lua +--- local tbl = {1, 2, 3, 4, 5} +--- -- Run a function for each item (identical to a standard FOR loop) +--- table.for_each(tbl, function(v) game.print(v) end) +--- -- Determine if any value in the table passes the test +--- local value_is_even = table.for_each(tbl, function(v) return v % 2 == 0 end) +--- -- Determine if ALL values in the table pass the test (invert the test result and function return) +--- local all_values_less_than_six = not table.for_each(tbl, function(v) return not (v < 6) end) +--- ``` +--- @generic K, V +--- @param tbl table +--- @param callback fun(value: V, key: K): boolean Receives `value` and `key` as parameters. +--- @return boolean Whether the callback returned truthy for any one item, and thus halted iteration. +function flib_table.for_each(tbl, callback) + for k, v in pairs(tbl) do + if callback(v, k) then + return true + end + end + return false +end + +--- Call the given function on a set number of items in a table, returning the next starting key. +--- +--- Calls `callback(value, key)` over `n` items from `tbl`, starting after `from_k`. +--- +--- The first return value of each invocation of `callback` will be collected and returned in a table keyed by the +--- current item's key. +--- +--- The second return value of `callback` is a flag requesting deletion of the current item. +--- +--- The third return value of `callback` is a flag requesting that the iteration be immediately aborted. Use this flag to +--- early return on some condition in `callback`. When aborted, `for_n_of` will return the previous key as `from_k`, so +--- the next call to `for_n_of` will restart on the key that was aborted (unless it was also deleted). +--- +--- **DO NOT** delete entires from `tbl` from within `callback`, this will break the iteration. Use the deletion flag +--- instead. +--- +--- # Examples +--- +--- ```lua +--- local extremely_large_table = { +--- [1000] = 1, +--- [999] = 2, +--- [998] = 3, +--- ..., +--- [2] = 999, +--- [1] = 1000, +--- } +--- event.on_tick(function() +--- global.from_k = table.for_n_of(extremely_large_table, global.from_k, 10, function(v) game.print(v) end) +--- end) +--- ``` +--- @generic K, V, C +--- @param tbl table The table to iterate over. +--- @param from_k K The key to start iteration at, or `nil` to start at the beginning of `tbl`. If the key does not exist in `tbl`, it will be treated as `nil`, _unless_ a custom `_next` function is used. +--- @param n number The number of items to iterate. +--- @param callback fun(value: V, key: K):C,boolean,boolean Receives `value` and `key` as parameters. +--- @param _next? fun(tbl: table, from_k: K):K,V A custom `next()` function. If not provided, the default `next()` will be used. +--- @return K? next_key Where the iteration ended. Can be any valid table key, or `nil`. Pass this as `from_k` in the next call to `for_n_of` for `tbl`. +--- @return table results The results compiled from the first return of `callback`. +--- @return boolean reached_end Whether or not the end of the table was reached on this iteration. +function flib_table.for_n_of(tbl, from_k, n, callback, _next) + -- Bypass if a custom `next` function was provided + if not _next then + -- Verify start key exists, else start from scratch + if from_k and not tbl[from_k] then + from_k = nil + end + -- Use default `next` + _next = next + end + + local delete + local prev + local abort + local result = {} + + -- Run `n` times + for _ = 1, n, 1 do + local v + if not delete then + prev = from_k + end + from_k, v = _next(tbl, from_k) + if delete then + tbl[delete] = nil + end + + if from_k then + result[from_k], delete, abort = callback(v, from_k) + if delete then + delete = from_k + end + if abort then + break + end + else + return from_k, result, true + end + end + + if delete then + tbl[delete] = nil + from_k = prev + elseif abort then + from_k = prev + end + return from_k, result, false +end + +-- TODO: Remove array_insert, create separate array_filter function + +--- Create a filtered version of a table based on the results of a filter function. +--- +--- Calls `filter(value, key)` on each element in the table, returning a new table with only pairs for which +--- `filter` returned a truthy value. +--- +--- # Examples +--- +--- ```lua +--- local tbl = {1, 2, 3, 4, 5, 6} +--- local just_evens = table.filter(tbl, function(v) return v % 2 == 0 end) -- {[2] = 2, [4] = 4, [6] = 6} +--- local just_evens_arr = table.filter(tbl, function(v) return v % 2 == 0 end, true) -- {2, 4, 6} +--- ``` +--- @generic K, V +--- @param tbl table +--- @param filter fun(value: V, key: K): boolean +--- @param array_insert boolean? If true, the result will be constructed as an array of values that matched the filter. Key references will be lost. +--- @return table +function flib_table.filter(tbl, filter, array_insert) + local output = {} + local i = 0 + for k, v in pairs(tbl) do + if filter(v, k) then + if array_insert then + i = i + 1 + output[i] = v + else + output[k] = v + end + end + end + return output +end + +--- Retrieve the value at the key, or insert the default value. +--- @generic K, V +--- @param table table +--- @param key K +--- @param default_value V +--- @return V +function flib_table.get_or_insert(table, key, default_value) + local value = table[key] + if not value then + table[key] = default_value + return default_value + end + return value +end + +--- Invert the given table such that `[value] = key`, returning a new table. +--- +--- Non-unique values are overwritten based on the ordering from `pairs()`. +--- +--- # Examples +--- +--- ```lua +--- local tbl = {"foo", "bar", "baz", set = "baz"} +--- local inverted = table.invert(tbl) -- {foo = 1, bar = 2, baz = "set"} +--- ``` +--- @generic K, V +--- @param tbl table +--- @return table +function flib_table.invert(tbl) + local inverted = {} + for k, v in pairs(tbl) do + inverted[v] = k + end + return inverted +end + +--- Create a transformed table using the output of a mapper function. +--- +--- Calls `mapper(value, key)` on each element in the table, using the return as the new value for the key. +--- +--- # Examples +--- +--- ```lua +--- local tbl = {1, 2, 3, 4, 5} +--- local tbl_times_ten = table.map(tbl, function(v) return v * 10 end) -- {10, 20, 30, 40, 50} +--- ``` +--- @generic K, V, N +--- @param tbl table +--- @param mapper fun(value: V, key: V):N? +--- @return table +function flib_table.map(tbl, mapper) + local output = {} + for k, v in pairs(tbl) do + output[k] = mapper(v, k) + end + return output +end + +local function default_comp(a, b) + return a < b +end + +--- Partially sort an array. +--- +--- This function utilizes [insertion sort](https://en.wikipedia.org/wiki/Insertion_sort), which is _extremely_ inefficient with large data sets. However, you can spread the sorting over multiple ticks, reducing the performance impact. Only use this function if `table.sort` is too slow. +--- @generic V +--- @param arr Array +--- @param from_index number? The index to start iteration at (inclusive). Pass `nil` or a number less than `2` to begin at the start of the array. +--- @param iterations number The number of iterations to perform. Higher is more performance-heavy. This number should be adjusted based on the performance impact of the custom `comp` function (if any) and the size of the array. +--- @param comp fun(a: V, b: V) A comparison function for sorting. Must return truthy if `a < b`. +--- @return number? next_index The index to start the next iteration at, or `nil` if the end was reached. +function flib_table.partial_sort(arr, from_index, iterations, comp) + comp = comp or default_comp + local start_index = (from_index and from_index > 2) and from_index or 2 + local end_index = start_index + (iterations - 1) + + for j = start_index, end_index do + local key = arr[j] + if not key then + return nil + end + local i = j - 1 + + while i > 0 and comp(key, arr[i]) do + arr[i + 1] = arr[i] + i = i - 1 + end + + arr[i + 1] = key + end + + return end_index + 1 +end + +--- "Reduce" a table's values into a single output value, using the results of a reducer function. +--- +--- Calls `reducer(accumulator, value, key)` on each element in the table, returning a single accumulated output value. +--- +--- # Examples +--- +--- ```lua +--- local tbl = {10, 20, 30, 40, 50} +--- local sum = table.reduce(tbl, function(acc, v) return acc + v end) +--- local sum_minus_ten = table.reduce(tbl, function(acc, v) return acc + v end, -10) +--- ``` +--- @generic K, V, R +--- @param tbl table +--- @param reducer fun(acc: R, value: V, key: K):R +--- @param initial_value R? The initial value for the accumulator. If not provided or is falsy, the first value in the table will be used as the initial `accumulator` value and skipped as `key`. Calling `reduce()` on an empty table without an `initial_value` will cause a crash. +--- @return R +function flib_table.reduce(tbl, reducer, initial_value) + local accumulator = initial_value + for key, value in pairs(tbl) do + if accumulator then + accumulator = reducer(accumulator, value, key) + else + accumulator = value + end + end + return accumulator +end + +--- @deprecated use `table.remove`. +flib_table.retrieve = flib_table.remove + +--- Shallowly copy the contents of a table into a new table. +--- +--- The parent table will have a new table reference, but any subtables within it will still have the same table +--- reference. +--- +--- Does not copy metatables. +--- @generic T +--- @param tbl T +--- @param use_rawset boolean? Use rawset to set the values (ignores metamethods). +--- @return T The copied table. +function flib_table.shallow_copy(tbl, use_rawset) + local output = {} + for k, v in pairs(tbl) do + if use_rawset then + rawset(output, k, v) + else + output[k] = v + end + end + return output +end + +--- Shallowly merge two or more tables. +--- Unlike `table.deep_merge`, this will only combine the top level of the tables. +--- @param tables table[] +--- @return table +function flib_table.shallow_merge(tables) + local output = {} + for _, tbl in pairs(tables) do + for key, value in pairs(tbl) do + output[key] = value + end + end + return output +end + +--- Retrieve the size of a table. +--- +--- Uses Factorio's built-in `table_size` function. +--- @type fun(tbl: table):number +flib_table.size = _ENV.table_size + +--- Retrieve a shallow copy of a portion of an array, selected from `start` to `end` inclusive. +--- +--- The original array **will not** be modified. +--- +--- # Examples +--- +--- ```lua +--- local arr = {10, 20, 30, 40, 50, 60, 70, 80, 90} +--- local sliced = table.slice(arr, 3, 7) -- {30, 40, 50, 60, 70} +--- log(serpent.line(arr)) -- {10, 20, 30, 40, 50, 60, 70, 80, 90} (unchanged) +--- ``` +--- @generic V +--- @param arr Array +--- @param start number? default: `1` +--- @param stop number? Stop at this index. If zero or negative, will stop `n` items from the end of the array (default: `#arr`). +--- @return Array A new array with the copied values. +function flib_table.slice(arr, start, stop) + local output = {} + local n = #arr + + start = start or 1 + stop = stop or n + stop = stop <= 0 and (n + stop) or stop + + if start < 1 or start > n then + return {} + end + + local k = 1 + for i = start, stop do + output[k] = arr[i] + k = k + 1 + end + return output +end + +--- Extract a portion of an array, selected from `start` to `end` inclusive. +-- +--- The original array **will** be modified. +--- +--- # Examples +--- +--- ```lua +--- local arr = {10, 20, 30, 40, 50, 60, 70, 80, 90} +--- local spliced = table.splice(arr, 3, 7) -- {30, 40, 50, 60, 70} +--- log(serpent.line(arr)) -- {10, 20, 80, 90} (values were removed) +--- ``` +--- @generic V +--- @param arr Array +--- @param start number default: `1` +--- @param stop number? Stop at this index. If zero or negative, will stop `n` items from the end of the array (default: `#arr`). +--- @return Array A new array with the extracted values. +function flib_table.splice(arr, start, stop) + local output = {} + local n = #arr + + start = start or 1 + stop = stop or n + stop = stop <= 0 and (n + stop) or stop + + if start < 1 or start > n then + return {} + end + + local k = 1 + for _ = start, stop do + output[k] = table.remove(arr, start) + k = k + 1 + end + return output +end + +--- @class Array: { [integer]: T } + +return flib_table diff --git a/.vscode/flib/thumbnail.png b/.vscode/flib/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..67f0865d3dac31860123563c17886bb9c2f4ea36 GIT binary patch literal 4433 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 z 0 or #train.locomotives.back_movers > 0) + then + return train.locomotives.front_movers and train.locomotives.front_movers[1] or train.locomotives.back_movers[1] + end +end + +--- Get the backer_name of the main locomotive in a given train. +--- @param train LuaTrain +--- @return string? backer_name The backer_name of the primary locomotive or `nil` when no locomotive was found +function flib_train.get_backer_name(train) + local loco = flib_train.get_main_locomotive(train) + return loco and loco.backer_name +end + +--- Rotate a single carriage of a train. +--- @param entity LuaEntity +--- @return boolean rotated `true` when rotation was successful. +function flib_train.rotate_carriage(entity) + local disconnected_back = entity.disconnect_rolling_stock(defines.rail_direction.back) + local disconnected_front = entity.disconnect_rolling_stock(defines.rail_direction.front) + entity.rotate() + -- Only reconnect the side that was disconnected + local reconnected_front = disconnected_front + local reconnected_back = disconnected_back + if disconnected_back then + reconnected_back = entity.connect_rolling_stock(defines.rail_direction.front) + end + if disconnected_front then + reconnected_front = entity.connect_rolling_stock(defines.rail_direction.back) + end + + if disconnected_front and not reconnected_front then + return false + end + if disconnected_back and not reconnected_back then + return false + end + return true +end + +--- Create a string representing train composition, and return a count of locomotives and wagons in the train. +--- - `L>`: Locomotives +--- - `C`: Cargo wagon +--- - `F`: Fluid wagon +--- - `A`: Artillery wagon +--- @param train LuaTrain +--- @return string? composition The composition string, or `nil` if the train was invalid. +--- @return TrainCompositionCounts? +function flib_train.get_composition_string(train) + if train and train.valid then + local carriages = train.carriages + local string_table = {} + local count_wagons, count_loco_front, count_loco_back, i = 0, 0, 0, 0 + local locos_front = train.locomotives.front_movers + for _, carriage in pairs(carriages) do + i = i + 1 + if carriage.type == "locomotive" then + local faces_forward = false + for _, loco in pairs(locos_front) do + if carriage.unit_number == loco.unit_number then + faces_forward = true + break + end + end + if faces_forward then + string_table[i] = " at line 310 jumps into the scope of local 'p_flag' require("scripts.constants") require("scripts.global") require("scripts.lib") diff --git a/cybersyn/data-final-fixes.lua b/cybersyn/data-final-fixes.lua index 8c16e75..176c80e 100644 --- a/cybersyn/data-final-fixes.lua +++ b/cybersyn/data-final-fixes.lua @@ -1,4 +1,5 @@ +--Credit to modo-lv for submitting the following code if mods["nullius"] then -- Place combinator in the same subgroup as the regular train stop data.raw["recipe"][COMBINATOR_NAME].subgroup = data.raw["train-stop"]["train-stop"].subgroup diff --git a/cybersyn/data.lua b/cybersyn/data.lua index 5d2a820..a16aa76 100644 --- a/cybersyn/data.lua +++ b/cybersyn/data.lua @@ -21,4 +21,10 @@ data:extend({ missing_train_icon, lost_train_icon, nonempty_train_icon, + { + type = "custom-input", + name = "cybersyn-toggle-planner", + key_sequence = "", + consuming = "game-only" + } }) diff --git a/cybersyn/graphics/combinator/cybernetic-combinator-remnants.png b/cybersyn/graphics/combinator/cybernetic-combinator-remnants.png index 583d417e3584f4345695a45bc22067335afea6e1..1df52bbb196eb70cc65ead1c39dcb01af71373ce 100644 GIT binary patch literal 25938 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

    Z&^+^HPf_y9IUFQ8DHBiISi@hQ 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 pjr5flXE*UIMd~6gM@nJ=7UTr6 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�$wpQiEeLGG`@Z?*L^t%oBJxl#>hk45Nh< zMm3-kVM(mU=&yJ>$lPcqp<8O9-fGX&{e3WdhhtMbS{EKWm~Mp{)Rqhz)LyE2QE4}s z>|7h;z{b70%z&efcJ|s`<;6-_Og>c&D5PlsP$_n~{0t>mWLXC;0C^aw`LUSglXO-%g^i5hl%Qd@2nF zb#lEfs%M-RsZgMfu2Hp)a=gh@9TH!^YS*2e@)N&5Js3Satjzsx08#b;)m)JbrF{mBfUKeJ*OEEdDLvJjCI8n(=E%KNpmwqhqJI{E$t573`awXSJZ z+Vh5?@h88?z6Eg|Ri)HgvKBo&qpzNK+Db-!h$i36#lq@6p&PL!$QsFC4>jvfV}cX8 z1Ve;~pT~=MD2k5*G4@1^pEwh>_=7L71R0?u9un6eson~3ym@;gBrIf^jauc7!ptpq30B%+eM9z!4~%%~ z)84pX4`eN8eb?V)%4C9q%8WC3P@3!u68_cRCDR=uMd+7V&yFIC#qRddsL5kDw@!V~ zBOKVhf0v6}ntCNKr0+Y3_h)Z<%NWq6u&y=8V^tKcRfDBnB8E4c3@q;w;??70qjyaM zFlY3V(8nr161f!g5R~cQ@ocvD4EMjyn+`}UO-=vqW?Bd$Ay#{PQG~u=3!>NR5JhTmB%uH0$--c|KpYATb4eg-X*eTxS*HoG4G4hld>c3 z%CPP}_S&@LL@hmubS-22@%eiHGp)@oQgGYn{4TQ#`Sy>WcgQ=hhWb@QVqi7mmO{0g z%`or$f4nlvR2ynvg-TAhrykrZA65SK%KLDy9P_VN_713|pyvwko`HMiMkA2e1KcZz z|Mkk^LDUv=V|4%Jm3=Z_{2~<=_8NC~ZWLZxI-0QMkMC8ah~5@y?a<^(N~2TC57?}F z52h_O*;ta6L+J-Zrt{67VkMI(y-8GVz<<~_hI{3<+?zcWs_fu%1JCtP~W;wVFohok;&4F&7HZ`*SVj|M?faSpGCm1HM}RE?8Ju-+it?YUO5l% zuUB58n>Qe0Fx08QtMkCSuZjanySU>11f(frO}T9mTBZ2oB*}1RfB=Wf zw*V$QHy!HYgR_6UvfRI3*(a+1GP88h@DpaSY{8r(eJqiNq7BEQy=OS5?18$NhLlqA zC&h2Wjf6E>T8@saUOwWgQnLh0M8N^0K*n#HXj@OZjz7|qnQ)7Eu!C&Lrn~1^3mzN{ zltjBpQF|uzzMg;Fbx@yT?cylOx{5f12X*$Wyr;DgYc!SpZ8V1Q^_RAOP#NK~wfw+p zxm8G+OUMzAeazA~P33{jGMc*7_0;OzdBk`Y*uLxr0le^JC6G2 z)oh8fJeBZR$37)5FJIcgIdqiCzx+^vm;TiU!mi3N4ox;|+@=C;8#(m)+tPf`pm3pH zQ3ya~&|tD@*~4%sXoRn-)`o*tGJxip~Kg-IQ?AW|=8{IBnM+0{GmaW`F)nE(b}G>EkIVM;BLeh+>7uniADLhY{=h-0A5;Wv*n3 zPyHdk1V$Z?jH5>RrYC>GP;qmehkBb+)WE<*F#%9 z0j{-N@KR)%Tea#F(f>-zJ&wL<2?(@IsMpR>7~;9;X|qHgC5dU1Rb`kht)-BkZX=x{=iMQg?&~ z=a3MC(L=E;yNoS^0Eh<-05q4kr44p zAELfgrdQ~E^}q!8%6+k+uQ}3*V#zLi;9i-Ec77YJMH?qwTfAw`UbG3m{m-JThvCIH X@>&bF2eiX;qX9~9)!x*|T7>@}N~7R2 diff --git a/cybersyn/graphics/combinator/cybernetic-combinator.png b/cybersyn/graphics/combinator/cybernetic-combinator.png index d95e3764b84eb16ca3d1980bb76e7bba2fdb0742..83f5c16008a3cd6b139d7405d168e1ebedf746fd 100644 GIT binary patch literal 31134 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 literal 28224 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 Rk1C7|!}{TUTfIp+{{RvOlav4e literal 77621 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 diff --git a/cybersyn/graphics/combinator/hr-cybernetic-combinator.png b/cybersyn/graphics/combinator/hr-cybernetic-combinator.png index bfdc9c43bfa3464d039b303913a8ea92febe118c..a6da2dc7502ed9613759e368074d2e64adacca1e 100644 GIT binary patch literal 106003 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%0A!ls0)gBlWqQ69*PpacW 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 literal 98625 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

    ;1ZK6n5^w$a1$6wIEB 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�F-*7eYi7C0>(mmco>*j~Art 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
    * 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 QJ^%m!07*qoM6N<$f&c|K%m4rY diff --git a/cybersyn/info.json b/cybersyn/info.json index 9baff2b..68d0c25 100644 --- a/cybersyn/info.json +++ b/cybersyn/info.json @@ -1,6 +1,6 @@ { "name": "cybersyn", - "version": "1.2.7", + "version": "1.2.8", "title": "Project Cybersyn", "author": "Mami", "factorio_version": "1.1", diff --git a/cybersyn/locale/en/base.cfg b/cybersyn/locale/en/base.cfg index 85e7ed2..8b0ea42 100644 --- a/cybersyn/locale/en/base.cfg +++ b/cybersyn/locale/en/base.cfg @@ -1,4 +1,5 @@ [mod-setting-name] +cybersyn-enable-planner=Enable central planning cybersyn-ticks-per-second=Central planning updates per second cybersyn-update-rate=Central planning update rate cybersyn-request-threshold=Default request threshold @@ -13,6 +14,7 @@ cybersyn-allow-cargo-in-depot=Allow cargo in depots cybersyn-invert-sign=Invert combinator output (deprecated) [mod-setting-description] +cybersyn-enable-planner=Enable or disable the central planning algorithm. If disabled no new trains will be dispatched. cybersyn-ticks-per-second=How many times per second the central planner should update the state of the network and schedule deliveries. This value will be rounded up to a divisor of 60. Setting this to 0 will stop all dispatches. cybersyn-update-rate=How many stations per tick can be polled at once or can have deliveries scheduled at once. Larger number allow the central planner to keep more up to date on the current state of the network, but at the cost of performance. cybersyn-request-threshold=The default request threshold when a request threshold signal is not given to a station. When a station receives a negative item signal that surpasses its request threshold, so long as any station exists with a positive signal greater than the request threshold, a delivery of that item will be scheduled between the two stations. @@ -26,6 +28,9 @@ cybersyn-stuck-train-time=After this many seconds from a train's dispatch, an al cybersyn-allow-cargo-in-depot=If checked, trains will be allowed to have cargo in depots; no alerts will be generated and the train will not be held. In addition, trains with orders to visit requester stations with "Inactivity condition" checked will wait for inactivity instead of waiting for empty cargo. Useful for creating train systems where depots handle excess cargo. For advanced users only. cybersyn-invert-sign=Flip the sign of the output of cybernetic combinators to be the same as it is in LTN or in earlier versions of Project Cybersyn. +[controls] +cybersyn-toggle-planner=Toggle central planner + [item-name] cybersyn-combinator=Cybernetic combinator @@ -88,3 +93,5 @@ use-same-depot-description=Require same depot use-same-depot-tooltip=When checked trains from this depot always return to this depot. When unchecked the train is allowed to return to any depot with the same name as this one. depot-bypass-description=Depot bypass depot-bypass-tooltip=When checked trains from this depot do not have to be parked at this depot to receive new orders, they just have to have no current active orders. They will still return to this depot if they are low on fuel and no refuelers are available. +enable-slot-barring-description=Bar unfiltered slots +enable-slot-barring-tooltip=When checked any slots of an adjacent wagon that are not filtered will instead be barred so no item can load into it. diff --git a/cybersyn/prototypes/tech.lua b/cybersyn/prototypes/tech.lua index b179b28..4e64122 100644 --- a/cybersyn/prototypes/tech.lua +++ b/cybersyn/prototypes/tech.lua @@ -33,6 +33,7 @@ if mods["pypostprocessing"] then cybersyn_tech.unit.ingredients[2] = nil end +--Credit to modo-lv for submitting the following code if mods["nullius"] then -- Enable recipe and place it just after regular station combinator_recipe.order = "nullius-eca" diff --git a/cybersyn/scripts/central-planning.lua b/cybersyn/scripts/central-planning.lua index 938ae76..33863ca 100644 --- a/cybersyn/scripts/central-planning.lua +++ b/cybersyn/scripts/central-planning.lua @@ -47,66 +47,66 @@ function create_delivery(map_data, r_station_id, p_station_id, train_id, manifes --NOTE: we assume that the train is not being teleported at this time --NOTE: set_manifest_schedule is allowed to cancel the delivery at the last second if applying the schedule to the train makes it lost if set_manifest_schedule(map_data, train.entity, depot.entity_stop, not train.use_any_depot, p_station.entity_stop, p_station.enable_inactive, r_station.entity_stop, mod_settings.allow_cargo_in_depot and r_station.enable_inactive--[[@as boolean]], manifest, is_at_depot) then - local old_status = train.status - train.status = STATUS_TO_P - train.p_station_id = p_station_id - train.r_station_id = r_station_id - train.manifest = manifest - train.last_manifest_tick = map_data.total_ticks + local old_status = train.status + train.status = STATUS_TO_P + train.p_station_id = p_station_id + train.r_station_id = r_station_id + train.manifest = manifest + train.last_manifest_tick = map_data.total_ticks - r_station.last_delivery_tick = map_data.total_ticks - p_station.last_delivery_tick = map_data.total_ticks + r_station.last_delivery_tick = map_data.total_ticks + p_station.last_delivery_tick = map_data.total_ticks - r_station.deliveries_total = r_station.deliveries_total + 1 - p_station.deliveries_total = p_station.deliveries_total + 1 + r_station.deliveries_total = r_station.deliveries_total + 1 + p_station.deliveries_total = p_station.deliveries_total + 1 - local r_is_each = r_station.network_name == NETWORK_EACH - local p_is_each = p_station.network_name == NETWORK_EACH - for item_i, item in ipairs(manifest) do - assert(item.count > 0, "main.lua error, transfer amount was not positive") + local r_is_each = r_station.network_name == NETWORK_EACH + local p_is_each = p_station.network_name == NETWORK_EACH + for item_i, item in ipairs(manifest) do + assert(item.count > 0, "main.lua error, transfer amount was not positive") - r_station.deliveries[item.name] = (r_station.deliveries[item.name] or 0) + item.count - p_station.deliveries[item.name] = (p_station.deliveries[item.name] or 0) - item.count + r_station.deliveries[item.name] = (r_station.deliveries[item.name] or 0) + item.count + p_station.deliveries[item.name] = (p_station.deliveries[item.name] or 0) - item.count - if item_i > 1 or r_is_each or p_is_each then - local f, a - if r_is_each then - f, a = pairs(r_station.network_flag--[[@as {[string]: int}]]) - if p_is_each then - for network_name, _ in f, a do - local item_network_name = network_name..":"..item.name - economy.all_r_stations[item_network_name] = nil - economy.all_p_stations[item_network_name] = nil - end - f, a = pairs(p_station.network_flag--[[@as {[string]: int}]]) + if item_i > 1 or r_is_each or p_is_each then + local f, a + if r_is_each then + f, a = pairs(r_station.network_flag--[[@as {[string]: int}]]) + if p_is_each then + for network_name, _ in f, a do + local item_network_name = network_name..":"..item.name + economy.all_r_stations[item_network_name] = nil + economy.all_p_stations[item_network_name] = nil end - elseif p_is_each then f, a = pairs(p_station.network_flag--[[@as {[string]: int}]]) - else - f, a = once, r_station.network_name - end - --prevent deliveries from being processed for these items until their stations are re-polled - --if we don't wait until they are repolled a duplicate delivery might be generated for stations that share inventories - for network_name, _ in f, a do - local item_network_name = network_name..":"..item.name - economy.all_r_stations[item_network_name] = nil - economy.all_p_stations[item_network_name] = nil end + elseif p_is_each then + f, a = pairs(p_station.network_flag--[[@as {[string]: int}]]) + else + f, a = once, r_station.network_name + end + --prevent deliveries from being processed for these items until their stations are re-polled + --if we don't wait until they are repolled a duplicate delivery might be generated for stations that share inventories + for network_name, _ in f, a do + local item_network_name = network_name..":"..item.name + economy.all_r_stations[item_network_name] = nil + economy.all_p_stations[item_network_name] = nil end end - - set_comb2(map_data, p_station) - set_comb2(map_data, r_station) - - p_station.display_state = 1 - update_display(map_data, p_station) - r_station.display_state = 1 - update_display(map_data, r_station) - - interface_raise_train_status_changed(train_id, old_status, STATUS_TO_P) - else - interface_raise_train_dispatch_failed(train_id) end + + set_comb2(map_data, p_station) + set_comb2(map_data, r_station) + + p_station.display_state = 1 + update_display(map_data, p_station) + r_station.display_state = 1 + update_display(map_data, r_station) + + interface_raise_train_status_changed(train_id, old_status, STATUS_TO_P) +else + interface_raise_train_dispatch_failed(train_id) +end end ---@param map_data MapData ---@param r_station_id uint @@ -654,9 +654,39 @@ local function tick_poll_station(map_data, mod_settings) end ---@param map_data MapData ---@param mod_settings CybersynModSettings -function tick_init(map_data, mod_settings) +function tick_poll_entities(map_data, mod_settings) local tick_data = map_data.tick_data + --NOTE: the following have undefined behaviour if the item on tick_data is deleted + if map_data.total_ticks%5 == 0 then + local train_id, train = next(map_data.trains, tick_data.last_train) + tick_data.last_train = train_id + if train then + if train.manifest and not train.se_is_being_teleported and train.last_manifest_tick + mod_settings.stuck_train_time*mod_settings.tps < map_data.total_ticks then + if mod_settings.stuck_train_alert_enabled then + send_alert_stuck_train(map_data, train.entity) + end + interface_raise_train_stuck(train_id) + end + end + + local refueler_id, _ = next(map_data.each_refuelers, tick_data.last_refueler) + tick_data.last_refueler = refueler_id + if refueler_id then + set_refueler_from_comb(map_data, mod_settings, refueler_id) + end + else + local comb_id, comb = next(map_data.to_comb, tick_data.last_comb) + tick_data.last_comb = comb_id + if comb and comb.valid then + combinator_update(map_data, comb, true) + end + end +end +---@param map_data MapData +---@param mod_settings CybersynModSettings +function tick_init(map_data, mod_settings) + map_data.economy.all_p_stations = {} map_data.economy.all_r_stations = {} map_data.economy.all_names = {} @@ -667,6 +697,7 @@ function tick_init(map_data, mod_settings) if station.last_delivery_tick + mod_settings.warmup_time*mod_settings.tps < map_data.total_ticks then map_data.active_station_ids[#map_data.active_station_ids + 1] = id map_data.warmup_station_ids[i] = nil + combinator_update(map_data, station.entity_comb1) end else map_data.warmup_station_ids[i] = nil @@ -686,30 +717,6 @@ function tick_init(map_data, mod_settings) map_data.queue_station_update = nil end - --NOTE: the following has undefined behavior if last_train is deleted, this should be ok since the following doesn't care how inconsistent our access pattern is - local train_id, train = next(map_data.trains, tick_data.last_train) - tick_data.last_train = train_id - - if train and train.manifest and not train.se_is_being_teleported and train.last_manifest_tick + mod_settings.stuck_train_time*mod_settings.tps < map_data.total_ticks then - if mod_settings.stuck_train_alert_enabled then - send_alert_stuck_train(map_data, train.entity) - end - interface_raise_train_stuck(train_id) - end - - --NOTE: the following has undefined behavior if last_comb is deleted - local comb_id, comb = next(map_data.to_comb, tick_data.last_comb) - tick_data.last_comb = comb_id - local refueler_id, _ = next(map_data.each_refuelers, tick_data.last_refueler) - tick_data.last_refueler = refueler_id - - if comb and comb.valid then - combinator_update(map_data, comb, true) - end - if refueler_id then - set_refueler_from_comb(map_data, mod_settings, refueler_id) - end - map_data.tick_state = STATE_POLL_STATIONS interface_raise_tick_init() end @@ -718,21 +725,30 @@ end function tick(map_data, mod_settings) map_data.total_ticks = map_data.total_ticks + 1 + if map_data.active_alerts then if map_data.total_ticks%(8*mod_settings.tps) < 1 then process_active_alerts(map_data) end end - if map_data.tick_state == STATE_INIT then - tick_init(map_data, mod_settings) - elseif map_data.tick_state == STATE_POLL_STATIONS then - for i = 1, mod_settings.update_rate do - if tick_poll_station(map_data, mod_settings) then break end + tick_poll_entities(map_data, mod_settings) + + if mod_settings.enable_planner then + if map_data.tick_state == STATE_INIT then + tick_init(map_data, mod_settings) end - elseif map_data.tick_state == STATE_DISPATCH then - for i = 1, mod_settings.update_rate do - tick_dispatch(map_data, mod_settings) + + if map_data.tick_state == STATE_POLL_STATIONS then + for i = 1, mod_settings.update_rate do + if tick_poll_station(map_data, mod_settings) then break end + end + elseif map_data.tick_state == STATE_DISPATCH then + for i = 1, mod_settings.update_rate do + tick_dispatch(map_data, mod_settings) + end end + else + map_data.tick_state = STATE_INIT end end diff --git a/cybersyn/scripts/constants.lua b/cybersyn/scripts/constants.lua index bef2e6f..999edcb 100644 --- a/cybersyn/scripts/constants.lua +++ b/cybersyn/scripts/constants.lua @@ -27,6 +27,7 @@ SETTING_IS_STACK = 3 SETTING_ENABLE_INACTIVE = 4 SETTING_USE_ANY_DEPOT = 5 SETTING_DISABLE_DEPOT_BYPASS = 6 +SETTING_ENABLE_SLOT_BARRING = 7 NETWORK_SIGNAL_DEFAULT = {name="signal-A", type="virtual"} NETWORK_EACH = "signal-each" diff --git a/cybersyn/scripts/factorio-api.lua b/cybersyn/scripts/factorio-api.lua index 8114553..2f5e785 100644 --- a/cybersyn/scripts/factorio-api.lua +++ b/cybersyn/scripts/factorio-api.lua @@ -1,5 +1,5 @@ --By Mami -local get_distance = require("__flib__.misc").get_distance +local get_distance = require("__flib__.position").distance local table_insert = table.insert local bit_extract = bit32.extract local bit_replace = bit32.replace @@ -21,7 +21,7 @@ end function get_stop_dist(entity0, entity1) local surface0 = entity0.surface.index local surface1 = entity1.surface.index - return (surface0 == surface1 and get_distance(entity0.position, entity1.position) or DIFFERENT_SURFACE_DISTANCE)--[[@as number]] + return (surface0 == surface1 and get_distance(entity0.position, entity1.position) or DIFFERENT_SURFACE_DISTANCE) end @@ -566,7 +566,7 @@ function get_comb_gui_settings(comb) elseif op == MODE_WAGON then selected_index = 5 end - return selected_index, params.first_signal, switch_state, bits + return selected_index--[[@as uint]], params.first_signal, switch_state, bits end ---@param comb LuaEntity ---@param is_pr_state 0|1|2 diff --git a/cybersyn/scripts/global.lua b/cybersyn/scripts/global.lua index da2c3dc..f11e453 100644 --- a/cybersyn/scripts/global.lua +++ b/cybersyn/scripts/global.lua @@ -104,6 +104,7 @@ --NOTE: any setting labeled as an "interface setting" can only be changed through the remote-interface, these settings are not save and have to be set at initialization --As a modder using the remote-interface, you may override any of these settings, including user settings. They will have to be overriden at initialization and whenever a user tries to change one. ---@class CybersynModSettings +---@field public enable_planner boolean ---@field public tps double ---@field public update_rate int ---@field public r_threshold int diff --git a/cybersyn/scripts/gui.lua b/cybersyn/scripts/gui.lua index 3a8e141..da54079 100644 --- a/cybersyn/scripts/gui.lua +++ b/cybersyn/scripts/gui.lua @@ -1,6 +1,5 @@ --By Mami -local flib_gui = require("__flib__.gui") -local flib_event = require("__flib__.event") +local flib_gui = require("__flib__.gui-lite") local RED = "utility/status_not_working" local GREEN = "utility/status_working" @@ -41,6 +40,7 @@ end local function set_visibility(main_window, selected_index) local is_station = selected_index == 1 local is_depot = selected_index == 2 + local is_wagon = selected_index == 5 local uses_network = is_station or is_depot or selected_index == 3 local uses_allow_list = is_station or selected_index == 3 @@ -56,107 +56,107 @@ local function set_visibility(main_window, selected_index) first_settings.allow_list.visible = uses_allow_list first_settings.is_stack.visible = is_station bottom_flow.enable_inactive.visible = is_station + top_flow.enable_slot_barring.visible = is_wagon depot_settings.visible = is_depot end ----@param comb LuaEntity ----@param player LuaPlayer -function gui_opened(comb, player) - combinator_update(global, comb, true) +---@param e EventData.on_gui_click +local function handle_close(e) + local element = e.element + if not element then return end + local comb = global.to_comb[element.tags.id] + if not comb or not comb.valid then return end + local player = game.get_player(e.player_index) + if not player then return end local rootgui = player.gui.screen - local selected_index, signal, switch_state, bits = get_comb_gui_settings(comb) - local window = flib_gui.build(rootgui, { - {type="frame", direction="vertical", ref={"main_window"}, name=COMBINATOR_NAME, children={ - --title bar - {type="flow", ref={"titlebar"}, children={ - {type="label", style="frame_title", caption={"cybersyn-gui.combinator-title"}, elem_mods={ignored_by_interaction=true}}, - {type="empty-widget", style="flib_titlebar_drag_handle", elem_mods={ignored_by_interaction=true}}, - {type="sprite-button", style="frame_action_button", mouse_button_filter={"left"}, sprite="utility/close_white", hovered_sprite="utility/close_black", name=COMBINATOR_NAME, actions={ - on_click = {"close", comb.unit_number} - }} - }}, - {type="frame", name="frame", style="inside_shallow_frame_with_padding", style_mods={padding=12, bottom_padding=9}, children={ - {type="flow", name="vflow", direction="vertical", style_mods={horizontal_align="left"}, children={ - --status - {type="flow", style="status_flow", direction="horizontal", style_mods={vertical_align="center", horizontally_stretchable=true, bottom_padding=4}, children={ - {type="sprite", sprite=STATUS_SPRITES[comb.status] or STATUS_SPRITES_DEFAULT, style="status_image", style_mods={stretch_image_to_widget_size=true}}, - {type="label", caption={STATUS_NAMES[comb.status] or STATUS_NAMES_DEFAULT}} - }}, - --preview - {type="frame", style="deep_frame_in_shallow_frame", style_mods={minimal_width=0, horizontally_stretchable=true, padding=0}, children={ - {type="entity-preview", style="wide_entity_button", ref={"preview"}}, - }}, - --drop down - {type="label", style="heading_3_label", caption={"cybersyn-gui.operation"}, style_mods={top_padding=8}}, - {type="flow", name="top", direction="horizontal", style_mods={vertical_align="center"}, children={ - {type="drop-down", style_mods={top_padding=3, right_margin=8}, ref={"operation"}, actions={ - on_selection_state_changed={"drop-down", comb.unit_number} - }, selected_index=selected_index, items={ - {"cybersyn-gui.comb1"}, - {"cybersyn-gui.depot"}, - {"cybersyn-gui.refueler"}, - {"cybersyn-gui.comb2"}, - {"cybersyn-gui.wagon-manifest"}, - }}, - {type="switch", name="is_pr_switch", ref={"is_pr_switch"}, allow_none_state=true, switch_state=switch_state, left_label_caption={"cybersyn-gui.switch-provide"}, right_label_caption={"cybersyn-gui.switch-request"}, left_label_tooltip={"cybersyn-gui.switch-provide-tooltip"}, right_label_tooltip={"cybersyn-gui.switch-request-tooltip"}, actions={ - on_switch_state_changed={"is_pr_switch", comb.unit_number} - }} - }}, - ---choose-elem-button - {type="line", style_mods={top_padding=10}}, - {type="label", name="network_label", style="heading_3_label", caption={"cybersyn-gui.network"}, style_mods={top_padding=8}}, - {type="flow", name="bottom", direction="horizontal", style_mods={vertical_align="top"}, children={ - {type="choose-elem-button", name="network", style="slot_button_in_shallow_frame", elem_type="signal", tooltip={"cybersyn-gui.network-tooltip"}, signal=signal, style_mods={bottom_margin=1, right_margin=6, top_margin=2}, actions={ - on_elem_changed={"choose-elem-button", comb.unit_number} - }}, - {type="flow", name="depot", direction="vertical", style_mods={horizontal_align="left"}, children={ - {type="flow", name="use_any_depot", direction="horizontal", style_mods={vertical_align="center"}, children={ - {type="checkbox", name="use_same_depot", state=setting_flip(bits, SETTING_USE_ANY_DEPOT), tooltip={"cybersyn-gui.use-same-depot-tooltip"}, actions={ - on_checked_state_changed={"setting-flip", comb.unit_number, SETTING_USE_ANY_DEPOT} - }}, - {type="label", name="use_same_depot_label", style_mods={left_padding=3}, caption={"cybersyn-gui.use-same-depot-description"}}, - }}, - {type="flow", name="depot_bypass", direction="horizontal", style_mods={vertical_align="center"}, children={ - {type="checkbox", name="depot_bypass", state=setting_flip(bits, SETTING_DISABLE_DEPOT_BYPASS), tooltip={"cybersyn-gui.depot-bypass-tooltip"}, actions={ - on_checked_state_changed={"setting-flip", comb.unit_number, SETTING_DISABLE_DEPOT_BYPASS} - }}, - {type="label", name="depot_bypass_label", style_mods={left_padding=3}, caption={"cybersyn-gui.depot-bypass-description"}}, - }}, - }}, - {type="flow", name="first", direction="vertical", style_mods={horizontal_align="left", right_margin=8}, children={ - {type="flow", name="allow_list", direction="horizontal", style_mods={vertical_align="center"}, children={ - {type="checkbox", name="allow_list", state=setting_flip(bits, SETTING_DISABLE_ALLOW_LIST), tooltip={"cybersyn-gui.allow-list-tooltip"}, actions={ - on_checked_state_changed={"setting-flip", comb.unit_number, SETTING_DISABLE_ALLOW_LIST} - }}, - {type="label", name="allow_list_label", style_mods={left_padding=3}, caption={"cybersyn-gui.allow-list-description"}}, - }}, - {type="flow", name="is_stack", direction="horizontal", style_mods={vertical_align="center"}, children={ - {type="checkbox", name="is_stack", state=setting(bits, SETTING_IS_STACK), tooltip={"cybersyn-gui.is-stack-tooltip"}, actions={ - on_checked_state_changed={"setting", comb.unit_number, SETTING_IS_STACK} - }}, - {type="label", name="is_stack_label", style_mods={left_padding=3}, caption={"cybersyn-gui.is-stack-description"}}, - }}, - }}, - {type="flow", name="enable_inactive", direction="horizontal", style_mods={vertical_align="center"}, children={ - {type="checkbox", name="enable_inactive", state=setting(bits, SETTING_ENABLE_INACTIVE), tooltip={"cybersyn-gui.enable-inactive-tooltip"}, actions={ - on_checked_state_changed={"setting", comb.unit_number, SETTING_ENABLE_INACTIVE} - }}, - {type="label", name="enable_inactive_label", style_mods={left_padding=3}, caption={"cybersyn-gui.enable-inactive-description"}}, - }}, - }} - }} - }} - }} - }) + if rootgui[COMBINATOR_NAME] then + rootgui[COMBINATOR_NAME].destroy() + player.play_sound({path = COMBINATOR_CLOSE_SOUND}) + end +end +---@param e EventData.on_gui_selection_state_changed +local function handle_drop_down(e) + local element = e.element + if not element then return end + local comb = global.to_comb[element.tags.id] + if not comb or not comb.valid then return end - window.preview.entity = comb - window.titlebar.drag_target = window.main_window - window.main_window.force_auto_center() + set_visibility(element.parent.parent.parent.parent, element.selected_index) - set_visibility(window.main_window, selected_index) - player.opened = window.main_window + if element.selected_index == 1 then + set_comb_operation(comb, MODE_PRIMARY_IO) + elseif element.selected_index == 2 then + set_comb_operation(comb, MODE_DEPOT) + --prevent the use of the each signal with depots + local network = element.parent.parent.bottom.network--[[@as LuaGuiElement]] + local signal = network.elem_value--[[@as SignalID]] + if signal.name == NETWORK_EACH then + network.elem_value = nil + set_comb_network_name(comb, nil) + end + elseif element.selected_index == 3 then + set_comb_operation(comb, MODE_REFUELER) + elseif element.selected_index == 4 then + set_comb_operation(comb, MODE_SECONDARY_IO) + elseif element.selected_index == 5 then + set_comb_operation(comb, MODE_WAGON) + else + return + end + + combinator_update(global, comb) +end +---@param e EventData.on_gui_switch_state_changed +local function handle_pr_switch(e) + local element = e.element + if not element then return end + local comb = global.to_comb[element.tags.id] + if not comb or not comb.valid then return end + + local is_pr_state = (element.switch_state == "none" and 0) or (element.switch_state == "left" and 1) or 2 + set_comb_is_pr_state(comb, is_pr_state) + + combinator_update(global, comb) +end +---@param e EventData.on_gui_elem_changed +local function handle_network(e) + local element = e.element + if not element then return end + local comb = global.to_comb[element.tags.id] + if not comb or not comb.valid then return end + + local signal = element.elem_value--[[@as SignalID]] + if signal and (signal.name == "signal-everything" or signal.name == "signal-anything" or signal.name == "signal-each") then + signal.name = NETWORK_EACH + element.elem_value = signal + end + set_comb_network_name(comb, signal) + + combinator_update(global, comb) +end +---@param e EventData.on_gui_checked_state_changed +local function handle_setting(e) + local element = e.element + if not element then return end + local comb = global.to_comb[element.tags.id] + if not comb or not comb.valid then return end + + set_comb_setting(comb, element.tags.bit--[[@as int]], element.state) + + combinator_update(global, comb) +end +---@param e EventData.on_gui_checked_state_changed +local function handle_setting_flip(e) + local element = e.element + if not element then return end + local comb = global.to_comb[element.tags.id] + if not comb or not comb.valid then return end + + set_comb_setting(comb, element.tags.bit--[[@as int]], not element.state) + + combinator_update(global, comb) end local function on_gui_opened(event) @@ -180,94 +180,103 @@ local function on_gui_closed(event) end end + function register_gui_actions() - flib_gui.hook_events(function(event) - local msg = flib_gui.read_action(event) - if msg then - local player = game.get_player(event.player_index) - if not player then return end - local rootgui = player.gui.screen - -- read the action to determine what to do - if msg[1] == "close" then - if rootgui[COMBINATOR_NAME] then - rootgui[COMBINATOR_NAME].destroy() - player.play_sound({path = COMBINATOR_CLOSE_SOUND}) - end - elseif msg[1] == "drop-down" then - local element = event.element - if not element then return end - local comb = global.to_comb[msg[2]] - if not comb or not comb.valid then return end - - set_visibility(rootgui[COMBINATOR_NAME], element.selected_index) - - if element.selected_index == 1 then - set_comb_operation(comb, MODE_PRIMARY_IO) - elseif element.selected_index == 2 then - set_comb_operation(comb, MODE_DEPOT) - --prevent the use of the each signal with depots - local network = element.parent.parent.bottom.network - local signal = network.elem_value - if signal.name == NETWORK_EACH then - network.elem_value = nil - set_comb_network_name(comb, nil) - end - elseif element.selected_index == 3 then - set_comb_operation(comb, MODE_REFUELER) - elseif element.selected_index == 4 then - set_comb_operation(comb, MODE_SECONDARY_IO) - elseif element.selected_index == 5 then - set_comb_operation(comb, MODE_WAGON) - else - return - end - - combinator_update(global, comb) - elseif msg[1] == "choose-elem-button" then - local element = event.element - if not element then return end - local comb = global.to_comb[msg[2]] - if not comb or not comb.valid then return end - - local signal = element.elem_value - if signal and (signal.name == "signal-everything" or signal.name == "signal-anything" or signal.name == "signal-each") then - signal.name = NETWORK_EACH - element.elem_value = signal - end - set_comb_network_name(comb, signal) - - combinator_update(global, comb) - elseif msg[1] == "setting" then - local element = event.element - if not element then return end - local comb = global.to_comb[msg[2]] - if not comb or not comb.valid then return end - - set_comb_setting(comb, msg[3], element.state) - - combinator_update(global, comb) - elseif msg[1] == "setting-flip" then - local element = event.element - if not element then return end - local comb = global.to_comb[msg[2]] - if not comb or not comb.valid then return end - - set_comb_setting(comb, msg[3], not element.state) - - combinator_update(global, comb) - elseif msg[1] == "is_pr_switch" then - local element = event.element - if not element then return end - local comb = global.to_comb[msg[2]] - if not comb or not comb.valid then return end - - local is_pr_state = (element.switch_state == "none" and 0) or (element.switch_state == "left" and 1) or 2 - set_comb_is_pr_state(comb, is_pr_state) - - combinator_update(global, comb) - end - end - end) - flib_event.register(defines.events.on_gui_opened, on_gui_opened) - flib_event.register(defines.events.on_gui_closed, on_gui_closed) + flib_gui.add_handlers({ + ["close"] = handle_close, + ["drop_down"] = handle_drop_down, + ["pr_switch"] = handle_pr_switch, + ["network"] = handle_network, + ["setting"] = handle_setting, + ["setting_flip"] = handle_setting_flip, + }) + script.on_event(defines.events.on_gui_opened, on_gui_opened) + script.on_event(defines.events.on_gui_closed, on_gui_closed) + flib_gui.handle_events() +end + +---@param comb LuaEntity +---@param player LuaPlayer +function gui_opened(comb, player) + combinator_update(global, comb, true) + + local rootgui = player.gui.screen + local selected_index, signal, switch_state, bits = get_comb_gui_settings(comb) + + local _, main_window = flib_gui.add(rootgui, { + {type="frame", direction="vertical", name=COMBINATOR_NAME, children={ + --title bar + {type="flow", name="titlebar", children={ + {type="label", style="frame_title", caption={"cybersyn-gui.combinator-title"}, elem_mods={ignored_by_interaction=true}}, + {type="empty-widget", style="flib_titlebar_drag_handle", elem_mods={ignored_by_interaction=true}}, + {type="sprite-button", style="frame_action_button", mouse_button_filter={"left"}, sprite="utility/close_white", hovered_sprite="utility/close_black", name=COMBINATOR_NAME, handler=handle_close, tags={id=comb.unit_number}} + }}, + {type="frame", name="frame", style="inside_shallow_frame_with_padding", style_mods={padding=12, bottom_padding=9}, children={ + {type="flow", name="vflow", direction="vertical", style_mods={horizontal_align="left"}, children={ + --status + {type="flow", style="status_flow", direction="horizontal", style_mods={vertical_align="center", horizontally_stretchable=true, bottom_padding=4}, children={ + {type="sprite", sprite=STATUS_SPRITES[comb.status] or STATUS_SPRITES_DEFAULT, style="status_image", style_mods={stretch_image_to_widget_size=true}}, + {type="label", caption={STATUS_NAMES[comb.status] or STATUS_NAMES_DEFAULT}} + }}, + --preview + {type="frame", name="preview_frame", style="deep_frame_in_shallow_frame", style_mods={minimal_width=0, horizontally_stretchable=true, padding=0}, children={ + {type="entity-preview", name="preview", style="wide_entity_button"}, + }}, + --drop down + {type="label", style="heading_3_label", caption={"cybersyn-gui.operation"}, style_mods={top_padding=8}}, + {type="flow", name="top", direction="horizontal", style_mods={vertical_align="center"}, children={ + {type="drop-down", style_mods={top_padding=3, right_margin=8}, handler=handle_drop_down, tags={id=comb.unit_number}, selected_index=selected_index, items={ + {"cybersyn-gui.comb1"}, + {"cybersyn-gui.depot"}, + {"cybersyn-gui.refueler"}, + {"cybersyn-gui.comb2"}, + {"cybersyn-gui.wagon-manifest"}, + }}, + {type="switch", name="is_pr_switch", allow_none_state=true, switch_state=switch_state, left_label_caption={"cybersyn-gui.switch-provide"}, right_label_caption={"cybersyn-gui.switch-request"}, left_label_tooltip={"cybersyn-gui.switch-provide-tooltip"}, right_label_tooltip={"cybersyn-gui.switch-request-tooltip"}, handler=handle_pr_switch, tags={id=comb.unit_number}}, + {type="flow", name="enable_slot_barring", direction="horizontal", style_mods={vertical_align="center", left_padding=6}, children={ + {type="checkbox", name="enable_slot_barring", state=setting(bits, SETTING_ENABLE_SLOT_BARRING), handler=handle_setting, tags={id=comb.unit_number, bit=SETTING_ENABLE_SLOT_BARRING}, tooltip={"cybersyn-gui.enable-slot-barring-tooltip"}}, + {type="label", name="enable_slot_barring_label", style_mods={left_padding=3}, caption={"cybersyn-gui.enable-slot-barring-description"}}, + }}, + }}, + ---choose-elem-button + {type="line", style_mods={top_padding=10}}, + {type="label", name="network_label", style="heading_3_label", caption={"cybersyn-gui.network"}, style_mods={top_padding=8}}, + {type="flow", name="bottom", direction="horizontal", style_mods={vertical_align="top"}, children={ + {type="choose-elem-button", name="network", style="slot_button_in_shallow_frame", elem_type="signal", tooltip={"cybersyn-gui.network-tooltip"}, signal=signal, style_mods={bottom_margin=1, right_margin=6, top_margin=2}, handler=handle_network, tags={id=comb.unit_number}}, + {type="flow", name="depot", direction="vertical", style_mods={horizontal_align="left"}, children={ + {type="flow", name="use_any_depot", direction="horizontal", style_mods={vertical_align="center"}, children={ + {type="checkbox", name="use_same_depot", state=setting_flip(bits, SETTING_USE_ANY_DEPOT), handler=handle_setting_flip, tags={id=comb.unit_number, bit=SETTING_USE_ANY_DEPOT}, tooltip={"cybersyn-gui.use-same-depot-tooltip"}}, + {type="label", name="use_same_depot_label", style_mods={left_padding=3}, caption={"cybersyn-gui.use-same-depot-description"}}, + }}, + {type="flow", name="depot_bypass", direction="horizontal", style_mods={vertical_align="center"}, children={ + {type="checkbox", name="depot_bypass", state=setting_flip(bits, SETTING_DISABLE_DEPOT_BYPASS), handler=handle_setting_flip, tags={id=comb.unit_number, bit=SETTING_DISABLE_DEPOT_BYPASS}, tooltip={"cybersyn-gui.depot-bypass-tooltip"}}, + {type="label", name="depot_bypass_label", style_mods={left_padding=3}, caption={"cybersyn-gui.depot-bypass-description"}}, + }}, + }}, + {type="flow", name="first", direction="vertical", style_mods={horizontal_align="left", right_margin=8}, children={ + {type="flow", name="allow_list", direction="horizontal", style_mods={vertical_align="center"}, children={ + {type="checkbox", name="allow_list", state=setting_flip(bits, SETTING_DISABLE_ALLOW_LIST), handler=handle_setting_flip, tags={id=comb.unit_number, bit=SETTING_DISABLE_ALLOW_LIST}, tooltip={"cybersyn-gui.allow-list-tooltip"}}, + {type="label", name="allow_list_label", style_mods={left_padding=3}, caption={"cybersyn-gui.allow-list-description"}}, + }}, + {type="flow", name="is_stack", direction="horizontal", style_mods={vertical_align="center"}, children={ + {type="checkbox", name="is_stack", state=setting(bits, SETTING_IS_STACK), handler=handle_setting, tags={id=comb.unit_number, bit=SETTING_IS_STACK}, tooltip={"cybersyn-gui.is-stack-tooltip"}}, + {type="label", name="is_stack_label", style_mods={left_padding=3}, caption={"cybersyn-gui.is-stack-description"}}, + }}, + }}, + {type="flow", name="enable_inactive", direction="horizontal", style_mods={vertical_align="center"}, children={ + {type="checkbox", name="enable_inactive", state=setting(bits, SETTING_ENABLE_INACTIVE), handler=handle_setting, tags={id=comb.unit_number, bit=SETTING_ENABLE_INACTIVE}, tooltip={"cybersyn-gui.enable-inactive-tooltip"}}, + {type="label", name="enable_inactive_label", style_mods={left_padding=3}, caption={"cybersyn-gui.enable-inactive-description"}}, + }}, + }} + }} + }} + }} + }) + + main_window.frame.vflow.preview_frame.preview.entity = comb + main_window.titlebar.drag_target = main_window + main_window.force_auto_center() + + set_visibility(main_window, selected_index) + player.opened = main_window end diff --git a/cybersyn/scripts/layout.lua b/cybersyn/scripts/layout.lua index e569f3a..a94cb2f 100644 --- a/cybersyn/scripts/layout.lua +++ b/cybersyn/scripts/layout.lua @@ -1,10 +1,11 @@ --By Mami -local area = require("__flib__.area") +local area = require("__flib__.bounding-box") local abs = math.abs local floor = math.floor local ceil = math.ceil local min = math.min local max = math.max +local bit_extract = bit32.extract ---@param layout_pattern (0|1|2|3)[] @@ -204,14 +205,15 @@ function set_p_wagon_combs(map_data, station, train) break end end - if carriage.type == "cargo-wagon" and item_i <= #manifest then + if carriage.type == "cargo-wagon" then local inv = carriage.get_inventory(defines.inventory.cargo_wagon) if inv then + ---@type ConstantCombinatorParameters local signals = {} local inv_filter_i = 1 local item_slots_capacity = max(ceil((#inv - locked_slots)*percent_slots_to_use_per_wagon), 1) - while item_slots_capacity > 0 do + while item_slots_capacity > 0 and item_i <= #manifest do local do_inc if item.type == "item" then local stack_size = get_stack_size(map_data, item.name) @@ -222,11 +224,13 @@ function set_p_wagon_combs(map_data, station, train) signals[i] = {index = i, signal = {type = item.type, name = item.name}, count = sign*count_to_fill} item_count = item_count - count_to_fill item_slots_capacity = item_slots_capacity - slots_to_fill - for j = 1, slots_to_fill do - inv.set_filter(inv_filter_i, item.name) - inv_filter_i = inv_filter_i + 1 + if comb then + for j = 1, slots_to_fill do + inv.set_filter(inv_filter_i, item.name) + inv_filter_i = inv_filter_i + 1 + end + train.has_filtered_wagon = true end - train.has_filtered_wagon = true do_inc = item_count == 0 else do_inc = true @@ -243,14 +247,18 @@ function set_p_wagon_combs(map_data, station, train) end if comb then + if bit_extract(get_comb_params(comb).second_constant, SETTING_ENABLE_SLOT_BARRING) > 0 then + inv.set_bar(inv_filter_i--[[@as uint]]) + train.has_filtered_wagon = true + end set_combinator_output(map_data, comb, signals) end end - elseif carriage.type == "fluid-wagon" and fluid_i <= #manifest then + elseif carriage.type == "fluid-wagon" then local fluid_capacity = carriage.prototype.fluid_capacity local signals = {} - while fluid_capacity > 0 do + while fluid_capacity > 0 and fluid_i <= #manifest do local do_inc if fluid.type == "fluid" then local count_to_fill = min(fluid_count, fluid_capacity) diff --git a/cybersyn/scripts/main.lua b/cybersyn/scripts/main.lua index 333ddba..abe9d72 100644 --- a/cybersyn/scripts/main.lua +++ b/cybersyn/scripts/main.lua @@ -189,12 +189,9 @@ local function search_for_station_combinator(map_data, stop, comb_operation, com {pos_x - 2, pos_y - 2}, {pos_x + 2, pos_y + 2} } - local entities = stop.surface.find_entities(search_area) + local entities = stop.surface.find_entities_filtered({area = search_area, name = COMBINATOR_NAME}) for _, entity in pairs(entities) do - if - entity.valid and entity.name == COMBINATOR_NAME and - entity ~= comb_forbidden and map_data.to_stop[entity.unit_number] == stop - then + if entity.valid and entity ~= comb_forbidden and map_data.to_stop[entity.unit_number] == stop then local param = get_comb_params(entity) if param.operation == comb_operation then return entity @@ -223,7 +220,7 @@ local function on_combinator_built(map_data, comb) end local stop = nil local rail = nil - local entities = comb.surface.find_entities(search_area) + local entities = comb.surface.find_entities_filtered({area = search_area, name = {"train-stop", "straight-rail"}}) for _, cur_entity in pairs(entities) do if cur_entity.valid then if cur_entity.name == "train-stop" then @@ -325,7 +322,7 @@ function on_combinator_broken(map_data, comb) if station then if station.entity_comb1 == comb then on_station_broken(map_data, id, station) - on_stop_built(map_data, stop, comb) + on_stop_built_or_updated(map_data, stop, comb) elseif station.entity_comb2 == comb then station.entity_comb2 = search_for_station_combinator(map_data, stop, MODE_SECONDARY_IO, comb) end @@ -334,13 +331,13 @@ function on_combinator_broken(map_data, comb) if depot then if depot.entity_comb == comb then on_depot_broken(map_data, id, depot) - on_stop_built(map_data, stop, comb) + on_stop_built_or_updated(map_data, stop, comb) end else local refueler = map_data.refuelers[id] if refueler and refueler.entity_comb == comb then on_refueler_broken(map_data, id, refueler) - on_stop_built(map_data, stop, comb) + on_stop_built_or_updated(map_data, stop, comb) end end end @@ -468,7 +465,8 @@ end ---@param map_data MapData ---@param stop LuaEntity ---@param comb_forbidden LuaEntity? -function on_stop_built(map_data, stop, comb_forbidden) +function on_stop_built_or_updated(map_data, stop, comb_forbidden) + --NOTE: this stop must not be a part of any station before entering this function local pos_x = stop.position.x local pos_y = stop.position.y @@ -480,20 +478,24 @@ function on_stop_built(map_data, stop, comb_forbidden) local comb1 = nil local depot_comb = nil local refueler_comb = nil - local entities = stop.surface.find_entities(search_area) + local entities = stop.surface.find_entities_filtered({area = search_area, name = COMBINATOR_NAME}) for _, entity in pairs(entities) do - if entity.valid and entity ~= comb_forbidden and entity.name == COMBINATOR_NAME and map_data.to_stop[entity.unit_number] == nil then - map_data.to_stop[entity.unit_number] = stop - local param = get_comb_params(entity) - local op = param.operation - if op == MODE_PRIMARY_IO then - comb1 = entity - elseif op == MODE_SECONDARY_IO then - comb2 = entity - elseif op == MODE_DEPOT then - depot_comb = entity - elseif op == MODE_REFUELER then - refueler_comb = entity + if entity.valid and entity ~= comb_forbidden then + local id = entity.unit_number--[[@as uint]] + local adj_stop = map_data.to_stop[id] + if adj_stop == nil or adj_stop == stop then + map_data.to_stop[id] = stop + local param = get_comb_params(entity) + local op = param.operation + if op == MODE_PRIMARY_IO then + comb1 = entity + elseif op == MODE_SECONDARY_IO then + comb2 = entity + elseif op == MODE_DEPOT then + depot_comb = entity + elseif op == MODE_REFUELER then + refueler_comb = entity + end end end end @@ -515,7 +517,7 @@ local function on_stop_broken(map_data, stop) {pos_x - 2, pos_y - 2}, {pos_x + 2, pos_y + 2} } - local entities = stop.surface.find_entities(search_area) + local entities = stop.surface.find_entities_filtered({area = search_area, name = COMBINATOR_NAME}) for _, entity in pairs(entities) do if entity.valid and map_data.to_stop[entity.unit_number] == stop then map_data.to_stop[entity.unit_number] = nil @@ -592,7 +594,7 @@ local function on_built(event) if not entity or not entity.valid then return end if entity.name == "train-stop" then - on_stop_built(global, entity) + on_stop_built_or_updated(global, entity) elseif entity.name == COMBINATOR_NAME then on_combinator_built(global, entity) elseif entity.type == "inserter" then @@ -778,6 +780,7 @@ end local function grab_all_settings() + mod_settings.enable_planner = settings.global["cybersyn-enable-planner"].value --[[@as boolean]] mod_settings.tps = settings.global["cybersyn-ticks-per-second"].value --[[@as double]] mod_settings.update_rate = settings.global["cybersyn-update-rate"].value --[[@as int]] mod_settings.r_threshold = settings.global["cybersyn-request-threshold"].value--[[@as int]] @@ -845,6 +848,15 @@ local function main() script.on_event(defines.events.on_entity_settings_pasted, on_paste) + script.on_event(defines.events.on_train_created, on_train_built) + script.on_event(defines.events.on_train_changed_state, on_train_changed) + + script.on_event(defines.events.on_entity_renamed, on_rename) + + script.on_event(defines.events.on_runtime_mod_setting_changed, on_settings_changed) + + register_gui_actions() + if mod_settings.tps > DELTA then local nth_tick = ceil(60/mod_settings.tps)--[[@as uint]]; script.on_nth_tick(nth_tick, function() @@ -854,14 +866,11 @@ local function main() script.on_nth_tick(nil) end - script.on_event(defines.events.on_train_created, on_train_built) - script.on_event(defines.events.on_train_changed_state, on_train_changed) - - script.on_event(defines.events.on_entity_renamed, on_rename) - - script.on_event(defines.events.on_runtime_mod_setting_changed, on_settings_changed) - - register_gui_actions() + script.on_event("cybersyn-toggle-planner", function(event) + local setting = settings.global["cybersyn-enable-planner"] + setting.value = not setting.value + settings.global["cybersyn-enable-planner"] = setting + end) script.on_init(function() local setting = settings.global["cybersyn-invert-sign"] diff --git a/cybersyn/scripts/migrations.lua b/cybersyn/scripts/migrations.lua index bdfae65..97b2e37 100644 --- a/cybersyn/scripts/migrations.lua +++ b/cybersyn/scripts/migrations.lua @@ -185,13 +185,15 @@ local migrations_table = { for train_id, train in pairs(map_data.trains) do train.depot_id = train.parked_at_depot_id if not train.depot_id then - local e = get_any_train_entity(train.entity) - local stops = e.force.get_train_stops({name = train.depot_name, surface = e.surface}) - for stop in rnext_consume, stops do - local new_depot_id = stop.unit_number - if map_data.depots[new_depot_id] then - train.depot_id = new_depot_id--[[@as uint]] - break + if train.entity.valid then + local e = get_any_train_entity(train.entity) + local stops = e.force.get_train_stops({name = train.depot_name, surface = e.surface}) + for stop in rnext_consume, stops do + local new_depot_id = stop.unit_number + if map_data.depots[new_depot_id] then + train.depot_id = new_depot_id--[[@as uint]] + break + end end end end @@ -200,7 +202,9 @@ local migrations_table = { end if not train.depot_id then train.entity.manual_mode = true - send_alert_depot_of_train_broken(map_data, train.entity) + if train.entity.valid then + send_alert_depot_of_train_broken(map_data, train.entity) + end local layout_id = train.layout_id local count = global.layout_train_count[layout_id] if count <= 1 then diff --git a/cybersyn/scripts/remote-interface.lua b/cybersyn/scripts/remote-interface.lua index 1f5bf73..169889f 100644 --- a/cybersyn/scripts/remote-interface.lua +++ b/cybersyn/scripts/remote-interface.lua @@ -115,6 +115,7 @@ end --[[helper functions]] ------------------------------------------------------------------ --NOTE: the policy of cybersyn is to give modders access to as much of the raw data of the mod as possible. Factorio only allows me to return copies of the original data rather than the actual thing, which sucks. The unsafe api has some tools to help you bypass this limitation. +--Some of these functions are so simplistic I'd recommend not even using them and just copy-pasting their internal code. function interface.get_mod_settings() return mod_settings @@ -246,12 +247,13 @@ end --[[unsafe API]] ------------------------------------------------------------------ --NOTE: The following functions can cause serious longterm damage to someone's world if they are given bad parameters. Please refer to global.lua for type information. Use caution. +--If there is any useful function missing from this API I'd be happy to add it. Join the Cybersyn discord to request it be added. ---@param value any ---@param ... string|int function interface.write_global(value, ...) --this can write anything into cybersyn's map_data, please be very careful with anything you write, it can cause permanent damage - --so interface.read_global(nil, "trains", 31415, "manifest") will cause global.trains[31415].manifest = nil (or return false if train 31415 does not exist) + --so interface.write_global(nil, "trains", 31415, "manifest") will cause global.trains[31415].manifest = nil (or return false if train 31415 does not exist) local params = {...} local size = #params local key = params[size] @@ -271,7 +273,7 @@ end function interface.remove_manifest_from_station_deliveries(station_id, manifest, sign) local station = global.stations[station_id] assert(station) - remove_manifest(global, station, manifest, sign) + return remove_manifest(global, station, manifest, sign) end ---@param r_station_id uint ---@param p_station_id uint @@ -279,7 +281,7 @@ end function interface.create_manifest(r_station_id, p_station_id, train_id) local train = global.trains[train_id] assert(global.stations[r_station_id] and global.stations[p_station_id] and train and train.is_available) - create_manifest(global, r_station_id, p_station_id, train_id) + return create_manifest(global, r_station_id, p_station_id, train_id) end ---@param r_station_id uint ---@param p_station_id uint @@ -288,19 +290,19 @@ end function interface.create_delivery(r_station_id, p_station_id, train_id, manifest) local train = global.trains[train_id] assert(global.stations[r_station_id] and global.stations[p_station_id] and train and train.is_available and manifest) - create_delivery(global, r_station_id, p_station_id, train_id, manifest) + return create_delivery(global, r_station_id, p_station_id, train_id, manifest) end ---@param train_id uint function interface.fail_delivery(train_id) local train = global.trains[train_id] assert(train) - on_failed_delivery(global, train_id, train) + return on_failed_delivery(global, train_id, train) end ---@param train_id uint function interface.remove_train(train_id) local train = global.trains[train_id] assert(train) - remove_train(global, train_id, train) + return remove_train(global, train_id, train) end ---@param train_id uint @@ -320,14 +322,14 @@ function interface.add_available_train_to_depot(train_id, depot_id) local train = global.trains[train_id] local depot = global.depots[depot_id] assert(train and depot) - add_available_train_to_depot(global, mod_settings, train_id, train, depot_id, depot) + return add_available_train_to_depot(global, mod_settings, train_id, train, depot_id, depot) end ---@param train_id uint function interface.remove_available_train(train_id) --this function removes a train from the available trains list so it cannot be rescheduled and dispatched. if the train was not already available nothing will happen local train = global.trains[train_id] assert(train) - remove_available_train(global, train_id, train) + return remove_available_train(global, train_id, train) end ------------------------------------------------------------------ diff --git a/cybersyn/scripts/train-events.lua b/cybersyn/scripts/train-events.lua index be043f0..b1afc4d 100644 --- a/cybersyn/scripts/train-events.lua +++ b/cybersyn/scripts/train-events.lua @@ -52,11 +52,12 @@ function on_failed_delivery(map_data, train_id, train) train.has_filtered_wagon = nil for carriage_i, carriage in ipairs(train.entity.cargo_wagons) do local inv = carriage.get_inventory(defines.inventory.cargo_wagon) - if inv and inv.is_filtered() then + if inv then ---@type uint - for i = 1, #inv do + for i = 1, inv.get_bar() - 1 do inv.set_filter(i, nil) end + inv.set_bar() end end end @@ -211,38 +212,19 @@ end ---@param train_id uint ---@param train Train local function on_train_arrives_station(map_data, station_id, train_id, train) - if train.manifest then - ---@type uint - if train.status == STATUS_TO_P then - if train.p_station_id == station_id then - train.status = STATUS_P - local station = map_data.stations[station_id] - set_comb1(map_data, station, train.manifest, mod_settings.invert_sign and 1 or -1) - set_p_wagon_combs(map_data, station, train) - interface_raise_train_status_changed(train_id, STATUS_TO_P, STATUS_P) - end - elseif train.status == STATUS_TO_R then - if train.r_station_id == station_id then - train.status = STATUS_R - local station = map_data.stations[station_id] - set_comb1(map_data, station, train.manifest, mod_settings.invert_sign and -1 or 1) - set_r_wagon_combs(map_data, station, train) - interface_raise_train_status_changed(train_id, STATUS_TO_R, STATUS_R) - end - elseif train.status == STATUS_P and train.p_station_id == station_id then - --this is player intervention that is considered valid - elseif (train.status == STATUS_R or train.status == STATUS_TO_D or train.status == STATUS_TO_D_BYPASS) and train.r_station_id == station_id then - --this is player intervention that is considered valid - elseif mod_settings.react_to_train_at_incorrect_station then - on_failed_delivery(map_data, train_id, train) - remove_train(map_data, train_id, train) - lock_train(train.entity) - send_alert_train_at_incorrect_station(map_data, train.entity) - end - elseif mod_settings.react_to_train_at_incorrect_station then - --train is lost somehow, probably from player intervention - remove_train(map_data, train_id, train) - send_alert_train_at_incorrect_station(map_data, train.entity) + ---@type uint + if train.status == STATUS_TO_P then + train.status = STATUS_P + local station = map_data.stations[station_id] + set_comb1(map_data, station, train.manifest, mod_settings.invert_sign and 1 or -1) + set_p_wagon_combs(map_data, station, train) + interface_raise_train_status_changed(train_id, STATUS_TO_P, STATUS_P) + elseif train.status == STATUS_TO_R then + train.status = STATUS_R + local station = map_data.stations[station_id] + set_comb1(map_data, station, train.manifest, mod_settings.invert_sign and -1 or 1) + set_r_wagon_combs(map_data, station, train) + interface_raise_train_status_changed(train_id, STATUS_TO_R, STATUS_R) end end @@ -274,11 +256,12 @@ local function on_train_leaves_stop(map_data, mod_settings, train_id, train) train.has_filtered_wagon = nil for carriage_i, carriage in ipairs(train.entity.cargo_wagons) do local inv = carriage.get_inventory(defines.inventory.cargo_wagon) - if inv and inv.is_filtered() then + if inv then ---@type uint - for i = 1, #inv do + for i = 1, inv.get_bar() - 1 do inv.set_filter(i, nil) end + inv.set_bar() end end end @@ -426,19 +409,21 @@ function on_train_built(event) end end function on_train_changed(event) + ---@type MapData + local map_data = global local train_e = event.train--[[@as LuaTrain]] if not train_e.valid then return end local train_id = train_e.id - if global.active_alerts then + if map_data.active_alerts then --remove the alert if the train is interacted with at all - local data = global.active_alerts[train_id] + local data = map_data.active_alerts[train_id] if data then --we need to wait for the train to come to a stop from being locked - if data[3] + 10*mod_settings.tps < global.total_ticks then - global.active_alerts[train_id] = nil - if next(global.active_alerts) == nil then - global.active_alerts = nil + if data[3] + 10*mod_settings.tps < map_data.total_ticks then + map_data.active_alerts[train_id] = nil + if next(map_data.active_alerts) == nil then + map_data.active_alerts = nil end end end @@ -448,24 +433,48 @@ function on_train_changed(event) local stop = train_e.station if stop and stop.valid and stop.name == "train-stop" then local id = stop.unit_number--[[@as uint]] - if global.stations[id] then - local train = global.trains[train_id] - if train then - on_train_arrives_station(global, id, train_id, train) - end - elseif global.depots[id] then - on_train_arrives_depot(global, id, train_e) - elseif global.refuelers[id] then - local train = global.trains[train_id] - if train then - on_train_arrives_refueler(global, id, train_id, train) + if map_data.depots[id] then + on_train_arrives_depot(map_data, id, train_e) + end + else + local train = map_data.trains[train_id] + if train then + local schedule = train_e.schedule + if schedule then + local rail = schedule.records[schedule.current].rail + if rail then + local id, station, is_station + if train.status == STATUS_TO_P then + id = train.p_station_id + station = map_data.stations[id] + is_station = true + elseif train.status == STATUS_TO_R then + id = train.r_station_id + station = map_data.stations[id] + is_station = true + elseif train.status == STATUS_TO_F then + id = train.refueler_id + station = map_data.refuelers[id] + is_station = false + end + if id and station.entity_stop.connected_rail == rail then + if is_station then + on_train_arrives_station(map_data, id, train_id, train) + else + on_train_arrives_refueler(map_data, id, train_id, train) + end + end + end end end end elseif event.old_state == defines.train_state.wait_station then - local train = global.trains[train_id] - if train then - on_train_leaves_stop(global, mod_settings, train_id, train) + local path = train_e.path + if path and path.total_distance > 4 then + local train = map_data.trains[train_id] + if train then + on_train_leaves_stop(map_data, mod_settings, train_id, train) + end end end end diff --git a/cybersyn/settings.lua b/cybersyn/settings.lua index 447eb13..91b6ac7 100644 --- a/cybersyn/settings.lua +++ b/cybersyn/settings.lua @@ -1,9 +1,16 @@ --By Mami data:extend({ + { + type = "bool-setting", + name = "cybersyn-enable-planner", + order = "aa", + setting_type = "runtime-global", + default_value = true, + }, { type = "double-setting", name = "cybersyn-ticks-per-second", - order = "aa", + order = "ab", setting_type = "runtime-global", default_value = 30, minimum_value = 0, @@ -12,7 +19,7 @@ data:extend({ { type = "int-setting", name = "cybersyn-update-rate", - order = "ab", + order = "ac", setting_type = "runtime-global", default_value = 2, minimum_value = 1,