From f5d548e709376da7cb7cf029d8a6bf1080d76fde Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Sun, 29 Dec 2024 14:04:13 +0900 Subject: [PATCH 001/176] . --- .gitignore | 5 + README.md | 34 +- exp_legacy/module/config/_file_loader.lua | 10 +- exp_legacy/module/config/advanced_start.lua | 43 +-- exp_legacy/module/config/bonus.lua | 132 ++++---- exp_legacy/module/config/discord_alerts.lua | 23 +- .../config/expcore/permission_groups.lua | 32 +- exp_legacy/module/config/expcore/roles.lua | 319 +++++++++--------- exp_legacy/module/config/join_messages.lua | 6 - exp_legacy/module/config/spawn_area.lua | 206 +++-------- exp_legacy/module/config/vlayer.lua | 79 +++-- exp_legacy/module/locale/en/data.cfg | 2 +- exp_legacy/module/locale/en/expcore.cfg | 2 +- exp_legacy/module/locale/en/gui.cfg | 36 +- exp_legacy/module/locale/zh-CN/addons.cfg | 22 +- exp_legacy/module/locale/zh-CN/data.cfg | 4 +- exp_legacy/module/locale/zh-CN/gui.cfg | 37 +- exp_legacy/module/locale/zh-TW/addons.cfg | 22 +- exp_legacy/module/locale/zh-TW/data.cfg | 4 +- exp_legacy/module/locale/zh-TW/gui.cfg | 36 +- .../module/modules/addons/compilatron.lua | 4 +- exp_legacy/module/modules/control/vlayer.lua | 26 +- exp_legacy/module/modules/gui/vlayer.lua | 42 +-- 23 files changed, 532 insertions(+), 594 deletions(-) diff --git a/.gitignore b/.gitignore index 1ae60152..88ffb62e 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,8 @@ node_modules/ package-lock.json pnpm-lock.yaml .vscode +exp_util/node-compile-cache/ +exp_commands/node-compile-cache/ +exp_groups/node-compile-cache/ +exp_legacy/node-compile-cache/ +exp_scenario/node-compile-cache/ diff --git a/README.md b/README.md index 83c95cb1..85dad859 100644 --- a/README.md +++ b/README.md @@ -1,17 +1,20 @@

logo
- - Release + + Release - - Downloads + + Downloads - - Star + + Star - - Fork + + Fork + + + CodeFactor Discord @@ -25,9 +28,9 @@ Explosive Gaming (often ExpGaming) is a server hosting community with a strong f ## Installation -This is a plugin collection for [Clusterio](https://github.com/clusterio/clusterio) which implements all our scenario features. +This is a plugin collection for [Clusterio](https://github.com/clusterio/clusterio) which provides all our scenario features. -To use this plugin you must have a clusterio instance running, see [here](https://github.com/clusterio/clusterio?tab=readme-ov-file#installation) for clusterio installation instructions. +To use this plugin you must already have a clusterio instance running, see [here](https://github.com/clusterio/clusterio?tab=readme-ov-file#installation) for clusterio installation instructions. This module is currently not published and therefore can not be installed via `npm`. Instead follow the steps for [building from source](#building-from-source) @@ -35,8 +38,8 @@ This module is currently not published and therefore can not be installed via `n 1) Create a `external_plugins` directory within your clusterio instance. 2) Clone this repository into that directory: `git clone https://github.com/explosivegaming/ExpCluster` -3) Install the package dev dependencies: `pnpm install` (`pnpm` is recommended over `npm`) -4) Add supported plugins will be loaded on next controller / host restart. +3) Install the package dev dependencies: `pnpm install` +4) Add the plugins to your clusterio instance such as: `npx clusteriocontroller plugin add ./external_plugins/ExpCluster/exp_groups` ## Contributing @@ -68,7 +71,7 @@ See [Contributing](CONTRIBUTING.md) for how to make pull requests and issues. | [1.0][s1.0] | Modulation | [0.15][f0.15] | | [0.1][s0.1] | First Tracked Version | [0.14][f0.14] | -\* Scenario patch releases have been omitted and can be found [here](https://github.com/explosivegaming/scenario/releases). +\* Scenario patch releases have been omitted and can be found [here][releases]. \*\* Factorio versions show the version they were made for, often the minimum requirement to run the scenario. @@ -119,6 +122,11 @@ See [Contributing](CONTRIBUTING.md) for how to make pull requests and issues. The Explosive Gaming codebase is licensed under the [MIT](LICENSE) +[stable-dl]: https://github.com/explosivegaming/scenario/archive/master.zip +[experimental-dl]: https://github.com/explosivegaming/scenario/archive/dev.zip +[releases]: https://github.com/explosivegaming/scenario/releases [factorio]: https://factorio.com +[docs]: https://explosivegaming.github.io/scenario +[issues]: https://github.com/explosivegaming/scenario/issues/new/choose [website]: https://explosivegaming.nl [discord]: https://discord.explosivegaming.nl diff --git a/exp_legacy/module/config/_file_loader.lua b/exp_legacy/module/config/_file_loader.lua index 9e72d522..3ab87539 100644 --- a/exp_legacy/module/config/_file_loader.lua +++ b/exp_legacy/module/config/_file_loader.lua @@ -13,9 +13,9 @@ return { "modules.addons.advanced-start", "modules.addons.spawn-area", "modules.addons.compilatron", - "modules.addons.scorched-earth", - "modules.addons.pollution-grading", - "modules.addons.station-auto-name", + --"modules.addons.scorched-earth", + --"modules.addons.pollution-grading", + --"modules.addons.station-auto-name", "modules.addons.discord-alerts", "modules.addons.chat-reply", "modules.addons.tree-decon", @@ -44,8 +44,8 @@ return { --- GUI "modules.gui.readme", - "modules.gui.rocket-info", - "modules.gui.science-info", + -- "modules.gui.rocket-info", + -- "modules.gui.science-info", "modules.gui.autofill", "modules.gui.warp-list", "modules.gui.task-list", diff --git a/exp_legacy/module/config/advanced_start.lua b/exp_legacy/module/config/advanced_start.lua index 6653d06b..cbbfe84a 100644 --- a/exp_legacy/module/config/advanced_start.lua +++ b/exp_legacy/module/config/advanced_start.lua @@ -25,6 +25,7 @@ end --- Use to make a split point for the number of items given based on amount made -- ['firearm-magazine']=cutoff_amount_made(100, 10, 0) -- give 10 items until 100 items have been made +--[[ local function cutoff_amount_made(amount, before, after) return function(amount_made, items_made, player) if amount_made < amount then @@ -34,9 +35,11 @@ local function cutoff_amount_made(amount, before, after) end end end +]] --- Same as above but will not give any items if x amount has been made of another item, useful for tiers -- ['light-armor']=cutoff_amount_made_unless(5, 0,1,'heavy-armor',5) -- give light armor once 5 have been made unless 5 heavy armor has been made +--[[ local function cutoff_amount_made_unless(amount, before, after, second_item, second_amount) return function(amount_made, items_made, player) if items_made(second_item) < second_amount then @@ -50,9 +53,11 @@ local function cutoff_amount_made_unless(amount, before, after, second_item, sec end end end +]] -- Use for mass production items where you want the amount to change based on the amount already made -- ['iron-plate']=scale_amount_made(5*minutes, 10, 10) -- for first 5 minutes give 10 items then after apply a factor of 10 +--[[ local function scale_amount_made(amount, before, scalar) return function(amount_made, items_made, player) if amount_made < amount then @@ -62,6 +67,7 @@ local function scale_amount_made(amount, before, scalar) end end end +]] --[[ Common values @@ -79,33 +85,28 @@ return { enemy_expansion = false, --- @setting enemy_expansion a catch all for in case the map settings file fails to load chart_radius = 10 * 32, --- @setting chart_radius the number of tiles that will be charted when the map starts items = { --- @setting items items and there condition for being given - -- ['item-name'] = function(amount_made, production_stats, player) return end -- 0 means no items given - -- Plates - ["iron-plate"] = scale_amount_made(100, 10, 10), - ["copper-plate"] = scale_amount_made(100, 0, 8), - ["steel-plate"] = scale_amount_made(100, 0, 4), - -- Secondary Items - ["electronic-circuit"] = scale_amount_made(1000, 0, 6), - ["iron-gear-wheel"] = scale_amount_made(1000, 0, 6), - -- Starting Items - ["burner-mining-drill"] = cutoff_time(10 * minutes, 4, 0), - ["stone-furnace"] = cutoff_time(10 * minutes, 4, 0), - -- Armor - ["light-armor"] = cutoff_amount_made_unless(5, 0, 1, "heavy-armor", 5), - ["heavy-armor"] = cutoff_amount_made(5, 0, 1), - -- Weapon - ["pistol"] = cutoff_amount_made_unless(0, 1, 1, "submachine-gun", 5), - ["submachine-gun"] = cutoff_amount_made(5, 0, 1), - -- Ammo - ["firearm-magazine"] = cutoff_amount_made_unless(100, 10, 0, "piercing-rounds-magazine", 100), - ["piercing-rounds-magazine"] = cutoff_amount_made(100, 0, 10), - --[[ + ['iron-ore']=cutoff_time(20 * minutes, 80, 0), + ['stone']=cutoff_time(20 * minutes, 20, 0), + ['coal']=cutoff_time(20 * minutes, 20, 0), + -- ['burner-mining-drill']=cutoff_time(20 * minutes, 8, 0), + -- ['stone-furnace']=cutoff_time(20 * minutes, 8, 0), + ['submachine-gun'] = 1, + ['piercing-rounds-magazine'] = 20, ['construction-robot'] = 10, ['modular-armor'] = 1, ['solar-panel-equipment'] = 16, ['belt-immunity-equipment'] = 1, ['battery-equipment'] = 2, ['personal-roboport-equipment'] = 1 + --[[ + ['construction-robot'] = 50, + ['spidertron'] = 1, + ['spidertron-remote'] = 1, + ['modular-armor'] = 1, + ['solar-panel-equipment'] = 60, + ['belt-immunity-equipment'] = 1, + ['battery-equipment'] = 6, + ['personal-roboport-equipment'] = 5 ]] } } diff --git a/exp_legacy/module/config/bonus.lua b/exp_legacy/module/config/bonus.lua index 7c9289a4..78a0881d 100644 --- a/exp_legacy/module/config/bonus.lua +++ b/exp_legacy/module/config/bonus.lua @@ -10,96 +10,108 @@ return { Base point is equal to the amount of standard value in each parameter. CMMS CRS CCS CISB CHB CRDB PBR - STD 30 90 32 20 16 12 60 - = 260 + STD 20 60 24 12 8 8 40 + = 172 - MAX 60 180 64 40 32 24 120 - = 480 + MAX 40 120 48 24 16 16 80 + = 344 ]] pts = { - base = 260, + rate = { + ['Senior Administrator'] = 1.5, + ['Administrator'] = 1.4, + ['Senior Moderator'] = 1.3, + ['Moderator'] = 1.2, + ['Trainee Moderator'] = 1.2, + ['Board Member'] = 1.1, + ['Supporter'] = 1.1, + ['Partner'] = 1.1, + ['Senior Member'] = 1.1, + ['Member'] = 1 + }, + base = 172 }, gui_display_width = { half = 150, label = 70, slider = 180, - count = 50, + count = 50 }, conversion = { - ["cmms"] = "character_mining_speed_modifier", - ["crs"] = "character_running_speed_modifier", - ["ccs"] = "character_crafting_speed_modifier", - ["cisb"] = "character_inventory_slots_bonus", - ["chb"] = "character_health_bonus", - ["crdb"] = "character_reach_distance_bonus", + ['cmms'] = 'character_mining_speed_modifier', + ['crs'] = 'character_running_speed_modifier', + ['ccs'] = 'character_crafting_speed_modifier', + ['cisb'] = 'character_inventory_slots_bonus', + ['chb'] = 'character_health_bonus', + ['crdb'] = 'character_reach_distance_bonus', --[[ ['cpdb'] = 'character_item_pickup_distance_bonus' ]] }, player_special_bonus_rate = 300, player_special_bonus = { - ["personal_battery_recharge"] = { + ['personal_battery_recharge'] = { -- 1 MW - value = 6, - max = 12, - scale = 1, - cost_scale = 4, - cost = 40, - is_percentage = false, - }, - }, - player_bonus = { - ["character_mining_speed_modifier"] = { - value = 3, - max = 6, + value = 4, + max = 8, scale = 0.5, cost_scale = 1, cost = 10, - is_percentage = true, + is_percentage = false + } + }, + player_bonus = { + ['character_mining_speed_modifier'] = { + value = 2, + max = 4, + scale = 0.5, + cost_scale = 1, + cost = 10, + is_percentage = true }, - ["character_running_speed_modifier"] = { - value = 1.5, - max = 3, + ['character_running_speed_modifier'] = { + value = 1, + max = 2, scale = 0.25, cost_scale = 1, cost = 60, - is_percentage = true, + is_percentage = true }, - ["character_crafting_speed_modifier"] = { - value = 8, - max = 16, - scale = 1, + ['character_crafting_speed_modifier'] = { + value = 6, + max = 12, + scale = 0.5, cost_scale = 1, cost = 4, - is_percentage = true, + is_percentage = true }, - ["character_inventory_slots_bonus"] = { - value = 100, - max = 200, - scale = 10, + ['character_inventory_slots_bonus'] = { + value = 60, + max = 120, + scale = 5, cost_scale = 10, cost = 2, - is_percentage = false, + is_percentage = false }, - ["character_health_bonus"] = { - value = 200, - max = 400, - scale = 50, - cost_scale = 50, - cost = 4, - is_percentage = false, + ['character_health_bonus'] = { + value = 100, + max = 200, + scale = 25, + cost_scale = 25, + cost = 2, + is_percentage = false }, - ["character_reach_distance_bonus"] = { - value = 12, - max = 24, + ['character_reach_distance_bonus'] = { + value = 8, + max = 16, scale = 2, cost_scale = 1, cost = 1, is_percentage = false, combined_bonus = { - "character_resource_reach_distance_bonus", - "character_build_distance_bonus", - }, + 'character_resource_reach_distance_bonus', + 'character_build_distance_bonus' + } }, --[[ ['character_item_pickup_distance_bonus'] = { @@ -190,29 +202,29 @@ return { is_percentage = false }, ]] - ["worker_robots_battery_modifier"] = { + ['worker_robots_battery_modifier'] = { value = 1, max = 1, scale = 1, cost_scale = 1, cost = 1, - is_percentage = false, + is_percentage = false }, - ["worker_robots_storage_bonus"] = { + ['worker_robots_storage_bonus'] = { value = 1, max = 1, scale = 1, cost_scale = 1, cost = 1, - is_percentage = false, + is_percentage = false }, - ["following_robots_lifetime_modifier"] = { + ['following_robots_lifetime_modifier'] = { value = 1, max = 1, scale = 1, cost_scale = 1, cost = 1, - is_percentage = false, + is_percentage = false }, --[[ ['character_item_pickup_distance_bonus'] = { @@ -316,5 +328,5 @@ return { is_percentage = false } ]] - }, + } } diff --git a/exp_legacy/module/config/discord_alerts.lua b/exp_legacy/module/config/discord_alerts.lua index 11dfb6a8..be19c6e2 100644 --- a/exp_legacy/module/config/discord_alerts.lua +++ b/exp_legacy/module/config/discord_alerts.lua @@ -11,15 +11,16 @@ return { player_kicks = true, player_promotes = false, player_jail = true, - ["config"] = true, - ["purge"] = true, - ["c"] = true, - ["command"] = true, - ["silent-command"] = true, - ["measured-command"] = true, - ["banlist"] = true, - ["permissions"] = true, - ["editor"] = true, - ["cheat"] = true, - ["open"] = false, + ['config']=false, + ['purge']=false, + ['c']=false, + ['sc']=false, + ['command']=false, + ['silent-command']=false, + ['measured-command']=false, + ['banlist']=false, + ['permissions']=false, + ['editor']=false, + ['cheat']=false, + ['open']=false } diff --git a/exp_legacy/module/config/expcore/permission_groups.lua b/exp_legacy/module/config/expcore/permission_groups.lua index b0e972f3..7d986851 100644 --- a/exp_legacy/module/config/expcore/permission_groups.lua +++ b/exp_legacy/module/config/expcore/permission_groups.lua @@ -9,20 +9,23 @@ local Groups = require("modules.exp_legacy.expcore.permission_groups") --- @dep Groups.new_group("Admin") :allow_all() + +Groups.new_group('Mod') + :allow_all() :disallow{ - "add_permission_group", -- admin - "delete_permission_group", - "edit_permission_group", - "import_permissions_string", - "map_editor_action", - "toggle_map_editor", - "change_multiplayer_config", - "set_heat_interface_mode", - "set_heat_interface_temperature", - "set_infinity_container_filter_item", - "set_infinity_container_remove_unfiltered_items", - "set_infinity_pipe_filter", - } + 'add_permission_group', -- admin + 'delete_permission_group', + 'edit_permission_group', + 'import_permissions_string', + 'map_editor_action', + 'toggle_map_editor', + 'change_multiplayer_config', + 'set_heat_interface_mode', + 'set_heat_interface_temperature', + 'set_infinity_container_filter_item', + 'set_infinity_container_remove_unfiltered_items', + 'set_infinity_pipe_filter' + } Groups.new_group("Trusted") :allow_all() @@ -59,9 +62,8 @@ Groups.new_group("Standard") "set_infinity_pipe_filter", "admin_action", -- trusted "change_programmable_speaker_alert_parameters", -- standard - "drop_item", "open_new_platform_button_from_rocket_silo", - "set_rocket_silo_send_to_orbit_automated_mode", + "set_rocket_silo_send_to_orbit_automated_mode" } Groups.new_group("Guest") diff --git a/exp_legacy/module/config/expcore/roles.lua b/exp_legacy/module/config/expcore/roles.lua index 14fd9695..ca4c1f9c 100644 --- a/exp_legacy/module/config/expcore/roles.lua +++ b/exp_legacy/module/config/expcore/roles.lua @@ -37,12 +37,7 @@ Roles.new_role("Senior Administrator", "SAdmin") :set_flag("report-immune") :set_flag("instant-respawn") :set_parent("Administrator") - :allow{ - "command/_rcon", - "command/debug", - "command/set-cheat-mode", - "command/research-all", - } + :set_allow_all() Roles.new_role("Administrator", "Admin") :set_permission_group("Admin") @@ -51,63 +46,52 @@ Roles.new_role("Administrator", "Admin") :set_flag("is_spectator") :set_flag("report-immune") :set_flag("instant-respawn") + :set_parent("Senior Moderator") + :allow{ + "command/_rcon", + "command/debug", + "command/set-cheat-mode", + "command/research-all" + } + +Roles.new_role("Senior Moderator", "SMod") + :set_permission_group("Mod") + :set_custom_color{ r = 0, g = 170, b = 0 } + :set_flag("is_admin") + :set_flag("is_system") + :set_flag("is_spectator") + :set_flag("report-immune") + :set_flag("instant-respawn") :set_parent("Moderator") :allow{ "gui/warp-list/bypass-proximity", "gui/warp-list/bypass-cooldown", - "command/connect-all", + "command/connect-all" } Roles.new_role("Moderator", "Mod") - :set_permission_group("Admin") + :set_permission_group("Mod") :set_custom_color{ r = 0, g = 170, b = 0 } :set_flag("is_admin") :set_flag("is_spectator") :set_flag("report-immune") :set_flag("instant-respawn") - :set_parent("Trainee") + :set_parent("Trainee Moderator") :allow{ - "command/assign-role", - "command/unassign-role", - "command/repair", - "command/kill/always", - "command/clear-tag/always", - "command/spawn/always", - "command/clear-reports", - "command/clear-warnings", - "command/clear-script-warnings", - "command/clear-last-warnings", - "command/clear-inventory", - "command/kill-enemies", - "command/remove-enemies", - --'command/bonus', - "command/home", - "command/set-home", - "command/get-home", - "command/return", - "command/connect-player", - "command/set-bot-queue", - "command/set-game-speed", - "command/set-friendly-fire", - "command/set-always-day", - "command/set-pollution-enabled", - "command/clear-pollution", - "gui/rocket-info/toggle-active", - "gui/rocket-info/remote_launch", - "gui/bonus", - "fast-tree-decon", } -Roles.new_role("Trainee", "TrMod") - :set_permission_group("Admin") +Roles.new_role("Trainee Moderator", "Trainee") + :set_permission_group("Mod") :set_custom_color{ r = 0, g = 170, b = 0 } :set_flag("is_admin") :set_flag("is_spectator") :set_flag("report-immune") - :set_parent("Veteran") + :set_parent("Board Member") :allow{ + "command/assign-role", + "command/unassign-role", "command/admin-chat", - "command/goto", + "command/protect-tag", "command/teleport", "command/bring", "command/create-warning", @@ -115,19 +99,30 @@ Roles.new_role("Trainee", "TrMod") "command/get-reports", "command/protect-entity", "command/protect-area", - "command/protect-tag", - "command/jail", - "command/unjail", "command/kick", "command/ban", - "command/spectate", - "command/follow", "command/search", "command/search-online", "command/search-amount", "command/search-recent", - "command/clear-blueprints", - "gui/playerdata", + "command/clear-pollution", + "command/set-pollution-enabled", + "command/set-bot-queue", + "command/set-game-speed", + "command/kill-enemies", + "command/remove-enemies", + "command/set-friendly-fire", + "command/set-always-day", + "command/clear-reports", + "command/clear-warnings", + "command/clear-script-warnings", + "command/clear-last-warnings", + "command/clear-inventory", + "command/connect-player", + "command/kill/always", + -- "command/clear-tag/always", + "command/spawn/always", + "gui/playerdata" } --- Trusted Roles @@ -137,81 +132,85 @@ Roles.new_role("Board Member", "Board") :set_flag("is_spectator") :set_flag("report-immune") :set_flag("instant-respawn") - :set_parent("Sponsor") - :allow{ - "command/goto", - "command/repair", - "command/spectate", - "command/follow", - "gui/playerdata", - } - -Roles.new_role("Senior Backer", "Backer") - :set_permission_group("Trusted") - :set_custom_color{ r = 238, g = 172, b = 44 } - :set_flag("is_spectator") - :set_flag("report-immune") - :set_flag("instant-respawn") - :set_parent("Sponsor") - :allow{ - } - -Roles.new_role("Sponsor", "Spon") - :set_permission_group("Trusted") - :set_custom_color{ r = 238, g = 172, b = 44 } - :set_flag("is_spectator") - :set_flag("report-immune") - :set_flag("instant-respawn") :set_parent("Supporter") :allow{ - "gui/rocket-info/toggle-active", - "gui/rocket-info/remote_launch", - "gui/bonus", - --"command/bonus", - "command/home", - "command/set-home", - "command/get-home", - "command/return", - "fast-tree-decon", } Roles.new_role("Supporter", "Sup") :set_permission_group("Trusted") :set_custom_color{ r = 230, g = 99, b = 34 } :set_flag("is_spectator") - :set_parent("Veteran") + :set_parent("Partner") :allow{ - "command/tag-color", - "command/jail", - "command/unjail", - "command/set-join-message", - "command/remove-join-message", } Roles.new_role("Partner", "Part") :set_permission_group("Trusted") - :set_custom_color{ r = 140, g = 120, b = 200 } + :set_custom_color{ r = 24, g = 172, b = 188 } :set_flag("is_spectator") - :set_parent("Veteran") + :set_parent("Senior Member") :allow{ - "command/jail", - "command/unjail", } -local hours10, hours250 = 10 * 216000, 250 * 60 +Roles.new_role("Senior Member", "SMem") + :set_permission_group("Trusted") + :set_custom_color{ r = 24, g = 172, b = 188 } + :set_flag("is_spectator") + :set_parent("Member") + :allow{ + "command/set-join-message", + "command/remove-join-message", + "command/goto", + "command/jail", + "command/unjail", + "command/spectate", + "command/follow", + "command/repair" + } + +--- Standard User Roles +Roles.new_role("Member", "Mem") + :set_permission_group("Standard") + :set_custom_color{ r = 24, g = 172, b = 188 } + :set_flag("deconlog-bypass") + :set_parent("Veteran") + :allow{ + "gui/vlayer-edit", + "gui/rocket-info/toggle-active", + "gui/rocket-info/remote_launch", + "gui/tool", + -- "command/tag-color", + "command/clear-blueprints", + --"command/bonus", + "gui/bonus", + "command/personal-logistic", + "command/home", + "command/set-home", + "command/get-home", + "command/return", + "fast-tree-decon" + } + +local hours6, hours250 = 6 * 216000, 250 * 60 Roles.new_role("Veteran", "Vet") :set_permission_group("Trusted") :set_custom_color{ r = 140, g = 120, b = 200 } - :set_parent("Member") + :set_parent("Regular") :allow{ + "gui/surveillance", + "gui/warp-list/add", + "gui/warp-list/edit", "command/chat-bot", "command/clear-ground-items", "command/clear-blueprints-radius", "command/set-trains-to-automatic", "command/set-auto-research", + "command/lawnmower", + "command/waterfill", + "command/artillery" } :set_auto_assign_condition(function(player) - if player.online_time >= hours10 then + if player.online_time >= hours6 then return true else local stats = Statistics:get(player, {}) @@ -220,44 +219,25 @@ Roles.new_role("Veteran", "Vet") end end) ---- Standard User Roles -Roles.new_role("Member", "Mem") - :set_permission_group("Standard") - :set_custom_color{ r = 24, g = 172, b = 188 } - :set_flag("deconlog-bypass") - :set_parent("Regular") - :allow{ - "gui/task-list/add", - "gui/task-list/edit", - "gui/warp-list/add", - "gui/warp-list/edit", - "gui/surveillance", - "gui/vlayer-edit", - "gui/tool", - "command/save-quickbar", - "command/vlayer-info", - "command/personal-logistic", - "command/lawnmower", - "command/waterfill", - "command/artillery", - } - -local hours3, hours15 = 3 * 216000, 15 * 60 +local hours1, hours15 = 1 * 216000, 15 * 60 Roles.new_role("Regular", "Reg") :set_permission_group("Standard") :set_custom_color{ r = 79, g = 155, b = 163 } :set_parent("Guest") :allow{ + "gui/task-list/add", + "gui/task-list/edit", "command/kill", "command/rainbow", "command/spawn", "command/me", + "command/vlayer-info", "standard-decon", "bypass-entity-protection", - "bypass-nukeprotect", + "bypass-nukeprotect" } :set_auto_assign_condition(function(player) - if player.online_time >= hours3 then + if player.online_time >= hours1 then return true else local stats = Statistics:get(player, {}) @@ -271,8 +251,8 @@ local default = Roles.new_role("Guest", "") :set_permission_group("Guest") :set_custom_color{ r = 185, g = 187, b = 160 } :allow{ - "command/tag", - "command/tag-clear", + -- "command/tag", + -- "command/tag-clear", "command/commands", "command/get-role", "command/locate", @@ -280,6 +260,7 @@ local default = Roles.new_role("Guest", "") "command/ratio", "command/server-ups", "command/save-data", + "command/save-quickbar", "command/data-preference", "command/connect", "gui/player-list", @@ -312,57 +293,63 @@ Roles.define_role_order{ "System", -- Best to keep root at top "Senior Administrator", "Administrator", + "Senior Moderator", "Moderator", - "Trainee", + "Trainee Moderator", "Board Member", - "Senior Backer", - "Sponsor", "Supporter", "Partner", - "Veteran", + "Senior Member", "Member", + "Veteran", "Regular", "Jail", - "Guest", -- Default must be last if you want to apply restrictions to other roles + "Guest" -- Default must be last if you want to apply restrictions to other roles } Roles.override_player_roles{ - ["PHIDIAS0303"] = { "Moderator", "Board Member", "Member" }, - ["aldldl"] = { "Administrator", "Moderator", "Member" }, - ["arty714"] = { "Senior Administrator", "Moderator", "Member" }, - ["Cooldude2606"] = { "Senior Administrator", "Moderator", "Member" }, - ["Drahc_pro"] = { "Administrator", "Moderator", "Member" }, - ["mark9064"] = { "Administrator", "Moderator", "Member" }, - ["7h3w1z4rd"] = { "Moderator", "Member" }, - ["FlipHalfling90"] = { "Moderator", "Member" }, - ["hamsterbryan"] = { "Moderator", "Member" }, - ["HunterOfGames"] = { "Moderator", "Member" }, - ["NextIdea"] = { "Moderator", "Member" }, - ["TheKernel32"] = { "Moderator", "Member" }, - ["TheKernel64"] = { "Moderator", "Member" }, - ["tovernaar123"] = { "Moderator", "Member" }, - ["UUBlueFire"] = { "Moderator", "Member" }, - ["AssemblyStorm"] = { "Moderator", "Member" }, - ["banakeg"] = { "Moderator", "Member" }, - ["connormkii"] = { "Moderator", "Member" }, - ["cydes"] = { "Moderator", "Member" }, - ["darklich14"] = { "Moderator", "Member" }, - ["facere"] = { "Moderator", "Member" }, - ["freek18"] = { "Moderator", "Member" }, - ["Gizan"] = { "Moderator", "Member" }, - ["LoicB"] = { "Moderator", "Member" }, - ["M74132"] = { "Moderator", "Member" }, - ["mafisch3"] = { "Moderator", "Member" }, - ["maplesyrup01"] = { "Moderator", "Member" }, - ["ookl"] = { "Moderator", "Member" }, - ["Phoenix27833"] = { "Moderator", "Member" }, - ["porelos"] = { "Moderator", "Member" }, - ["Ruuyji"] = { "Moderator", "Member" }, - ["samy115"] = { "Moderator", "Member" }, - ["SilentLog"] = { "Moderator", "Member" }, - ["Tcheko"] = { "Moderator", "Member" }, - ["thadius856"] = { "Moderator", "Member" }, - ["whoami32"] = { "Moderator", "Member" }, - ["Windbomb"] = { "Moderator", "Member" }, - ["XenoCyber"] = { "Moderator", "Member" }, + ["PHIDIAS0303"] = { "Senior Administrator" }, + ["majoro"] = { "Trainee Moderator" }, + ["konohaScarlet_"] = { "Trainee Moderator" }, + ["hihicome3"] = { "Trainee Moderator" }, + ["Athenaa"] = { "Trainee Moderator" }, + ["rongli"] = { "Trainee Moderator" }, + ["JamesJung"] = { "Trainee Moderator" }, + ["aldldl"] = { "Moderator" }, + ["arty714"] = { "Moderator" }, + ["Cooldude2606"] = { "Moderator" }, + ["Drahc_pro"] = { "Moderator" }, + ["mark9064"] = { "Moderator" }, + ["7h3w1z4rd"] = { "Moderator" }, + ["FlipHalfling90"] = { "Moderator" }, + ["hamsterbryan"] = { "Moderator" }, + ["HunterOfGames"] = { "Moderator" }, + ["NextIdea"] = { "Moderator" }, + ["TheKernel32"] = { "Moderator" }, + ["TheKernel64"] = { "Moderator" }, + ["tovernaar123"] = { "Moderator" }, + ["UUBlueFire"] = { "Moderator" }, + ["AssemblyStorm"] = { "Moderator" }, + ["banakeg"] = { "Moderator" }, + ["connormkii"] = { "Moderator" }, + ["cydes"] = { "Moderator" }, + ["darklich14"] = { "Moderator" }, + ["facere"] = { "Moderator" }, + ["freek18"] = { "Moderator" }, + ["Gizan"] = { "Moderator" }, + ["LoicB"] = { "Moderator" }, + ["M74132"] = { "Moderator" }, + ["mafisch3"] = { "Moderator" }, + ["maplesyrup01"] = { "Moderator" }, + ["ookl"] = { "Moderator" }, + ["Phoenix27833"] = { "Moderator" }, + ["porelos"] = { "Moderator" }, + ["Ruuyji"] = { "Moderator" }, + ["samy115"] = { "Moderator" }, + ["SilentLog"] = { "Moderator" }, + ["Tcheko"] = { "Moderator" }, + ["thadius856"] = { "Moderator" }, + ["whoami32"] = { "Moderator" }, + ["Windbomb"] = { "Moderator" }, + ["XenoCyber"] = { "Moderator" } } diff --git a/exp_legacy/module/config/join_messages.lua b/exp_legacy/module/config/join_messages.lua index 61278a2f..97aeaddb 100644 --- a/exp_legacy/module/config/join_messages.lua +++ b/exp_legacy/module/config/join_messages.lua @@ -1,8 +1,2 @@ return { - Cooldude2606 = "Lua lets you set metatables on numbers, did you know that? Cooldude2606 knows this.", - samy115 = "Tremble in fear as the banhammer is now here, its owner: samy115", - XenoCyber = '"Fire Fire Fire" oops wrong game, have no fear XenoCyber is here', - HunterOfGames = "Unable to support HunterOfGames. You must construct additional miners.", - ookl = 'ookl says: "Pineapples are amazing, hello everyone!"', - arty714 = "Arty\'s Potato made it!", } diff --git a/exp_legacy/module/config/spawn_area.lua b/exp_legacy/module/config/spawn_area.lua index 3d6c0d80..5540faa0 100644 --- a/exp_legacy/module/config/spawn_area.lua +++ b/exp_legacy/module/config/spawn_area.lua @@ -4,180 +4,80 @@ return { spawn_area = { --- @setting spawn_area Settings relating to the whole spawn area -- Enable predefined patches: 128, else: 32 - deconstruction_radius = 20, -- @setting deconstruction_radius All entities within this radius will be removed - tile_radius = 20, - deconstruction_tile = "concrete", --- @setting deconstruction_tile Tile to be placed in the deconstruction radius, use nil for map gen - landfill_radius = 50, --- @setting pattern_radius All water within this radius will be land filled + deconstruction_radius = 12, -- @setting deconstruction_radius All entities within this radius will be removed + deconstruction_tile = 'refined-concrete', --- @setting deconstruction_tile Tile to be placed in the deconstruction radius, use nil for map gen + tile_radius = 14, + landfill_radius = 16, --- @setting pattern_radius All water within this radius will be land filled }, turrets = { --- @setting turrets Settings relating to adding turrets to spawn enabled = true, --- @setting enabled Whether turrets will be added to spawn - ammo_type = "uranium-rounds-magazine", --- @setting ammo_type The ammo type that will be used during refills - refill_time = 60 * 60 * 5, --- @setting refill_time The time in ticks between each refill of the turrets, only change if having lag issues - offset = { x = 0, y = 0 }, --- @setting offset The position offset to apply to turrets + ammo_type = 'uranium-rounds-magazine', --- @setting ammo_type The ammo type that will be used during refills + refill_time = 60*60*5, --- @setting refill_time The time in ticks between each refill of the turrets, only change if having lag issues + offset = {x=0, y=0}, --- @setting offset The position offset to apply to turrets locations = { --- @setting locations The locations of all turrets, this list can change during runtime - { surface = 1, position = { x = -3, y = -3 } }, - { surface = 1, position = { x = 3, y = -3 } }, - { surface = 1, position = { x = -3, y = 3 } }, - { surface = 1, position = { x = 3, y = 3 } }, - }, + {surface=1, position={x=2, y=2}}, + {surface=1, position={x=2, y=-2}}, + {surface=1, position={x=-2, y=2}}, + {surface=1, position={x=-2, y=-2}}, + } }, afk_belts = { --- @setting afk_belts Settings relating to adding afk belts to spawn enabled = true, --- @setting enabled Whether afk belts will be added to spawn - belt_type = "transport-belt", --- @setting belt_type The belt to be used as afk belts + belt_type = 'transport-belt', --- @setting belt_type The belt to be used as afk belts protected = true, --- @setting protected Whether belts will be protected from player interaction - offset = { x = 0, y = 0 }, --- @setting offset The position offset to apply to afk belts - locations = { --- @setting locations The locations to spawn afk belts at, given as the top left position - { -5, -5 }, { 5, -5 }, - { -5, 5 }, { 5, 5 }, - }, + offset = {x=0, y=0}, --- @setting offset The position offset to apply to afk belts + locations={ --- @setting locations The locations to spawn afk belts at, given as the top left position + {4, 4}, + {4, -4}, + {-4, 4}, + {-4, -4} + } }, water = { --- @setting water Settings relating to adding water to spawn enabled = true, --- @setting enabled Whether water tiles will be added to spawn - water_tile = "water-mud", --- @setting water_tile The tile to be used as the water tile - offset = { x = 0, y = 0 }, --- @setting offset The position offset to apply to water tiles + water_tile = 'water-mud', --- @setting water_tile The tile to be used as the water tile + offset = {x=0, y=0}, --- @setting offset The position offset to apply to water tiles locations = { --- @setting locations The location of the water tiles {x,y} -- Each is a 3x3 with the closest tile to 0,0 removed - { 7, 8 }, { 7, 9 }, { 8, 7 }, { 8, 8 }, { 8, 9 }, { 9, 7 }, { 9, 8 }, { 9, 9 }, -- Bottom Right - { 7, -9 }, { 7, -10 }, { 8, -8 }, { 8, -9 }, { 8, -10 }, { 9, -8 }, { 9, -9 }, { 9, -10 }, -- Top Right - { -8, -9 }, { -8, -10 }, { -9, -8 }, { -9, -9 }, { -9, -10 }, { -10, -8 }, { -10, -9 }, { -10, -10 }, -- Top Left - { -8, 8 }, { -8, 9 }, { -9, 7 }, { -9, 8 }, { -9, 9 }, { -10, 7 }, { -10, 8 }, { -10, 9 }, -- Bottom Left - }, + {5, 6}, {5, 7}, {6, 5}, {6, 6}, {6, 7}, {7, 5}, {7, 6}, {7, 7}, + {5, -7}, {5, -8}, {6, -6}, {6, -7}, {6, -8}, {7, -6}, {7, -7}, {7, -8}, + {-6, 6}, {-6, 7}, {-7, 5}, {-7, 6}, {-7, 7}, {-8, 5}, {-8, 6}, {-8, 7}, + {-6, -7}, {-6, -8}, {-7, -6}, {-7, -7}, {-7, -8}, {-8, -6}, {-8, -7}, {-8, -8}, + } }, entities = { --- @setting entities Settings relating to adding entities to spawn - enabled = true, --- @setting enabled Whether entities will be added to spawn + enabled = true, --- @setting enabled Whether entities will be added to spawn protected = true, --- @setting protected Whether entities will be protected from player interaction operable = true, --- @setting operable Whether entities can be opened by players, must be true if chests are used - offset = { x = 0, y = -2 }, --- @setting offset The position offset to apply to entities + offset = {x=0, y=0}, --- @setting offset The position offset to apply to entities locations = { --- @setting locations The location and names of entities {name,x,y} - { "stone-wall", -10, -5 }, { "stone-wall", -10, -4 }, { "stone-wall", -10, -3 }, { "stone-wall", -10, -2 }, { "stone-wall", -10, -1 }, { "stone-wall", -10, 0 }, { "stone-wall", -10, 3 }, { "stone-wall", -10, 4 }, { "stone-wall", -10, 5 }, - { "stone-wall", -10, 6 }, { "stone-wall", -10, 7 }, { "stone-wall", -10, 8 }, { "small-lamp", -8, -4 }, { "small-lamp", -8, -1 }, { "iron-chest", -8, 0 }, { "iron-chest", -8, 3 }, { "small-lamp", -8, 4 }, - { "small-lamp", -8, 7 }, { "stone-wall", -7, -8 }, { "small-electric-pole", -7, -2 }, { "iron-chest", -7, 0 }, { "iron-chest", -7, 3 }, { "small-electric-pole", -7, 5 }, { "stone-wall", -7, 11 }, { "stone-wall", -6, -8 }, { "small-lamp", -6, -6 }, - { "iron-chest", -6, 0 }, { "iron-chest", -6, 3 }, { "small-lamp", -6, 9 }, { "stone-wall", -6, 11 }, { "stone-wall", -5, -8 }, { "small-lamp", -5, -1 }, { "iron-chest", -5, 0 }, { "iron-chest", -5, 3 }, { "small-lamp", -5, 4 }, { "stone-wall", -5, 11 }, - { "stone-wall", -4, -8 }, { "small-electric-pole", -4, -5 }, { "iron-chest", -4, 0 }, { "iron-chest", -4, 3 }, { "small-electric-pole", -4, 8 }, { "stone-wall", -4, 11 }, { "stone-wall", -3, -8 }, { "small-lamp", -3, -6 }, { "small-lamp", -3, -3 }, { "small-lamp", -3, 6 }, - { "small-lamp", -3, 9 }, { "stone-wall", -3, 11 }, { "stone-wall", -2, -8 }, { "iron-chest", -2, -6 }, { "iron-chest", -2, -5 }, { "iron-chest", -2, -4 }, { "iron-chest", -2, -3 }, { "iron-chest", -2, -2 }, { "iron-chest", -2, 5 }, { "iron-chest", -2, 6 }, - { "iron-chest", -2, 7 }, { "iron-chest", -2, 8 }, { "iron-chest", -2, 9 }, { "stone-wall", -2, 11 }, { "stone-wall", 1, -8 }, { "iron-chest", 1, -6 }, - { "iron-chest", 1, -5 }, { "iron-chest", 1, -4 }, { "iron-chest", 1, -3 }, { "iron-chest", 1, -2 }, { "iron-chest", 1, 5 }, { "iron-chest", 1, 6 }, { "iron-chest", 1, 7 }, { "iron-chest", 1, 8 }, { "iron-chest", 1, 9 }, { "stone-wall", 1, 11 }, - { "stone-wall", 2, -8 }, { "small-lamp", 2, -6 }, { "small-lamp", 2, -3 }, { "small-lamp", 2, 6 }, { "small-lamp", 2, 9 }, { "stone-wall", 2, 11 }, { "stone-wall", 3, -8 }, { "small-electric-pole", 3, -5 }, { "iron-chest", 3, 0 }, { "iron-chest", 3, 3 }, - { "small-electric-pole", 3, 8 }, { "stone-wall", 3, 11 }, { "stone-wall", 4, -8 }, { "small-lamp", 4, -1 }, { "iron-chest", 4, 0 }, { "iron-chest", 4, 3 }, { "small-lamp", 4, 4 }, { "stone-wall", 4, 11 }, { "stone-wall", 5, -8 }, { "small-lamp", 5, -6 }, - { "iron-chest", 5, 0 }, { "iron-chest", 5, 3 }, { "small-lamp", 5, 9 }, { "stone-wall", 5, 11 }, { "stone-wall", 6, -8 }, { "small-electric-pole", 6, -2 }, { "iron-chest", 6, 0 }, { "iron-chest", 6, 3 }, { "small-electric-pole", 6, 5 }, { "stone-wall", 6, 11 }, - { "small-lamp", 7, -4 }, { "small-lamp", 7, -1 }, { "iron-chest", 7, 0 }, { "iron-chest", 7, 3 }, { "small-lamp", 7, 4 }, { "small-lamp", 7, 7 }, { "stone-wall", 9, -5 }, - { "stone-wall", 9, -4 }, { "stone-wall", 9, -3 }, { "stone-wall", 9, -2 }, { "stone-wall", 9, -1 }, { "stone-wall", 9, 0 }, { "stone-wall", 9, 3 }, { "stone-wall", 9, 4 }, { "stone-wall", 9, 5 }, { "stone-wall", 9, 6 }, { "stone-wall", 9, 7 }, - { "stone-wall", 9, 8 }, - }, + {'steel-chest', 1, 3}, {'steel-chest', 1, 4}, {'steel-chest', 1, 5}, + {'steel-chest', 3, 1}, {'steel-chest', 4, 1}, {'steel-chest', 5, 1}, + {'steel-chest', 1, -4}, {'steel-chest', 1, -5}, {'steel-chest', 1, -6}, + {'steel-chest', 3, -2}, {'steel-chest', 4, -2}, {'steel-chest', 5, -2}, + {'steel-chest', -2, 3}, {'steel-chest', -2, 4}, {'steel-chest', -2, 5}, + {'steel-chest', -4, 1}, {'steel-chest', -5, 1}, {'steel-chest', -6, 1}, + {'steel-chest', -2, -4}, {'steel-chest', -2, -5}, {'steel-chest', -2, -6}, + {'steel-chest', -4, -2}, {'steel-chest', -5, -2}, {'steel-chest', -6, -2}, + {'medium-electric-pole', 2, 3}, {'medium-electric-pole', 2, -4}, {'medium-electric-pole', -3, 3}, {'medium-electric-pole', -3, -4}, + {'small-lamp', 2, 4}, {'small-lamp', 2, -5}, {'small-lamp', -3, 4}, {'small-lamp', -3, -5}, + {'small-lamp', 4, 2}, {'small-lamp', 4, -3}, {'small-lamp', -5, 2}, {'small-lamp', -5, -3}, + {'stone-wall', 1, 7}, {'stone-wall', 2, 7}, {'stone-wall', 3, 7}, {'stone-wall', 4, 7}, + {'stone-wall', 7, 1}, {'stone-wall', 7, 2}, {'stone-wall', 7, 3}, {'stone-wall', 7, 4}, + {'stone-wall', 1, -8}, {'stone-wall', 2, -8}, {'stone-wall', 3, -8}, {'stone-wall', 4, -8}, + {'stone-wall', 7, -2}, {'stone-wall', 7, -3}, {'stone-wall', 7, -4}, {'stone-wall', 7, -5}, + {'stone-wall', -2, 7}, {'stone-wall', -3, 7}, {'stone-wall', -4, 7}, {'stone-wall', -5, 7}, + {'stone-wall', -8, 1}, {'stone-wall', -8, 2}, {'stone-wall', -8, 3}, {'stone-wall', -8, 4}, + {'stone-wall', -2, -8}, {'stone-wall', -3, -8}, {'stone-wall', -4, -8}, {'stone-wall', -5, -8}, + {'stone-wall', -8, -2}, {'stone-wall', -8, -3}, {'stone-wall', -8, -4}, {'stone-wall', -8, -5}, + } }, pattern = { - enabled = true, --- @setting enabled Whether pattern tiles will be added to spawn - pattern_tile = "stone-path", --- @setting pattern_tile The tile to be used for the pattern - offset = { x = 0, y = -2 }, --- @setting offset The position offset to apply to pattern tiles + enabled = false, --- @setting enabled Whether pattern tiles will be added to spawn + pattern_tile = 'refined-concrete', --- @setting pattern_tile The tile to be used for the pattern + offset = {x=0, y=0}, --- @setting offset The position offset to apply to pattern tiles locations = { --- @setting locations The location of the pattern tiles {x,y} - { -49, -3 }, { -49, -2 }, { -49, 1 }, { -49, 2 }, { -49, 5 }, { -49, 6 }, { -48, -4 }, { -48, -3 }, { -48, -2 }, { -48, 1 }, { -48, 2 }, { -48, 5 }, { -48, 6 }, { -48, 7 }, { -47, -7 }, { -47, -6 }, { -47, -5 }, { -47, -4 }, { -47, -3 }, { -47, -2 }, { -47, 5 }, { -47, 6 }, { -47, 7 }, { -47, 8 }, { -47, 9 }, { -47, 10 }, { -46, -8 }, { -46, -7 }, { -46, -6 }, { -46, -5 }, - { -46, -4 }, { -46, -3 }, { -46, -2 }, { -46, -1 }, { -46, 4 }, { -46, 5 }, { -46, 6 }, { -46, 7 }, { -46, 8 }, { -46, 9 }, { -46, 10 }, { -46, 11 }, { -45, -17 }, { -45, -16 }, { -45, -15 }, { -45, -14 }, { -45, -13 }, { -45, -12 }, { -45, -9 }, { -45, -8 }, { -45, -7 }, { -45, -2 }, { -45, -1 }, { -45, 0 }, { -45, 1 }, { -45, 2 }, { -45, 3 }, { -45, 4 }, { -45, 5 }, { -45, 10 }, - { -45, 11 }, { -45, 12 }, { -45, 15 }, { -45, 16 }, { -45, 17 }, { -45, 18 }, { -45, 19 }, { -45, 20 }, { -44, -18 }, { -44, -17 }, { -44, -16 }, { -44, -15 }, { -44, -14 }, { -44, -13 }, { -44, -12 }, { -44, -9 }, { -44, -8 }, { -44, -1 }, { -44, 0 }, { -44, 1 }, { -44, 2 }, { -44, 3 }, { -44, 4 }, { -44, 11 }, { -44, 12 }, { -44, 15 }, { -44, 16 }, { -44, 17 }, { -44, 18 }, { -44, 19 }, - { -44, 20 }, { -44, 21 }, { -43, -19 }, { -43, -18 }, { -43, -17 }, { -43, -1 }, { -43, 0 }, { -43, 1 }, { -43, 2 }, { -43, 3 }, { -43, 4 }, { -43, 20 }, { -43, 21 }, { -43, 22 }, { -42, -19 }, { -42, -18 }, { -42, -1 }, { -42, 0 }, { -42, 1 }, { -42, 2 }, { -42, 3 }, { -42, 4 }, { -42, 21 }, { -42, 22 }, { -41, -25 }, { -41, -24 }, { -41, -19 }, { -41, -18 }, { -41, -13 }, { -41, -12 }, - { -41, -11 }, { -41, -10 }, { -41, -5 }, { -41, -4 }, { -41, 7 }, { -41, 8 }, { -41, 13 }, { -41, 14 }, { -41, 15 }, { -41, 16 }, { -41, 21 }, { -41, 22 }, { -41, 27 }, { -41, 28 }, { -40, -26 }, { -40, -25 }, { -40, -24 }, { -40, -20 }, { -40, -19 }, { -40, -18 }, { -40, -13 }, { -40, -12 }, { -40, -11 }, { -40, -10 }, { -40, -5 }, { -40, -4 }, { -40, 7 }, { -40, 8 }, { -40, 13 }, { -40, 14 }, - { -40, 15 }, { -40, 16 }, { -40, 21 }, { -40, 22 }, { -40, 23 }, { -40, 27 }, { -40, 28 }, { -40, 29 }, { -39, -27 }, { -39, -26 }, { -39, -25 }, { -39, -24 }, { -39, -21 }, { -39, -20 }, { -39, -19 }, { -39, -13 }, { -39, -12 }, { -39, -5 }, { -39, -4 }, { -39, -3 }, { -39, -2 }, { -39, -1 }, { -39, 0 }, { -39, 1 }, { -39, 2 }, { -39, 3 }, { -39, 4 }, { -39, 5 }, { -39, 6 }, { -39, 7 }, - { -39, 8 }, { -39, 15 }, { -39, 16 }, { -39, 22 }, { -39, 23 }, { -39, 24 }, { -39, 27 }, { -39, 28 }, { -39, 29 }, { -39, 30 }, { -38, -27 }, { -38, -26 }, { -38, -25 }, { -38, -24 }, { -38, -21 }, { -38, -20 }, { -38, -13 }, { -38, -12 }, { -38, -5 }, { -38, -4 }, { -38, -3 }, { -38, -2 }, { -38, -1 }, { -38, 0 }, { -38, 1 }, { -38, 2 }, { -38, 3 }, { -38, 4 }, { -38, 5 }, { -38, 6 }, - { -38, 7 }, { -38, 8 }, { -38, 15 }, { -38, 16 }, { -38, 23 }, { -38, 24 }, { -38, 27 }, { -38, 28 }, { -38, 29 }, { -38, 30 }, { -37, -17 }, { -37, -16 }, { -37, -13 }, { -37, -12 }, { -37, -11 }, { -37, -10 }, { -37, -4 }, { -37, -3 }, { -37, -2 }, { -37, -1 }, { -37, 0 }, { -37, 3 }, { -37, 4 }, { -37, 5 }, { -37, 6 }, { -37, 7 }, { -37, 13 }, { -37, 14 }, { -37, 15 }, { -37, 16 }, - { -37, 19 }, { -37, 20 }, { -36, -17 }, { -36, -16 }, { -36, -13 }, { -36, -12 }, { -36, -11 }, { -36, -10 }, { -36, -9 }, { -36, -3 }, { -36, -2 }, { -36, -1 }, { -36, 0 }, { -36, 3 }, { -36, 4 }, { -36, 5 }, { -36, 6 }, { -36, 12 }, { -36, 13 }, { -36, 14 }, { -36, 15 }, { -36, 16 }, { -36, 19 }, { -36, 20 }, { -35, -29 }, { -35, -28 }, { -35, -23 }, { -35, -22 }, { -35, -17 }, { -35, -16 }, - { -35, -12 }, { -35, -11 }, { -35, -10 }, { -35, -9 }, { -35, -8 }, { -35, 11 }, { -35, 12 }, { -35, 13 }, { -35, 14 }, { -35, 15 }, { -35, 19 }, { -35, 20 }, { -35, 25 }, { -35, 26 }, { -35, 31 }, { -35, 32 }, { -34, -30 }, { -34, -29 }, { -34, -28 }, { -34, -23 }, { -34, -22 }, { -34, -17 }, { -34, -16 }, { -34, -15 }, { -34, -11 }, { -34, -10 }, { -34, -9 }, { -34, -8 }, { -34, 11 }, { -34, 12 }, - { -34, 13 }, { -34, 14 }, { -34, 18 }, { -34, 19 }, { -34, 20 }, { -34, 25 }, { -34, 26 }, { -34, 31 }, { -34, 32 }, { -34, 33 }, { -33, -31 }, { -33, -30 }, { -33, -29 }, { -33, -28 }, { -33, -23 }, { -33, -22 }, { -33, -16 }, { -33, -15 }, { -33, -14 }, { -33, -5 }, { -33, -4 }, { -33, -1 }, { -33, 0 }, { -33, 3 }, { -33, 4 }, { -33, 7 }, { -33, 8 }, { -33, 17 }, { -33, 18 }, { -33, 19 }, - { -33, 25 }, { -33, 26 }, { -33, 31 }, { -33, 32 }, { -33, 33 }, { -33, 34 }, { -32, -32 }, { -32, -31 }, { -32, -30 }, { -32, -29 }, { -32, -28 }, { -32, -27 }, { -32, -23 }, { -32, -22 }, { -32, -21 }, { -32, -15 }, { -32, -14 }, { -32, -6 }, { -32, -5 }, { -32, -4 }, { -32, -1 }, { -32, 0 }, { -32, 3 }, { -32, 4 }, { -32, 7 }, { -32, 8 }, { -32, 9 }, { -32, 17 }, { -32, 18 }, { -32, 24 }, - { -32, 25 }, { -32, 26 }, { -32, 30 }, { -32, 31 }, { -32, 32 }, { -32, 33 }, { -32, 34 }, { -32, 35 }, { -31, -33 }, { -31, -32 }, { -31, -31 }, { -31, -30 }, { -31, -29 }, { -31, -28 }, { -31, -27 }, { -31, -26 }, { -31, -22 }, { -31, -21 }, { -31, -20 }, { -31, -19 }, { -31, -18 }, { -31, -11 }, { -31, -10 }, { -31, -9 }, { -31, -8 }, { -31, -7 }, { -31, -6 }, { -31, -5 }, { -31, -1 }, { -31, 0 }, - { -31, 1 }, { -31, 2 }, { -31, 3 }, { -31, 4 }, { -31, 8 }, { -31, 9 }, { -31, 10 }, { -31, 11 }, { -31, 12 }, { -31, 13 }, { -31, 14 }, { -31, 21 }, { -31, 22 }, { -31, 23 }, { -31, 24 }, { -31, 25 }, { -31, 29 }, { -31, 30 }, { -31, 31 }, { -31, 32 }, { -31, 33 }, { -31, 34 }, { -31, 35 }, { -31, 36 }, { -30, -33 }, { -30, -32 }, { -30, -31 }, { -30, -30 }, { -30, -29 }, { -30, -28 }, - { -30, -27 }, { -30, -26 }, { -30, -21 }, { -30, -20 }, { -30, -19 }, { -30, -18 }, { -30, -11 }, { -30, -10 }, { -30, -9 }, { -30, -8 }, { -30, -7 }, { -30, -6 }, { -30, -1 }, { -30, 0 }, { -30, 1 }, { -30, 2 }, { -30, 3 }, { -30, 4 }, { -30, 9 }, { -30, 10 }, { -30, 11 }, { -30, 12 }, { -30, 13 }, { -30, 14 }, { -30, 21 }, { -30, 22 }, { -30, 23 }, { -30, 24 }, { -30, 29 }, { -30, 30 }, - { -30, 31 }, { -30, 32 }, { -30, 33 }, { -30, 34 }, { -30, 35 }, { -30, 36 }, { -29, -37 }, { -29, -36 }, { -29, -30 }, { -29, -29 }, { -29, -28 }, { -29, -27 }, { -29, -26 }, { -29, -15 }, { -29, -14 }, { -29, -10 }, { -29, -9 }, { -29, -8 }, { -29, -7 }, { -29, 10 }, { -29, 11 }, { -29, 12 }, { -29, 13 }, { -29, 17 }, { -29, 18 }, { -29, 29 }, { -29, 30 }, { -29, 31 }, { -29, 32 }, { -29, 33 }, - { -29, 39 }, { -29, 40 }, { -28, -38 }, { -28, -37 }, { -28, -36 }, { -28, -29 }, { -28, -28 }, { -28, -27 }, { -28, -26 }, { -28, -16 }, { -28, -15 }, { -28, -14 }, { -28, -9 }, { -28, -8 }, { -28, 11 }, { -28, 12 }, { -28, 17 }, { -28, 18 }, { -28, 19 }, { -28, 29 }, { -28, 30 }, { -28, 31 }, { -28, 32 }, { -28, 39 }, { -28, 40 }, { -28, 41 }, { -27, -39 }, { -27, -38 }, { -27, -37 }, { -27, -36 }, - { -27, -23 }, { -27, -22 }, { -27, -19 }, { -27, -18 }, { -27, -17 }, { -27, -16 }, { -27, -15 }, { -27, -5 }, { -27, -4 }, { -27, -1 }, { -27, 0 }, { -27, 1 }, { -27, 2 }, { -27, 3 }, { -27, 4 }, { -27, 7 }, { -27, 8 }, { -27, 18 }, { -27, 19 }, { -27, 20 }, { -27, 21 }, { -27, 22 }, { -27, 25 }, { -27, 26 }, { -27, 39 }, { -27, 40 }, { -27, 41 }, { -27, 42 }, { -26, -39 }, { -26, -38 }, - { -26, -37 }, { -26, -36 }, { -26, -24 }, { -26, -23 }, { -26, -22 }, { -26, -19 }, { -26, -18 }, { -26, -17 }, { -26, -16 }, { -26, -6 }, { -26, -5 }, { -26, -4 }, { -26, -1 }, { -26, 0 }, { -26, 1 }, { -26, 2 }, { -26, 3 }, { -26, 4 }, { -26, 7 }, { -26, 8 }, { -26, 9 }, { -26, 19 }, { -26, 20 }, { -26, 21 }, { -26, 22 }, { -26, 25 }, { -26, 26 }, { -26, 27 }, { -26, 39 }, { -26, 40 }, - { -26, 41 }, { -26, 42 }, { -25, -33 }, { -25, -32 }, { -25, -31 }, { -25, -30 }, { -25, -25 }, { -25, -24 }, { -25, -23 }, { -25, -22 }, { -25, -19 }, { -25, -18 }, { -25, -17 }, { -25, -9 }, { -25, -8 }, { -25, -7 }, { -25, -6 }, { -25, -5 }, { -25, -4 }, { -25, -1 }, { -25, 0 }, { -25, 1 }, { -25, 2 }, { -25, 3 }, { -25, 4 }, { -25, 7 }, { -25, 8 }, { -25, 9 }, { -25, 10 }, { -25, 11 }, - { -25, 12 }, { -25, 20 }, { -25, 21 }, { -25, 22 }, { -25, 25 }, { -25, 26 }, { -25, 27 }, { -25, 28 }, { -25, 33 }, { -25, 34 }, { -25, 35 }, { -25, 36 }, { -24, -33 }, { -24, -32 }, { -24, -31 }, { -24, -30 }, { -24, -29 }, { -24, -25 }, { -24, -24 }, { -24, -23 }, { -24, -22 }, { -24, -19 }, { -24, -18 }, { -24, -9 }, { -24, -8 }, { -24, -7 }, { -24, -6 }, { -24, -5 }, { -24, -4 }, { -24, -1 }, - { -24, 0 }, { -24, 1 }, { -24, 2 }, { -24, 3 }, { -24, 4 }, { -24, 7 }, { -24, 8 }, { -24, 9 }, { -24, 10 }, { -24, 11 }, { -24, 12 }, { -24, 21 }, { -24, 22 }, { -24, 25 }, { -24, 26 }, { -24, 27 }, { -24, 28 }, { -24, 32 }, { -24, 33 }, { -24, 34 }, { -24, 35 }, { -24, 36 }, { -23, -37 }, { -23, -36 }, { -23, -30 }, { -23, -29 }, { -23, -28 }, { -23, -19 }, { -23, -18 }, { -23, -15 }, - { -23, -14 }, { -23, -9 }, { -23, -8 }, { -23, -7 }, { -23, -6 }, { -23, -5 }, { -23, 0 }, { -23, 1 }, { -23, 2 }, { -23, 3 }, { -23, 8 }, { -23, 9 }, { -23, 10 }, { -23, 11 }, { -23, 12 }, { -23, 17 }, { -23, 18 }, { -23, 21 }, { -23, 22 }, { -23, 31 }, { -23, 32 }, { -23, 33 }, { -23, 39 }, { -23, 40 }, { -22, -38 }, { -22, -37 }, { -22, -36 }, { -22, -29 }, { -22, -28 }, { -22, -19 }, - { -22, -18 }, { -22, -15 }, { -22, -14 }, { -22, -13 }, { -22, -9 }, { -22, -8 }, { -22, -7 }, { -22, -6 }, { -22, 1 }, { -22, 2 }, { -22, 9 }, { -22, 10 }, { -22, 11 }, { -22, 12 }, { -22, 16 }, { -22, 17 }, { -22, 18 }, { -22, 21 }, { -22, 22 }, { -22, 31 }, { -22, 32 }, { -22, 39 }, { -22, 40 }, { -22, 41 }, { -21, -41 }, { -21, -40 }, { -21, -39 }, { -21, -38 }, { -21, -37 }, { -21, -29 }, - { -21, -28 }, { -21, -25 }, { -21, -24 }, { -21, -23 }, { -21, -22 }, { -21, -21 }, { -21, -20 }, { -21, -19 }, { -21, -18 }, { -21, -15 }, { -21, -14 }, { -21, -13 }, { -21, -12 }, { -21, -3 }, { -21, -2 }, { -21, 5 }, { -21, 6 }, { -21, 15 }, { -21, 16 }, { -21, 17 }, { -21, 18 }, { -21, 21 }, { -21, 22 }, { -21, 23 }, { -21, 24 }, { -21, 25 }, { -21, 26 }, { -21, 27 }, { -21, 28 }, { -21, 31 }, - { -21, 32 }, { -21, 40 }, { -21, 41 }, { -21, 42 }, { -21, 43 }, { -21, 44 }, { -20, -42 }, { -20, -41 }, { -20, -40 }, { -20, -39 }, { -20, -38 }, { -20, -29 }, { -20, -28 }, { -20, -25 }, { -20, -24 }, { -20, -23 }, { -20, -22 }, { -20, -21 }, { -20, -20 }, { -20, -19 }, { -20, -18 }, { -20, -15 }, { -20, -14 }, { -20, -13 }, { -20, -12 }, { -20, -3 }, { -20, -2 }, { -20, -1 }, { -20, 4 }, { -20, 5 }, - { -20, 6 }, { -20, 15 }, { -20, 16 }, { -20, 17 }, { -20, 18 }, { -20, 21 }, { -20, 22 }, { -20, 23 }, { -20, 24 }, { -20, 25 }, { -20, 26 }, { -20, 27 }, { -20, 28 }, { -20, 31 }, { -20, 32 }, { -20, 41 }, { -20, 42 }, { -20, 43 }, { -20, 44 }, { -20, 45 }, { -19, -43 }, { -19, -42 }, { -19, -41 }, { -19, -35 }, { -19, -34 }, { -19, -33 }, { -19, -32 }, { -19, -25 }, { -19, -24 }, { -19, -23 }, - { -19, -15 }, { -19, -14 }, { -19, -13 }, { -19, -9 }, { -19, -8 }, { -19, -7 }, { -19, -6 }, { -19, -2 }, { -19, -1 }, { -19, 0 }, { -19, 1 }, { -19, 2 }, { -19, 3 }, { -19, 4 }, { -19, 5 }, { -19, 9 }, { -19, 10 }, { -19, 11 }, { -19, 12 }, { -19, 16 }, { -19, 17 }, { -19, 18 }, { -19, 26 }, { -19, 27 }, { -19, 28 }, { -19, 35 }, { -19, 36 }, { -19, 37 }, { -19, 38 }, { -19, 44 }, - { -19, 45 }, { -19, 46 }, { -18, -43 }, { -18, -42 }, { -18, -35 }, { -18, -34 }, { -18, -33 }, { -18, -32 }, { -18, -31 }, { -18, -26 }, { -18, -25 }, { -18, -24 }, { -18, -15 }, { -18, -14 }, { -18, -10 }, { -18, -9 }, { -18, -8 }, { -18, -7 }, { -18, -6 }, { -18, -1 }, { -18, 0 }, { -18, 1 }, { -18, 2 }, { -18, 3 }, { -18, 4 }, { -18, 9 }, { -18, 10 }, { -18, 11 }, { -18, 12 }, { -18, 13 }, - { -18, 17 }, { -18, 18 }, { -18, 27 }, { -18, 28 }, { -18, 29 }, { -18, 34 }, { -18, 35 }, { -18, 36 }, { -18, 37 }, { -18, 38 }, { -18, 45 }, { -18, 46 }, { -17, -43 }, { -17, -42 }, { -17, -32 }, { -17, -31 }, { -17, -30 }, { -17, -27 }, { -17, -26 }, { -17, -25 }, { -17, -21 }, { -17, -20 }, { -17, -19 }, { -17, -18 }, { -17, -17 }, { -17, -16 }, { -17, -15 }, { -17, -14 }, { -17, -11 }, { -17, -10 }, - { -17, -9 }, { -17, -8 }, { -17, -7 }, { -17, -6 }, { -17, 0 }, { -17, 1 }, { -17, 2 }, { -17, 3 }, { -17, 9 }, { -17, 10 }, { -17, 11 }, { -17, 12 }, { -17, 13 }, { -17, 14 }, { -17, 17 }, { -17, 18 }, { -17, 19 }, { -17, 20 }, { -17, 21 }, { -17, 22 }, { -17, 23 }, { -17, 24 }, { -17, 28 }, { -17, 29 }, { -17, 30 }, { -17, 33 }, { -17, 34 }, { -17, 35 }, { -17, 45 }, { -17, 46 }, - { -16, -43 }, { -16, -42 }, { -16, -31 }, { -16, -30 }, { -16, -27 }, { -16, -26 }, { -16, -21 }, { -16, -20 }, { -16, -19 }, { -16, -18 }, { -16, -17 }, { -16, -16 }, { -16, -15 }, { -16, -14 }, { -16, -11 }, { -16, -10 }, { -16, -9 }, { -16, -8 }, { -16, -7 }, { -16, -6 }, { -16, 1 }, { -16, 2 }, { -16, 9 }, { -16, 10 }, { -16, 11 }, { -16, 12 }, { -16, 13 }, { -16, 14 }, { -16, 17 }, { -16, 18 }, - { -16, 19 }, { -16, 20 }, { -16, 21 }, { -16, 22 }, { -16, 23 }, { -16, 24 }, { -16, 29 }, { -16, 30 }, { -16, 33 }, { -16, 34 }, { -16, 45 }, { -16, 46 }, { -15, -43 }, { -15, -42 }, { -15, -39 }, { -15, -38 }, { -15, -37 }, { -15, -36 }, { -15, -35 }, { -15, -34 }, { -15, -20 }, { -15, -19 }, { -15, -18 }, { -15, -17 }, { -15, -10 }, { -15, -9 }, { -15, -8 }, { -15, -7 }, { -15, -3 }, { -15, -2 }, - { -15, 1 }, { -15, 2 }, { -15, 5 }, { -15, 6 }, { -15, 10 }, { -15, 11 }, { -15, 12 }, { -15, 13 }, { -15, 20 }, { -15, 21 }, { -15, 22 }, { -15, 23 }, { -15, 37 }, { -15, 38 }, { -15, 39 }, { -15, 40 }, { -15, 41 }, { -15, 42 }, { -15, 45 }, { -15, 46 }, { -14, -43 }, { -14, -42 }, { -14, -39 }, { -14, -38 }, { -14, -37 }, { -14, -36 }, { -14, -35 }, { -14, -34 }, { -14, -33 }, { -14, -19 }, - { -14, -18 }, { -14, -9 }, { -14, -8 }, { -14, -4 }, { -14, -3 }, { -14, -2 }, { -14, 1 }, { -14, 2 }, { -14, 5 }, { -14, 6 }, { -14, 7 }, { -14, 11 }, { -14, 12 }, { -14, 21 }, { -14, 22 }, { -14, 36 }, { -14, 37 }, { -14, 38 }, { -14, 39 }, { -14, 40 }, { -14, 41 }, { -14, 42 }, { -14, 45 }, { -14, 46 }, { -13, -39 }, { -13, -38 }, { -13, -35 }, { -13, -34 }, { -13, -33 }, { -13, -32 }, - { -13, -29 }, { -13, -28 }, { -13, -15 }, { -13, -14 }, { -13, -5 }, { -13, -4 }, { -13, -3 }, { -13, -2 }, { -13, 5 }, { -13, 6 }, { -13, 7 }, { -13, 8 }, { -13, 17 }, { -13, 18 }, { -13, 31 }, { -13, 32 }, { -13, 35 }, { -13, 36 }, { -13, 37 }, { -13, 38 }, { -13, 41 }, { -13, 42 }, { -12, -39 }, { -12, -38 }, { -12, -35 }, { -12, -34 }, { -12, -33 }, { -12, -32 }, { -12, -29 }, { -12, -28 }, - { -12, -27 }, { -12, -16 }, { -12, -15 }, { -12, -14 }, { -12, -13 }, { -12, -5 }, { -12, -4 }, { -12, -3 }, { -12, -2 }, { -12, 5 }, { -12, 6 }, { -12, 7 }, { -12, 8 }, { -12, 16 }, { -12, 17 }, { -12, 18 }, { -12, 19 }, { -12, 30 }, { -12, 31 }, { -12, 32 }, { -12, 35 }, { -12, 36 }, { -12, 37 }, { -12, 38 }, { -12, 41 }, { -12, 42 }, { -11, -43 }, { -11, -42 }, { -11, -34 }, { -11, -33 }, - { -11, -32 }, { -11, -29 }, { -11, -28 }, { -11, -27 }, { -11, -26 }, { -11, -23 }, { -11, -22 }, { -11, -21 }, { -11, -20 }, { -11, -17 }, { -11, -16 }, { -11, -15 }, { -11, -14 }, { -11, -13 }, { -11, -12 }, { -11, -9 }, { -11, -8 }, { -11, 1 }, { -11, 2 }, { -11, 11 }, { -11, 12 }, { -11, 15 }, { -11, 16 }, { -11, 17 }, { -11, 18 }, { -11, 19 }, { -11, 20 }, { -11, 23 }, { -11, 24 }, { -11, 25 }, - { -11, 26 }, { -11, 29 }, { -11, 30 }, { -11, 31 }, { -11, 32 }, { -11, 35 }, { -11, 36 }, { -11, 37 }, { -11, 45 }, { -11, 46 }, { -10, -44 }, { -10, -43 }, { -10, -42 }, { -10, -33 }, { -10, -32 }, { -10, -29 }, { -10, -28 }, { -10, -27 }, { -10, -26 }, { -10, -23 }, { -10, -22 }, { -10, -21 }, { -10, -20 }, { -10, -17 }, { -10, -16 }, { -10, -15 }, { -10, -14 }, { -10, -13 }, { -10, -12 }, { -10, -9 }, - { -10, -8 }, { -10, -7 }, { -10, 0 }, { -10, 1 }, { -10, 2 }, { -10, 3 }, { -10, 10 }, { -10, 11 }, { -10, 12 }, { -10, 15 }, { -10, 16 }, { -10, 17 }, { -10, 18 }, { -10, 19 }, { -10, 20 }, { -10, 23 }, { -10, 24 }, { -10, 25 }, { -10, 26 }, { -10, 29 }, { -10, 30 }, { -10, 31 }, { -10, 32 }, { -10, 35 }, { -10, 36 }, { -10, 45 }, { -10, 46 }, { -10, 47 }, { -9, -45 }, { -9, -44 }, - { -9, -43 }, { -9, -29 }, { -9, -28 }, { -9, -27 }, { -9, -23 }, { -9, -22 }, { -9, -21 }, { -9, -20 }, { -9, -17 }, { -9, -16 }, { -9, -15 }, { -9, -14 }, { -9, -13 }, { -9, -8 }, { -9, -7 }, { -9, -6 }, { -9, -5 }, { -9, -1 }, { -9, 0 }, { -9, 1 }, { -9, 2 }, { -9, 3 }, { -9, 4 }, { -9, 8 }, { -9, 9 }, { -9, 10 }, { -9, 11 }, { -9, 16 }, { -9, 17 }, { -9, 18 }, - { -9, 19 }, { -9, 20 }, { -9, 23 }, { -9, 24 }, { -9, 25 }, { -9, 26 }, { -9, 30 }, { -9, 31 }, { -9, 32 }, { -9, 46 }, { -9, 47 }, { -9, 48 }, { -8, -45 }, { -8, -44 }, { -8, -30 }, { -8, -29 }, { -8, -28 }, { -8, -24 }, { -8, -23 }, { -8, -22 }, { -8, -21 }, { -8, -20 }, { -8, -17 }, { -8, -16 }, { -8, -15 }, { -8, -14 }, { -8, -7 }, { -8, -6 }, { -8, -5 }, { -8, -4 }, - { -8, -1 }, { -8, 0 }, { -8, 1 }, { -8, 2 }, { -8, 3 }, { -8, 4 }, { -8, 7 }, { -8, 8 }, { -8, 9 }, { -8, 10 }, { -8, 17 }, { -8, 18 }, { -8, 19 }, { -8, 20 }, { -8, 23 }, { -8, 24 }, { -8, 25 }, { -8, 26 }, { -8, 27 }, { -8, 31 }, { -8, 32 }, { -8, 33 }, { -8, 47 }, { -8, 48 }, { -7, -45 }, { -7, -44 }, { -7, -39 }, { -7, -38 }, { -7, -37 }, { -7, -36 }, - { -7, -31 }, { -7, -30 }, { -7, -29 }, { -7, -25 }, { -7, -24 }, { -7, -23 }, { -7, -22 }, { -7, -21 }, { -7, -11 }, { -7, -10 }, { -7, -7 }, { -7, -6 }, { -7, -5 }, { -7, -4 }, { -7, 7 }, { -7, 8 }, { -7, 9 }, { -7, 10 }, { -7, 13 }, { -7, 14 }, { -7, 24 }, { -7, 25 }, { -7, 26 }, { -7, 27 }, { -7, 28 }, { -7, 32 }, { -7, 33 }, { -7, 34 }, { -7, 39 }, { -7, 40 }, - { -7, 41 }, { -7, 42 }, { -7, 47 }, { -7, 48 }, { -6, -46 }, { -6, -45 }, { -6, -44 }, { -6, -39 }, { -6, -38 }, { -6, -37 }, { -6, -36 }, { -6, -35 }, { -6, -31 }, { -6, -30 }, { -6, -25 }, { -6, -24 }, { -6, -23 }, { -6, -22 }, { -6, -12 }, { -6, -11 }, { -6, -10 }, { -6, -6 }, { -6, -5 }, { -6, 8 }, { -6, 9 }, { -6, 13 }, { -6, 14 }, { -6, 15 }, { -6, 25 }, { -6, 26 }, - { -6, 27 }, { -6, 28 }, { -6, 33 }, { -6, 34 }, { -6, 38 }, { -6, 39 }, { -6, 40 }, { -6, 41 }, { -6, 42 }, { -6, 47 }, { -6, 48 }, { -6, 49 }, { -5, -47 }, { -5, -46 }, { -5, -45 }, { -5, -44 }, { -5, -37 }, { -5, -36 }, { -5, -35 }, { -5, -34 }, { -5, -19 }, { -5, -18 }, { -5, -13 }, { -5, -12 }, { -5, -11 }, { -5, -10 }, { -5, -1 }, { -5, 0 }, { -5, 1 }, { -5, 2 }, - { -5, 3 }, { -5, 4 }, { -5, 13 }, { -5, 14 }, { -5, 15 }, { -5, 16 }, { -5, 21 }, { -5, 22 }, { -5, 37 }, { -5, 38 }, { -5, 39 }, { -5, 40 }, { -5, 47 }, { -5, 48 }, { -5, 49 }, { -5, 50 }, { -4, -47 }, { -4, -46 }, { -4, -45 }, { -4, -44 }, { -4, -43 }, { -4, -37 }, { -4, -36 }, { -4, -35 }, { -4, -34 }, { -4, -19 }, { -4, -18 }, { -4, -17 }, { -4, -13 }, { -4, -12 }, - { -4, -11 }, { -4, -10 }, { -4, -2 }, { -4, -1 }, { -4, 0 }, { -4, 1 }, { -4, 2 }, { -4, 3 }, { -4, 4 }, { -4, 5 }, { -4, 13 }, { -4, 14 }, { -4, 15 }, { -4, 16 }, { -4, 20 }, { -4, 21 }, { -4, 22 }, { -4, 37 }, { -4, 38 }, { -4, 39 }, { -4, 40 }, { -4, 46 }, { -4, 47 }, { -4, 48 }, { -4, 49 }, { -4, 50 }, { -3, -44 }, { -3, -43 }, { -3, -42 }, { -3, -41 }, - { -3, -40 }, { -3, -37 }, { -3, -36 }, { -3, -35 }, { -3, -34 }, { -3, -31 }, { -3, -30 }, { -3, -29 }, { -3, -28 }, { -3, -25 }, { -3, -24 }, { -3, -23 }, { -3, -22 }, { -3, -18 }, { -3, -17 }, { -3, -16 }, { -3, -7 }, { -3, -6 }, { -3, -3 }, { -3, -2 }, { -3, -1 }, { -3, 0 }, { -3, 3 }, { -3, 4 }, { -3, 5 }, { -3, 6 }, { -3, 9 }, { -3, 10 }, { -3, 19 }, { -3, 20 }, - { -3, 21 }, { -3, 25 }, { -3, 26 }, { -3, 27 }, { -3, 28 }, { -3, 31 }, { -3, 32 }, { -3, 33 }, { -3, 34 }, { -3, 37 }, { -3, 38 }, { -3, 39 }, { -3, 40 }, { -3, 43 }, { -3, 44 }, { -3, 45 }, { -3, 46 }, { -3, 47 }, { -2, -43 }, { -2, -42 }, { -2, -41 }, { -2, -40 }, { -2, -37 }, { -2, -36 }, { -2, -35 }, { -2, -34 }, { -2, -31 }, { -2, -30 }, { -2, -29 }, { -2, -28 }, - { -2, -25 }, { -2, -24 }, { -2, -23 }, { -2, -22 }, { -2, -21 }, { -2, -17 }, { -2, -16 }, { -2, -15 }, { -2, -8 }, { -2, -7 }, { -2, -6 }, { -2, -3 }, { -2, -2 }, { -2, -1 }, { -2, 0 }, { -2, 3 }, { -2, 4 }, { -2, 5 }, { -2, 6 }, { -2, 9 }, { -2, 10 }, { -2, 11 }, { -2, 18 }, { -2, 19 }, { -2, 20 }, { -2, 24 }, { -2, 25 }, { -2, 26 }, { -2, 27 }, { -2, 28 }, - { -2, 31 }, { -2, 32 }, { -2, 33 }, { -2, 34 }, { -2, 37 }, { -2, 38 }, { -2, 39 }, { -2, 40 }, { -2, 43 }, { -2, 44 }, { -2, 45 }, { -2, 46 }, { -1, -47 }, { -1, -46 }, { -1, -43 }, { -1, -42 }, { -1, -41 }, { -1, -40 }, { -1, -37 }, { -1, -36 }, { -1, -29 }, { -1, -28 }, { -1, -25 }, { -1, -24 }, { -1, -23 }, { -1, -22 }, { -1, -21 }, { -1, -20 }, { -1, -17 }, { -1, -16 }, - { -1, -15 }, { -1, -14 }, { -1, -13 }, { -1, -12 }, { -1, -9 }, { -1, -8 }, { -1, -7 }, { -1, -6 }, { -1, -3 }, { -1, -2 }, { -1, 5 }, { -1, 6 }, { -1, 9 }, { -1, 10 }, { -1, 11 }, { -1, 12 }, { -1, 15 }, { -1, 16 }, { -1, 17 }, { -1, 18 }, { -1, 19 }, { -1, 20 }, { -1, 23 }, { -1, 24 }, { -1, 25 }, { -1, 26 }, { -1, 27 }, { -1, 28 }, { -1, 31 }, { -1, 32 }, - { -1, 39 }, { -1, 40 }, { -1, 43 }, { -1, 44 }, { -1, 45 }, { -1, 46 }, { -1, 49 }, { -1, 50 }, { 0, -47 }, { 0, -46 }, { 0, -43 }, { 0, -42 }, { 0, -41 }, { 0, -40 }, { 0, -37 }, { 0, -36 }, { 0, -29 }, { 0, -28 }, { 0, -25 }, { 0, -24 }, { 0, -23 }, { 0, -22 }, { 0, -21 }, { 0, -20 }, { 0, -17 }, { 0, -16 }, { 0, -15 }, { 0, -14 }, { 0, -13 }, { 0, -12 }, - { 0, -9 }, { 0, -8 }, { 0, -7 }, { 0, -6 }, { 0, -3 }, { 0, -2 }, { 0, 5 }, { 0, 6 }, { 0, 9 }, { 0, 10 }, { 0, 11 }, { 0, 12 }, { 0, 15 }, { 0, 16 }, { 0, 17 }, { 0, 18 }, { 0, 19 }, { 0, 20 }, { 0, 23 }, { 0, 24 }, { 0, 25 }, { 0, 26 }, { 0, 27 }, { 0, 28 }, { 0, 31 }, { 0, 32 }, { 0, 39 }, { 0, 40 }, { 0, 43 }, { 0, 44 }, - { 0, 45 }, { 0, 46 }, { 0, 49 }, { 0, 50 }, { 1, -43 }, { 1, -42 }, { 1, -41 }, { 1, -40 }, { 1, -37 }, { 1, -36 }, { 1, -35 }, { 1, -34 }, { 1, -31 }, { 1, -30 }, { 1, -29 }, { 1, -28 }, { 1, -25 }, { 1, -24 }, { 1, -23 }, { 1, -22 }, { 1, -21 }, { 1, -17 }, { 1, -16 }, { 1, -15 }, { 1, -8 }, { 1, -7 }, { 1, -6 }, { 1, -3 }, { 1, -2 }, { 1, -1 }, - { 1, 0 }, { 1, 3 }, { 1, 4 }, { 1, 5 }, { 1, 6 }, { 1, 9 }, { 1, 10 }, { 1, 11 }, { 1, 18 }, { 1, 19 }, { 1, 20 }, { 1, 24 }, { 1, 25 }, { 1, 26 }, { 1, 27 }, { 1, 28 }, { 1, 31 }, { 1, 32 }, { 1, 33 }, { 1, 34 }, { 1, 37 }, { 1, 38 }, { 1, 39 }, { 1, 40 }, { 1, 43 }, { 1, 44 }, { 1, 45 }, { 1, 46 }, { 2, -44 }, { 2, -43 }, - { 2, -42 }, { 2, -41 }, { 2, -40 }, { 2, -37 }, { 2, -36 }, { 2, -35 }, { 2, -34 }, { 2, -31 }, { 2, -30 }, { 2, -29 }, { 2, -28 }, { 2, -25 }, { 2, -24 }, { 2, -23 }, { 2, -22 }, { 2, -18 }, { 2, -17 }, { 2, -16 }, { 2, -7 }, { 2, -6 }, { 2, -3 }, { 2, -2 }, { 2, -1 }, { 2, 0 }, { 2, 3 }, { 2, 4 }, { 2, 5 }, { 2, 6 }, { 2, 9 }, { 2, 10 }, - { 2, 19 }, { 2, 20 }, { 2, 21 }, { 2, 25 }, { 2, 26 }, { 2, 27 }, { 2, 28 }, { 2, 31 }, { 2, 32 }, { 2, 33 }, { 2, 34 }, { 2, 37 }, { 2, 38 }, { 2, 39 }, { 2, 40 }, { 2, 43 }, { 2, 44 }, { 2, 45 }, { 2, 46 }, { 2, 47 }, { 3, -47 }, { 3, -46 }, { 3, -45 }, { 3, -44 }, { 3, -43 }, { 3, -37 }, { 3, -36 }, { 3, -35 }, { 3, -34 }, { 3, -19 }, - { 3, -18 }, { 3, -17 }, { 3, -13 }, { 3, -12 }, { 3, -11 }, { 3, -10 }, { 3, -2 }, { 3, -1 }, { 3, 0 }, { 3, 1 }, { 3, 2 }, { 3, 3 }, { 3, 4 }, { 3, 5 }, { 3, 13 }, { 3, 14 }, { 3, 15 }, { 3, 16 }, { 3, 20 }, { 3, 21 }, { 3, 22 }, { 3, 37 }, { 3, 38 }, { 3, 39 }, { 3, 40 }, { 3, 46 }, { 3, 47 }, { 3, 48 }, { 3, 49 }, { 3, 50 }, - { 4, -47 }, { 4, -46 }, { 4, -45 }, { 4, -44 }, { 4, -37 }, { 4, -36 }, { 4, -35 }, { 4, -34 }, { 4, -19 }, { 4, -18 }, { 4, -13 }, { 4, -12 }, { 4, -11 }, { 4, -10 }, { 4, -1 }, { 4, 0 }, { 4, 1 }, { 4, 2 }, { 4, 3 }, { 4, 4 }, { 4, 13 }, { 4, 14 }, { 4, 15 }, { 4, 16 }, { 4, 21 }, { 4, 22 }, { 4, 37 }, { 4, 38 }, { 4, 39 }, { 4, 40 }, - { 4, 47 }, { 4, 48 }, { 4, 49 }, { 4, 50 }, { 5, -46 }, { 5, -45 }, { 5, -44 }, { 5, -39 }, { 5, -38 }, { 5, -37 }, { 5, -36 }, { 5, -35 }, { 5, -31 }, { 5, -30 }, { 5, -25 }, { 5, -24 }, { 5, -23 }, { 5, -22 }, { 5, -12 }, { 5, -11 }, { 5, -10 }, { 5, -6 }, { 5, -5 }, { 5, 8 }, { 5, 9 }, { 5, 13 }, { 5, 14 }, { 5, 15 }, { 5, 25 }, { 5, 26 }, - { 5, 27 }, { 5, 28 }, { 5, 33 }, { 5, 34 }, { 5, 38 }, { 5, 39 }, { 5, 40 }, { 5, 41 }, { 5, 42 }, { 5, 47 }, { 5, 48 }, { 5, 49 }, { 6, -45 }, { 6, -44 }, { 6, -39 }, { 6, -38 }, { 6, -37 }, { 6, -36 }, { 6, -31 }, { 6, -30 }, { 6, -29 }, { 6, -25 }, { 6, -24 }, { 6, -23 }, { 6, -22 }, { 6, -21 }, { 6, -11 }, { 6, -10 }, { 6, -7 }, { 6, -6 }, - { 6, -5 }, { 6, -4 }, { 6, 7 }, { 6, 8 }, { 6, 9 }, { 6, 10 }, { 6, 13 }, { 6, 14 }, { 6, 24 }, { 6, 25 }, { 6, 26 }, { 6, 27 }, { 6, 28 }, { 6, 32 }, { 6, 33 }, { 6, 34 }, { 6, 39 }, { 6, 40 }, { 6, 41 }, { 6, 42 }, { 6, 47 }, { 6, 48 }, { 7, -45 }, { 7, -44 }, { 7, -30 }, { 7, -29 }, { 7, -28 }, { 7, -24 }, { 7, -23 }, { 7, -22 }, - { 7, -21 }, { 7, -20 }, { 7, -17 }, { 7, -16 }, { 7, -15 }, { 7, -14 }, { 7, -7 }, { 7, -6 }, { 7, -5 }, { 7, -4 }, { 7, -1 }, { 7, 0 }, { 7, 1 }, { 7, 2 }, { 7, 3 }, { 7, 4 }, { 7, 7 }, { 7, 8 }, { 7, 9 }, { 7, 10 }, { 7, 17 }, { 7, 18 }, { 7, 19 }, { 7, 20 }, { 7, 23 }, { 7, 24 }, { 7, 25 }, { 7, 26 }, { 7, 27 }, { 7, 31 }, - { 7, 32 }, { 7, 33 }, { 7, 47 }, { 7, 48 }, { 8, -45 }, { 8, -44 }, { 8, -43 }, { 8, -29 }, { 8, -28 }, { 8, -27 }, { 8, -23 }, { 8, -22 }, { 8, -21 }, { 8, -20 }, { 8, -17 }, { 8, -16 }, { 8, -15 }, { 8, -14 }, { 8, -13 }, { 8, -8 }, { 8, -7 }, { 8, -6 }, { 8, -5 }, { 8, -1 }, { 8, 0 }, { 8, 1 }, { 8, 2 }, { 8, 3 }, { 8, 4 }, { 8, 8 }, - { 8, 9 }, { 8, 10 }, { 8, 11 }, { 8, 16 }, { 8, 17 }, { 8, 18 }, { 8, 19 }, { 8, 20 }, { 8, 23 }, { 8, 24 }, { 8, 25 }, { 8, 26 }, { 8, 30 }, { 8, 31 }, { 8, 32 }, { 8, 46 }, { 8, 47 }, { 8, 48 }, { 9, -44 }, { 9, -43 }, { 9, -42 }, { 9, -33 }, { 9, -32 }, { 9, -29 }, { 9, -28 }, { 9, -27 }, { 9, -26 }, { 9, -23 }, { 9, -22 }, { 9, -21 }, - { 9, -20 }, { 9, -17 }, { 9, -16 }, { 9, -15 }, { 9, -14 }, { 9, -13 }, { 9, -12 }, { 9, -9 }, { 9, -8 }, { 9, -7 }, { 9, 0 }, { 9, 1 }, { 9, 2 }, { 9, 3 }, { 9, 10 }, { 9, 11 }, { 9, 12 }, { 9, 15 }, { 9, 16 }, { 9, 17 }, { 9, 18 }, { 9, 19 }, { 9, 20 }, { 9, 23 }, { 9, 24 }, { 9, 25 }, { 9, 26 }, { 9, 29 }, { 9, 30 }, { 9, 31 }, - { 9, 32 }, { 9, 35 }, { 9, 36 }, { 9, 45 }, { 9, 46 }, { 9, 47 }, { 10, -43 }, { 10, -42 }, { 10, -34 }, { 10, -33 }, { 10, -32 }, { 10, -29 }, { 10, -28 }, { 10, -27 }, { 10, -26 }, { 10, -23 }, { 10, -22 }, { 10, -21 }, { 10, -20 }, { 10, -17 }, { 10, -16 }, { 10, -15 }, { 10, -14 }, { 10, -13 }, { 10, -12 }, { 10, -9 }, { 10, -8 }, { 10, 1 }, { 10, 2 }, { 10, 11 }, - { 10, 12 }, { 10, 15 }, { 10, 16 }, { 10, 17 }, { 10, 18 }, { 10, 19 }, { 10, 20 }, { 10, 23 }, { 10, 24 }, { 10, 25 }, { 10, 26 }, { 10, 29 }, { 10, 30 }, { 10, 31 }, { 10, 32 }, { 10, 35 }, { 10, 36 }, { 10, 37 }, { 10, 45 }, { 10, 46 }, { 11, -39 }, { 11, -38 }, { 11, -35 }, { 11, -34 }, { 11, -33 }, { 11, -32 }, { 11, -29 }, { 11, -28 }, { 11, -27 }, { 11, -16 }, - { 11, -15 }, { 11, -14 }, { 11, -13 }, { 11, -5 }, { 11, -4 }, { 11, -3 }, { 11, -2 }, { 11, 5 }, { 11, 6 }, { 11, 7 }, { 11, 8 }, { 11, 16 }, { 11, 17 }, { 11, 18 }, { 11, 19 }, { 11, 30 }, { 11, 31 }, { 11, 32 }, { 11, 35 }, { 11, 36 }, { 11, 37 }, { 11, 38 }, { 11, 41 }, { 11, 42 }, { 12, -39 }, { 12, -38 }, { 12, -35 }, { 12, -34 }, { 12, -33 }, { 12, -32 }, - { 12, -29 }, { 12, -28 }, { 12, -15 }, { 12, -14 }, { 12, -5 }, { 12, -4 }, { 12, -3 }, { 12, -2 }, { 12, 5 }, { 12, 6 }, { 12, 7 }, { 12, 8 }, { 12, 17 }, { 12, 18 }, { 12, 31 }, { 12, 32 }, { 12, 35 }, { 12, 36 }, { 12, 37 }, { 12, 38 }, { 12, 41 }, { 12, 42 }, { 13, -43 }, { 13, -42 }, { 13, -39 }, { 13, -38 }, { 13, -37 }, { 13, -36 }, { 13, -35 }, { 13, -34 }, - { 13, -33 }, { 13, -19 }, { 13, -18 }, { 13, -9 }, { 13, -8 }, { 13, -4 }, { 13, -3 }, { 13, -2 }, { 13, 1 }, { 13, 2 }, { 13, 5 }, { 13, 6 }, { 13, 7 }, { 13, 11 }, { 13, 12 }, { 13, 21 }, { 13, 22 }, { 13, 36 }, { 13, 37 }, { 13, 38 }, { 13, 39 }, { 13, 40 }, { 13, 41 }, { 13, 42 }, { 13, 45 }, { 13, 46 }, { 14, -43 }, { 14, -42 }, { 14, -39 }, { 14, -38 }, - { 14, -37 }, { 14, -36 }, { 14, -35 }, { 14, -34 }, { 14, -20 }, { 14, -19 }, { 14, -18 }, { 14, -17 }, { 14, -10 }, { 14, -9 }, { 14, -8 }, { 14, -7 }, { 14, -3 }, { 14, -2 }, { 14, 1 }, { 14, 2 }, { 14, 5 }, { 14, 6 }, { 14, 10 }, { 14, 11 }, { 14, 12 }, { 14, 13 }, { 14, 20 }, { 14, 21 }, { 14, 22 }, { 14, 23 }, { 14, 37 }, { 14, 38 }, { 14, 39 }, { 14, 40 }, - { 14, 41 }, { 14, 42 }, { 14, 45 }, { 14, 46 }, { 15, -43 }, { 15, -42 }, { 15, -31 }, { 15, -30 }, { 15, -27 }, { 15, -26 }, { 15, -21 }, { 15, -20 }, { 15, -19 }, { 15, -18 }, { 15, -17 }, { 15, -16 }, { 15, -15 }, { 15, -14 }, { 15, -11 }, { 15, -10 }, { 15, -9 }, { 15, -8 }, { 15, -7 }, { 15, -6 }, { 15, 1 }, { 15, 2 }, { 15, 9 }, { 15, 10 }, { 15, 11 }, { 15, 12 }, - { 15, 13 }, { 15, 14 }, { 15, 17 }, { 15, 18 }, { 15, 19 }, { 15, 20 }, { 15, 21 }, { 15, 22 }, { 15, 23 }, { 15, 24 }, { 15, 29 }, { 15, 30 }, { 15, 33 }, { 15, 34 }, { 15, 45 }, { 15, 46 }, { 16, -43 }, { 16, -42 }, { 16, -32 }, { 16, -31 }, { 16, -30 }, { 16, -27 }, { 16, -26 }, { 16, -25 }, { 16, -21 }, { 16, -20 }, { 16, -19 }, { 16, -18 }, { 16, -17 }, { 16, -16 }, - { 16, -15 }, { 16, -14 }, { 16, -11 }, { 16, -10 }, { 16, -9 }, { 16, -8 }, { 16, -7 }, { 16, -6 }, { 16, 0 }, { 16, 1 }, { 16, 2 }, { 16, 3 }, { 16, 9 }, { 16, 10 }, { 16, 11 }, { 16, 12 }, { 16, 13 }, { 16, 14 }, { 16, 17 }, { 16, 18 }, { 16, 19 }, { 16, 20 }, { 16, 21 }, { 16, 22 }, { 16, 23 }, { 16, 24 }, { 16, 28 }, { 16, 29 }, { 16, 30 }, { 16, 33 }, - { 16, 34 }, { 16, 35 }, { 16, 45 }, { 16, 46 }, { 17, -43 }, { 17, -42 }, { 17, -35 }, { 17, -34 }, { 17, -33 }, { 17, -32 }, { 17, -31 }, { 17, -26 }, { 17, -25 }, { 17, -24 }, { 17, -15 }, { 17, -14 }, { 17, -10 }, { 17, -9 }, { 17, -8 }, { 17, -7 }, { 17, -6 }, { 17, -1 }, { 17, 0 }, { 17, 1 }, { 17, 2 }, { 17, 3 }, { 17, 4 }, { 17, 9 }, { 17, 10 }, { 17, 11 }, - { 17, 12 }, { 17, 13 }, { 17, 17 }, { 17, 18 }, { 17, 27 }, { 17, 28 }, { 17, 29 }, { 17, 34 }, { 17, 35 }, { 17, 36 }, { 17, 37 }, { 17, 38 }, { 17, 45 }, { 17, 46 }, { 18, -43 }, { 18, -42 }, { 18, -41 }, { 18, -35 }, { 18, -34 }, { 18, -33 }, { 18, -32 }, { 18, -25 }, { 18, -24 }, { 18, -23 }, { 18, -15 }, { 18, -14 }, { 18, -13 }, { 18, -9 }, { 18, -8 }, { 18, -7 }, - { 18, -6 }, { 18, -2 }, { 18, -1 }, { 18, 0 }, { 18, 1 }, { 18, 2 }, { 18, 3 }, { 18, 4 }, { 18, 5 }, { 18, 9 }, { 18, 10 }, { 18, 11 }, { 18, 12 }, { 18, 16 }, { 18, 17 }, { 18, 18 }, { 18, 26 }, { 18, 27 }, { 18, 28 }, { 18, 35 }, { 18, 36 }, { 18, 37 }, { 18, 38 }, { 18, 44 }, { 18, 45 }, { 18, 46 }, { 19, -42 }, { 19, -41 }, { 19, -40 }, { 19, -39 }, - { 19, -38 }, { 19, -29 }, { 19, -28 }, { 19, -25 }, { 19, -24 }, { 19, -23 }, { 19, -22 }, { 19, -21 }, { 19, -20 }, { 19, -19 }, { 19, -18 }, { 19, -15 }, { 19, -14 }, { 19, -13 }, { 19, -12 }, { 19, -3 }, { 19, -2 }, { 19, -1 }, { 19, 4 }, { 19, 5 }, { 19, 6 }, { 19, 15 }, { 19, 16 }, { 19, 17 }, { 19, 18 }, { 19, 21 }, { 19, 22 }, { 19, 23 }, { 19, 24 }, { 19, 25 }, - { 19, 26 }, { 19, 27 }, { 19, 28 }, { 19, 31 }, { 19, 32 }, { 19, 41 }, { 19, 42 }, { 19, 43 }, { 19, 44 }, { 19, 45 }, { 20, -41 }, { 20, -40 }, { 20, -39 }, { 20, -38 }, { 20, -37 }, { 20, -29 }, { 20, -28 }, { 20, -25 }, { 20, -24 }, { 20, -23 }, { 20, -22 }, { 20, -21 }, { 20, -20 }, { 20, -19 }, { 20, -18 }, { 20, -15 }, { 20, -14 }, { 20, -13 }, { 20, -12 }, { 20, -3 }, - { 20, -2 }, { 20, 5 }, { 20, 6 }, { 20, 15 }, { 20, 16 }, { 20, 17 }, { 20, 18 }, { 20, 21 }, { 20, 22 }, { 20, 23 }, { 20, 24 }, { 20, 25 }, { 20, 26 }, { 20, 27 }, { 20, 28 }, { 20, 31 }, { 20, 32 }, { 20, 40 }, { 20, 41 }, { 20, 42 }, { 20, 43 }, { 20, 44 }, { 21, -38 }, { 21, -37 }, { 21, -36 }, { 21, -29 }, { 21, -28 }, { 21, -19 }, { 21, -18 }, { 21, -15 }, - { 21, -14 }, { 21, -13 }, { 21, -9 }, { 21, -8 }, { 21, -7 }, { 21, -6 }, { 21, 1 }, { 21, 2 }, { 21, 9 }, { 21, 10 }, { 21, 11 }, { 21, 12 }, { 21, 16 }, { 21, 17 }, { 21, 18 }, { 21, 21 }, { 21, 22 }, { 21, 31 }, { 21, 32 }, { 21, 39 }, { 21, 40 }, { 21, 41 }, { 22, -37 }, { 22, -36 }, { 22, -30 }, { 22, -29 }, { 22, -28 }, { 22, -19 }, { 22, -18 }, { 22, -15 }, - { 22, -14 }, { 22, -9 }, { 22, -8 }, { 22, -7 }, { 22, -6 }, { 22, -5 }, { 22, 0 }, { 22, 1 }, { 22, 2 }, { 22, 3 }, { 22, 8 }, { 22, 9 }, { 22, 10 }, { 22, 11 }, { 22, 12 }, { 22, 17 }, { 22, 18 }, { 22, 21 }, { 22, 22 }, { 22, 31 }, { 22, 32 }, { 22, 33 }, { 22, 39 }, { 22, 40 }, { 23, -33 }, { 23, -32 }, { 23, -31 }, { 23, -30 }, { 23, -29 }, { 23, -25 }, - { 23, -24 }, { 23, -23 }, { 23, -22 }, { 23, -19 }, { 23, -18 }, { 23, -9 }, { 23, -8 }, { 23, -7 }, { 23, -6 }, { 23, -5 }, { 23, -4 }, { 23, -1 }, { 23, 0 }, { 23, 1 }, { 23, 2 }, { 23, 3 }, { 23, 4 }, { 23, 7 }, { 23, 8 }, { 23, 9 }, { 23, 10 }, { 23, 11 }, { 23, 12 }, { 23, 21 }, { 23, 22 }, { 23, 25 }, { 23, 26 }, { 23, 27 }, { 23, 28 }, { 23, 32 }, - { 23, 33 }, { 23, 34 }, { 23, 35 }, { 23, 36 }, { 24, -33 }, { 24, -32 }, { 24, -31 }, { 24, -30 }, { 24, -25 }, { 24, -24 }, { 24, -23 }, { 24, -22 }, { 24, -19 }, { 24, -18 }, { 24, -17 }, { 24, -9 }, { 24, -8 }, { 24, -7 }, { 24, -6 }, { 24, -5 }, { 24, -4 }, { 24, -1 }, { 24, 0 }, { 24, 1 }, { 24, 2 }, { 24, 3 }, { 24, 4 }, { 24, 7 }, { 24, 8 }, { 24, 9 }, - { 24, 10 }, { 24, 11 }, { 24, 12 }, { 24, 20 }, { 24, 21 }, { 24, 22 }, { 24, 25 }, { 24, 26 }, { 24, 27 }, { 24, 28 }, { 24, 33 }, { 24, 34 }, { 24, 35 }, { 24, 36 }, { 25, -39 }, { 25, -38 }, { 25, -37 }, { 25, -36 }, { 25, -24 }, { 25, -23 }, { 25, -22 }, { 25, -19 }, { 25, -18 }, { 25, -17 }, { 25, -16 }, { 25, -6 }, { 25, -5 }, { 25, -4 }, { 25, -1 }, { 25, 0 }, - { 25, 1 }, { 25, 2 }, { 25, 3 }, { 25, 4 }, { 25, 7 }, { 25, 8 }, { 25, 9 }, { 25, 19 }, { 25, 20 }, { 25, 21 }, { 25, 22 }, { 25, 25 }, { 25, 26 }, { 25, 27 }, { 25, 39 }, { 25, 40 }, { 25, 41 }, { 25, 42 }, { 26, -39 }, { 26, -38 }, { 26, -37 }, { 26, -36 }, { 26, -23 }, { 26, -22 }, { 26, -19 }, { 26, -18 }, { 26, -17 }, { 26, -16 }, { 26, -15 }, { 26, -5 }, - { 26, -4 }, { 26, -1 }, { 26, 0 }, { 26, 1 }, { 26, 2 }, { 26, 3 }, { 26, 4 }, { 26, 7 }, { 26, 8 }, { 26, 18 }, { 26, 19 }, { 26, 20 }, { 26, 21 }, { 26, 22 }, { 26, 25 }, { 26, 26 }, { 26, 39 }, { 26, 40 }, { 26, 41 }, { 26, 42 }, { 27, -38 }, { 27, -37 }, { 27, -36 }, { 27, -29 }, { 27, -28 }, { 27, -27 }, { 27, -26 }, { 27, -16 }, { 27, -15 }, { 27, -14 }, - { 27, -9 }, { 27, -8 }, { 27, 11 }, { 27, 12 }, { 27, 17 }, { 27, 18 }, { 27, 19 }, { 27, 29 }, { 27, 30 }, { 27, 31 }, { 27, 32 }, { 27, 39 }, { 27, 40 }, { 27, 41 }, { 28, -37 }, { 28, -36 }, { 28, -30 }, { 28, -29 }, { 28, -28 }, { 28, -27 }, { 28, -26 }, { 28, -15 }, { 28, -14 }, { 28, -10 }, { 28, -9 }, { 28, -8 }, { 28, -7 }, { 28, 10 }, { 28, 11 }, { 28, 12 }, - { 28, 13 }, { 28, 17 }, { 28, 18 }, { 28, 29 }, { 28, 30 }, { 28, 31 }, { 28, 32 }, { 28, 33 }, { 28, 39 }, { 28, 40 }, { 29, -33 }, { 29, -32 }, { 29, -31 }, { 29, -30 }, { 29, -29 }, { 29, -28 }, { 29, -27 }, { 29, -26 }, { 29, -21 }, { 29, -20 }, { 29, -19 }, { 29, -18 }, { 29, -11 }, { 29, -10 }, { 29, -9 }, { 29, -8 }, { 29, -7 }, { 29, -6 }, { 29, -1 }, { 29, 0 }, - { 29, 1 }, { 29, 2 }, { 29, 3 }, { 29, 4 }, { 29, 9 }, { 29, 10 }, { 29, 11 }, { 29, 12 }, { 29, 13 }, { 29, 14 }, { 29, 21 }, { 29, 22 }, { 29, 23 }, { 29, 24 }, { 29, 29 }, { 29, 30 }, { 29, 31 }, { 29, 32 }, { 29, 33 }, { 29, 34 }, { 29, 35 }, { 29, 36 }, { 30, -33 }, { 30, -32 }, { 30, -31 }, { 30, -30 }, { 30, -29 }, { 30, -28 }, { 30, -27 }, { 30, -26 }, - { 30, -22 }, { 30, -21 }, { 30, -20 }, { 30, -19 }, { 30, -18 }, { 30, -11 }, { 30, -10 }, { 30, -9 }, { 30, -8 }, { 30, -7 }, { 30, -6 }, { 30, -5 }, { 30, -1 }, { 30, 0 }, { 30, 1 }, { 30, 2 }, { 30, 3 }, { 30, 4 }, { 30, 8 }, { 30, 9 }, { 30, 10 }, { 30, 11 }, { 30, 12 }, { 30, 13 }, { 30, 14 }, { 30, 21 }, { 30, 22 }, { 30, 23 }, { 30, 24 }, { 30, 25 }, - { 30, 29 }, { 30, 30 }, { 30, 31 }, { 30, 32 }, { 30, 33 }, { 30, 34 }, { 30, 35 }, { 30, 36 }, { 31, -32 }, { 31, -31 }, { 31, -30 }, { 31, -29 }, { 31, -28 }, { 31, -27 }, { 31, -23 }, { 31, -22 }, { 31, -21 }, { 31, -15 }, { 31, -14 }, { 31, -6 }, { 31, -5 }, { 31, -4 }, { 31, -1 }, { 31, 0 }, { 31, 3 }, { 31, 4 }, { 31, 7 }, { 31, 8 }, { 31, 9 }, { 31, 17 }, - { 31, 18 }, { 31, 24 }, { 31, 25 }, { 31, 26 }, { 31, 30 }, { 31, 31 }, { 31, 32 }, { 31, 33 }, { 31, 34 }, { 31, 35 }, { 32, -31 }, { 32, -30 }, { 32, -29 }, { 32, -28 }, { 32, -23 }, { 32, -22 }, { 32, -16 }, { 32, -15 }, { 32, -14 }, { 32, -5 }, { 32, -4 }, { 32, -1 }, { 32, 0 }, { 32, 3 }, { 32, 4 }, { 32, 7 }, { 32, 8 }, { 32, 17 }, { 32, 18 }, { 32, 19 }, - { 32, 25 }, { 32, 26 }, { 32, 31 }, { 32, 32 }, { 32, 33 }, { 32, 34 }, { 33, -30 }, { 33, -29 }, { 33, -28 }, { 33, -23 }, { 33, -22 }, { 33, -17 }, { 33, -16 }, { 33, -15 }, { 33, -11 }, { 33, -10 }, { 33, -9 }, { 33, -8 }, { 33, 11 }, { 33, 12 }, { 33, 13 }, { 33, 14 }, { 33, 18 }, { 33, 19 }, { 33, 20 }, { 33, 25 }, { 33, 26 }, { 33, 31 }, { 33, 32 }, { 33, 33 }, - { 34, -29 }, { 34, -28 }, { 34, -23 }, { 34, -22 }, { 34, -17 }, { 34, -16 }, { 34, -12 }, { 34, -11 }, { 34, -10 }, { 34, -9 }, { 34, -8 }, { 34, 11 }, { 34, 12 }, { 34, 13 }, { 34, 14 }, { 34, 15 }, { 34, 19 }, { 34, 20 }, { 34, 25 }, { 34, 26 }, { 34, 31 }, { 34, 32 }, { 35, -17 }, { 35, -16 }, { 35, -13 }, { 35, -12 }, { 35, -11 }, { 35, -10 }, { 35, -9 }, { 35, -3 }, - { 35, -2 }, { 35, -1 }, { 35, 0 }, { 35, 3 }, { 35, 4 }, { 35, 5 }, { 35, 6 }, { 35, 12 }, { 35, 13 }, { 35, 14 }, { 35, 15 }, { 35, 16 }, { 35, 19 }, { 35, 20 }, { 36, -17 }, { 36, -16 }, { 36, -13 }, { 36, -12 }, { 36, -11 }, { 36, -10 }, { 36, -4 }, { 36, -3 }, { 36, -2 }, { 36, -1 }, { 36, 0 }, { 36, 3 }, { 36, 4 }, { 36, 5 }, { 36, 6 }, { 36, 7 }, - { 36, 13 }, { 36, 14 }, { 36, 15 }, { 36, 16 }, { 36, 19 }, { 36, 20 }, { 37, -27 }, { 37, -26 }, { 37, -25 }, { 37, -24 }, { 37, -21 }, { 37, -20 }, { 37, -13 }, { 37, -12 }, { 37, -5 }, { 37, -4 }, { 37, -3 }, { 37, -2 }, { 37, -1 }, { 37, 0 }, { 37, 1 }, { 37, 2 }, { 37, 3 }, { 37, 4 }, { 37, 5 }, { 37, 6 }, { 37, 7 }, { 37, 8 }, { 37, 15 }, { 37, 16 }, - { 37, 23 }, { 37, 24 }, { 37, 27 }, { 37, 28 }, { 37, 29 }, { 37, 30 }, { 38, -27 }, { 38, -26 }, { 38, -25 }, { 38, -24 }, { 38, -21 }, { 38, -20 }, { 38, -19 }, { 38, -13 }, { 38, -12 }, { 38, -5 }, { 38, -4 }, { 38, -3 }, { 38, -2 }, { 38, -1 }, { 38, 0 }, { 38, 1 }, { 38, 2 }, { 38, 3 }, { 38, 4 }, { 38, 5 }, { 38, 6 }, { 38, 7 }, { 38, 8 }, { 38, 15 }, - { 38, 16 }, { 38, 22 }, { 38, 23 }, { 38, 24 }, { 38, 27 }, { 38, 28 }, { 38, 29 }, { 38, 30 }, { 39, -26 }, { 39, -25 }, { 39, -24 }, { 39, -20 }, { 39, -19 }, { 39, -18 }, { 39, -13 }, { 39, -12 }, { 39, -11 }, { 39, -10 }, { 39, -5 }, { 39, -4 }, { 39, 7 }, { 39, 8 }, { 39, 13 }, { 39, 14 }, { 39, 15 }, { 39, 16 }, { 39, 21 }, { 39, 22 }, { 39, 23 }, { 39, 27 }, - { 39, 28 }, { 39, 29 }, { 40, -25 }, { 40, -24 }, { 40, -19 }, { 40, -18 }, { 40, -13 }, { 40, -12 }, { 40, -11 }, { 40, -10 }, { 40, -5 }, { 40, -4 }, { 40, 7 }, { 40, 8 }, { 40, 13 }, { 40, 14 }, { 40, 15 }, { 40, 16 }, { 40, 21 }, { 40, 22 }, { 40, 27 }, { 40, 28 }, { 41, -19 }, { 41, -18 }, { 41, -1 }, { 41, 0 }, { 41, 1 }, { 41, 2 }, { 41, 3 }, { 41, 4 }, - { 41, 21 }, { 41, 22 }, { 42, -19 }, { 42, -18 }, { 42, -17 }, { 42, -1 }, { 42, 0 }, { 42, 1 }, { 42, 2 }, { 42, 3 }, { 42, 4 }, { 42, 20 }, { 42, 21 }, { 42, 22 }, { 43, -18 }, { 43, -17 }, { 43, -16 }, { 43, -15 }, { 43, -14 }, { 43, -13 }, { 43, -12 }, { 43, -9 }, { 43, -8 }, { 43, -1 }, { 43, 0 }, { 43, 1 }, { 43, 2 }, { 43, 3 }, { 43, 4 }, { 43, 11 }, - { 43, 12 }, { 43, 15 }, { 43, 16 }, { 43, 17 }, { 43, 18 }, { 43, 19 }, { 43, 20 }, { 43, 21 }, { 44, -17 }, { 44, -16 }, { 44, -15 }, { 44, -14 }, { 44, -13 }, { 44, -12 }, { 44, -9 }, { 44, -8 }, { 44, -7 }, { 44, -2 }, { 44, -1 }, { 44, 0 }, { 44, 1 }, { 44, 2 }, { 44, 3 }, { 44, 4 }, { 44, 5 }, { 44, 10 }, { 44, 11 }, { 44, 12 }, { 44, 15 }, { 44, 16 }, - { 44, 17 }, { 44, 18 }, { 44, 19 }, { 44, 20 }, { 45, -8 }, { 45, -7 }, { 45, -6 }, { 45, -5 }, { 45, -4 }, { 45, -3 }, { 45, -2 }, { 45, -1 }, { 45, 4 }, { 45, 5 }, { 45, 6 }, { 45, 7 }, { 45, 8 }, { 45, 9 }, { 45, 10 }, { 45, 11 }, { 46, -7 }, { 46, -6 }, { 46, -5 }, { 46, -4 }, { 46, -3 }, { 46, -2 }, { 46, 5 }, { 46, 6 }, { 46, 7 }, { 46, 8 }, - { 46, 9 }, { 46, 10 }, { 47, -4 }, { 47, -3 }, { 47, -2 }, { 47, 1 }, { 47, 2 }, { 47, 5 }, { 47, 6 }, { 47, 7 }, { 48, -3 }, { 48, -2 }, { 48, 1 }, { 48, 2 }, { 48, 5 }, { 48, 6 }, - }, + } }, resource_tiles = { enabled = false, diff --git a/exp_legacy/module/config/vlayer.lua b/exp_legacy/module/config/vlayer.lua index d3355c6b..32bfc605 100644 --- a/exp_legacy/module/config/vlayer.lua +++ b/exp_legacy/module/config/vlayer.lua @@ -8,26 +8,26 @@ return { unlimited_capacity = false, --- @setting unlimited_capacity When true the vlayer has an unlimited energy capacity, accumulators are not required unlimited_surface_area = false, --- @setting unlimited_surface_area When true the vlayer has an unlimited surface area, landfill is not required - modded_auto_downgrade = false, --- @setting modded_auto_downgrade When true modded items will be converted into their base game equivalent, original items can not be recovered + modded_auto_downgrade = true, --- @setting modded_auto_downgrade When true modded items will be converted into their base game equivalent, original items can not be recovered mimic_surface = "nauvis", --- @setting mimic_surface Surface name/index the vlayer will copy its settings from, use nil to use the settings below surface = { --- @setting surface When mimic_surface is nil these settings will be used instead, see LuaSurface for details always_day = false, solar_power_multiplier = 1, min_brightness = 0.15, - ticks_per_day = 25000, + ticks_per_day = 25200, daytime = 0, dusk = 0.25, evening = 0.45, morning = 0.55, - dawn = 0.75, + dawn = 0.75 }, interface_limit = { --- @setting interface_limit Sets the limit for the number of vlayer interfaces that can be created energy = 1, -- >1 allows for disconnected power networks to receive power - circuit = 10, -- No caveats - storage_input = 10, -- No caveats - storage_output = 1, -- >0 allows for item teleportation (allowed_items only) + circuit = 20, -- No caveats + storage_input = 30, -- No caveats + storage_output = 1 -- >0 allows for item teleportation (allowed_items only) }, allowed_items = { --- @setting allowed_items List of all items allowed in vlayer storage and their properties @@ -43,55 +43,64 @@ return { ["solar-panel"] = { starting_value = 0, required_area = 9, - production = 0.06, -- MW + production = 0.06 -- MW }, ["accumulator"] = { starting_value = 0, required_area = 4, discharge = 0.3, -- MW - capacity = 5, -- MJ + capacity = 5 -- MJ }, ["landfill"] = { starting_value = 0, required_area = 0, - surface_area = 6, -- Tiles + surface_area = 8 -- Tiles }, ["wood"] = { starting_value = 0, required_area = 0, surface_area = 0, fuel_value = 2, -- MJ - power = true, -- turn all wood to power to reduce trash + power = true -- turn all wood to power to reduce trash }, ["coal"] = { starting_value = 0, required_area = 0, surface_area = 0, fuel_value = 4, -- MJ - power = false, -- turn all coal to power to reduce trash + power = true -- turn all coal to power to reduce trash }, + ["solid-fuel"] = { + starting_value = 0, + required_area = 0, + surface_area = 0, + fuel_value = 12, -- MJ + power = true -- turn all solid fuel to power to reduce trash + }, + ["rocket-fuel"] = { + starting_value = 0, + required_area = 0, + surface_area = 0, + fuel_value = 100, -- MJ + power = true -- turn all rocket fuel to power to reduce trash + } --[[ - ['iron-ore'] = { + ["iron-ore"] = { starting_value = 0, required_area = 0, surface_area = 0 }, - ['copper-ore'] = { + ["copper-ore"] = { starting_value = 0, required_area = 0, surface_area = 0 }, - ['coal'] = { + ["stone"] = { starting_value = 0, required_area = 0, surface_area = 0 }, - ['stone'] = { - starting_value = 0, - required_area = 0, - surface_area = 0 - }, - ['uranium-ore'] = { + ["uranium-ore"] = { starting_value = 0, required_area = 0, surface_area = 0 @@ -103,72 +112,72 @@ return { ["solar-panel-2"] = { starting_value = 0, base_game_equivalent = "solar-panel", - multiplier = 4, + multiplier = 4 }, ["solar-panel-3"] = { starting_value = 0, base_game_equivalent = "solar-panel", - multiplier = 16, + multiplier = 16 }, ["solar-panel-4"] = { starting_value = 0, base_game_equivalent = "solar-panel", - multiplier = 64, + multiplier = 64 }, ["solar-panel-5"] = { starting_value = 0, base_game_equivalent = "solar-panel", - multiplier = 256, + multiplier = 256 }, ["solar-panel-6"] = { starting_value = 0, base_game_equivalent = "solar-panel", - multiplier = 1024, + multiplier = 1024 }, ["solar-panel-7"] = { starting_value = 0, base_game_equivalent = "solar-panel", - multiplier = 4096, + multiplier = 4096 }, ["solar-panel-8"] = { starting_value = 0, base_game_equivalent = "solar-panel", - multiplier = 16384, + multiplier = 16384 }, ["accumulator-2"] = { starting_value = 0, base_game_equivalent = "accumulator", - multiplier = 4, + multiplier = 4 }, ["accumulator-3"] = { starting_value = 0, base_game_equivalent = "accumulator", - multiplier = 16, + multiplier = 16 }, ["accumulator-4"] = { starting_value = 0, base_game_equivalent = "accumulator", - multiplier = 64, + multiplier = 64 }, ["accumulator-5"] = { starting_value = 0, base_game_equivalent = "accumulator", - multiplier = 256, + multiplier = 256 }, ["accumulator-6"] = { starting_value = 0, base_game_equivalent = "accumulator", - multiplier = 1024, + multiplier = 1024 }, ["accumulator-7"] = { starting_value = 0, base_game_equivalent = "accumulator", - multiplier = 4096, + multiplier = 4096 }, ["accumulator-8"] = { starting_value = 0, base_game_equivalent = "accumulator", - multiplier = 16384, + multiplier = 16384 }, - }, + } } diff --git a/exp_legacy/module/locale/en/data.cfg b/exp_legacy/module/locale/en/data.cfg index b29656a3..a3c8944c 100644 --- a/exp_legacy/module/locale/en/data.cfg +++ b/exp_legacy/module/locale/en/data.cfg @@ -2,7 +2,7 @@ description-add=Sets / Gets your custom join message. description-remove=Removes you custom join message. arg-message=Your custom join message. -greet=[color=0,1,0] Welcome to explosive gaming community server! If you like the server join our discord: __1__ [/color] +greet=[color=0,1,0] Welcome to APERX gaming community server! __1__[/color] message-set=Your join message has been updated. message-get=Your join message is: __1__ message-cleared=Your join message has been cleared. diff --git a/exp_legacy/module/locale/en/expcore.cfg b/exp_legacy/module/locale/en/expcore.cfg index 69ec22ea..509e1734 100644 --- a/exp_legacy/module/locale/en/expcore.cfg +++ b/exp_legacy/module/locale/en/expcore.cfg @@ -27,4 +27,4 @@ preference-value-tooltip=Change by using /set-preference preference-All=All data will be saved preference-Statistics=Only statistics, settings, and required data will be saved preference-Settings=Only settings and required data will be saved -preference-Required=Only required data will be saved \ No newline at end of file +preference-Required=Only required data will be saved diff --git a/exp_legacy/module/locale/en/gui.cfg b/exp_legacy/module/locale/en/gui.cfg index 9f0957fd..30f4cfc3 100644 --- a/exp_legacy/module/locale/en/gui.cfg +++ b/exp_legacy/module/locale/en/gui.cfg @@ -133,8 +133,8 @@ goto-edit=Edit warp icon [readme] main-tooltip=Infomation welcome-tab=Welcome -welcome-tooltip=Welcome to Explosive Gaming -welcome-general=Welcome to Explosive Gaming; we host many factorio servers. While you are here, we ask you to follow our rules. You can find these in the tab above. You can also find our custom commands and links to our other servers. This map has been online for __2__.\nPlease note that our servers reset periodically, the next reset is: __1__ +welcome-tooltip=Welcome to APERX +welcome-general=Welcome to APERX; we host many factorio servers. While you are here, we ask you to follow our rules. You can find these in the tab above. You can also find our custom commands and links to our other servers. This map has been online for __2__.\nPlease note that our servers reset periodically, the next reset is: __1__ welcome-roles=We run a custom role system to help protect the work of others. As a result you may not be able to use your deconstruction planner yet or drop item on the groud. Roles also give you access to some custom features such as adding tasks to our task list or making new warp points.\nYou have been assigned the roles: __1__ welcome-chat=Chatting can be difficult for new players because it’s different than other games! It’s very simple, the button you need to press is the “GRAVE/TILDE” key (which is located under the “ESC key”) - If you would like to change the key, go to your Controls tab in options.\nThe setting you need to change is “Toggle chat (and Lua console)” you currently have it set to "__CONTROL__toggle-console__" rules-tab=Rules @@ -162,22 +162,22 @@ servers-tab=Servers servers-tooltip=Links to our other servers and sites servers-general=This is only one of our servers for factorio, we host many of others as well. Below you can find details about all the servers that we host as well as links to our external services such as discord or github. servers-factorio=Factorio Servers -servers-1=S1 Public -servers-d1=This is our 48 hour reset server. -servers-2=S2 Off -servers-d2=This server is closed. -servers-3=S3 Weekly -servers-d3=This is our weekly reset server. -servers-4=S4 Monthly -servers-d4=This is our monthly reset server. -servers-5=S5 Modded -servers-d5=This is our modded server, see discord for details. -servers-6=S6 Donator -servers-d6=This is our donator only server, online when requested. -servers-7=S7 Event -servers-d7=This is our event server, we try to run events at least once per week. -servers-8=S8 T̷-̶s̶-̴:̷ -servers-d8=N̵o̴ ̶o̷-̶e̵ ̴k̸n̷-̶w̵s̸ ̴w̷h̷a̶-̶ ̷h̴a̴p̷p̴e̷n̷s̸ ̷o̶n̴ ̷t̶h̴-̶s̶ ̷s̷e̶r̸v̸e̴r̷,̶ ̸i̸t̴ ̷m̶-̸g̴h̶t̷ ̸n̸-̶t̵ ̷e̴v̸e̸n̶t̷ ̵-̷x̴i̵s̶t̸.̸ +servers-1=S1 +servers-d1=This server resets weekly. +servers-2=S2 +servers-d2=This server resets weekly. +servers-3=S3 +servers-d3=This server resets weekly. +servers-4= +servers-d4= +servers-5=S5 +servers-d5=This server is only for members. Check discord for more details. +servers-6=S6 +servers-d6=This server is only for members. Check discord for more details. +servers-7= +servers-d7= +servers-8=S8 +servers-d8= servers-connect-Offline=Server is currently offline servers-connect-Current=This is your current server servers-connect-Version=Server is on a different version: __1__ diff --git a/exp_legacy/module/locale/zh-CN/addons.cfg b/exp_legacy/module/locale/zh-CN/addons.cfg index 04517f0b..47c623ad 100644 --- a/exp_legacy/module/locale/zh-CN/addons.cfg +++ b/exp_legacy/module/locale/zh-CN/addons.cfg @@ -7,20 +7,20 @@ player-health=__1__ player-damage=__1__ [links] -discord=https://discord.explosivegaming.nl -website=https://www.explosivegaming.nl -status=https://status.explosivegaming.nl -github=https://github.com/explosivegaming/scenario -patreon=https://www.patreon.com/ExpGaming +discord= +website= +status= +github= +patreon= [info] players-online=現在有 __1__ 人在線 total-map-time=地圖時間為 __1__ -discord=加入社群: https://discord.explosivegaming.nl -website=訪問網站: https://www.explosivegaming.nl -status=伺服器狀態: https://status.explosivegaming.nl -github=增加功能或回報錯誤: https://github.com/explosivegaming/scenario -patreon=支持我們: https://www.patreon.com/ExpGaming +discord= +website= +status= +github= +patreon= custom-commands=這裹使用了自制指令,如 /tag 和 /me。可使用 /chelp 查看更多。 read-readme=確保你已閱讀相關資訊。按左上 i 圖標可再次查看。 softmod=這裹用了自設情境,是一種軟裝模組。 @@ -43,7 +43,7 @@ reply=[Chat Bot] __1__ disallow=你沒有權限使用這個指令。 players-online=現在有 __1__ 人上線。 players=本地圖現在有 __1__ 人曾上線。 -not-real-dev=Cooldude2606 只是本場境的開發者 +not-real-dev= softmod=這裹用了自設情境。 blame=責怪 __1__ 吧。 afk=看看 __1__, 他已掛機 __2__ 。 diff --git a/exp_legacy/module/locale/zh-CN/data.cfg b/exp_legacy/module/locale/zh-CN/data.cfg index 76b58651..633aa430 100644 --- a/exp_legacy/module/locale/zh-CN/data.cfg +++ b/exp_legacy/module/locale/zh-CN/data.cfg @@ -2,10 +2,10 @@ description-add=設定 / 取得你的加入信息。 description-remove=移除你的加入信息。 arg-message=你的加入信息。 -greet=[color=0,1,0] 歡迎來到 EXP 的服務器! 若果你喜歡本服務器可加入 DISCORD: __1__ [/color] +greet=[color=0,1,0] 歡迎來到 APERX 的服務器! __1__[/color] message-set=你的加入信息已更新。 message-get=你的加入信息為: __1__ -message-cleared=你的加入信息已清除。 +message-cleared=的加入信息已清除。 [quickbar] saved=你的工具列已儲存。 diff --git a/exp_legacy/module/locale/zh-CN/gui.cfg b/exp_legacy/module/locale/zh-CN/gui.cfg index 1cabda1b..1acf3709 100644 --- a/exp_legacy/module/locale/zh-CN/gui.cfg +++ b/exp_legacy/module/locale/zh-CN/gui.cfg @@ -133,8 +133,8 @@ goto-edit=修改傳送陣圖案 [readme] main-tooltip=資訊 welcome-tab=歡迎 -welcome-tooltip=歡迎來到 Explosive Gaming -welcome-general=歡迎來到 Explosive Gaming; 你在這裏的時候要遵守規則。 你可以在左上方的介面找到更多資訊。 地圖時間 __2__。\n下次地圖重設: __1__ +welcome-tooltip=歡迎來到 APERX +welcome-general=歡迎來到 APERX; 你在這裏的時候要遵守規則。 你可以在左上方的介面找到更多資訊。 地圖時間 __2__。\n下次地圖重設: __1__ welcome-roles=我們有自訂的身份組來保護其他用戶。 所以你有機會不能使用拆除規劃器或掉東西。 身份組給予你各種權限\n你有以下身份組: __1__ welcome-chat=你可以使用 「重音符/抑音符」 鍵 (ESC 鍵 下方) - 你也可以在選項中修改按鍵。\n你目前設定為 「__CONTROL__toggle-console__」 rules-tab=規則 @@ -162,22 +162,22 @@ servers-tab=伺服器 servers-tooltip=到其他伺服器及網站的連結 servers-general=這是其中一個伺服器。你可以在下方找到其他同樣是由我們運行的伺服器資料。 servers-factorio=異星工廠伺服器 -servers-1=S1 公共 -servers-d1=這個服務器每兩日重設。 -servers-2=S2 - -servers-d2=這個服務器沒在營運。 -servers-3=S3 周 -servers-d3=這個服務器每週重設。 -servers-4=S4 月 -servers-d4=這個服務器每月重設。 -servers-5=S5 模組 -servers-d5=這個服務器運行模組,可在 Discord 中得到更多資訊。 -servers-6=S6 Donator -servers-d6=這個服務器為支持者運行,可在 Discord 中得到更多資訊。 -servers-7=S7 項目 -servers-d7=這個服務器只在有項目期間運行。 -servers-8=S8 T̷-̶s̶-̴:̷ -servers-d8=N̵o̴ ̶o̷-̶e̵ ̴k̸n̷-̶w̵s̸ ̴w̷h̷a̶-̶ ̷h̴a̴p̷p̴e̷n̷s̸ ̷o̶n̴ ̷t̶h̴-̶s̶ ̷s̷e̶r̸v̸e̴r̷,̶ ̸i̸t̴ ̷m̶-̸g̴h̶t̷ ̸n̸-̶t̵ ̷e̴v̸e̸n̶t̷ ̵-̷x̴i̵s̶t̸。̸ +servers-1=S1 +servers-d1=這個服務器每兩週重設。 +servers-2=S2 +servers-d2=這個服務器每兩週重設。 +servers-3=S3 +servers-d3=這個服務器每兩週重設。 +servers-4= +servers-d4= +servers-5=S5 會員 +servers-d5=這個服務器為會員運行,可在 Discord 中得到更多資訊。 +servers-6=S6 藍圖 +servers-d6=這個服務器為會員運行,可在 Discord 中得到更多資訊。 +servers-7= +servers-d7= +servers-8=S8 +servers-d8= servers-connect-Offline=該服務器目前沒有在運行 servers-connect-Current=你目前所在的伺服器 servers-connect-Version=該服務器運行不同的遊戲版本: __1__ @@ -353,4 +353,3 @@ research=研究 research-tooltip=啟用自動研究 spawn=傳送出生 spawn-tooltip=傳送到出生點 - diff --git a/exp_legacy/module/locale/zh-TW/addons.cfg b/exp_legacy/module/locale/zh-TW/addons.cfg index 04517f0b..47c623ad 100644 --- a/exp_legacy/module/locale/zh-TW/addons.cfg +++ b/exp_legacy/module/locale/zh-TW/addons.cfg @@ -7,20 +7,20 @@ player-health=__1__ player-damage=__1__ [links] -discord=https://discord.explosivegaming.nl -website=https://www.explosivegaming.nl -status=https://status.explosivegaming.nl -github=https://github.com/explosivegaming/scenario -patreon=https://www.patreon.com/ExpGaming +discord= +website= +status= +github= +patreon= [info] players-online=現在有 __1__ 人在線 total-map-time=地圖時間為 __1__ -discord=加入社群: https://discord.explosivegaming.nl -website=訪問網站: https://www.explosivegaming.nl -status=伺服器狀態: https://status.explosivegaming.nl -github=增加功能或回報錯誤: https://github.com/explosivegaming/scenario -patreon=支持我們: https://www.patreon.com/ExpGaming +discord= +website= +status= +github= +patreon= custom-commands=這裹使用了自制指令,如 /tag 和 /me。可使用 /chelp 查看更多。 read-readme=確保你已閱讀相關資訊。按左上 i 圖標可再次查看。 softmod=這裹用了自設情境,是一種軟裝模組。 @@ -43,7 +43,7 @@ reply=[Chat Bot] __1__ disallow=你沒有權限使用這個指令。 players-online=現在有 __1__ 人上線。 players=本地圖現在有 __1__ 人曾上線。 -not-real-dev=Cooldude2606 只是本場境的開發者 +not-real-dev= softmod=這裹用了自設情境。 blame=責怪 __1__ 吧。 afk=看看 __1__, 他已掛機 __2__ 。 diff --git a/exp_legacy/module/locale/zh-TW/data.cfg b/exp_legacy/module/locale/zh-TW/data.cfg index 76b58651..633aa430 100644 --- a/exp_legacy/module/locale/zh-TW/data.cfg +++ b/exp_legacy/module/locale/zh-TW/data.cfg @@ -2,10 +2,10 @@ description-add=設定 / 取得你的加入信息。 description-remove=移除你的加入信息。 arg-message=你的加入信息。 -greet=[color=0,1,0] 歡迎來到 EXP 的服務器! 若果你喜歡本服務器可加入 DISCORD: __1__ [/color] +greet=[color=0,1,0] 歡迎來到 APERX 的服務器! __1__[/color] message-set=你的加入信息已更新。 message-get=你的加入信息為: __1__ -message-cleared=你的加入信息已清除。 +message-cleared=的加入信息已清除。 [quickbar] saved=你的工具列已儲存。 diff --git a/exp_legacy/module/locale/zh-TW/gui.cfg b/exp_legacy/module/locale/zh-TW/gui.cfg index 65e60a84..1acf3709 100644 --- a/exp_legacy/module/locale/zh-TW/gui.cfg +++ b/exp_legacy/module/locale/zh-TW/gui.cfg @@ -133,8 +133,8 @@ goto-edit=修改傳送陣圖案 [readme] main-tooltip=資訊 welcome-tab=歡迎 -welcome-tooltip=歡迎來到 Explosive Gaming -welcome-general=歡迎來到 Explosive Gaming; 你在這裏的時候要遵守規則。 你可以在左上方的介面找到更多資訊。 地圖時間 __2__。\n下次地圖重設: __1__ +welcome-tooltip=歡迎來到 APERX +welcome-general=歡迎來到 APERX; 你在這裏的時候要遵守規則。 你可以在左上方的介面找到更多資訊。 地圖時間 __2__。\n下次地圖重設: __1__ welcome-roles=我們有自訂的身份組來保護其他用戶。 所以你有機會不能使用拆除規劃器或掉東西。 身份組給予你各種權限\n你有以下身份組: __1__ welcome-chat=你可以使用 「重音符/抑音符」 鍵 (ESC 鍵 下方) - 你也可以在選項中修改按鍵。\n你目前設定為 「__CONTROL__toggle-console__」 rules-tab=規則 @@ -162,22 +162,22 @@ servers-tab=伺服器 servers-tooltip=到其他伺服器及網站的連結 servers-general=這是其中一個伺服器。你可以在下方找到其他同樣是由我們運行的伺服器資料。 servers-factorio=異星工廠伺服器 -servers-1=S1 公共 -servers-d1=這個服務器每兩日重設。 -servers-2=S2 - -servers-d2=這個服務器沒在營運。 -servers-3=S3 周 -servers-d3=這個服務器每週重設。 -servers-4=S4 月 -servers-d4=這個服務器每月重設。 -servers-5=S5 模組 -servers-d5=這個服務器運行模組,可在 Discord 中得到更多資訊。 -servers-6=S6 Donator -servers-d6=這個服務器為支持者運行,可在 Discord 中得到更多資訊。 -servers-7=S7 項目 -servers-d7=這個服務器只在有項目期間運行。 -servers-8=S8 T̷-̶s̶-̴:̷ -servers-d8=N̵o̴ ̶o̷-̶e̵ ̴k̸n̷-̶w̵s̸ ̴w̷h̷a̶-̶ ̷h̴a̴p̷p̴e̷n̷s̸ ̷o̶n̴ ̷t̶h̴-̶s̶ ̷s̷e̶r̸v̸e̴r̷,̶ ̸i̸t̴ ̷m̶-̸g̴h̶t̷ ̸n̸-̶t̵ ̷e̴v̸e̸n̶t̷ ̵-̷x̴i̵s̶t̸。̸ +servers-1=S1 +servers-d1=這個服務器每兩週重設。 +servers-2=S2 +servers-d2=這個服務器每兩週重設。 +servers-3=S3 +servers-d3=這個服務器每兩週重設。 +servers-4= +servers-d4= +servers-5=S5 會員 +servers-d5=這個服務器為會員運行,可在 Discord 中得到更多資訊。 +servers-6=S6 藍圖 +servers-d6=這個服務器為會員運行,可在 Discord 中得到更多資訊。 +servers-7= +servers-d7= +servers-8=S8 +servers-d8= servers-connect-Offline=該服務器目前沒有在運行 servers-connect-Current=你目前所在的伺服器 servers-connect-Version=該服務器運行不同的遊戲版本: __1__ diff --git a/exp_legacy/module/modules/addons/compilatron.lua b/exp_legacy/module/modules/addons/compilatron.lua index 706b8c92..aea060d1 100644 --- a/exp_legacy/module/modules/addons/compilatron.lua +++ b/exp_legacy/module/modules/addons/compilatron.lua @@ -94,8 +94,8 @@ end -- @tparam string location the location tag that is in the config file function Public.spawn_compilatron(surface, location) local position = locations[location] - local pos = surface.find_non_colliding_position("small-biter", position, 1.5, 0.5) - local compi = surface.create_entity{ name = "small-biter", position = pos, force = game.forces.neutral } + local pos = surface.find_non_colliding_position("behemoth-biter", position, 1.5, 0.5) + local compi = surface.create_entity{ name = "behemoth-biter", position = pos, force = game.forces.neutral } Public.add_compilatron(compi, location) end diff --git a/exp_legacy/module/modules/control/vlayer.lua b/exp_legacy/module/modules/control/vlayer.lua index 6533a17b..ccd157ca 100644 --- a/exp_legacy/module/modules/control/vlayer.lua +++ b/exp_legacy/module/modules/control/vlayer.lua @@ -22,6 +22,7 @@ local vlayer_data = { properties = { total_surface_area = 0, used_surface_area = 0, + total_production = 0, production = 0, discharge = 0, capacity = 0, @@ -155,7 +156,7 @@ local function get_production_multiplier() end if surface.darkness then - -- We are using a real surface, our config does not contain 'darkness' + -- We are using a real surface, our config does not contain "darkness" local brightness = 1 - surface.darkness if brightness >= surface.min_brightness then @@ -212,7 +213,9 @@ function vlayer.allocate_item(item_name, count) assert(item_properties, "Item not allowed in vlayer: " .. tostring(item_name)) if item_properties.production then - vlayer_data.properties.production = vlayer_data.properties.production + item_properties.production * count + local nc = item_properties.production * count + vlayer_data.properties.production = vlayer_data.properties.production + nc + vlayer_data.properties.total_production = vlayer_data.properties.total_production + nc end if item_properties.capacity then @@ -232,6 +235,14 @@ function vlayer.allocate_item(item_name, count) end end +function vlayer.unable_alloc_item_pwr_calc(item_name, count) + local item_properties = config.allowed_items[item_name] + + if item_properties.production then + vlayer_data.properties.total_production = vlayer_data.properties.total_production + item_properties.production * count + end +end + -- For all allowed items, setup their starting values, default 0 for item_name, properties in pairs(config.allowed_items) do vlayer_data.storage.items[item_name] = properties.starting_value or 0 @@ -260,7 +271,9 @@ function vlayer.insert_item(item_name, count) vlayer.allocate_item(item_name, allocate_count) end + local nc = count - allocate_count vlayer_data.storage.unallocated[item_name] = vlayer_data.storage.unallocated[item_name] + count - allocate_count + vlayer.unable_alloc_item_pwr_calc(item_name, nc) else vlayer.allocate_item(item_name, count) end @@ -456,6 +469,7 @@ local function handle_unallocated() if allocation_count > 0 then vlayer_data.storage.unallocated[item_name] = vlayer_data.storage.unallocated[item_name] - allocation_count vlayer.allocate_item(item_name, allocation_count) + vlayer.unable_alloc_item_pwr_calc(item_name, -allocation_count) end end end @@ -464,15 +478,19 @@ end function vlayer.get_statistics() local vdp = vlayer_data.properties.production * mega local gdm = get_production_multiplier() + local gsm = get_sustained_multiplier() + local gald = get_actual_land_defecit() return { total_surface_area = vlayer_data.properties.total_surface_area, used_surface_area = vlayer_data.properties.used_surface_area, - remaining_surface_area = get_actual_land_defecit(), + remaining_surface_area = gald, + surface_area = vlayer_data.properties.total_surface_area - gald, production_multiplier = gdm, energy_max = vdp, energy_production = vdp * gdm, - energy_sustained = vdp * get_sustained_multiplier(), + energy_total_production = vlayer_data.properties.total_production * gsm * mega, + energy_sustained = vdp * gsm, energy_capacity = vlayer_data.properties.capacity * mega, energy_storage = vlayer_data.storage.energy, day_time = math.floor(vlayer_data.surface.daytime * vlayer_data.surface.ticks_per_day), diff --git a/exp_legacy/module/modules/gui/vlayer.lua b/exp_legacy/module/modules/gui/vlayer.lua index 6389947a..2dc8ed3d 100644 --- a/exp_legacy/module/modules/gui/vlayer.lua +++ b/exp_legacy/module/modules/gui/vlayer.lua @@ -177,9 +177,9 @@ local vlayer_gui_display_item_accumulator_count = font = "heading-2", } ---- Display label for the remaining surface area --- @element vlayer_gui_display_signal_remaining_surface_area_name -local vlayer_gui_display_signal_remaining_surface_area_name = +--- Display label for the surface area +-- @element vlayer_gui_display_signal_surface_area_name +local vlayer_gui_display_signal_surface_area_name = Gui.element{ type = "label", name = "vlayer_display_signal_remaining_surface_area_name", @@ -190,16 +190,16 @@ local vlayer_gui_display_signal_remaining_surface_area_name = width = 200, } -local vlayer_gui_display_signal_remaining_surface_area_count = +local vlayer_gui_display_signal_surface_area_count = Gui.element{ - type = "label", - name = "vlayer_display_signal_remaining_surface_area_count", - caption = "0", - style = "heading_2_label", + type = "progressbar", + name = "vlayer_display_signal_surface_area_count", + caption = "", + value = 0, + style = "electric_satisfaction_statistics_progressbar", }:style{ width = 200, - height = 28, - horizontal_align = "right", + font = "heading-2", } --- Display label for the sustained energy production @@ -217,14 +217,14 @@ local vlayer_gui_display_signal_sustained_name = local vlayer_gui_display_signal_sustained_count = Gui.element{ - type = "label", + type = "progressbar", name = "vlayer_display_signal_sustained_count", - caption = "0", - style = "heading_2_label", + caption = "", + value = 0, + style = "electric_satisfaction_statistics_progressbar", }:style{ width = 200, - height = 28, - horizontal_align = "right", + font = "heading-2", } --- Display label for the current energy production @@ -288,8 +288,8 @@ local vlayer_display_set = vlayer_gui_display_item_solar_count(disp) vlayer_gui_display_item_accumulator_name(disp) vlayer_gui_display_item_accumulator_count(disp) - vlayer_gui_display_signal_remaining_surface_area_name(disp) - vlayer_gui_display_signal_remaining_surface_area_count(disp) + vlayer_gui_display_signal_surface_area_name(disp) + vlayer_gui_display_signal_surface_area_count(disp) vlayer_gui_display_signal_sustained_name(disp) vlayer_gui_display_signal_sustained_count(disp) vlayer_gui_display_signal_production_name(disp) @@ -493,11 +493,13 @@ Event.on_nth_tick(config.update_tick_gui, function(_) val = (items_alloc["accumulator"] / math.max(items["accumulator"], 1)), cap = format_number(items_alloc["accumulator"], false) .. " / " .. format_number(items["accumulator"], false), }, - [vlayer_gui_display_signal_remaining_surface_area_count.name] = { - cap = format_number(stats.remaining_surface_area, false), + [vlayer_gui_display_signal_surface_area_count.name] = { + val = (stats.total_surface_area / math.max(stats.surface_area, 1)), + cap = format_number(stats.remaining_surface_area) }, [vlayer_gui_display_signal_sustained_count.name] = { - cap = format_energy(stats.energy_sustained, "W"), + val = (stats.energy_sustained / math.max(stats.energy_total_production, 1)), + cap = format_energy(stats.energy_sustained, "W") .. " / " .. format_energy(stats.energy_total_production, "W") }, [vlayer_gui_display_signal_production_count.name] = { val = (stats.energy_production / math.max(stats.energy_max, 1)), From 87dbf0db57b6db8fd9ab489ff6c483b255f1aece Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Sun, 29 Dec 2024 14:06:16 +0900 Subject: [PATCH 002/176] . --- exp_legacy/module/locale/zh-CN/data.cfg | 2 +- exp_legacy/module/locale/zh-TW/data.cfg | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/exp_legacy/module/locale/zh-CN/data.cfg b/exp_legacy/module/locale/zh-CN/data.cfg index 633aa430..495f3f2d 100644 --- a/exp_legacy/module/locale/zh-CN/data.cfg +++ b/exp_legacy/module/locale/zh-CN/data.cfg @@ -5,7 +5,7 @@ arg-message=你的加入信息。 greet=[color=0,1,0] 歡迎來到 APERX 的服務器! __1__[/color] message-set=你的加入信息已更新。 message-get=你的加入信息為: __1__ -message-cleared=的加入信息已清除。 +message-cleared=你的加入信息已清除。 [quickbar] saved=你的工具列已儲存。 diff --git a/exp_legacy/module/locale/zh-TW/data.cfg b/exp_legacy/module/locale/zh-TW/data.cfg index 633aa430..495f3f2d 100644 --- a/exp_legacy/module/locale/zh-TW/data.cfg +++ b/exp_legacy/module/locale/zh-TW/data.cfg @@ -5,7 +5,7 @@ arg-message=你的加入信息。 greet=[color=0,1,0] 歡迎來到 APERX 的服務器! __1__[/color] message-set=你的加入信息已更新。 message-get=你的加入信息為: __1__ -message-cleared=的加入信息已清除。 +message-cleared=你的加入信息已清除。 [quickbar] saved=你的工具列已儲存。 From 0a4b392cf336b085870f130f3a1e371d7a0a1842 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Sun, 29 Dec 2024 14:09:39 +0900 Subject: [PATCH 003/176] . --- README.md | 34 +++++++++++++--------------------- 1 file changed, 13 insertions(+), 21 deletions(-) diff --git a/README.md b/README.md index 85dad859..83c95cb1 100644 --- a/README.md +++ b/README.md @@ -1,20 +1,17 @@

logo
-
- Release + + Release - - Downloads + + Downloads - - Star + + Star - - Fork - - - CodeFactor + + Fork Discord @@ -28,9 +25,9 @@ Explosive Gaming (often ExpGaming) is a server hosting community with a strong f ## Installation -This is a plugin collection for [Clusterio](https://github.com/clusterio/clusterio) which provides all our scenario features. +This is a plugin collection for [Clusterio](https://github.com/clusterio/clusterio) which implements all our scenario features. -To use this plugin you must already have a clusterio instance running, see [here](https://github.com/clusterio/clusterio?tab=readme-ov-file#installation) for clusterio installation instructions. +To use this plugin you must have a clusterio instance running, see [here](https://github.com/clusterio/clusterio?tab=readme-ov-file#installation) for clusterio installation instructions. This module is currently not published and therefore can not be installed via `npm`. Instead follow the steps for [building from source](#building-from-source) @@ -38,8 +35,8 @@ This module is currently not published and therefore can not be installed via `n 1) Create a `external_plugins` directory within your clusterio instance. 2) Clone this repository into that directory: `git clone https://github.com/explosivegaming/ExpCluster` -3) Install the package dev dependencies: `pnpm install` -4) Add the plugins to your clusterio instance such as: `npx clusteriocontroller plugin add ./external_plugins/ExpCluster/exp_groups` +3) Install the package dev dependencies: `pnpm install` (`pnpm` is recommended over `npm`) +4) Add supported plugins will be loaded on next controller / host restart. ## Contributing @@ -71,7 +68,7 @@ See [Contributing](CONTRIBUTING.md) for how to make pull requests and issues. | [1.0][s1.0] | Modulation | [0.15][f0.15] | | [0.1][s0.1] | First Tracked Version | [0.14][f0.14] | -\* Scenario patch releases have been omitted and can be found [here][releases]. +\* Scenario patch releases have been omitted and can be found [here](https://github.com/explosivegaming/scenario/releases). \*\* Factorio versions show the version they were made for, often the minimum requirement to run the scenario. @@ -122,11 +119,6 @@ See [Contributing](CONTRIBUTING.md) for how to make pull requests and issues. The Explosive Gaming codebase is licensed under the [MIT](LICENSE) -[stable-dl]: https://github.com/explosivegaming/scenario/archive/master.zip -[experimental-dl]: https://github.com/explosivegaming/scenario/archive/dev.zip -[releases]: https://github.com/explosivegaming/scenario/releases [factorio]: https://factorio.com -[docs]: https://explosivegaming.github.io/scenario -[issues]: https://github.com/explosivegaming/scenario/issues/new/choose [website]: https://explosivegaming.nl [discord]: https://discord.explosivegaming.nl From e9f82db1548c256c86c3bda9a7e036c7bce75cb9 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Sun, 29 Dec 2024 14:10:55 +0900 Subject: [PATCH 004/176] . --- exp_legacy/module/config/bonus.lua | 106 ++++++++++++++--------------- 1 file changed, 53 insertions(+), 53 deletions(-) diff --git a/exp_legacy/module/config/bonus.lua b/exp_legacy/module/config/bonus.lua index 78a0881d..f01b5ac7 100644 --- a/exp_legacy/module/config/bonus.lua +++ b/exp_legacy/module/config/bonus.lua @@ -18,16 +18,16 @@ return { ]] pts = { rate = { - ['Senior Administrator'] = 1.5, - ['Administrator'] = 1.4, - ['Senior Moderator'] = 1.3, - ['Moderator'] = 1.2, - ['Trainee Moderator'] = 1.2, - ['Board Member'] = 1.1, - ['Supporter'] = 1.1, - ['Partner'] = 1.1, - ['Senior Member'] = 1.1, - ['Member'] = 1 + ["Senior Administrator"] = 1.5, + ["Administrator"] = 1.4, + ["Senior Moderator"] = 1.3, + ["Moderator"] = 1.2, + ["Trainee Moderator"] = 1.2, + ["Board Member"] = 1.1, + ["Supporter"] = 1.1, + ["Partner"] = 1.1, + ["Senior Member"] = 1.1, + ["Member"] = 1 }, base = 172 }, @@ -38,19 +38,19 @@ return { count = 50 }, conversion = { - ['cmms'] = 'character_mining_speed_modifier', - ['crs'] = 'character_running_speed_modifier', - ['ccs'] = 'character_crafting_speed_modifier', - ['cisb'] = 'character_inventory_slots_bonus', - ['chb'] = 'character_health_bonus', - ['crdb'] = 'character_reach_distance_bonus', + ["cmms"] = "character_mining_speed_modifier", + ["crs"] = "character_running_speed_modifier", + ["ccs"] = "character_crafting_speed_modifier", + ["cisb"] = "character_inventory_slots_bonus", + ["chb"] = "character_health_bonus", + ["crdb"] = "character_reach_distance_bonus", --[[ - ['cpdb'] = 'character_item_pickup_distance_bonus' + ["cpdb"] = "character_item_pickup_distance_bonus" ]] }, player_special_bonus_rate = 300, player_special_bonus = { - ['personal_battery_recharge'] = { + ["personal_battery_recharge"] = { -- 1 MW value = 4, max = 8, @@ -61,7 +61,7 @@ return { } }, player_bonus = { - ['character_mining_speed_modifier'] = { + ["character_mining_speed_modifier"] = { value = 2, max = 4, scale = 0.5, @@ -69,7 +69,7 @@ return { cost = 10, is_percentage = true }, - ['character_running_speed_modifier'] = { + ["character_running_speed_modifier"] = { value = 1, max = 2, scale = 0.25, @@ -77,7 +77,7 @@ return { cost = 60, is_percentage = true }, - ['character_crafting_speed_modifier'] = { + ["character_crafting_speed_modifier"] = { value = 6, max = 12, scale = 0.5, @@ -85,7 +85,7 @@ return { cost = 4, is_percentage = true }, - ['character_inventory_slots_bonus'] = { + ["character_inventory_slots_bonus"] = { value = 60, max = 120, scale = 5, @@ -93,7 +93,7 @@ return { cost = 2, is_percentage = false }, - ['character_health_bonus'] = { + ["character_health_bonus"] = { value = 100, max = 200, scale = 25, @@ -101,7 +101,7 @@ return { cost = 2, is_percentage = false }, - ['character_reach_distance_bonus'] = { + ["character_reach_distance_bonus"] = { value = 8, max = 16, scale = 2, @@ -109,12 +109,12 @@ return { cost = 1, is_percentage = false, combined_bonus = { - 'character_resource_reach_distance_bonus', - 'character_build_distance_bonus' + "character_resource_reach_distance_bonus", + "character_build_distance_bonus" } }, --[[ - ['character_item_pickup_distance_bonus'] = { + ["character_item_pickup_distance_bonus"] = { value = 0, max = 20, scale = 1, @@ -122,7 +122,7 @@ return { cost = 1, is_percentage = false }, - ['character_loot_pickup_distance_bonus'] = { + ["character_loot_pickup_distance_bonus"] = { value = 0, max = 20, scale = 1, @@ -130,7 +130,7 @@ return { cost = 1, is_percentage = false }, - ['character_item_drop_distance_bonus'] = { + ["character_item_drop_distance_bonus"] = { value = 0, max = 20, scale = 1, @@ -142,7 +142,7 @@ return { }, force_bonus = { --[[ - ['character_mining_speed_modifier'] = { + ["character_mining_speed_modifier"] = { value = 0, max = 6, scale = 0.5, @@ -150,7 +150,7 @@ return { cost = 10, is_percentage = true }, - ['character_running_speed_modifier'] = { + ["character_running_speed_modifier"] = { value = 0, max = 3, scale = 0.25, @@ -158,7 +158,7 @@ return { cost = 40, is_percentage = true }, - ['character_crafting_speed_modifier'] = { + ["character_crafting_speed_modifier"] = { value = 0, max = 16, scale = 1, @@ -166,7 +166,7 @@ return { cost = 4, is_percentage = true }, - ['character_inventory_slots_bonus'] = { + ["character_inventory_slots_bonus"] = { value = 0, max = 200, scale = 10, @@ -174,14 +174,14 @@ return { cost = 2, is_percentage = false }, - ['character_health_bonus'] = { + ["character_health_bonus"] = { value = 0, max = 400, scale = 50, cost = 4, is_percentage = false }, - ['character_reach_distance_bonus'] = { + ["character_reach_distance_bonus"] = { value = 0, max = 24, scale = 2, @@ -189,11 +189,11 @@ return { cost = 1, is_percentage = false, combined_bonus = { - 'character_resource_reach_distance_bonus', - 'character_build_distance_bonus' + "character_resource_reach_distance_bonus", + "character_build_distance_bonus" } }, - ['worker_robots_speed_modifier'] = { + ["worker_robots_speed_modifier"] = { value = 0, max = 0, scale = 0, @@ -202,7 +202,7 @@ return { is_percentage = false }, ]] - ['worker_robots_battery_modifier'] = { + ["worker_robots_battery_modifier"] = { value = 1, max = 1, scale = 1, @@ -210,7 +210,7 @@ return { cost = 1, is_percentage = false }, - ['worker_robots_storage_bonus'] = { + ["worker_robots_storage_bonus"] = { value = 1, max = 1, scale = 1, @@ -218,7 +218,7 @@ return { cost = 1, is_percentage = false }, - ['following_robots_lifetime_modifier'] = { + ["following_robots_lifetime_modifier"] = { value = 1, max = 1, scale = 1, @@ -227,7 +227,7 @@ return { is_percentage = false }, --[[ - ['character_item_pickup_distance_bonus'] = { + ["character_item_pickup_distance_bonus"] = { value = 0, max = 20, scale = 1, @@ -235,7 +235,7 @@ return { cost = 1, is_percentage = false }, - ['character_loot_pickup_distance_bonus'] = { + ["character_loot_pickup_distance_bonus"] = { value = 0, max = 20, scale = 1, @@ -243,7 +243,7 @@ return { cost = 1, is_percentage = false }, - ['character_item_drop_distance_bonus'] = { + ["character_item_drop_distance_bonus"] = { value = 0, max = 20, scale = 1, @@ -251,7 +251,7 @@ return { cost = 1, is_percentage = false }, - ['character_trash_slot_count'] = { + ["character_trash_slot_count"] = { value = 0, max = 0, scale = 0, @@ -259,7 +259,7 @@ return { cost = 1, is_percentage = false }, - ['mining_drill_productivity_bonus'] = { + ["mining_drill_productivity_bonus"] = { value = 0, max = 0, scale = 0, @@ -267,7 +267,7 @@ return { cost = 1, is_percentage = false }, - ['train_braking_force_bonus'] = { + ["train_braking_force_bonus"] = { value = 0, max = 0, scale = 0, @@ -275,7 +275,7 @@ return { cost = 1, is_percentage = false }, - ['laboratory_speed_modifier'] = { + ["laboratory_speed_modifier"] = { value = 0, max = 0, scale = 0, @@ -283,7 +283,7 @@ return { cost = 1, is_percentage = false }, - ['laboratory_productivity_bonus'] = { + ["laboratory_productivity_bonus"] = { value = 0, max = 0, scale = 0, @@ -291,7 +291,7 @@ return { cost = 1, is_percentage = false }, - ['inserter_stack_size_bonus'] = { + ["inserter_stack_size_bonus"] = { value = 0, max = 0, scale = 0, @@ -299,7 +299,7 @@ return { cost = 1, is_percentage = false }, - ['stack_inserter_capacity_bonus'] = { + ["stack_inserter_capacity_bonus"] = { value = 0, max = 0, scale = 0, @@ -307,7 +307,7 @@ return { cost = 1, is_percentage = false }, - ['artillery_range_modifier'] = { + ["artillery_range_modifier"] = { value = 0, max = 0, scale = 0, @@ -319,7 +319,7 @@ return { }, surface_bonus = { --[[ - ['solar_power_multiplier'] = { + ["solar_power_multiplier"] = { value = 1, max = 1000, scale = 1, From b32e854398462c772e9b5a6c93941b4b04671aa7 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Sun, 29 Dec 2024 14:12:50 +0900 Subject: [PATCH 005/176] . --- exp_legacy/module/config/advanced_start.lua | 54 ++++++++++----------- 1 file changed, 27 insertions(+), 27 deletions(-) diff --git a/exp_legacy/module/config/advanced_start.lua b/exp_legacy/module/config/advanced_start.lua index cbbfe84a..539fa4f3 100644 --- a/exp_legacy/module/config/advanced_start.lua +++ b/exp_legacy/module/config/advanced_start.lua @@ -4,7 +4,7 @@ --- These are called factories because they return another function -- use these as a simple methods of adding new items -- they will do most of the work for you --- ['item-name'] = factory(params) +-- ["item-name"] = factory(params) -- luacheck:ignore 212/amount_made 212/items_made 212/player -- Use these to adjust for ticks ie game.tick < 5*minutes @@ -12,7 +12,7 @@ local seconds, minutes, hours = 60, 3600, 216000 --- Use to make a split point for the number of items given based on time --- ['stone-furnace']=cutoff_time(5*minutes, 4,0) -- before 5 minutes give four items after 5 minutes give none +-- ["stone-furnace"]=cutoff_time(5*minutes, 4,0) -- before 5 minutes give four items after 5 minutes give none local function cutoff_time(time, before, after) return function(amount_made, items_made, player) if game.tick < time then @@ -24,7 +24,7 @@ local function cutoff_time(time, before, after) end --- Use to make a split point for the number of items given based on amount made --- ['firearm-magazine']=cutoff_amount_made(100, 10, 0) -- give 10 items until 100 items have been made +-- ["firearm-magazine"]=cutoff_amount_made(100, 10, 0) -- give 10 items until 100 items have been made --[[ local function cutoff_amount_made(amount, before, after) return function(amount_made, items_made, player) @@ -38,7 +38,7 @@ end ]] --- Same as above but will not give any items if x amount has been made of another item, useful for tiers --- ['light-armor']=cutoff_amount_made_unless(5, 0,1,'heavy-armor',5) -- give light armor once 5 have been made unless 5 heavy armor has been made +-- ["light-armor"]=cutoff_amount_made_unless(5, 0,1,"heavy-armor",5) -- give light armor once 5 have been made unless 5 heavy armor has been made --[[ local function cutoff_amount_made_unless(amount, before, after, second_item, second_amount) return function(amount_made, items_made, player) @@ -56,7 +56,7 @@ end ]] -- Use for mass production items where you want the amount to change based on the amount already made --- ['iron-plate']=scale_amount_made(5*minutes, 10, 10) -- for first 5 minutes give 10 items then after apply a factor of 10 +-- ["iron-plate"]=scale_amount_made(5*minutes, 10, 10) -- for first 5 minutes give 10 items then after apply a factor of 10 --[[ local function scale_amount_made(amount, before, scalar) return function(amount_made, items_made, player) @@ -73,7 +73,7 @@ end Common values game.tick is the amount of time the game has been on for amount_made is the amount of that item which has been made - items_made('item-name') will return the amount of any item made + items_made("item-name") will return the amount of any item made player is the player who just spawned hours, minutes, seconds are the number of ticks in each unit of time ]] @@ -85,28 +85,28 @@ return { enemy_expansion = false, --- @setting enemy_expansion a catch all for in case the map settings file fails to load chart_radius = 10 * 32, --- @setting chart_radius the number of tiles that will be charted when the map starts items = { --- @setting items items and there condition for being given - ['iron-ore']=cutoff_time(20 * minutes, 80, 0), - ['stone']=cutoff_time(20 * minutes, 20, 0), - ['coal']=cutoff_time(20 * minutes, 20, 0), - -- ['burner-mining-drill']=cutoff_time(20 * minutes, 8, 0), - -- ['stone-furnace']=cutoff_time(20 * minutes, 8, 0), - ['submachine-gun'] = 1, - ['piercing-rounds-magazine'] = 20, - ['construction-robot'] = 10, - ['modular-armor'] = 1, - ['solar-panel-equipment'] = 16, - ['belt-immunity-equipment'] = 1, - ['battery-equipment'] = 2, - ['personal-roboport-equipment'] = 1 + ["iron-ore"] = cutoff_time(20 * minutes, 80, 0), + ["stone"] = cutoff_time(20 * minutes, 20, 0), + ["coal"] = cutoff_time(20 * minutes, 20, 0), + -- ["burner-mining-drill"]=cutoff_time(20 * minutes, 8, 0), + -- ["stone-furnace"]=cutoff_time(20 * minutes, 8, 0), + ["submachine-gun"] = 1, + ["piercing-rounds-magazine"] = 20, + ["construction-robot"] = 10, + ["modular-armor"] = 1, + ["solar-panel-equipment"] = 16, + ["belt-immunity-equipment"] = 1, + ["battery-equipment"] = 2, + ["personal-roboport-equipment"] = 1 --[[ - ['construction-robot'] = 50, - ['spidertron'] = 1, - ['spidertron-remote'] = 1, - ['modular-armor'] = 1, - ['solar-panel-equipment'] = 60, - ['belt-immunity-equipment'] = 1, - ['battery-equipment'] = 6, - ['personal-roboport-equipment'] = 5 + ["construction-robot"] = 50, + ["spidertron"] = 1, + ["spidertron-remote"] = 1, + ["modular-armor"] = 1, + ["solar-panel-equipment"] = 60, + ["belt-immunity-equipment"] = 1, + ["battery-equipment"] = 6, + ["personal-roboport-equipment"] = 5 ]] } } From d88def830f55011a4e8bfcc70d295709e2a76f7b Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Sun, 29 Dec 2024 14:16:50 +0900 Subject: [PATCH 006/176] . --- exp_legacy/module/config/bonus.lua | 78 +++++++++++++++--------------- 1 file changed, 39 insertions(+), 39 deletions(-) diff --git a/exp_legacy/module/config/bonus.lua b/exp_legacy/module/config/bonus.lua index f01b5ac7..a7d665a5 100644 --- a/exp_legacy/module/config/bonus.lua +++ b/exp_legacy/module/config/bonus.lua @@ -27,7 +27,7 @@ return { ["Supporter"] = 1.1, ["Partner"] = 1.1, ["Senior Member"] = 1.1, - ["Member"] = 1 + ["Member"] = 1, }, base = 172 }, @@ -35,7 +35,7 @@ return { half = 150, label = 70, slider = 180, - count = 50 + count = 50, }, conversion = { ["cmms"] = "character_mining_speed_modifier", @@ -57,7 +57,7 @@ return { scale = 0.5, cost_scale = 1, cost = 10, - is_percentage = false + is_percentage = false, } }, player_bonus = { @@ -67,7 +67,7 @@ return { scale = 0.5, cost_scale = 1, cost = 10, - is_percentage = true + is_percentage = true, }, ["character_running_speed_modifier"] = { value = 1, @@ -75,7 +75,7 @@ return { scale = 0.25, cost_scale = 1, cost = 60, - is_percentage = true + is_percentage = true, }, ["character_crafting_speed_modifier"] = { value = 6, @@ -83,7 +83,7 @@ return { scale = 0.5, cost_scale = 1, cost = 4, - is_percentage = true + is_percentage = true, }, ["character_inventory_slots_bonus"] = { value = 60, @@ -91,7 +91,7 @@ return { scale = 5, cost_scale = 10, cost = 2, - is_percentage = false + is_percentage = false, }, ["character_health_bonus"] = { value = 100, @@ -99,7 +99,7 @@ return { scale = 25, cost_scale = 25, cost = 2, - is_percentage = false + is_percentage = false, }, ["character_reach_distance_bonus"] = { value = 8, @@ -110,8 +110,8 @@ return { is_percentage = false, combined_bonus = { "character_resource_reach_distance_bonus", - "character_build_distance_bonus" - } + "character_build_distance_bonus", + }, }, --[[ ["character_item_pickup_distance_bonus"] = { @@ -120,7 +120,7 @@ return { scale = 1, cost_scale = 1, cost = 1, - is_percentage = false + is_percentage = false, }, ["character_loot_pickup_distance_bonus"] = { value = 0, @@ -128,7 +128,7 @@ return { scale = 1, cost_scale = 1, cost = 1, - is_percentage = false + is_percentage = false, }, ["character_item_drop_distance_bonus"] = { value = 0, @@ -136,8 +136,8 @@ return { scale = 1, cost_scale = 1, cost = 1, - is_percentage = false - } + is_percentage = false, + }, ]] }, force_bonus = { @@ -148,7 +148,7 @@ return { scale = 0.5, cost_scale = 1, cost = 10, - is_percentage = true + is_percentage = true, }, ["character_running_speed_modifier"] = { value = 0, @@ -156,7 +156,7 @@ return { scale = 0.25, cost_scale = 1, cost = 40, - is_percentage = true + is_percentage = true, }, ["character_crafting_speed_modifier"] = { value = 0, @@ -164,7 +164,7 @@ return { scale = 1, cost_scale = 1, cost = 4, - is_percentage = true + is_percentage = true, }, ["character_inventory_slots_bonus"] = { value = 0, @@ -172,14 +172,14 @@ return { scale = 10, cost_scale = 100, cost = 2, - is_percentage = false + is_percentage = false, }, ["character_health_bonus"] = { value = 0, max = 400, scale = 50, cost = 4, - is_percentage = false + is_percentage = false, }, ["character_reach_distance_bonus"] = { value = 0, @@ -190,8 +190,8 @@ return { is_percentage = false, combined_bonus = { "character_resource_reach_distance_bonus", - "character_build_distance_bonus" - } + "character_build_distance_bonus", + }, }, ["worker_robots_speed_modifier"] = { value = 0, @@ -199,7 +199,7 @@ return { scale = 0, cost_scale = 1, cost = 1, - is_percentage = false + is_percentage = false, }, ]] ["worker_robots_battery_modifier"] = { @@ -208,7 +208,7 @@ return { scale = 1, cost_scale = 1, cost = 1, - is_percentage = false + is_percentage = false, }, ["worker_robots_storage_bonus"] = { value = 1, @@ -216,7 +216,7 @@ return { scale = 1, cost_scale = 1, cost = 1, - is_percentage = false + is_percentage = false, }, ["following_robots_lifetime_modifier"] = { value = 1, @@ -224,7 +224,7 @@ return { scale = 1, cost_scale = 1, cost = 1, - is_percentage = false + is_percentage = false, }, --[[ ["character_item_pickup_distance_bonus"] = { @@ -233,7 +233,7 @@ return { scale = 1, cost_scale = 1, cost = 1, - is_percentage = false + is_percentage = false, }, ["character_loot_pickup_distance_bonus"] = { value = 0, @@ -241,7 +241,7 @@ return { scale = 1, cost_scale = 1, cost = 1, - is_percentage = false + is_percentage = false, }, ["character_item_drop_distance_bonus"] = { value = 0, @@ -249,7 +249,7 @@ return { scale = 1, cost_scale = 1, cost = 1, - is_percentage = false + is_percentage = false, }, ["character_trash_slot_count"] = { value = 0, @@ -257,7 +257,7 @@ return { scale = 0, cost_scale = 1, cost = 1, - is_percentage = false + is_percentage = false, }, ["mining_drill_productivity_bonus"] = { value = 0, @@ -265,7 +265,7 @@ return { scale = 0, cost_scale = 1, cost = 1, - is_percentage = false + is_percentage = false, }, ["train_braking_force_bonus"] = { value = 0, @@ -273,7 +273,7 @@ return { scale = 0, cost_scale = 1, cost = 1, - is_percentage = false + is_percentage = false, }, ["laboratory_speed_modifier"] = { value = 0, @@ -281,7 +281,7 @@ return { scale = 0, cost_scale = 1, cost = 1, - is_percentage = false + is_percentage = false, }, ["laboratory_productivity_bonus"] = { value = 0, @@ -289,7 +289,7 @@ return { scale = 0, cost_scale = 1, cost = 1, - is_percentage = false + is_percentage = false, }, ["inserter_stack_size_bonus"] = { value = 0, @@ -297,7 +297,7 @@ return { scale = 0, cost_scale = 1, cost = 1, - is_percentage = false + is_percentage = false, }, ["stack_inserter_capacity_bonus"] = { value = 0, @@ -305,7 +305,7 @@ return { scale = 0, cost_scale = 1, cost = 1, - is_percentage = false + is_percentage = false, }, ["artillery_range_modifier"] = { value = 0, @@ -313,8 +313,8 @@ return { scale = 0, cost_scale = 1, cost = 1, - is_percentage = false - } + is_percentage = false, + }, ]] }, surface_bonus = { @@ -325,8 +325,8 @@ return { scale = 1, cost_scale = 1, cost = 1, - is_percentage = false - } + is_percentage = false, + }, ]] } } From 47e900f7352751cbeb56299db9bcc5007161e260 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Sun, 29 Dec 2024 23:29:44 +0900 Subject: [PATCH 007/176] . --- exp_legacy/module/config/vlayer.lua | 66 ++++++++++++++--------------- 1 file changed, 33 insertions(+), 33 deletions(-) diff --git a/exp_legacy/module/config/vlayer.lua b/exp_legacy/module/config/vlayer.lua index 32bfc605..3f455ed0 100644 --- a/exp_legacy/module/config/vlayer.lua +++ b/exp_legacy/module/config/vlayer.lua @@ -20,90 +20,90 @@ return { dusk = 0.25, evening = 0.45, morning = 0.55, - dawn = 0.75 + dawn = 0.75, }, interface_limit = { --- @setting interface_limit Sets the limit for the number of vlayer interfaces that can be created energy = 1, -- >1 allows for disconnected power networks to receive power circuit = 20, -- No caveats storage_input = 30, -- No caveats - storage_output = 1 -- >0 allows for item teleportation (allowed_items only) + storage_output = 1, -- >0 allows for item teleportation (allowed_items only) }, allowed_items = { --- @setting allowed_items List of all items allowed in vlayer storage and their properties --[[ Allowed properties: - starting_value = 0: The amount of the item placed into the vlayer on game start, ignores area requirements - required_area = 0: When greater than 0 the items properties are not applied unless their is sufficient surplus surface area - production = 0: The energy production of the item in MW, used for solar panels - discharge = 0: The energy discharge of the item in MW, used for accumulators - capacity = 0: The energy capacity of the item in MJ, used for accumulators - surface_area = 0: The surface area provided by the item, used for landfill + starting_value : The amount of the item placed into the vlayer on game start, ignores area requirements + required_area : When greater than 0 the items properties are not applied unless their is sufficient surplus surface area + production : The energy production of the item in MW, used for solar panels + discharge : The energy discharge of the item in MW, used for accumulators + capacity : The energy capacity of the item in MJ, used for accumulators + surface_area : The surface area provided by the item, used for landfill ]] ["solar-panel"] = { starting_value = 0, required_area = 9, - production = 0.06 -- MW + production = 0.06, -- MW }, ["accumulator"] = { starting_value = 0, required_area = 4, discharge = 0.3, -- MW - capacity = 5 -- MJ + capacity = 5, -- MJ }, ["landfill"] = { starting_value = 0, required_area = 0, - surface_area = 8 -- Tiles + surface_area = 8, -- Tiles }, ["wood"] = { starting_value = 0, required_area = 0, surface_area = 0, fuel_value = 2, -- MJ - power = true -- turn all wood to power to reduce trash + power = true, -- turn all wood to power to reduce trash }, ["coal"] = { starting_value = 0, required_area = 0, surface_area = 0, fuel_value = 4, -- MJ - power = true -- turn all coal to power to reduce trash + power = true, -- turn all coal to power to reduce trash }, ["solid-fuel"] = { starting_value = 0, required_area = 0, surface_area = 0, fuel_value = 12, -- MJ - power = true -- turn all solid fuel to power to reduce trash + power = true, -- turn all solid fuel to power to reduce trash }, ["rocket-fuel"] = { starting_value = 0, required_area = 0, surface_area = 0, fuel_value = 100, -- MJ - power = true -- turn all rocket fuel to power to reduce trash + power = true, -- turn all rocket fuel to power to reduce trash } --[[ ["iron-ore"] = { starting_value = 0, required_area = 0, - surface_area = 0 + surface_area = 0, }, ["copper-ore"] = { starting_value = 0, required_area = 0, - surface_area = 0 + surface_area = 0, }, ["stone"] = { starting_value = 0, required_area = 0, - surface_area = 0 + surface_area = 0, }, ["uranium-ore"] = { starting_value = 0, required_area = 0, - surface_area = 0 + surface_area = 0, }, ]] }, @@ -112,72 +112,72 @@ return { ["solar-panel-2"] = { starting_value = 0, base_game_equivalent = "solar-panel", - multiplier = 4 + multiplier = 4, }, ["solar-panel-3"] = { starting_value = 0, base_game_equivalent = "solar-panel", - multiplier = 16 + multiplier = 16, }, ["solar-panel-4"] = { starting_value = 0, base_game_equivalent = "solar-panel", - multiplier = 64 + multiplier = 64, }, ["solar-panel-5"] = { starting_value = 0, base_game_equivalent = "solar-panel", - multiplier = 256 + multiplier = 256, }, ["solar-panel-6"] = { starting_value = 0, base_game_equivalent = "solar-panel", - multiplier = 1024 + multiplier = 1024, }, ["solar-panel-7"] = { starting_value = 0, base_game_equivalent = "solar-panel", - multiplier = 4096 + multiplier = 4096, }, ["solar-panel-8"] = { starting_value = 0, base_game_equivalent = "solar-panel", - multiplier = 16384 + multiplier = 16384, }, ["accumulator-2"] = { starting_value = 0, base_game_equivalent = "accumulator", - multiplier = 4 + multiplier = 4, }, ["accumulator-3"] = { starting_value = 0, base_game_equivalent = "accumulator", - multiplier = 16 + multiplier = 16, }, ["accumulator-4"] = { starting_value = 0, base_game_equivalent = "accumulator", - multiplier = 64 + multiplier = 64, }, ["accumulator-5"] = { starting_value = 0, base_game_equivalent = "accumulator", - multiplier = 256 + multiplier = 256, }, ["accumulator-6"] = { starting_value = 0, base_game_equivalent = "accumulator", - multiplier = 1024 + multiplier = 1024, }, ["accumulator-7"] = { starting_value = 0, base_game_equivalent = "accumulator", - multiplier = 4096 + multiplier = 4096, }, ["accumulator-8"] = { starting_value = 0, base_game_equivalent = "accumulator", - multiplier = 16384 + multiplier = 16384, }, } } From 3e4318fcab4c9b0fbda5e3486beabea57879a9bb Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Sun, 29 Dec 2024 23:30:30 +0900 Subject: [PATCH 008/176] . --- exp_legacy/module/config/vlayer.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/exp_legacy/module/config/vlayer.lua b/exp_legacy/module/config/vlayer.lua index 3f455ed0..e6058863 100644 --- a/exp_legacy/module/config/vlayer.lua +++ b/exp_legacy/module/config/vlayer.lua @@ -26,7 +26,7 @@ return { interface_limit = { --- @setting interface_limit Sets the limit for the number of vlayer interfaces that can be created energy = 1, -- >1 allows for disconnected power networks to receive power circuit = 20, -- No caveats - storage_input = 30, -- No caveats + storage_input = 20, -- No caveats storage_output = 1, -- >0 allows for item teleportation (allowed_items only) }, From 80cd1245e5542fbf66a44e4261a094ac171c9321 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Mon, 30 Dec 2024 16:09:23 +0900 Subject: [PATCH 009/176] . --- exp_commands/module/commands/types.lua | 27 ++++++++++++++++++++++++++ exp_commands/module/locale/en.cfg | 1 + exp_commands/module/locale/zh-CN.cfg | 1 + exp_commands/module/locale/zh-TW.cfg | 1 + 4 files changed, 30 insertions(+) diff --git a/exp_commands/module/commands/types.lua b/exp_commands/module/commands/types.lua index 451ef0a0..46b3ad91 100644 --- a/exp_commands/module/commands/types.lua +++ b/exp_commands/module/commands/types.lua @@ -25,6 +25,8 @@ local Commands = require("modules/exp_commands") local add, parse = Commands.add_data_type, Commands.parse_input local valid, invalid = Commands.status.success, Commands.status.invalid_input +local Roles = require("modules.exp_legacy.expcore.roles") --- @dep expcore.roles + local types = {} --- @class Commands._types --- A boolean value where true is one of: yes, y, true, 1 @@ -229,4 +231,29 @@ types.color = end end) +--- A player who has joined the game at least once, with a lower role +types.lower_role_player = +add("player", function(input, player) + local player_i = game.get_player(input) + local player = game.get_player(player) + + if Roles.get_player_highest_role(player_i).index <= Roles.get_player_highest_role(player).index then + return invalid{ "exp-commands-parse.player", input } + else + return valid(player) + end +end) + +--- A role that is lower than given user +types.lower_role = + add("role", function(input) + local player = game.get_player(input) + + if Roles.config.roles[input] and (Roles.config.roles[input].index >= Roles.get_player_highest_role(player).index) then + return valid(player) + else + return invalid{ "exp-commands-parse.role", input } + end + end) + return types diff --git a/exp_commands/module/locale/en.cfg b/exp_commands/module/locale/en.cfg index 5691ca4c..bc241876 100644 --- a/exp_commands/module/locale/en.cfg +++ b/exp_commands/module/locale/en.cfg @@ -27,6 +27,7 @@ force=Invalid Force Name. surface=Invalid Surface Name. planet=Invalid Planet Name. color=Invalid Color Name. +role=Invalid Role Name. [exp-commands-authorities] character-only=This command can not be used in remote view. diff --git a/exp_commands/module/locale/zh-CN.cfg b/exp_commands/module/locale/zh-CN.cfg index 8eb8c6ea..59c4d760 100644 --- a/exp_commands/module/locale/zh-CN.cfg +++ b/exp_commands/module/locale/zh-CN.cfg @@ -27,6 +27,7 @@ force=勢力名稱錯誤。 surface=地表名稱錯誤。 planet=星球名稱錯誤。 color=顏色名稱錯誤。 +role=權限組名稱錯誤。 [exp-commands-authorities] character-only=該命令不能在遠端視圖中使用。 diff --git a/exp_commands/module/locale/zh-TW.cfg b/exp_commands/module/locale/zh-TW.cfg index 8eb8c6ea..59c4d760 100644 --- a/exp_commands/module/locale/zh-TW.cfg +++ b/exp_commands/module/locale/zh-TW.cfg @@ -27,6 +27,7 @@ force=勢力名稱錯誤。 surface=地表名稱錯誤。 planet=星球名稱錯誤。 color=顏色名稱錯誤。 +role=權限組名稱錯誤。 [exp-commands-authorities] character-only=該命令不能在遠端視圖中使用。 From 596ea470827aa3c5719459e8141463e35caa7eeb Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Mon, 30 Dec 2024 16:30:41 +0900 Subject: [PATCH 010/176] . --- exp_legacy/module/modules/gui/player-list.lua | 3 +-- exp_legacy/module/modules/gui/warp-list.lua | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/exp_legacy/module/modules/gui/player-list.lua b/exp_legacy/module/modules/gui/player-list.lua index 19b81055..0cb3cf7d 100644 --- a/exp_legacy/module/modules/gui/player-list.lua +++ b/exp_legacy/module/modules/gui/player-list.lua @@ -117,8 +117,7 @@ local add_player_base = local selected_player = game.players[selected_player_name] if event.button == defines.mouse_button_type.left then -- LMB will open the map to the selected player - local position = selected_player.physical_position - event.player.zoom_to_world(position, 1.75) + event.player.set_controller{ type = defines.controllers.remote, position = selected_player.physical_position, surface = selected_player.physical_surface } else -- RMB will toggle the settings local old_selected_player_name = SelectedPlayer:get(player) diff --git a/exp_legacy/module/modules/gui/warp-list.lua b/exp_legacy/module/modules/gui/warp-list.lua index e0bdb0d5..9872c623 100644 --- a/exp_legacy/module/modules/gui/warp-list.lua +++ b/exp_legacy/module/modules/gui/warp-list.lua @@ -230,8 +230,7 @@ local warp_label = :on_click(function(player, element, _) local warp_id = element.parent.caption local warp = Warps.get_warp(warp_id) - local position = warp.position - player.zoom_to_world(position, 1.5) + player.set_controller{ type = defines.controllers.remote, position = warp.position, surface = warp.surface } end) :static_name(Gui.unique_static_name) From 43f61909e87b3af4d7686471a413e5db47d74b1d Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Mon, 30 Dec 2024 18:25:03 +0900 Subject: [PATCH 011/176] . --- exp_legacy/module/config/bonus.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/exp_legacy/module/config/bonus.lua b/exp_legacy/module/config/bonus.lua index a7d665a5..c9b5220f 100644 --- a/exp_legacy/module/config/bonus.lua +++ b/exp_legacy/module/config/bonus.lua @@ -58,7 +58,7 @@ return { cost_scale = 1, cost = 10, is_percentage = false, - } + }, }, player_bonus = { ["character_mining_speed_modifier"] = { @@ -328,5 +328,5 @@ return { is_percentage = false, }, ]] - } + }, } From 4362b48106e8930c8d2e21d61c86df70bc9e43d4 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Mon, 30 Dec 2024 19:00:02 +0900 Subject: [PATCH 012/176] . --- exp_legacy/module/modules/control/selection.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/exp_legacy/module/modules/control/selection.lua b/exp_legacy/module/modules/control/selection.lua index 5f746e36..7c026292 100644 --- a/exp_legacy/module/modules/control/selection.lua +++ b/exp_legacy/module/modules/control/selection.lua @@ -153,7 +153,7 @@ end --- Stop selection if the selection tool is removed from the cursor Event.add(defines.events.on_player_cursor_stack_changed, function(event) local player = game.players[event.player_index] --- @cast player -nil - if player.cursor_stack.is_selection_tool then return end + if player.cursor_stack and player.cursor_stack.is_selection_tool then return end Selection.stop(player) end) @@ -161,7 +161,7 @@ end) Event.add(defines.events.on_player_controller_changed, function(event) local player = game.players[event.player_index] --- @cast player -nil local inventory = player.get_main_inventory() - if player.cursor_stack.is_selection_tool and inventory then + if player.cursor_stack and player.cursor_stack.is_selection_tool and inventory then player.hand_location = { inventory = inventory.index, slot = #inventory } end end) From 3830a464f850a9016093f57abe1c7a37becb6f6f Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Mon, 30 Dec 2024 19:52:55 +0900 Subject: [PATCH 013/176] Update types.lua --- exp_commands/module/commands/types.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/exp_commands/module/commands/types.lua b/exp_commands/module/commands/types.lua index 46b3ad91..56db8ae8 100644 --- a/exp_commands/module/commands/types.lua +++ b/exp_commands/module/commands/types.lua @@ -233,7 +233,7 @@ types.color = --- A player who has joined the game at least once, with a lower role types.lower_role_player = -add("player", function(input, player) +add("lower_role_player", function(input, player) local player_i = game.get_player(input) local player = game.get_player(player) @@ -246,7 +246,7 @@ end) --- A role that is lower than given user types.lower_role = - add("role", function(input) + add("lower_role", function(input) local player = game.get_player(input) if Roles.config.roles[input] and (Roles.config.roles[input].index >= Roles.get_player_highest_role(player).index) then From 5ae20ac21cfd6af219bb853c3f18c9111c815193 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Mon, 30 Dec 2024 19:55:13 +0900 Subject: [PATCH 014/176] Update types.lua --- exp_commands/module/commands/types.lua | 2 ++ 1 file changed, 2 insertions(+) diff --git a/exp_commands/module/commands/types.lua b/exp_commands/module/commands/types.lua index 56db8ae8..13de4b54 100644 --- a/exp_commands/module/commands/types.lua +++ b/exp_commands/module/commands/types.lua @@ -231,6 +231,7 @@ types.color = end end) +--[[ --- A player who has joined the game at least once, with a lower role types.lower_role_player = add("lower_role_player", function(input, player) @@ -255,5 +256,6 @@ types.lower_role = return invalid{ "exp-commands-parse.role", input } end end) +]] return types From bd5b2179093b0b6f77d91e76f11ca55e9773d738 Mon Sep 17 00:00:00 2001 From: PHIDIAS0303 Date: Mon, 30 Dec 2024 22:38:40 +0900 Subject: [PATCH 015/176] . --- exp_scenario/module/commands/research.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/exp_scenario/module/commands/research.lua b/exp_scenario/module/commands/research.lua index d6673193..56a5b569 100644 --- a/exp_scenario/module/commands/research.lua +++ b/exp_scenario/module/commands/research.lua @@ -71,7 +71,7 @@ local function on_research_finished(event) if not research.res_queue_enable then return end local force = event.research.force - if force.rockets_launched > 0 and force.technologies[config.bonus_inventory.res[config.mod_set].name].level > config.bonus_inventory.res[config.mod_set].level then + if force.technologies[config.bonus_inventory.res[config.mod_set].name].level > config.bonus_inventory.res[config.mod_set].level then module.res_queue(force, event.by_script) end end From d2e2e2d6c93b6b438fd116d17de8f4252e83c7e9 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Tue, 31 Dec 2024 00:28:24 +0900 Subject: [PATCH 016/176] . --- exp_legacy/module/modules/gui/warp-list.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/exp_legacy/module/modules/gui/warp-list.lua b/exp_legacy/module/modules/gui/warp-list.lua index 9872c623..9d5fbdd7 100644 --- a/exp_legacy/module/modules/gui/warp-list.lua +++ b/exp_legacy/module/modules/gui/warp-list.lua @@ -95,7 +95,7 @@ local add_new_warp = local position = player.physical_position -- Check if the warp is too close to water - local water_tiles = surface.find_tiles_filtered{ collision_mask = "water-tile", radius = config.standard_proximity_radius + 1, position = position } + local water_tiles = surface.find_tiles_filtered{ collision_mask = { layers = { water_tile = true } }, radius = config.standard_proximity_radius + 1, position = position } if #water_tiles > 0 then player.print( { "expcore-commands.command-fail", { "warp-list.too-close-to-water", config.standard_proximity_radius + 1 } }, From c5395e37b2be48a11a160e674a8469919c8bdc07 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Tue, 31 Dec 2024 00:45:23 +0900 Subject: [PATCH 017/176] . --- exp_legacy/module/modules/gui/warp-list.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/exp_legacy/module/modules/gui/warp-list.lua b/exp_legacy/module/modules/gui/warp-list.lua index 9d5fbdd7..67c4414a 100644 --- a/exp_legacy/module/modules/gui/warp-list.lua +++ b/exp_legacy/module/modules/gui/warp-list.lua @@ -95,7 +95,7 @@ local add_new_warp = local position = player.physical_position -- Check if the warp is too close to water - local water_tiles = surface.find_tiles_filtered{ collision_mask = { layers = { water_tile = true } }, radius = config.standard_proximity_radius + 1, position = position } + local water_tiles = surface.find_tiles_filtered{ collision_mask = { "water", "water-green", "water-mud", "water-shallow", "water-wube" }, radius = config.standard_proximity_radius + 1, position = position } if #water_tiles > 0 then player.print( { "expcore-commands.command-fail", { "warp-list.too-close-to-water", config.standard_proximity_radius + 1 } }, From 3266f444cd821efeb4c8e4fe6d134aa20c93f930 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Tue, 31 Dec 2024 00:49:15 +0900 Subject: [PATCH 018/176] . --- exp_legacy/module/modules/gui/warp-list.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/exp_legacy/module/modules/gui/warp-list.lua b/exp_legacy/module/modules/gui/warp-list.lua index 67c4414a..bcaa3856 100644 --- a/exp_legacy/module/modules/gui/warp-list.lua +++ b/exp_legacy/module/modules/gui/warp-list.lua @@ -95,7 +95,7 @@ local add_new_warp = local position = player.physical_position -- Check if the warp is too close to water - local water_tiles = surface.find_tiles_filtered{ collision_mask = { "water", "water-green", "water-mud", "water-shallow", "water-wube" }, radius = config.standard_proximity_radius + 1, position = position } + local water_tiles = surface.find_tiles_filtered{ collision_mask = { "water_tile" }, radius = config.standard_proximity_radius + 1, position = position } if #water_tiles > 0 then player.print( { "expcore-commands.command-fail", { "warp-list.too-close-to-water", config.standard_proximity_radius + 1 } }, From 51961d2aea3f3184662452f9bae93e27c020053d Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Tue, 31 Dec 2024 00:50:23 +0900 Subject: [PATCH 019/176] . --- exp_legacy/module/modules/gui/warp-list.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/exp_legacy/module/modules/gui/warp-list.lua b/exp_legacy/module/modules/gui/warp-list.lua index bcaa3856..e96de051 100644 --- a/exp_legacy/module/modules/gui/warp-list.lua +++ b/exp_legacy/module/modules/gui/warp-list.lua @@ -95,7 +95,7 @@ local add_new_warp = local position = player.physical_position -- Check if the warp is too close to water - local water_tiles = surface.find_tiles_filtered{ collision_mask = { "water_tile" }, radius = config.standard_proximity_radius + 1, position = position } + local water_tiles = surface.find_tiles_filtered{ collision_mask = "water_tile", radius = config.standard_proximity_radius + 1, position = position } if #water_tiles > 0 then player.print( { "expcore-commands.command-fail", { "warp-list.too-close-to-water", config.standard_proximity_radius + 1 } }, From 15141e98e0020bf729ef39bcacbef3c562e0f2af Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Tue, 31 Dec 2024 02:58:15 +0900 Subject: [PATCH 020/176] . --- exp_legacy/module/config/expcore/roles.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/exp_legacy/module/config/expcore/roles.lua b/exp_legacy/module/config/expcore/roles.lua index ca4c1f9c..829163c1 100644 --- a/exp_legacy/module/config/expcore/roles.lua +++ b/exp_legacy/module/config/expcore/roles.lua @@ -170,7 +170,7 @@ Roles.new_role("Senior Member", "SMem") --- Standard User Roles Roles.new_role("Member", "Mem") - :set_permission_group("Standard") + :set_permission_group("Trusted") :set_custom_color{ r = 24, g = 172, b = 188 } :set_flag("deconlog-bypass") :set_parent("Veteran") From d73688dd37a4f441f7aecedc20be434fc636ef4b Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Tue, 31 Dec 2024 13:13:02 +0900 Subject: [PATCH 021/176] . --- exp_legacy/module/modules/gui/player-list.lua | 1 + exp_legacy/module/modules/gui/rocket-info.lua | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/exp_legacy/module/modules/gui/player-list.lua b/exp_legacy/module/modules/gui/player-list.lua index 0cb3cf7d..cc08db56 100644 --- a/exp_legacy/module/modules/gui/player-list.lua +++ b/exp_legacy/module/modules/gui/player-list.lua @@ -117,6 +117,7 @@ local add_player_base = local selected_player = game.players[selected_player_name] if event.button == defines.mouse_button_type.left then -- LMB will open the map to the selected player + local position = selected_player.physical_position event.player.set_controller{ type = defines.controllers.remote, position = selected_player.physical_position, surface = selected_player.physical_surface } else -- RMB will toggle the settings diff --git a/exp_legacy/module/modules/gui/rocket-info.lua b/exp_legacy/module/modules/gui/rocket-info.lua index 9e404d15..5355591e 100644 --- a/exp_legacy/module/modules/gui/rocket-info.lua +++ b/exp_legacy/module/modules/gui/rocket-info.lua @@ -127,7 +127,7 @@ local silo_cords = :on_click(function(player, element, _) local rocket_silo_name = element.parent.caption local rocket_silo = Rockets.get_silo_entity(rocket_silo_name) - player.zoom_to_world(rocket_silo.position, 2) + player.set_controller{ type = defines.controllers.remote, position = rocket_silo.position, surface = rocket_silo.surface } end) --- Base element for each rocket in the progress list From 4a1a451ff29a5905b4540648d05cd3ba141a7ee6 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Tue, 31 Dec 2024 13:14:27 +0900 Subject: [PATCH 022/176] . --- exp_legacy/module/modules/gui/vlayer.lua | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/exp_legacy/module/modules/gui/vlayer.lua b/exp_legacy/module/modules/gui/vlayer.lua index 2dc8ed3d..a99860bb 100644 --- a/exp_legacy/module/modules/gui/vlayer.lua +++ b/exp_legacy/module/modules/gui/vlayer.lua @@ -369,14 +369,10 @@ local vlayer_gui_control_see = if target and vlayer_control_type_list[target] and n > 0 then local i = vlayer.get_interfaces() - - if i and i[vlayer_control_type_list[target]] and i[vlayer_control_type_list[target]][n] then - local pos = i[vlayer_control_type_list[target]][n].position - - if pos then - player.zoom_to_world(pos, 2) - player.print{ "vlayer.result-interface-location", { "vlayer.control-type-" .. vlayer_control_type_list[target]:gsub("_", "-") }, pos_to_gps_string(pos) } - end + local entity = i[vlayer_control_type_list[target]][n] + if entity and entity.valid then + player.set_controller{ type = defines.controllers.remote, position = entity.position, surface = entity.surface } + player.print{ "vlayer.result-interface-location", { "vlayer.control-type-" .. vlayer_control_type_list[target]:gsub("_", "-") }, pos_to_gps_string(entity.position) } end end end) From dfd3f85975983f362eda9112723bec3ac9cabafc Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Tue, 31 Dec 2024 13:33:48 +0900 Subject: [PATCH 023/176] . --- exp_commands/module/commands/types.lua | 27 ------------------- exp_legacy/module/modules/control/vlayer.lua | 6 ++--- exp_legacy/module/modules/gui/player-list.lua | 1 - 3 files changed, 3 insertions(+), 31 deletions(-) diff --git a/exp_commands/module/commands/types.lua b/exp_commands/module/commands/types.lua index 13de4b54..2e823a4c 100644 --- a/exp_commands/module/commands/types.lua +++ b/exp_commands/module/commands/types.lua @@ -231,31 +231,4 @@ types.color = end end) ---[[ ---- A player who has joined the game at least once, with a lower role -types.lower_role_player = -add("lower_role_player", function(input, player) - local player_i = game.get_player(input) - local player = game.get_player(player) - - if Roles.get_player_highest_role(player_i).index <= Roles.get_player_highest_role(player).index then - return invalid{ "exp-commands-parse.player", input } - else - return valid(player) - end -end) - ---- A role that is lower than given user -types.lower_role = - add("lower_role", function(input) - local player = game.get_player(input) - - if Roles.config.roles[input] and (Roles.config.roles[input].index >= Roles.get_player_highest_role(player).index) then - return valid(player) - else - return invalid{ "exp-commands-parse.role", input } - end - end) -]] - return types diff --git a/exp_legacy/module/modules/control/vlayer.lua b/exp_legacy/module/modules/control/vlayer.lua index ccd157ca..c63a3e41 100644 --- a/exp_legacy/module/modules/control/vlayer.lua +++ b/exp_legacy/module/modules/control/vlayer.lua @@ -271,9 +271,9 @@ function vlayer.insert_item(item_name, count) vlayer.allocate_item(item_name, allocate_count) end - local nc = count - allocate_count - vlayer_data.storage.unallocated[item_name] = vlayer_data.storage.unallocated[item_name] + count - allocate_count - vlayer.unable_alloc_item_pwr_calc(item_name, nc) + local unallocated = count - allocate_count + vlayer_data.storage.unallocated[item_name] = vlayer_data.storage.unallocated[item_name] + unallocated + vlayer.unable_alloc_item_pwr_calc(item_name, unallocated) else vlayer.allocate_item(item_name, count) end diff --git a/exp_legacy/module/modules/gui/player-list.lua b/exp_legacy/module/modules/gui/player-list.lua index cc08db56..0cb3cf7d 100644 --- a/exp_legacy/module/modules/gui/player-list.lua +++ b/exp_legacy/module/modules/gui/player-list.lua @@ -117,7 +117,6 @@ local add_player_base = local selected_player = game.players[selected_player_name] if event.button == defines.mouse_button_type.left then -- LMB will open the map to the selected player - local position = selected_player.physical_position event.player.set_controller{ type = defines.controllers.remote, position = selected_player.physical_position, surface = selected_player.physical_surface } else -- RMB will toggle the settings From a0c0169a4b4d3ac03d8428c43a9d63c092c559b4 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Tue, 31 Dec 2024 13:34:15 +0900 Subject: [PATCH 024/176] . --- exp_commands/module/commands/types.lua | 2 -- 1 file changed, 2 deletions(-) diff --git a/exp_commands/module/commands/types.lua b/exp_commands/module/commands/types.lua index 2e823a4c..451ef0a0 100644 --- a/exp_commands/module/commands/types.lua +++ b/exp_commands/module/commands/types.lua @@ -25,8 +25,6 @@ local Commands = require("modules/exp_commands") local add, parse = Commands.add_data_type, Commands.parse_input local valid, invalid = Commands.status.success, Commands.status.invalid_input -local Roles = require("modules.exp_legacy.expcore.roles") --- @dep expcore.roles - local types = {} --- @class Commands._types --- A boolean value where true is one of: yes, y, true, 1 From 3ab5becf169fef585d80ae15b36bbff39605c82d Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Tue, 31 Dec 2024 13:37:50 +0900 Subject: [PATCH 025/176] . --- exp_legacy/module/modules/gui/server-ups.lua | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/exp_legacy/module/modules/gui/server-ups.lua b/exp_legacy/module/modules/gui/server-ups.lua index 592d8755..fc0bd3d2 100644 --- a/exp_legacy/module/modules/gui/server-ups.lua +++ b/exp_legacy/module/modules/gui/server-ups.lua @@ -57,6 +57,10 @@ Commands.new("server-ups", { "server-ups.description" }) local function set_location(event) local player = game.players[event.player_index] local label = player.gui.screen[server_ups.name] + if not label then + label = server_ups(player.gui.screen) + label.visible = UsesServerUps:get(player) + end local res = player.display_resolution local uis = player.display_scale -- below ups and clock @@ -65,12 +69,7 @@ local function set_location(event) end -- Draw the label when the player joins -Event.add(defines.events.on_player_created, function(event) - local player = game.players[event.player_index] - local label = server_ups(player.gui.screen) - label.visible = false - set_location(event) -end) +Event.add(defines.events.on_player_created, set_location) -- Update the caption for all online players -- percentage of game speed From 1eb7a27c7187606bf3b903a6c4988413ba7a9500 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Tue, 31 Dec 2024 13:40:23 +0900 Subject: [PATCH 026/176] . --- exp_legacy/module/modules/gui/rocket-info.lua | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/exp_legacy/module/modules/gui/rocket-info.lua b/exp_legacy/module/modules/gui/rocket-info.lua index 5355591e..f1860e0c 100644 --- a/exp_legacy/module/modules/gui/rocket-info.lua +++ b/exp_legacy/module/modules/gui/rocket-info.lua @@ -138,12 +138,15 @@ local rocket_entry = local player = Gui.get_player_from_element(parent) -- Add the toggle auto launch if the player is allowed it - if check_player_permissions(player, "toggle_active") then + -- Auto launch was removed from the api and no 2.0 equivalent was added + -- https://forums.factorio.com/viewtopic.php?f=28&t=118065&p=656502 + --[[if check_player_permissions(player, "toggle_active") then local flow = parent.add{ type = "flow", name = "toggle-" .. silo_name } local button = toggle_launch(flow) button.tooltip = silo_data.toggle_tooltip button.sprite = silo_data.toggle_sprite end + ]] -- Add the remote launch if the player is allowed it if check_player_permissions(player, "remote_launch") then @@ -246,7 +249,7 @@ local function get_progress_data(force_name) -- Get the toggle button data local toggle_tooltip = { "rocket-info.toggle-rocket-tooltip-disabled" } local toggle_sprite = "utility/play" - if rocket_silo.auto_launch then + if false --[[rocket_silo.auto_launch]] then toggle_tooltip = { "rocket-info.toggle-rocket-tooltip" } toggle_sprite = "utility/stop" end From 2944e730b06175fb90214fc2752db43542e2448c Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Tue, 31 Dec 2024 13:41:06 +0900 Subject: [PATCH 027/176] . --- exp_legacy/module/modules/addons/logging.lua | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/exp_legacy/module/modules/addons/logging.lua b/exp_legacy/module/modules/addons/logging.lua index 331e6415..103a47a5 100644 --- a/exp_legacy/module/modules/addons/logging.lua +++ b/exp_legacy/module/modules/addons/logging.lua @@ -13,12 +13,13 @@ local function add_log(data) write_file(config.file_name, "\n", true, 0) end -Event.add(defines.events.on_rocket_launched, function(event) - if event and event.rocket and event.rocket.force and event.rocket.force.rockets_launched then - if event.rocket.force.rockets_launched >= config.rocket_launch_display_rate and event.rocket.force.rockets_launched % config.rocket_launch_display_rate == 0 then - add_log("[ROCKET] " .. event.rocket.force.rockets_launched .. " rockets launched") - elseif config.rocket_launch_display[event.rocket.force.rockets_launched] then - add_log("[ROCKET] " .. event.rocket.force.rockets_launched .. " rockets launched") +Event.add(defines.events.on_cargo_pod_finished_ascending, function(event) + if event and event.launched_by_rocket then + local force = event.cargo_pod.force + if force.rockets_launched >= config.rocket_launch_display_rate and force.rockets_launched % config.rocket_launch_display_rate == 0 then + add_log("[ROCKET] " .. force.rockets_launched .. " rockets launched") + elseif config.rocket_launch_display[force.rockets_launched] then + add_log("[ROCKET] " .. force.rockets_launched .. " rockets launched") end end end) From cf900d46cdde0cab28aca82308f951b532380d7c Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Tue, 31 Dec 2024 13:41:38 +0900 Subject: [PATCH 028/176] . --- exp_legacy/module/modules/control/rockets.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/exp_legacy/module/modules/control/rockets.lua b/exp_legacy/module/modules/control/rockets.lua index 195ac670..1b53946a 100644 --- a/exp_legacy/module/modules/control/rockets.lua +++ b/exp_legacy/module/modules/control/rockets.lua @@ -148,7 +148,7 @@ function Rockets.get_rolling_average(force_name, count) end --- Event used to update the stats and the hui when a rocket is launched -Event.add(defines.events.on_rocket_launched, function(event) +Event.add(defines.events.on_cargo_pod_finished_ascending, function(event) local entity = event.rocket_silo local silo_data = Rockets.get_silo_data(entity) local force = event.rocket_silo.force From 7555de476e9cb2820d03cdaf4fed3e37c885ccc8 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Tue, 31 Dec 2024 13:42:19 +0900 Subject: [PATCH 029/176] . --- exp_legacy/module/modules/control/rockets.lua | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/exp_legacy/module/modules/control/rockets.lua b/exp_legacy/module/modules/control/rockets.lua index 1b53946a..528a4363 100644 --- a/exp_legacy/module/modules/control/rockets.lua +++ b/exp_legacy/module/modules/control/rockets.lua @@ -148,12 +148,13 @@ function Rockets.get_rolling_average(force_name, count) end --- Event used to update the stats and the hui when a rocket is launched -Event.add(defines.events.on_cargo_pod_finished_ascending, function(event) +--- @param event EventData.on_rocket_launched +Event.add(defines.events.on_rocket_launched, function(event) local entity = event.rocket_silo local silo_data = Rockets.get_silo_data(entity) local force = event.rocket_silo.force local force_name = force.name - local rockets_launched = force.rockets_launched + local rockets_launched = force.rockets_launched + 1 -- Hasn't updated when this event fires --- Handles updates to the rocket stats local stats = rocket_stats[force_name] From 6d6e44f0da1c6417514a7c7de76d536a747cf15e Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Tue, 31 Dec 2024 13:42:37 +0900 Subject: [PATCH 030/176] . --- exp_legacy/module/config/_file_loader.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/exp_legacy/module/config/_file_loader.lua b/exp_legacy/module/config/_file_loader.lua index 3ab87539..69e21a27 100644 --- a/exp_legacy/module/config/_file_loader.lua +++ b/exp_legacy/module/config/_file_loader.lua @@ -44,8 +44,8 @@ return { --- GUI "modules.gui.readme", - -- "modules.gui.rocket-info", - -- "modules.gui.science-info", + "modules.gui.rocket-info", + "modules.gui.science-info", "modules.gui.autofill", "modules.gui.warp-list", "modules.gui.task-list", From 118b99f5213f7405f35ddf454e5c5610c4a56b84 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Tue, 31 Dec 2024 13:49:34 +0900 Subject: [PATCH 031/176] . --- exp_legacy/module/modules/gui/rocket-info.lua | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/exp_legacy/module/modules/gui/rocket-info.lua b/exp_legacy/module/modules/gui/rocket-info.lua index f1860e0c..f7d452a4 100644 --- a/exp_legacy/module/modules/gui/rocket-info.lua +++ b/exp_legacy/module/modules/gui/rocket-info.lua @@ -145,8 +145,7 @@ local rocket_entry = local button = toggle_launch(flow) button.tooltip = silo_data.toggle_tooltip button.sprite = silo_data.toggle_sprite - end - ]] + end]] -- Add the remote launch if the player is allowed it if check_player_permissions(player, "remote_launch") then From a991142279403b16b9d690200c39a431bc9d32a9 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Tue, 31 Dec 2024 15:12:26 +0900 Subject: [PATCH 032/176] . --- exp_legacy/module/config/_file_loader.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/exp_legacy/module/config/_file_loader.lua b/exp_legacy/module/config/_file_loader.lua index 69e21a27..3ab87539 100644 --- a/exp_legacy/module/config/_file_loader.lua +++ b/exp_legacy/module/config/_file_loader.lua @@ -44,8 +44,8 @@ return { --- GUI "modules.gui.readme", - "modules.gui.rocket-info", - "modules.gui.science-info", + -- "modules.gui.rocket-info", + -- "modules.gui.science-info", "modules.gui.autofill", "modules.gui.warp-list", "modules.gui.task-list", From 2749df9f08c023dad3c8001cf9db098c9bf5cf6a Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Tue, 31 Dec 2024 23:35:42 +0900 Subject: [PATCH 033/176] . --- exp_legacy/module/modules/gui/readme.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/exp_legacy/module/modules/gui/readme.lua b/exp_legacy/module/modules/gui/readme.lua index 7159977a..d144879f 100644 --- a/exp_legacy/module/modules/gui/readme.lua +++ b/exp_legacy/module/modules/gui/readme.lua @@ -115,7 +115,7 @@ local welcome_time_format = ExpUtil.format_time_factory_locale{ format = "long", -- @element welcome_content define_tab({ "readme.welcome-tab" }, { "readme.welcome-tooltip" }, Gui.element(function(_, parent) - local server_details = { name = "ExpGaming S0 - Local", welcome = "Failed to load description: disconnected from external api.", reset_time = "Non Set", branch = "Unknown" } + local server_details = { name = "APERX S0 - Local", welcome = "Failed to load description: disconnected from external api.", reset_time = "Non Set", branch = "Unknown" } if External.valid() then server_details = External.get_current_server() end local container = parent.add{ type = "flow", direction = "vertical" } local player = Gui.get_player_from_element(parent) From a65a04c8109eeba222c44432321c5c5908600f3d Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Wed, 1 Jan 2025 17:26:07 +0900 Subject: [PATCH 034/176] . --- exp_commands/module/module_exports.lua | 10 +-- exp_legacy/module/expcore/external.lua | 6 +- exp_legacy/module/modules/control/rockets.lua | 66 +++++++++---------- exp_util/module/module_exports.lua | 3 + 4 files changed, 42 insertions(+), 43 deletions(-) diff --git a/exp_commands/module/module_exports.lua b/exp_commands/module/module_exports.lua index 206d1e5c..a58e8c04 100644 --- a/exp_commands/module/module_exports.lua +++ b/exp_commands/module/module_exports.lua @@ -164,7 +164,7 @@ Commands.server = setmetatable({ --- @param msg LocalisedString? An optional message to be included when a command completes (only has an effect in command callbacks) --- @return Commands.Status, LocalisedString # Should be returned directly without modification function Commands.status.success(msg) - return Commands.status.success, msg or { "exp-commands.success" } + return Commands.status.success, msg == nil and { "exp-commands.success" } or msg end --- Used to signal an error has occurred in a command, data type parser, or permission authority @@ -172,7 +172,7 @@ end --- @param msg LocalisedString? An optional error message to be included in the output, a generic message is used if not provided --- @return Commands.Status, LocalisedString # Should be returned directly without modification function Commands.status.error(msg) - return Commands.status.error, { "exp-commands.error", msg or { "exp-commands.error-default" } } + return Commands.status.error, { "exp-commands.error", msg == nil and { "exp-commands.error-default" } or msg } end --- Used to signal the player is unauthorised to use a command, primarily used by permission authorities but can be used in a command callback @@ -180,7 +180,7 @@ end --- @param msg LocalisedString? An optional error message to be included in the output, a generic message is used if not provided --- @return Commands.Status, LocalisedString # Should be returned directly without modification function Commands.status.unauthorised(msg) - return Commands.status.unauthorised, msg or { "exp-commands.unauthorized", msg or { "exp-commands.unauthorized-default" } } + return Commands.status.unauthorised, { "exp-commands.unauthorized", msg == nil and { "exp-commands.unauthorized-default" } or msg } end --- Used to signal the player provided invalid input to an command, primarily used by data type parsers but can be used in a command callback @@ -188,7 +188,7 @@ end --- @param msg LocalisedString? An optional error message to be included in the output, a generic message is used if not provided --- @return Commands.Status, LocalisedString # Should be returned directly without modification function Commands.status.invalid_input(msg) - return Commands.status.invalid_input, msg or { "exp-commands.invalid-input" } + return Commands.status.invalid_input, msg == nil and { "exp-commands.invalid-input" } or msg end --- Used to signal an internal error has occurred, this is reserved for internal use only @@ -702,7 +702,7 @@ function Commands._event_handler(event) -- Parse the raw argument to get the correct data type local success, status, parsed = Commands.parse_input(input, player, argument.input_parser) if success == false then - log_command("Input parse failed", command, player, event.parameter, { status = valid_command_status[status], index = index, argument = argument, reason = parsed }) + log_command("Input parse failed", command, player, event.parameter, { status = valid_command_status[status], index = index, argument = argument.name, reason = parsed }) return Commands.error{ "exp-commands.invalid-argument", argument.name, parsed } else arguments[index] = parsed diff --git a/exp_legacy/module/expcore/external.lua b/exp_legacy/module/expcore/external.lua index e5e7b6dc..d37129e0 100644 --- a/exp_legacy/module/expcore/external.lua +++ b/exp_legacy/module/expcore/external.lua @@ -83,7 +83,7 @@ function External.get_current_server() assert(ext, "No external data was found, use External.valid() to ensure external data exists.") local servers = assert(ext.servers, "No server list was found, please ensure that the external service is running") local server_id = assert(ext.current, "No current id was found, please ensure that the external service is running") - return servers[server_id] + return assert(servers[server_id], "No details found for server with id: " .. tostring(server_id)) end --[[-- Gets the details of the given server @@ -97,7 +97,7 @@ local server = External.get_server_details('eu-01') function External.get_server_details(server_id) assert(ext, "No external data was found, use External.valid() to ensure external data exists.") local servers = assert(ext.servers, "No server list was found, please ensure that the external service is running") - return servers[server_id] + return assert(servers[server_id], "No details found for server with id: " .. tostring(server_id)) end --[[-- Gets the status of the given server @@ -113,7 +113,7 @@ function External.get_server_status(server_id, raw) assert(var, "No external data was found, use External.valid() to ensure external data exists.") local servers = assert(var.status, "No server status was found, please ensure that the external service is running") local current = assert(ext.current, "No current id was found, please ensure that the external service is running") - return not raw and server_id == current and "Current" or servers[server_id] + return not raw and server_id == current and "Current" or assert(servers[server_id], "No status found for server with id: " .. tostring(server_id)) end --[[-- Gets the ups of the current server diff --git a/exp_legacy/module/modules/control/rockets.lua b/exp_legacy/module/modules/control/rockets.lua index 528a4363..d6fca7c5 100644 --- a/exp_legacy/module/modules/control/rockets.lua +++ b/exp_legacy/module/modules/control/rockets.lua @@ -59,8 +59,8 @@ Storage.register({ end) --- Gets the silo data for a given silo entity --- @tparam LuaEntity silo the rocket silo entity --- @treturn table the data table for this silo, contains rockets launch, silo status, and its force +--- @param silo LuaEntity Rocket silo entity +--- @return table # Data table for this silo, contains rockets launch, silo status, and its force function Rockets.get_silo_data(silo) local position = silo.position local silo_name = math.floor(position.x) .. ":" .. math.floor(position.y) @@ -68,30 +68,30 @@ function Rockets.get_silo_data(silo) end --- Gets the silo data for a given silo entity --- @tparam string silo_name the silo name that is stored in its data --- @treturn table the data table for this silo, contains rockets launch, silo status, and its force +--- @param silo_name string Silo name that is stored in its data +--- @return table # Data table for this silo, contains rockets launch, silo status, and its force function Rockets.get_silo_data_by_name(silo_name) return rocket_silos[silo_name] end --- Gets the silo entity from its silo name, reverse to get_silo_data --- @tparam string silo_name the silo name that is stored in its data --- @treturn LuaEntity the rocket silo entity +--- @param silo_name string Silo name that is stored in its data +--- @return LuaEntity # Rocket silo entity function Rockets.get_silo_entity(silo_name) local data = rocket_silos[silo_name] return data.entity end --- Gets the rocket stats for a force --- @tparam string force_name the name of the force to get the stats for --- @treturn table the table of stats for the force +--- @param force_name string Name of the force to get the stats for +--- @return table # Stats for the force function Rockets.get_stats(force_name) return rocket_stats[force_name] or {} end --- Gets all the rocket silos that belong to a force --- @tparam string force_name the name of the force to get the silos for --- @treturn table an array of silo data that all belong to this force +--- @param force_name string Name of the force to get the silos for +--- @return table # Array of silo data that all belong to this force function Rockets.get_silos(force_name) local rtn = {} for _, silo_data in pairs(rocket_silos) do @@ -104,23 +104,23 @@ function Rockets.get_silos(force_name) end --- Gets the launch time of a given rocket, due to cleaning not all counts are valid --- @tparam string force_name the name of the force to get the count for --- @tparam number rocket_number the number of the rocket to get the launch time for --- @treturn number the game tick that the rocket was lanuched on +--- @param force_name string Name of the force to get the count for +--- @param rocket_number number Number of the rocket to get the launch time for +--- @return number? # Game tick that the rocket was launched on function Rockets.get_rocket_time(force_name, rocket_number) return rocket_times[force_name] and rocket_times[force_name][rocket_number] or nil end --- Gets the number of rockets that a force has launched --- @tparam string force_name the name of the force to get the count for --- @treturn number the number of rockets that the force has launched +--- @param force_name string the name of the force to get the count for +--- @return number # Number of rockets that the force has launched function Rockets.get_rocket_count(force_name) local force = game.forces[force_name] return force.rockets_launched end --- Gets the total number of rockets launched by all forces --- @treturn number the total number of rockets launched this game +--- @return number # Total number of rockets launched this game function Rockets.get_game_rocket_count() local rtn = 0 for _, force in pairs(game.forces) do @@ -131,9 +131,9 @@ function Rockets.get_game_rocket_count() end --- Gets the rolling average time to launch a rocket --- @tparam string force_name the name of the force to get the average for --- @tparam number count the distance to get the rolling average over --- @treturn number the number of ticks required to launch one rocket +--- @param force_name string Name of the force to get the average for +--- @param count number Distance to get the rolling average over +--- @return number # Number of ticks required to launch one rocket function Rockets.get_rolling_average(force_name, count) local force = game.forces[force_name] local rocket_count = force.rockets_launched @@ -147,14 +147,20 @@ function Rockets.get_rolling_average(force_name, count) return math.floor((last_launch_time - start_rocket_time) / rocket_count) end +--- When a launch is trigger it will wait for the silo to reset +--- @param event EventData.on_rocket_launch_ordered +Event.add(defines.events.on_rocket_launch_ordered, function(event) + local silo_data = Rockets.get_silo_data(event.rocket_silo) + silo_data.launched = silo_data.launched + 1 + silo_data.awaiting_reset = true +end) + --- Event used to update the stats and the hui when a rocket is launched ---- @param event EventData.on_rocket_launched -Event.add(defines.events.on_rocket_launched, function(event) - local entity = event.rocket_silo - local silo_data = Rockets.get_silo_data(entity) - local force = event.rocket_silo.force +--- @param event EventData.on_cargo_pod_finished_ascending +Event.add(defines.events.on_cargo_pod_finished_ascending, function(event) + local force = event.cargo_pod.force local force_name = force.name - local rockets_launched = force.rockets_launched + 1 -- Hasn't updated when this event fires + local rockets_launched = force.rockets_launched --- Handles updates to the rocket stats local stats = rocket_stats[force_name] @@ -183,16 +189,6 @@ Event.add(defines.events.on_rocket_launched, function(event) if remove_rocket > 0 and not table.contains(config.milestones, remove_rocket) then rocket_times[force_name][remove_rocket] = nil end - - --- Adds this 1 to the launch count for this silo - silo_data.launched = silo_data.launched + 1 -end) - ---- When a launch is reiggered it will await reset -Event.add(defines.events.on_rocket_launch_ordered, function(event) - local entity = event.rocket_silo - local silo_data = Rockets.get_silo_data(entity) - silo_data.awaiting_reset = true end) --- Adds a silo to the list when it is built diff --git a/exp_util/module/module_exports.lua b/exp_util/module/module_exports.lua index 159ccaad..d9638d98 100644 --- a/exp_util/module/module_exports.lua +++ b/exp_util/module/module_exports.lua @@ -451,6 +451,7 @@ end --- @class Common.copy_items_to_surface_param: Common.get_or_create_storage_param --- @field items ItemStackIdentification[] | LuaInventory The item stacks to copy +--- @field item ItemStackIdentification? Overwritten internally --- Insert a copy of the given items into the found entities. If no entities are found then they will be created if possible. --- @param options Common.copy_items_to_surface_param @@ -467,6 +468,7 @@ end --- @class Common.move_items_to_surface_param: Common.get_or_create_storage_param --- @field items LuaItemStack[] The item stacks to move +--- @field item ItemStackIdentification? Overwritten internally --- Insert a copy of the given items into the found entities. If no entities are found then they will be created if possible. --- @param options Common.move_items_to_surface_param @@ -484,6 +486,7 @@ end --- @class Common.transfer_inventory_to_surface_param: Common.copy_items_to_surface_param --- @field inventory LuaInventory The inventory to transfer +--- @field items (ItemStackIdentification[] | LuaInventory)? Overwritten internally --- Move the given inventory into the found entities. If no entities are found then they will be created if possible. --- @param options Common.transfer_inventory_to_surface_param From 890019ca98d8b9e1a63796a2f76867d60392e8f4 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Wed, 1 Jan 2025 17:40:51 +0900 Subject: [PATCH 035/176] . --- exp_legacy/module/modules/addons/tree-decon.lua | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/exp_legacy/module/modules/addons/tree-decon.lua b/exp_legacy/module/modules/addons/tree-decon.lua index aa72774d..0298c335 100644 --- a/exp_legacy/module/modules/addons/tree-decon.lua +++ b/exp_legacy/module/modules/addons/tree-decon.lua @@ -117,12 +117,13 @@ Event.add(defines.events.on_entity_damaged, function(event) end local driver = event.cause.get_driver() - if not driver then return end - local allow = get_permission(driver.player.index) - if allow == "fast" and HasEnabledDecon:get(driver.player) then - event.entity.destroy() - else - event.entity.order_deconstruction(event.force, driver.player) + if driver and driver.player then + driver = driver.player + if get_permission(driver.index) == "fast" and HasEnabledDecon:get(driver) then + event.entity.destroy() + else + event.entity.order_deconstruction(event.force, driver) + end end end) From fb01bc1644248a93578268943ca21d03fb0ea5a9 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Wed, 1 Jan 2025 17:42:06 +0900 Subject: [PATCH 036/176] . --- exp_legacy/module/modules/addons/tree-decon.lua | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/exp_legacy/module/modules/addons/tree-decon.lua b/exp_legacy/module/modules/addons/tree-decon.lua index 0298c335..577b72fb 100644 --- a/exp_legacy/module/modules/addons/tree-decon.lua +++ b/exp_legacy/module/modules/addons/tree-decon.lua @@ -119,11 +119,10 @@ Event.add(defines.events.on_entity_damaged, function(event) local driver = event.cause.get_driver() if driver and driver.player then - driver = driver.player - if get_permission(driver.index) == "fast" and HasEnabledDecon:get(driver) then + if get_permission(driver.player.index) == "fast" and HasEnabledDecon:get(driver.player) then event.entity.destroy() else - event.entity.order_deconstruction(event.force, driver) + event.entity.order_deconstruction(event.force, driver.player) end end end) From 9a82000792ed3e3e506deead851aede4eb16162c Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Wed, 1 Jan 2025 18:49:16 +0900 Subject: [PATCH 037/176] . --- exp_legacy/module/config/bonus.lua | 116 +++++++++++++---------------- 1 file changed, 52 insertions(+), 64 deletions(-) diff --git a/exp_legacy/module/config/bonus.lua b/exp_legacy/module/config/bonus.lua index c9b5220f..0f832ab7 100644 --- a/exp_legacy/module/config/bonus.lua +++ b/exp_legacy/module/config/bonus.lua @@ -10,26 +10,14 @@ return { Base point is equal to the amount of standard value in each parameter. CMMS CRS CCS CISB CHB CRDB PBR - STD 20 60 24 12 8 8 40 - = 172 + STD 30 90 32 20 16 12 60 + = 260 - MAX 40 120 48 24 16 16 80 - = 344 + MAX 60 180 64 40 32 24 120 + = 480 ]] pts = { - rate = { - ["Senior Administrator"] = 1.5, - ["Administrator"] = 1.4, - ["Senior Moderator"] = 1.3, - ["Moderator"] = 1.2, - ["Trainee Moderator"] = 1.2, - ["Board Member"] = 1.1, - ["Supporter"] = 1.1, - ["Partner"] = 1.1, - ["Senior Member"] = 1.1, - ["Member"] = 1, - }, - base = 172 + base = 260, }, gui_display_width = { half = 150, @@ -45,65 +33,65 @@ return { ["chb"] = "character_health_bonus", ["crdb"] = "character_reach_distance_bonus", --[[ - ["cpdb"] = "character_item_pickup_distance_bonus" + ['cpdb'] = 'character_item_pickup_distance_bonus', ]] }, player_special_bonus_rate = 300, player_special_bonus = { ["personal_battery_recharge"] = { -- 1 MW - value = 4, - max = 8, - scale = 0.5, - cost_scale = 1, - cost = 10, + value = 6, + max = 12, + scale = 1, + cost_scale = 4, + cost = 40, is_percentage = false, }, }, player_bonus = { ["character_mining_speed_modifier"] = { - value = 2, - max = 4, + value = 3, + max = 6, scale = 0.5, cost_scale = 1, cost = 10, is_percentage = true, }, ["character_running_speed_modifier"] = { - value = 1, - max = 2, + value = 1.5, + max = 3, scale = 0.25, cost_scale = 1, cost = 60, is_percentage = true, }, ["character_crafting_speed_modifier"] = { - value = 6, - max = 12, - scale = 0.5, + value = 8, + max = 16, + scale = 1, cost_scale = 1, cost = 4, is_percentage = true, }, ["character_inventory_slots_bonus"] = { - value = 60, - max = 120, - scale = 5, + value = 100, + max = 200, + scale = 10, cost_scale = 10, cost = 2, is_percentage = false, }, ["character_health_bonus"] = { - value = 100, - max = 200, - scale = 25, - cost_scale = 25, - cost = 2, + value = 200, + max = 400, + scale = 50, + cost_scale = 50, + cost = 4, is_percentage = false, }, ["character_reach_distance_bonus"] = { - value = 8, - max = 16, + value = 12, + max = 24, scale = 2, cost_scale = 1, cost = 1, @@ -114,7 +102,7 @@ return { }, }, --[[ - ["character_item_pickup_distance_bonus"] = { + ['character_item_pickup_distance_bonus'] = { value = 0, max = 20, scale = 1, @@ -122,7 +110,7 @@ return { cost = 1, is_percentage = false, }, - ["character_loot_pickup_distance_bonus"] = { + ['character_loot_pickup_distance_bonus'] = { value = 0, max = 20, scale = 1, @@ -130,7 +118,7 @@ return { cost = 1, is_percentage = false, }, - ["character_item_drop_distance_bonus"] = { + ['character_item_drop_distance_bonus'] = { value = 0, max = 20, scale = 1, @@ -142,7 +130,7 @@ return { }, force_bonus = { --[[ - ["character_mining_speed_modifier"] = { + ['character_mining_speed_modifier'] = { value = 0, max = 6, scale = 0.5, @@ -150,7 +138,7 @@ return { cost = 10, is_percentage = true, }, - ["character_running_speed_modifier"] = { + ['character_running_speed_modifier'] = { value = 0, max = 3, scale = 0.25, @@ -158,7 +146,7 @@ return { cost = 40, is_percentage = true, }, - ["character_crafting_speed_modifier"] = { + ['character_crafting_speed_modifier'] = { value = 0, max = 16, scale = 1, @@ -166,7 +154,7 @@ return { cost = 4, is_percentage = true, }, - ["character_inventory_slots_bonus"] = { + ['character_inventory_slots_bonus'] = { value = 0, max = 200, scale = 10, @@ -174,14 +162,14 @@ return { cost = 2, is_percentage = false, }, - ["character_health_bonus"] = { + ['character_health_bonus'] = { value = 0, max = 400, scale = 50, cost = 4, is_percentage = false, }, - ["character_reach_distance_bonus"] = { + ['character_reach_distance_bonus'] = { value = 0, max = 24, scale = 2, @@ -189,11 +177,11 @@ return { cost = 1, is_percentage = false, combined_bonus = { - "character_resource_reach_distance_bonus", - "character_build_distance_bonus", + 'character_resource_reach_distance_bonus', + 'character_build_distance_bonus', }, }, - ["worker_robots_speed_modifier"] = { + ['worker_robots_speed_modifier'] = { value = 0, max = 0, scale = 0, @@ -227,7 +215,7 @@ return { is_percentage = false, }, --[[ - ["character_item_pickup_distance_bonus"] = { + ['character_item_pickup_distance_bonus'] = { value = 0, max = 20, scale = 1, @@ -235,7 +223,7 @@ return { cost = 1, is_percentage = false, }, - ["character_loot_pickup_distance_bonus"] = { + ['character_loot_pickup_distance_bonus'] = { value = 0, max = 20, scale = 1, @@ -243,7 +231,7 @@ return { cost = 1, is_percentage = false, }, - ["character_item_drop_distance_bonus"] = { + ['character_item_drop_distance_bonus'] = { value = 0, max = 20, scale = 1, @@ -251,7 +239,7 @@ return { cost = 1, is_percentage = false, }, - ["character_trash_slot_count"] = { + ['character_trash_slot_count'] = { value = 0, max = 0, scale = 0, @@ -259,7 +247,7 @@ return { cost = 1, is_percentage = false, }, - ["mining_drill_productivity_bonus"] = { + ['mining_drill_productivity_bonus'] = { value = 0, max = 0, scale = 0, @@ -267,7 +255,7 @@ return { cost = 1, is_percentage = false, }, - ["train_braking_force_bonus"] = { + ['train_braking_force_bonus'] = { value = 0, max = 0, scale = 0, @@ -275,7 +263,7 @@ return { cost = 1, is_percentage = false, }, - ["laboratory_speed_modifier"] = { + ['laboratory_speed_modifier'] = { value = 0, max = 0, scale = 0, @@ -283,7 +271,7 @@ return { cost = 1, is_percentage = false, }, - ["laboratory_productivity_bonus"] = { + ['laboratory_productivity_bonus'] = { value = 0, max = 0, scale = 0, @@ -291,7 +279,7 @@ return { cost = 1, is_percentage = false, }, - ["inserter_stack_size_bonus"] = { + ['inserter_stack_size_bonus'] = { value = 0, max = 0, scale = 0, @@ -299,7 +287,7 @@ return { cost = 1, is_percentage = false, }, - ["stack_inserter_capacity_bonus"] = { + ['stack_inserter_capacity_bonus'] = { value = 0, max = 0, scale = 0, @@ -307,7 +295,7 @@ return { cost = 1, is_percentage = false, }, - ["artillery_range_modifier"] = { + ['artillery_range_modifier'] = { value = 0, max = 0, scale = 0, @@ -319,7 +307,7 @@ return { }, surface_bonus = { --[[ - ["solar_power_multiplier"] = { + ['solar_power_multiplier'] = { value = 1, max = 1000, scale = 1, From f5a830d1c6d62caef6c4657f2af192266dd965b9 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Wed, 1 Jan 2025 21:21:54 +0900 Subject: [PATCH 038/176] . --- exp_scenario/module/commands/research.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/exp_scenario/module/commands/research.lua b/exp_scenario/module/commands/research.lua index 56a5b569..420a8741 100644 --- a/exp_scenario/module/commands/research.lua +++ b/exp_scenario/module/commands/research.lua @@ -26,7 +26,7 @@ function module.res_queue(force, silent) local res = force.technologies[config.bonus_inventory.res[config.mod_set].name] if #res_q < config.queue_amount then - for i = 1, config.queue_amount - #res_q do + for i = #res_q, config.queue_amount - 1 do force.add_research(res) if not silent then From 4a14972412d7b69dae56d1d7a355ac6e0abc0e3d Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Thu, 2 Jan 2025 14:39:21 +0900 Subject: [PATCH 039/176] . --- exp_legacy/module/modules/addons/tree-decon.lua | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/exp_legacy/module/modules/addons/tree-decon.lua b/exp_legacy/module/modules/addons/tree-decon.lua index 577b72fb..e886941d 100644 --- a/exp_legacy/module/modules/addons/tree-decon.lua +++ b/exp_legacy/module/modules/addons/tree-decon.lua @@ -103,6 +103,7 @@ Event.on_nth_tick(300, function() end) -- Clear trees when hit with a car +--- @param event EventData.on_entity_damaged Event.add(defines.events.on_entity_damaged, function(event) if not (event.damage_type.name == "impact" and event.force) then return @@ -117,12 +118,16 @@ Event.add(defines.events.on_entity_damaged, function(event) end local driver = event.cause.get_driver() + if not driver then return end + if driver.object_name ~= "LuaPlayer" then + driver = driver.player + if not driver then return end + end - if driver and driver.player then - if get_permission(driver.player.index) == "fast" and HasEnabledDecon:get(driver.player) then - event.entity.destroy() - else - event.entity.order_deconstruction(event.force, driver.player) - end + local allow = get_permission(driver.index) + if allow == "fast" and HasEnabledDecon:get(driver) then + event.entity.destroy() + else + event.entity.order_deconstruction(event.force, driver) end end) From 3e570b159970cb990da5acd0da56ea29b6f5e3b2 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Sat, 4 Jan 2025 13:22:40 +0900 Subject: [PATCH 040/176] . --- exp_legacy/module/modules/control/vlayer.lua | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/exp_legacy/module/modules/control/vlayer.lua b/exp_legacy/module/modules/control/vlayer.lua index c63a3e41..356967ad 100644 --- a/exp_legacy/module/modules/control/vlayer.lua +++ b/exp_legacy/module/modules/control/vlayer.lua @@ -332,7 +332,7 @@ end -- @tparam[opt] LuaPlayer player The player to show as the last user of the interface -- @treturn LuaEntity The entity that was created for the interface function vlayer.create_input_interface(surface, position, circuit, last_user) - local interface = surface.create_entity{ name = "logistic-chest-storage", position = position, force = "neutral" } + local interface = surface.create_entity{ name = "storage-chest", position = position, force = "neutral" } table.insert(vlayer_data.entity_interfaces.storage_input, interface) if last_user then @@ -391,7 +391,7 @@ end -- @tparam[opt] LuaPlayer player The player to show as the last user of the interface -- @treturn LuaEntity The entity that was created for the interface function vlayer.create_output_interface(surface, position, circuit, last_user) - local interface = surface.create_entity{ name = "logistic-chest-requester", position = position, force = "neutral" } + local interface = surface.create_entity{ name = "requester-chest", position = position, force = "neutral" } table.insert(vlayer_data.entity_interfaces.storage_output, interface) if last_user then @@ -682,7 +682,7 @@ end -- @treturn MapPosition The position the interface was at, or nil if no interface was found function vlayer.remove_interface(surface, position) local entities = surface.find_entities_filtered{ - name = { "logistic-chest-storage", "logistic-chest-requester", "constant-combinator", "electric-energy-interface" }, + name = { "storage-chest", "requester-chest", "constant-combinator", "electric-energy-interface" }, force = "neutral", position = position, radius = 2, @@ -699,7 +699,7 @@ function vlayer.remove_interface(surface, position) local pos = interface.position -- Return the type of interface removed and do some clean up - if name == "logistic-chest-storage" then + if name == "storage-chest" then local inventory = assert(interface.get_inventory(defines.inventory.chest)) ExpUtil.transfer_inventory_to_surface{ inventory = inventory, @@ -711,7 +711,7 @@ function vlayer.remove_interface(surface, position) interface.destroy() return "storage-input", pos - elseif name == "logistic-chest-requester" then + elseif name == "requester-chest" then local inventory = assert(interface.get_inventory(defines.inventory.chest)) ExpUtil.transfer_inventory_to_surface{ inventory = inventory, From baf9e3f2df350cb6efe4179bf9a1ab4a289b7909 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Tue, 7 Jan 2025 17:39:47 +0900 Subject: [PATCH 041/176] . --- exp_legacy/module/modules/addons/deconlog.lua | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/exp_legacy/module/modules/addons/deconlog.lua b/exp_legacy/module/modules/addons/deconlog.lua index 08c40b8f..8f42ad72 100644 --- a/exp_legacy/module/modules/addons/deconlog.lua +++ b/exp_legacy/module/modules/addons/deconlog.lua @@ -100,12 +100,15 @@ if config.fired_rocket then return end local ammo_inv = player.get_inventory(defines.inventory.character_ammo) --- @cast ammo_inv -nil - local item = ammo_inv[player.character.selected_gun_index] - if not item or not item.valid or not item.valid_for_read then - return - end - if item.name == "rocket" then - add_log(get_secs() .. "," .. player.name .. ",shot-rocket," .. pos_to_string(player.physical_position) .. "," .. pos_to_string(player.shooting_state.position)) + + if player.character then + local item = ammo_inv[player.character.selected_gun_index] + if not item or not item.valid or not item.valid_for_read then + return + end + if item.name == "rocket" then + add_log(get_secs() .. "," .. player.name .. ",shot-rocket," .. pos_to_string(player.physical_position) .. "," .. pos_to_string(player.shooting_state.position)) + end end end) end From fa3168e1ac9b7ecda574b70ff14a5bcef36a1c7b Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Tue, 7 Jan 2025 17:40:53 +0900 Subject: [PATCH 042/176] . --- exp_legacy/module/modules/addons/deconlog.lua | 1 - 1 file changed, 1 deletion(-) diff --git a/exp_legacy/module/modules/addons/deconlog.lua b/exp_legacy/module/modules/addons/deconlog.lua index 8f42ad72..337a42ed 100644 --- a/exp_legacy/module/modules/addons/deconlog.lua +++ b/exp_legacy/module/modules/addons/deconlog.lua @@ -100,7 +100,6 @@ if config.fired_rocket then return end local ammo_inv = player.get_inventory(defines.inventory.character_ammo) --- @cast ammo_inv -nil - if player.character then local item = ammo_inv[player.character.selected_gun_index] if not item or not item.valid or not item.valid_for_read then From 251e41bba5c27fc24cbd1143bb4cd7dd44b3eca8 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Tue, 7 Jan 2025 18:07:38 +0900 Subject: [PATCH 043/176] . --- exp_legacy/module/modules/addons/deconlog.lua | 50 ++++--------------- 1 file changed, 9 insertions(+), 41 deletions(-) diff --git a/exp_legacy/module/modules/addons/deconlog.lua b/exp_legacy/module/modules/addons/deconlog.lua index 337a42ed..9ffc67d4 100644 --- a/exp_legacy/module/modules/addons/deconlog.lua +++ b/exp_legacy/module/modules/addons/deconlog.lua @@ -102,52 +102,20 @@ if config.fired_rocket then local ammo_inv = player.get_inventory(defines.inventory.character_ammo) --- @cast ammo_inv -nil if player.character then local item = ammo_inv[player.character.selected_gun_index] + local item_name = "" if not item or not item.valid or not item.valid_for_read then return end if item.name == "rocket" then - add_log(get_secs() .. "," .. player.name .. ",shot-rocket," .. pos_to_string(player.physical_position) .. "," .. pos_to_string(player.shooting_state.position)) + item_name = "shot-rocket" + elseif item.name == "explosive-rocket" then + item_name = "shot-explosive-rocket" + elseif item.name == "atomic-bomb" then + item_name = "shot-nuke" + end + if item.name == "rocket" then + add_log(get_secs() .. "," .. player.name .. "," .. item_name .. "," .. pos_to_string(player.physical_position) .. "," .. pos_to_string(player.shooting_state.position)) end end end) end - -if config.fired_explosive_rocket then - Event.add(defines.events.on_player_ammo_inventory_changed, function(e) - local player = game.players[e.player_index] - - if Roles.player_has_flag(player, "deconlog-bypass") then - return - end - local ammo_inv = player.get_inventory(defines.inventory.character_ammo) --- @cast ammo_inv -nil - local item = ammo_inv[player.character.selected_gun_index] - - if not item or not item.valid or not item.valid_for_read then - return - end - if item.name == "explosive-rocket" then - add_log(get_secs() .. "," .. player.name .. ",shot-explosive-rocket," .. pos_to_string(player.physical_position) .. "," .. pos_to_string(player.shooting_state.position)) - end - end) -end - -if config.fired_nuke then - Event.add(defines.events.on_player_ammo_inventory_changed, function(e) - local player = game.players[e.player_index] - - if Roles.player_has_flag(player, "deconlog-bypass") then - return - end - - local ammo_inv = player.get_inventory(defines.inventory.character_ammo) --- @cast ammo_inv -nil - local item = ammo_inv[player.character.selected_gun_index] - - if not item or not item.valid or not item.valid_for_read then - return - end - - if item.name == "atomic-bomb" then - add_log(get_secs() .. "," .. player.name .. ",shot-nuke," .. pos_to_string(player.physical_position) .. "," .. pos_to_string(player.shooting_state.position)) - end - end) -end From 155721938e52a20cd0963b22f9bb270d2abf3105 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Tue, 7 Jan 2025 18:15:43 +0900 Subject: [PATCH 044/176] . --- exp_legacy/module/config/deconlog.lua | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/exp_legacy/module/config/deconlog.lua b/exp_legacy/module/config/deconlog.lua index c55dba24..19bcc54a 100644 --- a/exp_legacy/module/config/deconlog.lua +++ b/exp_legacy/module/config/deconlog.lua @@ -5,7 +5,5 @@ return { decon_area = true, --- @setting decon_area whether to log when an area is being deconstructed built_entity = true, --- @setting built_entity whether to log when an entity is built mined_entity = true, --- @setting mined_entity whether to log when an entity is mined - fired_rocket = true, --- @setting fired_nuke whether to log when a rocket is fired - fired_explosive_rocket = true, --- @setting fired_nuke whether to log when a explosive rocket is fired - fired_nuke = true, --- @setting fired_nuke whether to log when a nuke is fired + fired_rocket = true, --- @setting fired_nuke whether to log when any rocket is fired } From 11eb7152bdd8f8c467d8f29735af63d1a0a03c0e Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Tue, 7 Jan 2025 19:32:25 +0900 Subject: [PATCH 045/176] . --- exp_legacy/module/modules/addons/compilatron.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/exp_legacy/module/modules/addons/compilatron.lua b/exp_legacy/module/modules/addons/compilatron.lua index aea060d1..e18e9993 100644 --- a/exp_legacy/module/modules/addons/compilatron.lua +++ b/exp_legacy/module/modules/addons/compilatron.lua @@ -44,7 +44,7 @@ local speech_bubble_async = local function circle_messages() for name, ent in pairs(Public.compilatrons) do if not ent.valid then - Public.spawn_compilatron(game.players[1].surface, name) + Public.spawn_compilatron(game.players[1].physical_surface, name) end local current_message = Public.current_messages[name] local msg_number From 664c9e67c0fbb3cf9012ae9a34f27484a1aae758 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Tue, 7 Jan 2025 19:35:02 +0900 Subject: [PATCH 046/176] . --- exp_legacy/module/modules/addons/compilatron.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/exp_legacy/module/modules/addons/compilatron.lua b/exp_legacy/module/modules/addons/compilatron.lua index e18e9993..2fc08f5b 100644 --- a/exp_legacy/module/modules/addons/compilatron.lua +++ b/exp_legacy/module/modules/addons/compilatron.lua @@ -44,7 +44,7 @@ local speech_bubble_async = local function circle_messages() for name, ent in pairs(Public.compilatrons) do if not ent.valid then - Public.spawn_compilatron(game.players[1].physical_surface, name) + Public.spawn_compilatron(game.players[1].surface or game.surfaces[1], name) end local current_message = Public.current_messages[name] local msg_number From a38708c203545d8f0d6953a36d2bbf1837dd1239 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Tue, 7 Jan 2025 20:15:03 +0900 Subject: [PATCH 047/176] . --- exp_legacy/module/modules/addons/compilatron.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/exp_legacy/module/modules/addons/compilatron.lua b/exp_legacy/module/modules/addons/compilatron.lua index 2fc08f5b..9e06ae54 100644 --- a/exp_legacy/module/modules/addons/compilatron.lua +++ b/exp_legacy/module/modules/addons/compilatron.lua @@ -44,7 +44,7 @@ local speech_bubble_async = local function circle_messages() for name, ent in pairs(Public.compilatrons) do if not ent.valid then - Public.spawn_compilatron(game.players[1].surface or game.surfaces[1], name) + Public.spawn_compilatron(game.players[1].surface, name) end local current_message = Public.current_messages[name] local msg_number @@ -93,7 +93,7 @@ end -- @tparam LuaSurface surface the surface to spawn the compilatron on -- @tparam string location the location tag that is in the config file function Public.spawn_compilatron(surface, location) - local position = locations[location] + local position = locations[location] or { x = 0, y = 0 } local pos = surface.find_non_colliding_position("behemoth-biter", position, 1.5, 0.5) local compi = surface.create_entity{ name = "behemoth-biter", position = pos, force = game.forces.neutral } Public.add_compilatron(compi, location) From db70decbf30c044edf01d653045dd1004c68ac04 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Tue, 7 Jan 2025 21:54:33 +0900 Subject: [PATCH 048/176] . --- exp_legacy/module/modules/addons/compilatron.lua | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/exp_legacy/module/modules/addons/compilatron.lua b/exp_legacy/module/modules/addons/compilatron.lua index 9e06ae54..9799c2c0 100644 --- a/exp_legacy/module/modules/addons/compilatron.lua +++ b/exp_legacy/module/modules/addons/compilatron.lua @@ -44,7 +44,7 @@ local speech_bubble_async = local function circle_messages() for name, ent in pairs(Public.compilatrons) do if not ent.valid then - Public.spawn_compilatron(game.players[1].surface, name) + Public.spawn_compilatron(game.players[1].surface or game.surfaces[1], name) end local current_message = Public.current_messages[name] local msg_number @@ -93,8 +93,8 @@ end -- @tparam LuaSurface surface the surface to spawn the compilatron on -- @tparam string location the location tag that is in the config file function Public.spawn_compilatron(surface, location) - local position = locations[location] or { x = 0, y = 0 } - local pos = surface.find_non_colliding_position("behemoth-biter", position, 1.5, 0.5) + local position = locations[location] + local pos = surface.find_non_colliding_position("behemoth-biter", position, 1.5, 0.5) or { x = 0, y = 0 } local compi = surface.create_entity{ name = "behemoth-biter", position = pos, force = game.forces.neutral } Public.add_compilatron(compi, location) end From 723f535ab62ae69ce650001efd4a62ff11545bd0 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Tue, 7 Jan 2025 22:55:27 +0900 Subject: [PATCH 049/176] . --- exp_legacy/module/config/deconlog.lua | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/exp_legacy/module/config/deconlog.lua b/exp_legacy/module/config/deconlog.lua index 19bcc54a..c55dba24 100644 --- a/exp_legacy/module/config/deconlog.lua +++ b/exp_legacy/module/config/deconlog.lua @@ -5,5 +5,7 @@ return { decon_area = true, --- @setting decon_area whether to log when an area is being deconstructed built_entity = true, --- @setting built_entity whether to log when an entity is built mined_entity = true, --- @setting mined_entity whether to log when an entity is mined - fired_rocket = true, --- @setting fired_nuke whether to log when any rocket is fired + fired_rocket = true, --- @setting fired_nuke whether to log when a rocket is fired + fired_explosive_rocket = true, --- @setting fired_nuke whether to log when a explosive rocket is fired + fired_nuke = true, --- @setting fired_nuke whether to log when a nuke is fired } From a03df603025b21f450cbb788e8b47e221015a102 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Tue, 7 Jan 2025 22:59:50 +0900 Subject: [PATCH 050/176] . --- exp_legacy/module/modules/addons/deconlog.lua | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/exp_legacy/module/modules/addons/deconlog.lua b/exp_legacy/module/modules/addons/deconlog.lua index 9ffc67d4..202e7241 100644 --- a/exp_legacy/module/modules/addons/deconlog.lua +++ b/exp_legacy/module/modules/addons/deconlog.lua @@ -93,7 +93,7 @@ if config.mined_entity then end) end -if config.fired_rocket then +if config.fired_rocket or config.fired_explosive_rocket or config.fired_nuke then Event.add(defines.events.on_player_ammo_inventory_changed, function(e) local player = game.players[e.player_index] if Roles.player_has_flag(player, "deconlog-bypass") then @@ -102,20 +102,20 @@ if config.fired_rocket then local ammo_inv = player.get_inventory(defines.inventory.character_ammo) --- @cast ammo_inv -nil if player.character then local item = ammo_inv[player.character.selected_gun_index] - local item_name = "" + local action_name if not item or not item.valid or not item.valid_for_read then return end - if item.name == "rocket" then - item_name = "shot-rocket" - elseif item.name == "explosive-rocket" then - item_name = "shot-explosive-rocket" - elseif item.name == "atomic-bomb" then - item_name = "shot-nuke" - end - if item.name == "rocket" then - add_log(get_secs() .. "," .. player.name .. "," .. item_name .. "," .. pos_to_string(player.physical_position) .. "," .. pos_to_string(player.shooting_state.position)) + if config.fired_rocket and item.name == "rocket" then + action_name = ",shot-rocket," + elseif config.fired_explosive_rocket and item.name == "explosive-rocket" then + action_name = ",shot-explosive-rocket," + elseif config.fired_nuke and item.name == "atomic-bomb" then + action_name = ",shot-nuke," + else + return end + add_log(get_secs() .. "," .. player.name .. action_name .. pos_to_string(player.physical_position) .. "," .. pos_to_string(player.shooting_state.position)) end end) end From ce146be9869cb10665811f4716bae758357634a2 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Tue, 7 Jan 2025 23:01:21 +0900 Subject: [PATCH 051/176] . --- exp_legacy/module/modules/addons/compilatron.lua | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/exp_legacy/module/modules/addons/compilatron.lua b/exp_legacy/module/modules/addons/compilatron.lua index 9799c2c0..c72020fa 100644 --- a/exp_legacy/module/modules/addons/compilatron.lua +++ b/exp_legacy/module/modules/addons/compilatron.lua @@ -94,9 +94,11 @@ end -- @tparam string location the location tag that is in the config file function Public.spawn_compilatron(surface, location) local position = locations[location] - local pos = surface.find_non_colliding_position("behemoth-biter", position, 1.5, 0.5) or { x = 0, y = 0 } - local compi = surface.create_entity{ name = "behemoth-biter", position = pos, force = game.forces.neutral } - Public.add_compilatron(compi, location) + local pos = surface.find_non_colliding_position("behemoth-biter", position, 1.5, 0.5) + if pos then + local compi = surface.create_entity{ name = "behemoth-biter", position = pos, force = game.forces.neutral } + Public.add_compilatron(compi, location) + end end -- When the first player is created this will create all compilatrons that are resisted in the config From a6da3a74c2625ddb32606925c153ee7615f56903 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Wed, 8 Jan 2025 22:22:21 +0900 Subject: [PATCH 052/176] . --- exp_legacy/module/modules/addons/death-logger.lua | 2 +- exp_util/module/module_exports.lua | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/exp_legacy/module/modules/addons/death-logger.lua b/exp_legacy/module/modules/addons/death-logger.lua index a1b9531a..b735f8b8 100644 --- a/exp_legacy/module/modules/addons/death-logger.lua +++ b/exp_legacy/module/modules/addons/death-logger.lua @@ -155,7 +155,7 @@ if config.auto_collect_bodies then ExpUtil.transfer_inventory_to_surface{ inventory = inventory, surface = corpse.surface, - name = "iron-chest", + name = "steel-chest", allow_creation = true, } end) diff --git a/exp_util/module/module_exports.lua b/exp_util/module/module_exports.lua index a98b1e71..dc49b0e4 100644 --- a/exp_util/module/module_exports.lua +++ b/exp_util/module/module_exports.lua @@ -420,7 +420,7 @@ function ExpUtil.get_storage_for_stack(options) local current, count, entities = cache.current, cache.count, cache.entities for i = 1, cache.count do local entity = entities[((current + i - 1) % count) + 1] - if entity.can_insert(item) then + if entity and entity.can_insert(item) then cache.current = current + 1 return entity end From b3c19b8010d6d8a1a5dc699d329abb25438e9db3 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Wed, 8 Jan 2025 23:27:14 +0900 Subject: [PATCH 053/176] . --- exp_legacy/module/modules/addons/deconlog.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/exp_legacy/module/modules/addons/deconlog.lua b/exp_legacy/module/modules/addons/deconlog.lua index 202e7241..10442420 100644 --- a/exp_legacy/module/modules/addons/deconlog.lua +++ b/exp_legacy/module/modules/addons/deconlog.lua @@ -99,8 +99,8 @@ if config.fired_rocket or config.fired_explosive_rocket or config.fired_nuke the if Roles.player_has_flag(player, "deconlog-bypass") then return end - local ammo_inv = player.get_inventory(defines.inventory.character_ammo) --- @cast ammo_inv -nil if player.character then + local ammo_inv = player.get_inventory(defines.inventory.character_ammo) --- @cast ammo_inv -nil local item = ammo_inv[player.character.selected_gun_index] local action_name if not item or not item.valid or not item.valid_for_read then From 7e7bf5708c03f29a057a449d3e11d5d9742f5703 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Wed, 8 Jan 2025 23:40:30 +0900 Subject: [PATCH 054/176] . --- exp_legacy/module/config/expcore/roles.lua | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/exp_legacy/module/config/expcore/roles.lua b/exp_legacy/module/config/expcore/roles.lua index 829163c1..58aad366 100644 --- a/exp_legacy/module/config/expcore/roles.lua +++ b/exp_legacy/module/config/expcore/roles.lua @@ -26,6 +26,7 @@ Roles.new_role("System", "SYS") :set_flag("is_spectator") :set_flag("report-immune") :set_flag("instant-respawn") + :set_flag("deconlog-bypass") :set_allow_all() Roles.new_role("Senior Administrator", "SAdmin") @@ -36,6 +37,7 @@ Roles.new_role("Senior Administrator", "SAdmin") :set_flag("is_spectator") :set_flag("report-immune") :set_flag("instant-respawn") + :set_flag("deconlog-bypass") :set_parent("Administrator") :set_allow_all() @@ -46,6 +48,7 @@ Roles.new_role("Administrator", "Admin") :set_flag("is_spectator") :set_flag("report-immune") :set_flag("instant-respawn") + :set_flag("deconlog-bypass") :set_parent("Senior Moderator") :allow{ "command/_rcon", @@ -62,6 +65,7 @@ Roles.new_role("Senior Moderator", "SMod") :set_flag("is_spectator") :set_flag("report-immune") :set_flag("instant-respawn") + :set_flag("deconlog-bypass") :set_parent("Moderator") :allow{ "gui/warp-list/bypass-proximity", @@ -76,6 +80,7 @@ Roles.new_role("Moderator", "Mod") :set_flag("is_spectator") :set_flag("report-immune") :set_flag("instant-respawn") + :set_flag("deconlog-bypass") :set_parent("Trainee Moderator") :allow{ } @@ -86,6 +91,7 @@ Roles.new_role("Trainee Moderator", "Trainee") :set_flag("is_admin") :set_flag("is_spectator") :set_flag("report-immune") + :set_flag("deconlog-bypass") :set_parent("Board Member") :allow{ "command/assign-role", @@ -132,6 +138,7 @@ Roles.new_role("Board Member", "Board") :set_flag("is_spectator") :set_flag("report-immune") :set_flag("instant-respawn") + :set_flag("deconlog-bypass") :set_parent("Supporter") :allow{ } @@ -140,6 +147,7 @@ Roles.new_role("Supporter", "Sup") :set_permission_group("Trusted") :set_custom_color{ r = 230, g = 99, b = 34 } :set_flag("is_spectator") + :set_flag("deconlog-bypass") :set_parent("Partner") :allow{ } @@ -148,6 +156,7 @@ Roles.new_role("Partner", "Part") :set_permission_group("Trusted") :set_custom_color{ r = 24, g = 172, b = 188 } :set_flag("is_spectator") + :set_flag("deconlog-bypass") :set_parent("Senior Member") :allow{ } @@ -156,6 +165,7 @@ Roles.new_role("Senior Member", "SMem") :set_permission_group("Trusted") :set_custom_color{ r = 24, g = 172, b = 188 } :set_flag("is_spectator") + :set_flag("deconlog-bypass") :set_parent("Member") :allow{ "command/set-join-message", @@ -195,6 +205,7 @@ local hours6, hours250 = 6 * 216000, 250 * 60 Roles.new_role("Veteran", "Vet") :set_permission_group("Trusted") :set_custom_color{ r = 140, g = 120, b = 200 } + :set_flag("deconlog-bypass") :set_parent("Regular") :allow{ "gui/surveillance", From 72c1d73a205d98c9ba991c5ada73fab3fdef7382 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Thu, 9 Jan 2025 00:09:22 +0900 Subject: [PATCH 055/176] . --- exp_legacy/module/modules/addons/deconlog.lua | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/exp_legacy/module/modules/addons/deconlog.lua b/exp_legacy/module/modules/addons/deconlog.lua index 10442420..4b2d3a34 100644 --- a/exp_legacy/module/modules/addons/deconlog.lua +++ b/exp_legacy/module/modules/addons/deconlog.lua @@ -24,8 +24,8 @@ local function pos_to_string(pos) return tostring(pos.x) .. "," .. tostring(pos.y) end -local function pos_to_gps_string(pos) - return "[gps=" .. string.format("%.1f", pos.x) .. "," .. string.format("%.1f", pos.y) .. "]" +local function pos_to_gps_string(pos, surface_name) + return "[gps=" .. string.format("%.1f", pos.x) .. "," .. string.format("%.1f", pos.y) .. "," .. surface_name "]" end --- Print a message to all players who match the value of admin @@ -59,9 +59,8 @@ if config.decon_area then print_to_players(true, { "deconlog.decon", player.name, - e.surface.localised_name, - pos_to_gps_string(e.area.left_top), - pos_to_gps_string(e.area.right_bottom), + pos_to_gps_string(e.area.left_top, e.surface.name), + pos_to_gps_string(e.area.right_bottom, e.surface.name), format_number(#items, false), }) end From 292870bf8cfa7854c2b54b61c2752a0bcabd02a2 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Thu, 9 Jan 2025 00:20:08 +0900 Subject: [PATCH 056/176] . --- exp_legacy/module/locale/en/addons.cfg | 2 +- exp_legacy/module/locale/zh-CN/addons.cfg | 2 +- exp_legacy/module/locale/zh-TW/addons.cfg | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/exp_legacy/module/locale/en/addons.cfg b/exp_legacy/module/locale/en/addons.cfg index 1a8152c5..ec45c6fa 100644 --- a/exp_legacy/module/locale/en/addons.cfg +++ b/exp_legacy/module/locale/en/addons.cfg @@ -92,4 +92,4 @@ add-l=[RES] __1__ at level __2__ has been researched add-n=[RES] __1__ has been researched [deconlog] -decon=__1__ tried to deconstruct on __2__ from __3__ to __4__ which has __5__ items. +decon=__1__ tried to deconstruct from __2__ to __3__ which has __4__ items. diff --git a/exp_legacy/module/locale/zh-CN/addons.cfg b/exp_legacy/module/locale/zh-CN/addons.cfg index 47c623ad..6d893451 100644 --- a/exp_legacy/module/locale/zh-CN/addons.cfg +++ b/exp_legacy/module/locale/zh-CN/addons.cfg @@ -92,4 +92,4 @@ add-l=[RES] __1__ at level __2__ has been researched add-n=[RES] __1__ has been researched [deconlog] -decon=__1__ 試圖拆除在 __2__ 上從 __3__ 到 __4__ ,有 __5__ 個物品。 +decon=__1__ 試圖拆除在 __2__ 到 __3__ ,有 __4__ 個物品。 diff --git a/exp_legacy/module/locale/zh-TW/addons.cfg b/exp_legacy/module/locale/zh-TW/addons.cfg index 47c623ad..6d893451 100644 --- a/exp_legacy/module/locale/zh-TW/addons.cfg +++ b/exp_legacy/module/locale/zh-TW/addons.cfg @@ -92,4 +92,4 @@ add-l=[RES] __1__ at level __2__ has been researched add-n=[RES] __1__ has been researched [deconlog] -decon=__1__ 試圖拆除在 __2__ 上從 __3__ 到 __4__ ,有 __5__ 個物品。 +decon=__1__ 試圖拆除在 __2__ 到 __3__ ,有 __4__ 個物品。 From b56b53c2689dee3202694fd80f217e4fbd4e8d1f Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Thu, 9 Jan 2025 03:10:11 +0900 Subject: [PATCH 057/176] . --- exp_util/module/module_exports.lua | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/exp_util/module/module_exports.lua b/exp_util/module/module_exports.lua index dc49b0e4..e66b8622 100644 --- a/exp_util/module/module_exports.lua +++ b/exp_util/module/module_exports.lua @@ -420,7 +420,29 @@ function ExpUtil.get_storage_for_stack(options) local current, count, entities = cache.current, cache.count, cache.entities for i = 1, cache.count do local entity = entities[((current + i - 1) % count) + 1] - if entity and entity.can_insert(item) then + --[[ + PR 349 https://github.com/explosivegaming/ExpCluster/pull/349 + + Error while running event level::on_character_corpse_expired (ID 103) + level/modules/exp_util/module_exports.lua:423: attempt to index local 'entity' (a nil value) + stack traceback: + level/modules/exp_util/module_exports.lua:423: in function 'get_storage_for_stack' + level/modules/exp_util/module_exports.lua:462: in function 'copy_items_to_surface' + level/modules/exp_util/module_exports.lua:495: in function 'transfer_inventory_to_surface' + ...vel__/modules/exp_legacy/modules/addons/death-logger.lua:155: in function 'handler' + level/modules/exp_legacy/utils/event.lua:22: in function 'handler' + core/lualib/event_handler.lua:47: in function + ]] + if entity == nil then + error("entity was nil, context:\n" .. ExpUtil.format_any({ + cache = cache, + i = i, + }, { + max_line_count = 0, + no_locale_strings = true + })) + end + if entity.can_insert(item) then cache.current = current + 1 return entity end From 64910c28216d828926ac75acbaa3c85e99e5514b Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Thu, 9 Jan 2025 03:11:32 +0900 Subject: [PATCH 058/176] . --- exp_legacy/module/modules/addons/deconlog.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/exp_legacy/module/modules/addons/deconlog.lua b/exp_legacy/module/modules/addons/deconlog.lua index 4b2d3a34..f5d9bad0 100644 --- a/exp_legacy/module/modules/addons/deconlog.lua +++ b/exp_legacy/module/modules/addons/deconlog.lua @@ -25,7 +25,7 @@ local function pos_to_string(pos) end local function pos_to_gps_string(pos, surface_name) - return "[gps=" .. string.format("%.1f", pos.x) .. "," .. string.format("%.1f", pos.y) .. "," .. surface_name "]" + return "[gps=" .. string.format("%.1f", pos.x) .. "," .. string.format("%.1f", pos.y) .. "," .. surface_name .. "]" end --- Print a message to all players who match the value of admin From a02975853d218cbb036ab9df8a45a3cf66ba6cf4 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Thu, 9 Jan 2025 03:26:12 +0900 Subject: [PATCH 059/176] . --- exp_legacy/module/config/compilatron.lua | 10 +++++----- exp_legacy/module/locale/en/addons.cfg | 20 ++++++++++---------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/exp_legacy/module/config/compilatron.lua b/exp_legacy/module/config/compilatron.lua index 933b5571..7ed21abf 100644 --- a/exp_legacy/module/config/compilatron.lua +++ b/exp_legacy/module/config/compilatron.lua @@ -8,16 +8,16 @@ return { }, messages = { --- @setting messages the messages that each one will say, must be same name as its location ["Spawn"] = { - { "info.website" }, + -- { "info.website" }, { "info.read-readme" }, - { "info.discord" }, + -- { "info.discord" }, { "info.softmod" }, { "info.redmew" }, { "info.custom-commands" }, - { "info.status" }, + -- { "info.status" }, { "info.lhd" }, - { "info.github" }, - { "info.patreon" }, + -- { "info.github" }, + -- { "info.patreon" }, }, }, } diff --git a/exp_legacy/module/locale/en/addons.cfg b/exp_legacy/module/locale/en/addons.cfg index ec45c6fa..53a63fb8 100644 --- a/exp_legacy/module/locale/en/addons.cfg +++ b/exp_legacy/module/locale/en/addons.cfg @@ -7,20 +7,20 @@ player-health=__1__ player-damage=__1__ [links] -discord=https://discord.explosivegaming.nl -website=https://www.explosivegaming.nl -status=https://status.explosivegaming.nl -github=https://github.com/explosivegaming/scenario -patreon=https://www.patreon.com/ExpGaming +discord= +website= +status= +github= +patreon= [info] players-online=There are __1__ players online total-map-time=This map has been on for __1__ -discord=Join us on our discord at: https://discord.explosivegaming.nl -website=Please visit our website at: https://www.explosivegaming.nl -status=Want to check if out servers are down? Visit: https://status.explosivegaming.nl -github=Want to help improve our server with some extra features? Help us at: https://github.com/explosivegaming/scenario -patreon=Consider supporting our server at: https://www.patreon.com/ExpGaming +discord= +website= +status= +github= +patreon= custom-commands=We use custom commands, such as /tag and /me, use /chelp for more info. read-readme=Make sure you have read the information gui (It can be found through the info mark on the top left) softmod=We run a softmod on our servers. A softmod is a custom scenario that runs on this server, an example is the player list. From c168095249d2bcebeb80d7e3c5b4b4267b977f03 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Thu, 9 Jan 2025 03:37:46 +0900 Subject: [PATCH 060/176] . --- exp_legacy/module/config/compilatron.lua | 5 ++--- exp_legacy/module/locale/en/addons.cfg | 6 ++---- exp_legacy/module/locale/zh-CN/addons.cfg | 6 ++---- exp_legacy/module/locale/zh-TW/addons.cfg | 6 ++---- exp_legacy/module/modules/gui/readme.lua | 3 ++- 5 files changed, 10 insertions(+), 16 deletions(-) diff --git a/exp_legacy/module/config/compilatron.lua b/exp_legacy/module/config/compilatron.lua index 7ed21abf..af2360dd 100644 --- a/exp_legacy/module/config/compilatron.lua +++ b/exp_legacy/module/config/compilatron.lua @@ -12,11 +12,10 @@ return { { "info.read-readme" }, -- { "info.discord" }, { "info.softmod" }, - { "info.redmew" }, + -- { "info.redmew" }, { "info.custom-commands" }, - -- { "info.status" }, { "info.lhd" }, - -- { "info.github" }, + { "info.github" }, -- { "info.patreon" }, }, }, diff --git a/exp_legacy/module/locale/en/addons.cfg b/exp_legacy/module/locale/en/addons.cfg index 53a63fb8..e7a99783 100644 --- a/exp_legacy/module/locale/en/addons.cfg +++ b/exp_legacy/module/locale/en/addons.cfg @@ -9,8 +9,7 @@ player-damage=__1__ [links] discord= website= -status= -github= +github=https://github.com/PHIDIAS0303/ExpCluster patreon= [info] @@ -18,8 +17,7 @@ players-online=There are __1__ players online total-map-time=This map has been on for __1__ discord= website= -status= -github= +github=Want to help improve our server with some extra features? Help us at: https://github.com/PHIDIAS0303/ExpCluster patreon= custom-commands=We use custom commands, such as /tag and /me, use /chelp for more info. read-readme=Make sure you have read the information gui (It can be found through the info mark on the top left) diff --git a/exp_legacy/module/locale/zh-CN/addons.cfg b/exp_legacy/module/locale/zh-CN/addons.cfg index 6d893451..c2d4e1a9 100644 --- a/exp_legacy/module/locale/zh-CN/addons.cfg +++ b/exp_legacy/module/locale/zh-CN/addons.cfg @@ -9,8 +9,7 @@ player-damage=__1__ [links] discord= website= -status= -github= +github=https://github.com/PHIDIAS0303/ExpCluster patreon= [info] @@ -18,8 +17,7 @@ players-online=現在有 __1__ 人在線 total-map-time=地圖時間為 __1__ discord= website= -status= -github= +github=增加功能或回報錯誤: https://github.com/PHIDIAS0303/ExpCluster patreon= custom-commands=這裹使用了自制指令,如 /tag 和 /me。可使用 /chelp 查看更多。 read-readme=確保你已閱讀相關資訊。按左上 i 圖標可再次查看。 diff --git a/exp_legacy/module/locale/zh-TW/addons.cfg b/exp_legacy/module/locale/zh-TW/addons.cfg index 6d893451..c2d4e1a9 100644 --- a/exp_legacy/module/locale/zh-TW/addons.cfg +++ b/exp_legacy/module/locale/zh-TW/addons.cfg @@ -9,8 +9,7 @@ player-damage=__1__ [links] discord= website= -status= -github= +github=https://github.com/PHIDIAS0303/ExpCluster patreon= [info] @@ -18,8 +17,7 @@ players-online=現在有 __1__ 人在線 total-map-time=地圖時間為 __1__ discord= website= -status= -github= +github=增加功能或回報錯誤: https://github.com/PHIDIAS0303/ExpCluster patreon= custom-commands=這裹使用了自制指令,如 /tag 和 /me。可使用 /chelp 查看更多。 read-readme=確保你已閱讀相關資訊。按左上 i 圖標可再次查看。 diff --git a/exp_legacy/module/modules/gui/readme.lua b/exp_legacy/module/modules/gui/readme.lua index d144879f..f69a1698 100644 --- a/exp_legacy/module/modules/gui/readme.lua +++ b/exp_legacy/module/modules/gui/readme.lua @@ -236,7 +236,8 @@ define_tab({ "readme.servers-tab" }, { "readme.servers-tooltip" }, -- Add the external links local external_links = title_table(scroll_pane, 235, { "readme.servers-external" }, 2) - for _, key in ipairs{ "discord", "website", "patreon", "status", "github" } do + -- "discord", "website", "patreon", "github" + for _, key in ipairs{ "github" } do local upper_key = key:gsub("^%l", string.upper) Gui.centered_label(external_links, 110, upper_key) Gui.centered_label(external_links, 460, { "links." .. key }, { "readme.servers-open-in-browser" }) From 46bb73b927404f3ffa3228748d500e341b0236a3 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Thu, 9 Jan 2025 03:44:56 +0900 Subject: [PATCH 061/176] . --- exp_legacy/module/config/compilatron.lua | 6 ++---- exp_legacy/module/locale/en/addons.cfg | 12 +++++------- exp_legacy/module/locale/zh-CN/addons.cfg | 12 +++++------- exp_legacy/module/locale/zh-TW/addons.cfg | 12 +++++------- exp_legacy/module/modules/gui/readme.lua | 3 +-- 5 files changed, 18 insertions(+), 27 deletions(-) diff --git a/exp_legacy/module/config/compilatron.lua b/exp_legacy/module/config/compilatron.lua index af2360dd..d6500819 100644 --- a/exp_legacy/module/config/compilatron.lua +++ b/exp_legacy/module/config/compilatron.lua @@ -8,15 +8,13 @@ return { }, messages = { --- @setting messages the messages that each one will say, must be same name as its location ["Spawn"] = { - -- { "info.website" }, + { "info.website" }, { "info.read-readme" }, - -- { "info.discord" }, { "info.softmod" }, - -- { "info.redmew" }, { "info.custom-commands" }, { "info.lhd" }, { "info.github" }, - -- { "info.patreon" }, + { "info.graph" }, }, }, } diff --git a/exp_legacy/module/locale/en/addons.cfg b/exp_legacy/module/locale/en/addons.cfg index e7a99783..b92aace6 100644 --- a/exp_legacy/module/locale/en/addons.cfg +++ b/exp_legacy/module/locale/en/addons.cfg @@ -7,22 +7,20 @@ player-health=__1__ player-damage=__1__ [links] -discord= -website= +website=https://aperx.org +cloud=https://aperx.org +graph=https://graph.aperx.org/public-dashboards/1a0862cb7b544769b629a75c1b51b9f9 github=https://github.com/PHIDIAS0303/ExpCluster -patreon= [info] players-online=There are __1__ players online total-map-time=This map has been on for __1__ -discord= -website= +website=Please visit our website at: https://aperx.org +graph=Server data graph at: https://graph.aperx.org/public-dashboards/1a0862cb7b544769b629a75c1b51b9f9 github=Want to help improve our server with some extra features? Help us at: https://github.com/PHIDIAS0303/ExpCluster -patreon= custom-commands=We use custom commands, such as /tag and /me, use /chelp for more info. read-readme=Make sure you have read the information gui (It can be found through the info mark on the top left) softmod=We run a softmod on our servers. A softmod is a custom scenario that runs on this server, an example is the player list. -redmew=We don't talk about redmew here; they beat us to 1000 members ;-; lhd=All trains must be LHD! This is a long standing rule on our servers, please respect this. [warnings] diff --git a/exp_legacy/module/locale/zh-CN/addons.cfg b/exp_legacy/module/locale/zh-CN/addons.cfg index c2d4e1a9..30b8e659 100644 --- a/exp_legacy/module/locale/zh-CN/addons.cfg +++ b/exp_legacy/module/locale/zh-CN/addons.cfg @@ -7,22 +7,20 @@ player-health=__1__ player-damage=__1__ [links] -discord= -website= +website=https://aperx.org +cloud=https://aperx.org +graph=https://graph.aperx.org/public-dashboards/1a0862cb7b544769b629a75c1b51b9f9 github=https://github.com/PHIDIAS0303/ExpCluster -patreon= [info] players-online=現在有 __1__ 人在線 total-map-time=地圖時間為 __1__ -discord= -website= +website=訪問網站: https://aperx.org +graph=服務器資料圖表: https://graph.aperx.org/public-dashboards/1a0862cb7b544769b629a75c1b51b9f9 github=增加功能或回報錯誤: https://github.com/PHIDIAS0303/ExpCluster -patreon= custom-commands=這裹使用了自制指令,如 /tag 和 /me。可使用 /chelp 查看更多。 read-readme=確保你已閱讀相關資訊。按左上 i 圖標可再次查看。 softmod=這裹用了自設情境,是一種軟裝模組。 -redmew= lhd=列車必須是左則通行。這是本服務器長久以來的規則。 [warnings] diff --git a/exp_legacy/module/locale/zh-TW/addons.cfg b/exp_legacy/module/locale/zh-TW/addons.cfg index c2d4e1a9..30b8e659 100644 --- a/exp_legacy/module/locale/zh-TW/addons.cfg +++ b/exp_legacy/module/locale/zh-TW/addons.cfg @@ -7,22 +7,20 @@ player-health=__1__ player-damage=__1__ [links] -discord= -website= +website=https://aperx.org +cloud=https://aperx.org +graph=https://graph.aperx.org/public-dashboards/1a0862cb7b544769b629a75c1b51b9f9 github=https://github.com/PHIDIAS0303/ExpCluster -patreon= [info] players-online=現在有 __1__ 人在線 total-map-time=地圖時間為 __1__ -discord= -website= +website=訪問網站: https://aperx.org +graph=服務器資料圖表: https://graph.aperx.org/public-dashboards/1a0862cb7b544769b629a75c1b51b9f9 github=增加功能或回報錯誤: https://github.com/PHIDIAS0303/ExpCluster -patreon= custom-commands=這裹使用了自制指令,如 /tag 和 /me。可使用 /chelp 查看更多。 read-readme=確保你已閱讀相關資訊。按左上 i 圖標可再次查看。 softmod=這裹用了自設情境,是一種軟裝模組。 -redmew= lhd=列車必須是左則通行。這是本服務器長久以來的規則。 [warnings] diff --git a/exp_legacy/module/modules/gui/readme.lua b/exp_legacy/module/modules/gui/readme.lua index f69a1698..57dd2aac 100644 --- a/exp_legacy/module/modules/gui/readme.lua +++ b/exp_legacy/module/modules/gui/readme.lua @@ -236,8 +236,7 @@ define_tab({ "readme.servers-tab" }, { "readme.servers-tooltip" }, -- Add the external links local external_links = title_table(scroll_pane, 235, { "readme.servers-external" }, 2) - -- "discord", "website", "patreon", "github" - for _, key in ipairs{ "github" } do + for _, key in ipairs{ "website", "cloud", "graph", "github" } do local upper_key = key:gsub("^%l", string.upper) Gui.centered_label(external_links, 110, upper_key) Gui.centered_label(external_links, 460, { "links." .. key }, { "readme.servers-open-in-browser" }) From b9de395a44db2c2960f61e237989eca43179e520 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Thu, 9 Jan 2025 03:49:22 +0900 Subject: [PATCH 062/176] . --- exp_legacy/module/config/compilatron.lua | 5 +++-- exp_legacy/module/locale/en/addons.cfg | 3 ++- exp_legacy/module/locale/zh-CN/addons.cfg | 3 ++- exp_legacy/module/locale/zh-TW/addons.cfg | 3 ++- 4 files changed, 9 insertions(+), 5 deletions(-) diff --git a/exp_legacy/module/config/compilatron.lua b/exp_legacy/module/config/compilatron.lua index d6500819..16c634e1 100644 --- a/exp_legacy/module/config/compilatron.lua +++ b/exp_legacy/module/config/compilatron.lua @@ -9,12 +9,13 @@ return { messages = { --- @setting messages the messages that each one will say, must be same name as its location ["Spawn"] = { { "info.website" }, + { "info.cloud" }, + { "info.github" }, + { "info.graph" }, { "info.read-readme" }, { "info.softmod" }, { "info.custom-commands" }, { "info.lhd" }, - { "info.github" }, - { "info.graph" }, }, }, } diff --git a/exp_legacy/module/locale/en/addons.cfg b/exp_legacy/module/locale/en/addons.cfg index b92aace6..55536dae 100644 --- a/exp_legacy/module/locale/en/addons.cfg +++ b/exp_legacy/module/locale/en/addons.cfg @@ -8,7 +8,7 @@ player-damage=__1__ [links] website=https://aperx.org -cloud=https://aperx.org +cloud=https://cloud.aperx.org/s/sTbiePpmGs7bRxB graph=https://graph.aperx.org/public-dashboards/1a0862cb7b544769b629a75c1b51b9f9 github=https://github.com/PHIDIAS0303/ExpCluster @@ -16,6 +16,7 @@ github=https://github.com/PHIDIAS0303/ExpCluster players-online=There are __1__ players online total-map-time=This map has been on for __1__ website=Please visit our website at: https://aperx.org +cloud=Server save files: https://cloud.aperx.org/s/sTbiePpmGs7bRxB graph=Server data graph at: https://graph.aperx.org/public-dashboards/1a0862cb7b544769b629a75c1b51b9f9 github=Want to help improve our server with some extra features? Help us at: https://github.com/PHIDIAS0303/ExpCluster custom-commands=We use custom commands, such as /tag and /me, use /chelp for more info. diff --git a/exp_legacy/module/locale/zh-CN/addons.cfg b/exp_legacy/module/locale/zh-CN/addons.cfg index 30b8e659..3fd1dcae 100644 --- a/exp_legacy/module/locale/zh-CN/addons.cfg +++ b/exp_legacy/module/locale/zh-CN/addons.cfg @@ -8,7 +8,7 @@ player-damage=__1__ [links] website=https://aperx.org -cloud=https://aperx.org +cloud=https://cloud.aperx.org/s/sTbiePpmGs7bRxB graph=https://graph.aperx.org/public-dashboards/1a0862cb7b544769b629a75c1b51b9f9 github=https://github.com/PHIDIAS0303/ExpCluster @@ -16,6 +16,7 @@ github=https://github.com/PHIDIAS0303/ExpCluster players-online=現在有 __1__ 人在線 total-map-time=地圖時間為 __1__ website=訪問網站: https://aperx.org +cloud=服務器存檔: https://cloud.aperx.org/s/sTbiePpmGs7bRxB graph=服務器資料圖表: https://graph.aperx.org/public-dashboards/1a0862cb7b544769b629a75c1b51b9f9 github=增加功能或回報錯誤: https://github.com/PHIDIAS0303/ExpCluster custom-commands=這裹使用了自制指令,如 /tag 和 /me。可使用 /chelp 查看更多。 diff --git a/exp_legacy/module/locale/zh-TW/addons.cfg b/exp_legacy/module/locale/zh-TW/addons.cfg index 30b8e659..3fd1dcae 100644 --- a/exp_legacy/module/locale/zh-TW/addons.cfg +++ b/exp_legacy/module/locale/zh-TW/addons.cfg @@ -8,7 +8,7 @@ player-damage=__1__ [links] website=https://aperx.org -cloud=https://aperx.org +cloud=https://cloud.aperx.org/s/sTbiePpmGs7bRxB graph=https://graph.aperx.org/public-dashboards/1a0862cb7b544769b629a75c1b51b9f9 github=https://github.com/PHIDIAS0303/ExpCluster @@ -16,6 +16,7 @@ github=https://github.com/PHIDIAS0303/ExpCluster players-online=現在有 __1__ 人在線 total-map-time=地圖時間為 __1__ website=訪問網站: https://aperx.org +cloud=服務器存檔: https://cloud.aperx.org/s/sTbiePpmGs7bRxB graph=服務器資料圖表: https://graph.aperx.org/public-dashboards/1a0862cb7b544769b629a75c1b51b9f9 github=增加功能或回報錯誤: https://github.com/PHIDIAS0303/ExpCluster custom-commands=這裹使用了自制指令,如 /tag 和 /me。可使用 /chelp 查看更多。 From f0b066cdfe0be783183fe4bebde63fb86125954c Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Thu, 9 Jan 2025 14:07:40 +0900 Subject: [PATCH 063/176] . --- exp_util/module/module_exports.lua | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) diff --git a/exp_util/module/module_exports.lua b/exp_util/module/module_exports.lua index e66b8622..01c14397 100644 --- a/exp_util/module/module_exports.lua +++ b/exp_util/module/module_exports.lua @@ -420,20 +420,8 @@ function ExpUtil.get_storage_for_stack(options) local current, count, entities = cache.current, cache.count, cache.entities for i = 1, cache.count do local entity = entities[((current + i - 1) % count) + 1] - --[[ - PR 349 https://github.com/explosivegaming/ExpCluster/pull/349 - - Error while running event level::on_character_corpse_expired (ID 103) - level/modules/exp_util/module_exports.lua:423: attempt to index local 'entity' (a nil value) - stack traceback: - level/modules/exp_util/module_exports.lua:423: in function 'get_storage_for_stack' - level/modules/exp_util/module_exports.lua:462: in function 'copy_items_to_surface' - level/modules/exp_util/module_exports.lua:495: in function 'transfer_inventory_to_surface' - ...vel__/modules/exp_legacy/modules/addons/death-logger.lua:155: in function 'handler' - level/modules/exp_legacy/utils/event.lua:22: in function 'handler' - core/lualib/event_handler.lua:47: in function - ]] if entity == nil then + -- See Github Issue #352 error("entity was nil, context:\n" .. ExpUtil.format_any({ cache = cache, i = i, From f1868e883cc1913674ace6a8666e0b5a9979b780 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Thu, 9 Jan 2025 14:42:32 +0900 Subject: [PATCH 064/176] . --- exp_legacy/module/config/compilatron.lua | 2 -- exp_legacy/module/locale/en/addons.cfg | 6 ++---- exp_legacy/module/locale/zh-CN/addons.cfg | 6 ++---- exp_legacy/module/locale/zh-TW/addons.cfg | 6 ++---- exp_legacy/module/modules/gui/readme.lua | 2 +- 5 files changed, 7 insertions(+), 15 deletions(-) diff --git a/exp_legacy/module/config/compilatron.lua b/exp_legacy/module/config/compilatron.lua index 16c634e1..75e857cc 100644 --- a/exp_legacy/module/config/compilatron.lua +++ b/exp_legacy/module/config/compilatron.lua @@ -9,9 +9,7 @@ return { messages = { --- @setting messages the messages that each one will say, must be same name as its location ["Spawn"] = { { "info.website" }, - { "info.cloud" }, { "info.github" }, - { "info.graph" }, { "info.read-readme" }, { "info.softmod" }, { "info.custom-commands" }, diff --git a/exp_legacy/module/locale/en/addons.cfg b/exp_legacy/module/locale/en/addons.cfg index 55536dae..de90722d 100644 --- a/exp_legacy/module/locale/en/addons.cfg +++ b/exp_legacy/module/locale/en/addons.cfg @@ -8,17 +8,15 @@ player-damage=__1__ [links] website=https://aperx.org -cloud=https://cloud.aperx.org/s/sTbiePpmGs7bRxB -graph=https://graph.aperx.org/public-dashboards/1a0862cb7b544769b629a75c1b51b9f9 github=https://github.com/PHIDIAS0303/ExpCluster +discord= [info] players-online=There are __1__ players online total-map-time=This map has been on for __1__ website=Please visit our website at: https://aperx.org -cloud=Server save files: https://cloud.aperx.org/s/sTbiePpmGs7bRxB -graph=Server data graph at: https://graph.aperx.org/public-dashboards/1a0862cb7b544769b629a75c1b51b9f9 github=Want to help improve our server with some extra features? Help us at: https://github.com/PHIDIAS0303/ExpCluster +discord= custom-commands=We use custom commands, such as /tag and /me, use /chelp for more info. read-readme=Make sure you have read the information gui (It can be found through the info mark on the top left) softmod=We run a softmod on our servers. A softmod is a custom scenario that runs on this server, an example is the player list. diff --git a/exp_legacy/module/locale/zh-CN/addons.cfg b/exp_legacy/module/locale/zh-CN/addons.cfg index 3fd1dcae..10a3b5cb 100644 --- a/exp_legacy/module/locale/zh-CN/addons.cfg +++ b/exp_legacy/module/locale/zh-CN/addons.cfg @@ -8,17 +8,15 @@ player-damage=__1__ [links] website=https://aperx.org -cloud=https://cloud.aperx.org/s/sTbiePpmGs7bRxB -graph=https://graph.aperx.org/public-dashboards/1a0862cb7b544769b629a75c1b51b9f9 github=https://github.com/PHIDIAS0303/ExpCluster +discord= [info] players-online=現在有 __1__ 人在線 total-map-time=地圖時間為 __1__ website=訪問網站: https://aperx.org -cloud=服務器存檔: https://cloud.aperx.org/s/sTbiePpmGs7bRxB -graph=服務器資料圖表: https://graph.aperx.org/public-dashboards/1a0862cb7b544769b629a75c1b51b9f9 github=增加功能或回報錯誤: https://github.com/PHIDIAS0303/ExpCluster +discord= custom-commands=這裹使用了自制指令,如 /tag 和 /me。可使用 /chelp 查看更多。 read-readme=確保你已閱讀相關資訊。按左上 i 圖標可再次查看。 softmod=這裹用了自設情境,是一種軟裝模組。 diff --git a/exp_legacy/module/locale/zh-TW/addons.cfg b/exp_legacy/module/locale/zh-TW/addons.cfg index 3fd1dcae..10a3b5cb 100644 --- a/exp_legacy/module/locale/zh-TW/addons.cfg +++ b/exp_legacy/module/locale/zh-TW/addons.cfg @@ -8,17 +8,15 @@ player-damage=__1__ [links] website=https://aperx.org -cloud=https://cloud.aperx.org/s/sTbiePpmGs7bRxB -graph=https://graph.aperx.org/public-dashboards/1a0862cb7b544769b629a75c1b51b9f9 github=https://github.com/PHIDIAS0303/ExpCluster +discord= [info] players-online=現在有 __1__ 人在線 total-map-time=地圖時間為 __1__ website=訪問網站: https://aperx.org -cloud=服務器存檔: https://cloud.aperx.org/s/sTbiePpmGs7bRxB -graph=服務器資料圖表: https://graph.aperx.org/public-dashboards/1a0862cb7b544769b629a75c1b51b9f9 github=增加功能或回報錯誤: https://github.com/PHIDIAS0303/ExpCluster +discord= custom-commands=這裹使用了自制指令,如 /tag 和 /me。可使用 /chelp 查看更多。 read-readme=確保你已閱讀相關資訊。按左上 i 圖標可再次查看。 softmod=這裹用了自設情境,是一種軟裝模組。 diff --git a/exp_legacy/module/modules/gui/readme.lua b/exp_legacy/module/modules/gui/readme.lua index 57dd2aac..e77fb45f 100644 --- a/exp_legacy/module/modules/gui/readme.lua +++ b/exp_legacy/module/modules/gui/readme.lua @@ -236,7 +236,7 @@ define_tab({ "readme.servers-tab" }, { "readme.servers-tooltip" }, -- Add the external links local external_links = title_table(scroll_pane, 235, { "readme.servers-external" }, 2) - for _, key in ipairs{ "website", "cloud", "graph", "github" } do + for _, key in ipairs{ "website", "github" } do local upper_key = key:gsub("^%l", string.upper) Gui.centered_label(external_links, 110, upper_key) Gui.centered_label(external_links, 460, { "links." .. key }, { "readme.servers-open-in-browser" }) From 0a61893f68d12426d77d91743d534da81f8e5f37 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Thu, 9 Jan 2025 19:46:21 +0900 Subject: [PATCH 065/176] . --- exp_legacy/module/locale/en/gui.cfg | 15 +++++--------- exp_legacy/module/locale/zh-CN/gui.cfg | 25 ++++++++++-------------- exp_legacy/module/locale/zh-TW/gui.cfg | 25 ++++++++++-------------- exp_legacy/module/modules/gui/readme.lua | 10 +++++----- 4 files changed, 30 insertions(+), 45 deletions(-) diff --git a/exp_legacy/module/locale/en/gui.cfg b/exp_legacy/module/locale/en/gui.cfg index 30f4cfc3..0e9058bf 100644 --- a/exp_legacy/module/locale/en/gui.cfg +++ b/exp_legacy/module/locale/en/gui.cfg @@ -163,21 +163,17 @@ servers-tooltip=Links to our other servers and sites servers-general=This is only one of our servers for factorio, we host many of others as well. Below you can find details about all the servers that we host as well as links to our external services such as discord or github. servers-factorio=Factorio Servers servers-1=S1 -servers-d1=This server resets weekly. +servers-d1=This server resets regularly. servers-2=S2 -servers-d2=This server resets weekly. +servers-d2=This server resets regularly. servers-3=S3 -servers-d3=This server resets weekly. -servers-4= -servers-d4= +servers-d3=This server resets regularly. servers-5=S5 servers-d5=This server is only for members. Check discord for more details. servers-6=S6 servers-d6=This server is only for members. Check discord for more details. -servers-7= -servers-d7= servers-8=S8 -servers-d8= +servers-d8=This server is only for event and others. Check discord for more details. servers-connect-Offline=Server is currently offline servers-connect-Current=This is your current server servers-connect-Version=Server is on a different version: __1__ @@ -190,9 +186,8 @@ backers-tab=Backers backers-tooltip=People who have helped make our server backers-general=We would like to thank all our staff and backers who have helped our community grow. Our staff have helped to keep our servers safe from trolls and a fun place to play. Our backers have helped us to cover our running costs and provide a great community for us all to enjoy together. backers-management=Administrators -backers-board=Board Members and Senior Backers backers-staff=Staff Members -backers-backers=Sponsors and Supporters +backers-backers=Board Members, Supporters, and Partners backers-active=Active Players data-tab=Data data-tooltip=All of your stored player data diff --git a/exp_legacy/module/locale/zh-CN/gui.cfg b/exp_legacy/module/locale/zh-CN/gui.cfg index 1acf3709..657363f1 100644 --- a/exp_legacy/module/locale/zh-CN/gui.cfg +++ b/exp_legacy/module/locale/zh-CN/gui.cfg @@ -163,21 +163,17 @@ servers-tooltip=到其他伺服器及網站的連結 servers-general=這是其中一個伺服器。你可以在下方找到其他同樣是由我們運行的伺服器資料。 servers-factorio=異星工廠伺服器 servers-1=S1 -servers-d1=這個服務器每兩週重設。 +servers-d1=這個服務器定期重設。 servers-2=S2 -servers-d2=這個服務器每兩週重設。 +servers-d2=這個服務器定期重設。 servers-3=S3 -servers-d3=這個服務器每兩週重設。 -servers-4= -servers-d4= -servers-5=S5 會員 -servers-d5=這個服務器為會員運行,可在 Discord 中得到更多資訊。 -servers-6=S6 藍圖 -servers-d6=這個服務器為會員運行,可在 Discord 中得到更多資訊。 -servers-7= -servers-d7= +servers-d3=這個服務器定期重設。 +servers-5=S5 +servers-d5=這個服務器只為會員運行,可在 Discord 中得到更多資訊。 +servers-6=S6 +servers-d6=這個服務器只為會員運行,可在 Discord 中得到更多資訊。 servers-8=S8 -servers-d8= +servers-d8=這個服務器只在活動和其他時運行,可在 Discord 中得到更多資訊。 servers-connect-Offline=該服務器目前沒有在運行 servers-connect-Current=你目前所在的伺服器 servers-connect-Version=該服務器運行不同的遊戲版本: __1__ @@ -189,10 +185,9 @@ servers-open-in-browser=可在你的瀏覽器中打開 backers-tab=支持者 backers-tooltip=支持者 backers-general=他們為服務器運行提供了不少幫助。 -backers-management=系統管理員 -backers-board=議員 +backers-management=管理員 backers-staff=職員 -backers-backers=支持者 +backers-backers=議員,支持者,和夥伴 backers-active=活躍玩家 data-tab=資料 data-tooltip=所有已存資料 diff --git a/exp_legacy/module/locale/zh-TW/gui.cfg b/exp_legacy/module/locale/zh-TW/gui.cfg index 1acf3709..657363f1 100644 --- a/exp_legacy/module/locale/zh-TW/gui.cfg +++ b/exp_legacy/module/locale/zh-TW/gui.cfg @@ -163,21 +163,17 @@ servers-tooltip=到其他伺服器及網站的連結 servers-general=這是其中一個伺服器。你可以在下方找到其他同樣是由我們運行的伺服器資料。 servers-factorio=異星工廠伺服器 servers-1=S1 -servers-d1=這個服務器每兩週重設。 +servers-d1=這個服務器定期重設。 servers-2=S2 -servers-d2=這個服務器每兩週重設。 +servers-d2=這個服務器定期重設。 servers-3=S3 -servers-d3=這個服務器每兩週重設。 -servers-4= -servers-d4= -servers-5=S5 會員 -servers-d5=這個服務器為會員運行,可在 Discord 中得到更多資訊。 -servers-6=S6 藍圖 -servers-d6=這個服務器為會員運行,可在 Discord 中得到更多資訊。 -servers-7= -servers-d7= +servers-d3=這個服務器定期重設。 +servers-5=S5 +servers-d5=這個服務器只為會員運行,可在 Discord 中得到更多資訊。 +servers-6=S6 +servers-d6=這個服務器只為會員運行,可在 Discord 中得到更多資訊。 servers-8=S8 -servers-d8= +servers-d8=這個服務器只在活動和其他時運行,可在 Discord 中得到更多資訊。 servers-connect-Offline=該服務器目前沒有在運行 servers-connect-Current=你目前所在的伺服器 servers-connect-Version=該服務器運行不同的遊戲版本: __1__ @@ -189,10 +185,9 @@ servers-open-in-browser=可在你的瀏覽器中打開 backers-tab=支持者 backers-tooltip=支持者 backers-general=他們為服務器運行提供了不少幫助。 -backers-management=系統管理員 -backers-board=議員 +backers-management=管理員 backers-staff=職員 -backers-backers=支持者 +backers-backers=議員,支持者,和夥伴 backers-active=活躍玩家 data-tab=資料 data-tooltip=所有已存資料 diff --git a/exp_legacy/module/modules/gui/readme.lua b/exp_legacy/module/modules/gui/readme.lua index e77fb45f..c5a266ee 100644 --- a/exp_legacy/module/modules/gui/readme.lua +++ b/exp_legacy/module/modules/gui/readme.lua @@ -228,7 +228,7 @@ define_tab({ "readme.servers-tab" }, { "readme.servers-tooltip" }, end else local factorio_servers = title_table(scroll_pane, 225, { "readme.servers-factorio" }, 2) - for i = 1, 8 do + for _, i in pairs{ 1, 2, 3, 5, 6, 8 } do Gui.centered_label(factorio_servers, 110, { "readme.servers-" .. i }) Gui.centered_label(factorio_servers, 460, { "readme.servers-d" .. i }) end @@ -261,10 +261,10 @@ define_tab({ "readme.backers-tab" }, { "readme.backers-tooltip" }, local done = {} local groups = { { _roles = { "Senior Administrator", "Administrator" }, _title = { "readme.backers-management" }, _width = 230 }, - { _roles = { "Board Member", "Senior Backer" }, _title = { "readme.backers-board" }, _width = 145 }, -- change role to board - { _roles = { "Sponsor", "Supporter" }, _title = { "readme.backers-backers" }, _width = 196 }, -- change to backer - { _roles = { "Moderator", "Trainee" }, _title = { "readme.backers-staff" }, _width = 235 }, - { _roles = {}, _time = 3 * 3600 * 60, _title = { "readme.backers-active" }, _width = 235 }, + { _roles = { "Senior Moderator", "Moderator", "Trainee Moderator" }, _title = { "readme.backers-staff" }, _width = 230 }, + { _roles = { "Board Member", "Supporter", "Partner" }, _title = { "readme.backers-backers" }, _width = 230 }, -- change role to board + { _roles = { "Veteran" }, _title = { "readme.backers-active" }, _width = 230 }, + -- _time = 3 * 3600 * 60 } -- Fill by player roles From dee2600eecc81e9e7557c6af2272563b9622e725 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Thu, 9 Jan 2025 20:27:47 +0900 Subject: [PATCH 066/176] . --- exp_legacy/module/modules/control/vlayer.lua | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/exp_legacy/module/modules/control/vlayer.lua b/exp_legacy/module/modules/control/vlayer.lua index 356967ad..c9679566 100644 --- a/exp_legacy/module/modules/control/vlayer.lua +++ b/exp_legacy/module/modules/control/vlayer.lua @@ -558,18 +558,17 @@ local function handle_circuit_interfaces() vlayer_data.entity_interfaces.circuit[index] = nil else local circuit_oc = interface.get_or_create_control_behavior() - local max_signals = circuit_oc.signals_count local signal_index = 1 local circuit = vlayer.get_circuits() -- Set the virtual signals based on the vlayer stats for stat_name, signal_name in pairs(circuit) do if stat_name:find("energy") then - circuit_oc.set_signal(signal_index, { signal = { type = "virtual", name = signal_name }, count = math.floor(stats[stat_name] / mega) }) + circuit_oc.set_slot(signal_index, { signal = { type = "virtual", name = signal_name }, count = math.floor(stats[stat_name] / mega) }) elseif stat_name == "production_multiplier" then - circuit_oc.set_signal(signal_index, { signal = { type = "virtual", name = signal_name }, count = math.floor(stats[stat_name] * 10000) }) + circuit_oc.set_slot(signal_index, { signal = { type = "virtual", name = signal_name }, count = math.floor(stats[stat_name] * 10000) }) else - circuit_oc.set_signal(signal_index, { signal = { type = "virtual", name = signal_name }, count = math.floor(stats[stat_name]) }) + circuit_oc.set_slot(signal_index, { signal = { type = "virtual", name = signal_name }, count = math.floor(stats[stat_name]) }) end signal_index = signal_index + 1 @@ -578,21 +577,18 @@ local function handle_circuit_interfaces() -- Set the item signals based on stored items for item_name, count in pairs(vlayer_data.storage.items) do if prototypes.item[item_name] and count > 0 then - circuit_oc.set_signal(signal_index, { signal = { type = "item", name = item_name }, count = count }) + circuit_oc.set_slot(signal_index, { signal = { type = "item", name = item_name }, count = count }) signal_index = signal_index + 1 - if signal_index > max_signals then - return -- No more signals can be added - end end end -- Clear remaining signals to prevent outdated values being present (caused by count > 0 check) - for clear_index = signal_index, max_signals do - if not circuit_oc.get_signal(clear_index).signal then + for clear_index = signal_index, #circuit do + if not circuit_oc.get_slot(clear_index).signal then break -- There are no more signals to clear end - circuit_oc.set_signal(clear_index, nil) + circuit_oc.clear_slot(clear_index) end end end From 6d449363642a5581288317bee7b985314d96e6a7 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Thu, 9 Jan 2025 20:32:26 +0900 Subject: [PATCH 067/176] . --- exp_legacy/module/modules/control/vlayer.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/exp_legacy/module/modules/control/vlayer.lua b/exp_legacy/module/modules/control/vlayer.lua index c9679566..6afaf8a7 100644 --- a/exp_legacy/module/modules/control/vlayer.lua +++ b/exp_legacy/module/modules/control/vlayer.lua @@ -557,7 +557,7 @@ local function handle_circuit_interfaces() if not interface.valid then vlayer_data.entity_interfaces.circuit[index] = nil else - local circuit_oc = interface.get_or_create_control_behavior() + local circuit_oc = interface.get_or_create_control_behavior().sections[1] local signal_index = 1 local circuit = vlayer.get_circuits() From 64ca88a1984ed602344941e6674d9279acd0238f Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Thu, 9 Jan 2025 21:58:32 +0900 Subject: [PATCH 068/176] . --- exp_legacy/module/modules/control/vlayer.lua | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/exp_legacy/module/modules/control/vlayer.lua b/exp_legacy/module/modules/control/vlayer.lua index 6afaf8a7..ebd833f0 100644 --- a/exp_legacy/module/modules/control/vlayer.lua +++ b/exp_legacy/module/modules/control/vlayer.lua @@ -132,17 +132,17 @@ function vlayer.get_interfaces() end --[[ - 25,000 / 416 s + 25,200 / 420 s 昼 208秒 ソーラー効率100% 夕方 83秒 1秒ごとにソーラー発電量が約1.2%ずつ下がり、やがて0%になる 夜 41秒 ソーラー発電量が0%になる 朝方 83秒 1秒ごとにソーラー発電量が約1.2%ずつ上がり、やがて100%になる - (surface.dawn) 0.75 18,750 Day 12,500 208s + (surface.dawn) 0.75 18,900 Day 12,600 210s 0.00 0 Noon - (surface.dusk) 0.25 6,250 Sunset 5,000 83s - (surface.evening) 0.45 11,250 Night 2,500 41s - (surface.morning) 0.55 13,750 Sunrise 5,000 83s + (surface.dusk) 0.25 6,300 Sunset 5,040 84s + (surface.evening) 0.45 11,340 Night 2,520 42s + (surface.morning) 0.55 13,860 Sunrise 5,040 84s ]] --- Get the power multiplier based on the surface time From f0172f62703fe97d164a01956830a73c41ea867c Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Thu, 9 Jan 2025 22:00:17 +0900 Subject: [PATCH 069/176] . --- exp_legacy/module/modules/control/vlayer.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/exp_legacy/module/modules/control/vlayer.lua b/exp_legacy/module/modules/control/vlayer.lua index ebd833f0..1d332031 100644 --- a/exp_legacy/module/modules/control/vlayer.lua +++ b/exp_legacy/module/modules/control/vlayer.lua @@ -194,7 +194,7 @@ local function get_sustained_multiplier() return mul end - -- For nauvis vanilla: 208s + (1/2 x (83s + 83s)) + -- For nauvis vanilla: 210s + (1/2 x (84s + 84s)) local day_duration = 1 - surface.dawn + surface.dusk local sunset_duration = surface.evening - surface.dusk local sunrise_duration = surface.dawn - surface.morning From 62ac9a640629a94ec383653e3ff0d7cb8e9b7756 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Thu, 9 Jan 2025 22:25:49 +0900 Subject: [PATCH 070/176] . --- exp_legacy/module/modules/control/vlayer.lua | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/exp_legacy/module/modules/control/vlayer.lua b/exp_legacy/module/modules/control/vlayer.lua index 1d332031..cc843e92 100644 --- a/exp_legacy/module/modules/control/vlayer.lua +++ b/exp_legacy/module/modules/control/vlayer.lua @@ -564,11 +564,11 @@ local function handle_circuit_interfaces() -- Set the virtual signals based on the vlayer stats for stat_name, signal_name in pairs(circuit) do if stat_name:find("energy") then - circuit_oc.set_slot(signal_index, { signal = { type = "virtual", name = signal_name }, count = math.floor(stats[stat_name] / mega) }) + circuit_oc.set_slot(signal_index, { value = { type = "virtual", name = signal_name }, min = math.floor(stats[stat_name] / mega) }) elseif stat_name == "production_multiplier" then - circuit_oc.set_slot(signal_index, { signal = { type = "virtual", name = signal_name }, count = math.floor(stats[stat_name] * 10000) }) + circuit_oc.set_slot(signal_index, { value = { type = "virtual", name = signal_name }, min = math.floor(stats[stat_name] * 10000) }) else - circuit_oc.set_slot(signal_index, { signal = { type = "virtual", name = signal_name }, count = math.floor(stats[stat_name]) }) + circuit_oc.set_slot(signal_index, { value = { type = "virtual", name = signal_name }, min = math.floor(stats[stat_name]) }) end signal_index = signal_index + 1 @@ -577,7 +577,7 @@ local function handle_circuit_interfaces() -- Set the item signals based on stored items for item_name, count in pairs(vlayer_data.storage.items) do if prototypes.item[item_name] and count > 0 then - circuit_oc.set_slot(signal_index, { signal = { type = "item", name = item_name }, count = count }) + circuit_oc.set_slot(signal_index, { value = { type = "item", name = item_name }, min = count }) signal_index = signal_index + 1 end end From 5c15bbbe7c77be2e34a6145a830eaa7f32ced655 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Thu, 9 Jan 2025 22:33:27 +0900 Subject: [PATCH 071/176] . --- exp_legacy/module/modules/control/vlayer.lua | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/exp_legacy/module/modules/control/vlayer.lua b/exp_legacy/module/modules/control/vlayer.lua index cc843e92..6819ed69 100644 --- a/exp_legacy/module/modules/control/vlayer.lua +++ b/exp_legacy/module/modules/control/vlayer.lua @@ -564,11 +564,11 @@ local function handle_circuit_interfaces() -- Set the virtual signals based on the vlayer stats for stat_name, signal_name in pairs(circuit) do if stat_name:find("energy") then - circuit_oc.set_slot(signal_index, { value = { type = "virtual", name = signal_name }, min = math.floor(stats[stat_name] / mega) }) + circuit_oc.set_slot(signal_index, { value = { type = "virtual", name = signal_name, quality = "normal" }, min = math.floor(stats[stat_name] / mega) }) elseif stat_name == "production_multiplier" then - circuit_oc.set_slot(signal_index, { value = { type = "virtual", name = signal_name }, min = math.floor(stats[stat_name] * 10000) }) + circuit_oc.set_slot(signal_index, { value = { type = "virtual", name = signal_name, quality = "normal" }, min = math.floor(stats[stat_name] * 10000) }) else - circuit_oc.set_slot(signal_index, { value = { type = "virtual", name = signal_name }, min = math.floor(stats[stat_name]) }) + circuit_oc.set_slot(signal_index, { value = { type = "virtual", name = signal_name, quality = "normal" }, min = math.floor(stats[stat_name]) }) end signal_index = signal_index + 1 @@ -577,7 +577,7 @@ local function handle_circuit_interfaces() -- Set the item signals based on stored items for item_name, count in pairs(vlayer_data.storage.items) do if prototypes.item[item_name] and count > 0 then - circuit_oc.set_slot(signal_index, { value = { type = "item", name = item_name }, min = count }) + circuit_oc.set_slot(signal_index, { value = { type = "item", name = item_name, quality = "normal" }, min = count }) signal_index = signal_index + 1 end end From 397661728f19dce56054170911f9c4cf3f75b773 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Thu, 9 Jan 2025 23:21:54 +0900 Subject: [PATCH 072/176] . --- exp_legacy/module/config/vlayer.lua | 22 -------------------- exp_legacy/module/modules/control/vlayer.lua | 14 +++++++------ exp_legacy/module/modules/gui/vlayer.lua | 1 + 3 files changed, 9 insertions(+), 28 deletions(-) diff --git a/exp_legacy/module/config/vlayer.lua b/exp_legacy/module/config/vlayer.lua index e6058863..74a000bd 100644 --- a/exp_legacy/module/config/vlayer.lua +++ b/exp_legacy/module/config/vlayer.lua @@ -83,29 +83,7 @@ return { surface_area = 0, fuel_value = 100, -- MJ power = true, -- turn all rocket fuel to power to reduce trash - } - --[[ - ["iron-ore"] = { - starting_value = 0, - required_area = 0, - surface_area = 0, }, - ["copper-ore"] = { - starting_value = 0, - required_area = 0, - surface_area = 0, - }, - ["stone"] = { - starting_value = 0, - required_area = 0, - surface_area = 0, - }, - ["uranium-ore"] = { - starting_value = 0, - required_area = 0, - surface_area = 0, - }, - ]] }, modded_items = { --- @setting modded_items List of all modded items allowed in vlayer storage and their base game equivalent diff --git a/exp_legacy/module/modules/control/vlayer.lua b/exp_legacy/module/modules/control/vlayer.lua index 6819ed69..a7e02181 100644 --- a/exp_legacy/module/modules/control/vlayer.lua +++ b/exp_legacy/module/modules/control/vlayer.lua @@ -362,23 +362,25 @@ local function handle_input_interfaces() else local inventory = interface.get_inventory(defines.inventory.chest) - for name, count in pairs(inventory.get_contents()) do + for name, v in pairs(inventory.get_contents()) do if config.allowed_items[name] then if config.allowed_items[name].modded then if config.modded_auto_downgrade then - vlayer.insert_item(config.modded_items[name].base_game_equivalent, count * config.modded_items[name].multiplier) + -- TODO Quality Insert 7 + 3N items based on quailty level. + -- For example, level 1: 10 = 10, level 2: 10 = 13 + vlayer.insert_item(config.modded_items[name].base_game_equivalent, v.count * config.modded_items[name].multiplier) else - vlayer.insert_item(name, count) + vlayer.insert_item(name, v.count) end else if vlayer_data.storage.power_items[name] then - vlayer_data.storage.power_items[name].count = vlayer_data.storage.power_items[name].count + count + vlayer_data.storage.power_items[name].count = vlayer_data.storage.power_items[name].count + v.count else - vlayer.insert_item(name, count) + vlayer.insert_item(name, v.count) end end - inventory.remove{ name = name, count = count } + inventory.remove{ name = name, count = v.count, quality = v.quality } end end end diff --git a/exp_legacy/module/modules/gui/vlayer.lua b/exp_legacy/module/modules/gui/vlayer.lua index a99860bb..974570fb 100644 --- a/exp_legacy/module/modules/gui/vlayer.lua +++ b/exp_legacy/module/modules/gui/vlayer.lua @@ -43,6 +43,7 @@ local function format_energy(amount, unit) local suffix = "" local suffix_list = { + ["P"] = 1000000000000000, ["T"] = 1000000000000, ["G"] = 1000000000, ["M"] = 1000000, From bd488aef7671c227c09d803e3037c7ae8077bbd4 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Thu, 9 Jan 2025 23:32:21 +0900 Subject: [PATCH 073/176] . --- exp_legacy/module/modules/control/vlayer.lua | 57 ++++++++++++++------ 1 file changed, 41 insertions(+), 16 deletions(-) diff --git a/exp_legacy/module/modules/control/vlayer.lua b/exp_legacy/module/modules/control/vlayer.lua index a7e02181..4fbefbde 100644 --- a/exp_legacy/module/modules/control/vlayer.lua +++ b/exp_legacy/module/modules/control/vlayer.lua @@ -364,23 +364,48 @@ local function handle_input_interfaces() for name, v in pairs(inventory.get_contents()) do if config.allowed_items[name] then - if config.allowed_items[name].modded then - if config.modded_auto_downgrade then - -- TODO Quality Insert 7 + 3N items based on quailty level. - -- For example, level 1: 10 = 10, level 2: 10 = 13 - vlayer.insert_item(config.modded_items[name].base_game_equivalent, v.count * config.modded_items[name].multiplier) - else - vlayer.insert_item(name, v.count) - end - else - if vlayer_data.storage.power_items[name] then - vlayer_data.storage.power_items[name].count = vlayer_data.storage.power_items[name].count + v.count - else - vlayer.insert_item(name, v.count) - end - end + --[[ + TODO + there are no quality support currently. + so instead, using the stats projection value for higher quality. + ]] + if v.quality.level > 1 and v.count >= 10 then + local batch_to_convert = math.floor(v.count / 10) + local count_projection = batch_to_convert * (7 + (v.quality.level * 3)) - inventory.remove{ name = name, count = v.count, quality = v.quality } + if config.allowed_items[name].modded then + if config.modded_auto_downgrade then + vlayer.insert_item(config.modded_items[name].base_game_equivalent, count_projection * config.modded_items[name].multiplier) + else + vlayer.insert_item(name, count_projection) + end + else + if vlayer_data.storage.power_items[name] then + vlayer_data.storage.power_items[name].count = vlayer_data.storage.power_items[name].count + count_projection + else + vlayer.insert_item(name, count_projection) + end + end + + inventory.remove{ name = name, count = batch_to_convert * 10, quality = v.quality } + + elseif v.quality.level == 1 then + if config.allowed_items[name].modded then + if config.modded_auto_downgrade then + vlayer.insert_item(config.modded_items[name].base_game_equivalent, v.count * config.modded_items[name].multiplier) + else + vlayer.insert_item(name, v.count) + end + else + if vlayer_data.storage.power_items[name] then + vlayer_data.storage.power_items[name].count = vlayer_data.storage.power_items[name].count + v.count + else + vlayer.insert_item(name, v.count) + end + end + + inventory.remove{ name = name, count = v.count, quality = v.quality } + end end end end From 10bf61247c1b0c826fc869a226ad0efff6326446 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Thu, 9 Jan 2025 23:38:39 +0900 Subject: [PATCH 074/176] . --- exp_legacy/module/modules/addons/death-logger.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/exp_legacy/module/modules/addons/death-logger.lua b/exp_legacy/module/modules/addons/death-logger.lua index b735f8b8..760c407d 100644 --- a/exp_legacy/module/modules/addons/death-logger.lua +++ b/exp_legacy/module/modules/addons/death-logger.lua @@ -73,10 +73,10 @@ Event.add(defines.events.on_player_died, function(event) inventory = inventory, surface = corpse.surface, position = corpse.position, - name = "iron-chest", + name = "steel-chest", allow_creation = true, } - + corpse.destroy() corpse = chest end From f94e9bf17d9601246f6feb4cc5a3b4b98f6747f6 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Thu, 9 Jan 2025 23:44:35 +0900 Subject: [PATCH 075/176] . --- exp_legacy/module/modules/control/vlayer.lua | 42 ++++++++------------ 1 file changed, 17 insertions(+), 25 deletions(-) diff --git a/exp_legacy/module/modules/control/vlayer.lua b/exp_legacy/module/modules/control/vlayer.lua index 4fbefbde..3245148f 100644 --- a/exp_legacy/module/modules/control/vlayer.lua +++ b/exp_legacy/module/modules/control/vlayer.lua @@ -369,42 +369,34 @@ local function handle_input_interfaces() there are no quality support currently. so instead, using the stats projection value for higher quality. ]] - if v.quality.level > 1 and v.count >= 10 then - local batch_to_convert = math.floor(v.count / 10) - local count_projection = batch_to_convert * (7 + (v.quality.level * 3)) + local count_deduct + local count_add + if v.quality.level == 1 then + count_deduct = v.count + count_add = v.count + + elseif v.quality.level > 1 and v.count >= 10 then + count_deduct = math.floor(v.count / 10) + count_add = count_deduct * (7 + (v.quality.level * 3)) + end + + if count_deduct and count_add then if config.allowed_items[name].modded then if config.modded_auto_downgrade then - vlayer.insert_item(config.modded_items[name].base_game_equivalent, count_projection * config.modded_items[name].multiplier) + vlayer.insert_item(config.modded_items[name].base_game_equivalent, count_add * config.modded_items[name].multiplier) else - vlayer.insert_item(name, count_projection) + vlayer.insert_item(name, count_add) end else if vlayer_data.storage.power_items[name] then - vlayer_data.storage.power_items[name].count = vlayer_data.storage.power_items[name].count + count_projection + vlayer_data.storage.power_items[name].count = vlayer_data.storage.power_items[name].count + count_add else - vlayer.insert_item(name, count_projection) + vlayer.insert_item(name, count_add) end end - inventory.remove{ name = name, count = batch_to_convert * 10, quality = v.quality } - - elseif v.quality.level == 1 then - if config.allowed_items[name].modded then - if config.modded_auto_downgrade then - vlayer.insert_item(config.modded_items[name].base_game_equivalent, v.count * config.modded_items[name].multiplier) - else - vlayer.insert_item(name, v.count) - end - else - if vlayer_data.storage.power_items[name] then - vlayer_data.storage.power_items[name].count = vlayer_data.storage.power_items[name].count + v.count - else - vlayer.insert_item(name, v.count) - end - end - - inventory.remove{ name = name, count = v.count, quality = v.quality } + inventory.remove{ name = name, count = count_deduct, quality = v.quality } end end end From 82e858975b593b1c0081ef872160a400027b1743 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Thu, 9 Jan 2025 23:49:44 +0900 Subject: [PATCH 076/176] . --- exp_legacy/module/modules/control/vlayer.lua | 1 + 1 file changed, 1 insertion(+) diff --git a/exp_legacy/module/modules/control/vlayer.lua b/exp_legacy/module/modules/control/vlayer.lua index 3245148f..27826793 100644 --- a/exp_legacy/module/modules/control/vlayer.lua +++ b/exp_legacy/module/modules/control/vlayer.lua @@ -382,6 +382,7 @@ local function handle_input_interfaces() end if count_deduct and count_add then + game.print(count_add) if config.allowed_items[name].modded then if config.modded_auto_downgrade then vlayer.insert_item(config.modded_items[name].base_game_equivalent, count_add * config.modded_items[name].multiplier) From 965c1c771296b4d73aa6546a0d2fd080bfaf6e92 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Thu, 9 Jan 2025 23:51:34 +0900 Subject: [PATCH 077/176] . --- exp_legacy/module/modules/control/vlayer.lua | 1 - 1 file changed, 1 deletion(-) diff --git a/exp_legacy/module/modules/control/vlayer.lua b/exp_legacy/module/modules/control/vlayer.lua index 27826793..3245148f 100644 --- a/exp_legacy/module/modules/control/vlayer.lua +++ b/exp_legacy/module/modules/control/vlayer.lua @@ -382,7 +382,6 @@ local function handle_input_interfaces() end if count_deduct and count_add then - game.print(count_add) if config.allowed_items[name].modded then if config.modded_auto_downgrade then vlayer.insert_item(config.modded_items[name].base_game_equivalent, count_add * config.modded_items[name].multiplier) From 4136b5018b0b52042597edc2118a9a7b530ce0ff Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Thu, 9 Jan 2025 23:54:15 +0900 Subject: [PATCH 078/176] . --- exp_legacy/module/modules/control/vlayer.lua | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/exp_legacy/module/modules/control/vlayer.lua b/exp_legacy/module/modules/control/vlayer.lua index 3245148f..ed896980 100644 --- a/exp_legacy/module/modules/control/vlayer.lua +++ b/exp_legacy/module/modules/control/vlayer.lua @@ -362,8 +362,8 @@ local function handle_input_interfaces() else local inventory = interface.get_inventory(defines.inventory.chest) - for name, v in pairs(inventory.get_contents()) do - if config.allowed_items[name] then + for _, v in pairs(inventory.get_contents()) do + if config.allowed_items[v.name] then --[[ TODO there are no quality support currently. @@ -382,21 +382,21 @@ local function handle_input_interfaces() end if count_deduct and count_add then - if config.allowed_items[name].modded then + if config.allowed_items[v.name].modded then if config.modded_auto_downgrade then - vlayer.insert_item(config.modded_items[name].base_game_equivalent, count_add * config.modded_items[name].multiplier) + vlayer.insert_item(config.modded_items[v.name].base_game_equivalent, count_add * config.modded_items[v.name].multiplier) else - vlayer.insert_item(name, count_add) + vlayer.insert_item(v.name, count_add) end else - if vlayer_data.storage.power_items[name] then - vlayer_data.storage.power_items[name].count = vlayer_data.storage.power_items[name].count + count_add + if vlayer_data.storage.power_items[v.name] then + vlayer_data.storage.power_items[v.name].count = vlayer_data.storage.power_items[v.name].count + count_add else - vlayer.insert_item(name, count_add) + vlayer.insert_item(v.name, count_add) end end - inventory.remove{ name = name, count = count_deduct, quality = v.quality } + inventory.remove{ name = v.name, count = count_deduct, quality = v.quality } end end end From 46f35eadcc419c2f71932a620d21668ad84093f4 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Thu, 9 Jan 2025 23:58:26 +0900 Subject: [PATCH 079/176] . --- exp_legacy/module/modules/control/vlayer.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/exp_legacy/module/modules/control/vlayer.lua b/exp_legacy/module/modules/control/vlayer.lua index ed896980..7e846d64 100644 --- a/exp_legacy/module/modules/control/vlayer.lua +++ b/exp_legacy/module/modules/control/vlayer.lua @@ -376,7 +376,7 @@ local function handle_input_interfaces() count_deduct = v.count count_add = v.count - elseif v.quality.level > 1 and v.count >= 10 then + elseif prototypes.quality[v.quality].level > 1 and v.count >= 10 then count_deduct = math.floor(v.count / 10) count_add = count_deduct * (7 + (v.quality.level * 3)) end From 6603a14fd3fd6e66aeba7a48351e46a7adc26c95 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Thu, 9 Jan 2025 23:58:36 +0900 Subject: [PATCH 080/176] . --- exp_legacy/module/modules/control/vlayer.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/exp_legacy/module/modules/control/vlayer.lua b/exp_legacy/module/modules/control/vlayer.lua index 7e846d64..1ed83cb0 100644 --- a/exp_legacy/module/modules/control/vlayer.lua +++ b/exp_legacy/module/modules/control/vlayer.lua @@ -378,7 +378,7 @@ local function handle_input_interfaces() elseif prototypes.quality[v.quality].level > 1 and v.count >= 10 then count_deduct = math.floor(v.count / 10) - count_add = count_deduct * (7 + (v.quality.level * 3)) + count_add = count_deduct * (7 + (prototypes.quality[v.quality].level * 3)) end if count_deduct and count_add then From 8f5d3e4a65124494ecfaa010c6a6d21e992ff3e4 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Fri, 10 Jan 2025 00:01:16 +0900 Subject: [PATCH 081/176] . --- exp_legacy/module/modules/control/vlayer.lua | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/exp_legacy/module/modules/control/vlayer.lua b/exp_legacy/module/modules/control/vlayer.lua index 1ed83cb0..9f4b7b18 100644 --- a/exp_legacy/module/modules/control/vlayer.lua +++ b/exp_legacy/module/modules/control/vlayer.lua @@ -372,13 +372,14 @@ local function handle_input_interfaces() local count_deduct local count_add - if v.quality.level == 1 then + if prototypes.quality[v.quality].level == 1 then count_deduct = v.count count_add = v.count elseif prototypes.quality[v.quality].level > 1 and v.count >= 10 then - count_deduct = math.floor(v.count / 10) - count_add = count_deduct * (7 + (prototypes.quality[v.quality].level * 3)) + local batch = math.floor(v.count / 10) + count_deduct = batch * 10 + count_add = batch * (7 + (prototypes.quality[v.quality].level * 3)) end if count_deduct and count_add then From 7a5577452c164c0289a638ce731e751358ffb56a Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Fri, 10 Jan 2025 00:09:13 +0900 Subject: [PATCH 082/176] . --- exp_legacy/module/modules/control/vlayer.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/exp_legacy/module/modules/control/vlayer.lua b/exp_legacy/module/modules/control/vlayer.lua index 9f4b7b18..73b78439 100644 --- a/exp_legacy/module/modules/control/vlayer.lua +++ b/exp_legacy/module/modules/control/vlayer.lua @@ -372,11 +372,11 @@ local function handle_input_interfaces() local count_deduct local count_add - if prototypes.quality[v.quality].level == 1 then + if prototypes.quality[v.quality].level == 0 then count_deduct = v.count count_add = v.count - elseif prototypes.quality[v.quality].level > 1 and v.count >= 10 then + elseif prototypes.quality[v.quality].level > 0 and v.count >= 10 then local batch = math.floor(v.count / 10) count_deduct = batch * 10 count_add = batch * (7 + (prototypes.quality[v.quality].level * 3)) From 8dac727396898905aad3ca830a8c057d8cd733e7 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Fri, 10 Jan 2025 00:11:45 +0900 Subject: [PATCH 083/176] . --- exp_legacy/module/modules/control/vlayer.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/exp_legacy/module/modules/control/vlayer.lua b/exp_legacy/module/modules/control/vlayer.lua index 73b78439..7ff44c69 100644 --- a/exp_legacy/module/modules/control/vlayer.lua +++ b/exp_legacy/module/modules/control/vlayer.lua @@ -379,7 +379,7 @@ local function handle_input_interfaces() elseif prototypes.quality[v.quality].level > 0 and v.count >= 10 then local batch = math.floor(v.count / 10) count_deduct = batch * 10 - count_add = batch * (7 + (prototypes.quality[v.quality].level * 3)) + count_add = batch * (10 + (prototypes.quality[v.quality].level * 3)) end if count_deduct and count_add then From 803192e01c464dc09d157d876535583e0c5c8624 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Fri, 10 Jan 2025 02:44:05 +0900 Subject: [PATCH 084/176] . --- exp_legacy/module/modules/control/vlayer.lua | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/exp_legacy/module/modules/control/vlayer.lua b/exp_legacy/module/modules/control/vlayer.lua index 7ff44c69..1fce06fe 100644 --- a/exp_legacy/module/modules/control/vlayer.lua +++ b/exp_legacy/module/modules/control/vlayer.lua @@ -133,10 +133,10 @@ end --[[ 25,200 / 420 s - 昼 208秒 ソーラー効率100% - 夕方 83秒 1秒ごとにソーラー発電量が約1.2%ずつ下がり、やがて0%になる - 夜 41秒 ソーラー発電量が0%になる - 朝方 83秒 1秒ごとにソーラー発電量が約1.2%ずつ上がり、やがて100%になる + 昼 210秒 ソーラー効率100% + 夕方 84秒 1秒ごとにソーラー発電量が約1.2%ずつ下がり、やがて0%になる + 夜 42秒 ソーラー発電量が0%になる + 朝方 84秒 1秒ごとにソーラー発電量が約1.2%ずつ上がり、やがて100%になる (surface.dawn) 0.75 18,900 Day 12,600 210s 0.00 0 Noon @@ -365,7 +365,6 @@ local function handle_input_interfaces() for _, v in pairs(inventory.get_contents()) do if config.allowed_items[v.name] then --[[ - TODO there are no quality support currently. so instead, using the stats projection value for higher quality. ]] From 518f1fc5610b495518d42fd78b6a202388b0f5f6 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Fri, 10 Jan 2025 14:04:17 +0900 Subject: [PATCH 085/176] . --- exp_scenario/module/commands/lawnmower.lua | 4 ++-- exp_scenario/module/commands/waterfill.lua | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/exp_scenario/module/commands/lawnmower.lua b/exp_scenario/module/commands/lawnmower.lua index e002f21b..22522ba3 100644 --- a/exp_scenario/module/commands/lawnmower.lua +++ b/exp_scenario/module/commands/lawnmower.lua @@ -10,7 +10,7 @@ Commands.new("lawnmower", { "exp-commands_lawnmower.description" }) :register(function(player, range) --- @cast range number local surface = player.surface - + -- Intentionally left as player.position to allow use in remote view local entities = surface.find_entities_filtered{ position = player.position, radius = range, type = "corpse" } for _, entity in pairs(entities) do @@ -18,7 +18,7 @@ Commands.new("lawnmower", { "exp-commands_lawnmower.description" }) entity.destroy() end end - + local replace_tiles = {} local tiles = surface.find_tiles_filtered{ position = player.position, radius = range, name = { "nuclear-ground" } } for i, tile in pairs(tiles) do diff --git a/exp_scenario/module/commands/waterfill.lua b/exp_scenario/module/commands/waterfill.lua index d748356f..1451112e 100644 --- a/exp_scenario/module/commands/waterfill.lua +++ b/exp_scenario/module/commands/waterfill.lua @@ -28,10 +28,12 @@ Selection.on_selection(SelectionName, function(event) local player = game.players[event.player_index] local surface = event.surface + --[[ if surface.planet and surface.planet ~= game.planets.nauvis then player.print({ "exp-commands_waterfill.nauvis-only" }, Commands.print_settings.error) return end + ]] local area_size = (area.right_bottom.x - area.left_top.x) * (area.right_bottom.y - area.left_top.y) if area_size > 1000 then From ea04b93c7c298503d215ede98b918f43a6cd8e9d Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Fri, 10 Jan 2025 14:13:12 +0900 Subject: [PATCH 086/176] . --- exp_scenario/module/commands/kill.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/exp_scenario/module/commands/kill.lua b/exp_scenario/module/commands/kill.lua index 2ab239bd..7a707c5e 100644 --- a/exp_scenario/module/commands/kill.lua +++ b/exp_scenario/module/commands/kill.lua @@ -23,7 +23,7 @@ Commands.new("kill", { "exp-commands_kill.description" }) elseif other_player == player then -- You can always kill yourself other_player.character.die() - elseif highest_role(other_player).index < highest_role(player).index then + elseif highest_role(player).index > highest_role(other_player).index then -- Can kill lower role players other_player.character.die() else From 645d6935832cc4fcb866d8fbda0d244bb066c9e3 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Fri, 10 Jan 2025 14:22:33 +0900 Subject: [PATCH 087/176] . --- exp_scenario/module/commands/kill.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/exp_scenario/module/commands/kill.lua b/exp_scenario/module/commands/kill.lua index 7a707c5e..2ab239bd 100644 --- a/exp_scenario/module/commands/kill.lua +++ b/exp_scenario/module/commands/kill.lua @@ -23,7 +23,7 @@ Commands.new("kill", { "exp-commands_kill.description" }) elseif other_player == player then -- You can always kill yourself other_player.character.die() - elseif highest_role(player).index > highest_role(other_player).index then + elseif highest_role(other_player).index < highest_role(player).index then -- Can kill lower role players other_player.character.die() else From 3632738501c699402c25b96055430aa8a80abf5e Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Fri, 10 Jan 2025 17:37:33 +0900 Subject: [PATCH 088/176] . --- exp_scenario/module/commands/waterfill.lua | 2 -- 1 file changed, 2 deletions(-) diff --git a/exp_scenario/module/commands/waterfill.lua b/exp_scenario/module/commands/waterfill.lua index 1451112e..d748356f 100644 --- a/exp_scenario/module/commands/waterfill.lua +++ b/exp_scenario/module/commands/waterfill.lua @@ -28,12 +28,10 @@ Selection.on_selection(SelectionName, function(event) local player = game.players[event.player_index] local surface = event.surface - --[[ if surface.planet and surface.planet ~= game.planets.nauvis then player.print({ "exp-commands_waterfill.nauvis-only" }, Commands.print_settings.error) return end - ]] local area_size = (area.right_bottom.x - area.left_top.x) * (area.right_bottom.y - area.left_top.y) if area_size > 1000 then From a6ddf0c427e3a920644c31d6120b5e4b3378b693 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Sat, 11 Jan 2025 22:09:35 +0900 Subject: [PATCH 089/176] . --- exp_legacy/module/config/vlayer.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/exp_legacy/module/config/vlayer.lua b/exp_legacy/module/config/vlayer.lua index 74a000bd..335b8337 100644 --- a/exp_legacy/module/config/vlayer.lua +++ b/exp_legacy/module/config/vlayer.lua @@ -24,10 +24,10 @@ return { }, interface_limit = { --- @setting interface_limit Sets the limit for the number of vlayer interfaces that can be created - energy = 1, -- >1 allows for disconnected power networks to receive power + energy = 20, -- >1 allows for disconnected power networks to receive power circuit = 20, -- No caveats storage_input = 20, -- No caveats - storage_output = 1, -- >0 allows for item teleportation (allowed_items only) + storage_output = 20, -- >0 allows for item teleportation (allowed_items only) }, allowed_items = { --- @setting allowed_items List of all items allowed in vlayer storage and their properties From c9700414c74bb15cf1edaf6a5b2d88ca94313994 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Sat, 11 Jan 2025 22:10:26 +0900 Subject: [PATCH 090/176] . --- exp_scenario/module/commands/waterfill.lua | 2 ++ 1 file changed, 2 insertions(+) diff --git a/exp_scenario/module/commands/waterfill.lua b/exp_scenario/module/commands/waterfill.lua index d748356f..1451112e 100644 --- a/exp_scenario/module/commands/waterfill.lua +++ b/exp_scenario/module/commands/waterfill.lua @@ -28,10 +28,12 @@ Selection.on_selection(SelectionName, function(event) local player = game.players[event.player_index] local surface = event.surface + --[[ if surface.planet and surface.planet ~= game.planets.nauvis then player.print({ "exp-commands_waterfill.nauvis-only" }, Commands.print_settings.error) return end + ]] local area_size = (area.right_bottom.x - area.left_top.x) * (area.right_bottom.y - area.left_top.y) if area_size > 1000 then From 2ed7235f3d613795323964bd506490a2dafa574c Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Sat, 11 Jan 2025 23:05:39 +0900 Subject: [PATCH 091/176] . --- exp_legacy/module/modules/gui/server-ups.lua | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/exp_legacy/module/modules/gui/server-ups.lua b/exp_legacy/module/modules/gui/server-ups.lua index fc0bd3d2..9de3189c 100644 --- a/exp_legacy/module/modules/gui/server-ups.lua +++ b/exp_legacy/module/modules/gui/server-ups.lua @@ -34,9 +34,13 @@ local server_ups = UsesServerUps:on_load(function(player_name, visible) local player = game.players[player_name] local label = player.gui.screen[server_ups.name] + --- @diagnostic disable-next-line undefined-field - if not External.valid() or not storage.ext.var.server_ups then visible = false end - label.visible = visible + if External.valid() and storage.ext and storage.ext.var and storage.ext.var.server_ups then + label.visible = true + else + label.visible = false + end end) --- Toggles if the server ups is visbile From cf2f6cfb8cb5e120d1fee57d310c506d9efaf200 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Sat, 11 Jan 2025 23:07:07 +0900 Subject: [PATCH 092/176] . --- exp_legacy/module/modules/gui/server-ups.lua | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/exp_legacy/module/modules/gui/server-ups.lua b/exp_legacy/module/modules/gui/server-ups.lua index 9de3189c..ff0ff596 100644 --- a/exp_legacy/module/modules/gui/server-ups.lua +++ b/exp_legacy/module/modules/gui/server-ups.lua @@ -35,11 +35,11 @@ UsesServerUps:on_load(function(player_name, visible) local player = game.players[player_name] local label = player.gui.screen[server_ups.name] - --- @diagnostic disable-next-line undefined-field - if External.valid() and storage.ext and storage.ext.var and storage.ext.var.server_ups then - label.visible = true - else + --- @diagnostic disable-next-line undefined-field + if not External.valid() or not storage.ext.var.server_ups then label.visible = false + else + label.visible = label.visible or false end end) From 0d8712dd6b636c3cbc03c5fdd5ad159282a25139 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Sat, 11 Jan 2025 23:07:58 +0900 Subject: [PATCH 093/176] . --- exp_legacy/module/modules/gui/server-ups.lua | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/exp_legacy/module/modules/gui/server-ups.lua b/exp_legacy/module/modules/gui/server-ups.lua index ff0ff596..f24626a2 100644 --- a/exp_legacy/module/modules/gui/server-ups.lua +++ b/exp_legacy/module/modules/gui/server-ups.lua @@ -36,11 +36,8 @@ UsesServerUps:on_load(function(player_name, visible) local label = player.gui.screen[server_ups.name] --- @diagnostic disable-next-line undefined-field - if not External.valid() or not storage.ext.var.server_ups then - label.visible = false - else - label.visible = label.visible or false - end + if not External.valid() or not storage.ext.var.server_ups then visible = false end + label.visible = visible or false end) --- Toggles if the server ups is visbile From da323d5152d972c5d24f3cb75d576e738b631764 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Sat, 11 Jan 2025 23:08:26 +0900 Subject: [PATCH 094/176] . --- exp_legacy/module/modules/gui/server-ups.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/exp_legacy/module/modules/gui/server-ups.lua b/exp_legacy/module/modules/gui/server-ups.lua index f24626a2..b4b110fe 100644 --- a/exp_legacy/module/modules/gui/server-ups.lua +++ b/exp_legacy/module/modules/gui/server-ups.lua @@ -37,7 +37,7 @@ UsesServerUps:on_load(function(player_name, visible) --- @diagnostic disable-next-line undefined-field if not External.valid() or not storage.ext.var.server_ups then visible = false end - label.visible = visible or false + label.visible = visible end) --- Toggles if the server ups is visbile From 8b67491d8cd96d9261dea8b756fc698ceb508100 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Sun, 12 Jan 2025 03:26:24 +0900 Subject: [PATCH 095/176] . --- exp_legacy/module/config/vlayer.lua | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/exp_legacy/module/config/vlayer.lua b/exp_legacy/module/config/vlayer.lua index 335b8337..70db3ac3 100644 --- a/exp_legacy/module/config/vlayer.lua +++ b/exp_legacy/module/config/vlayer.lua @@ -24,10 +24,10 @@ return { }, interface_limit = { --- @setting interface_limit Sets the limit for the number of vlayer interfaces that can be created - energy = 20, -- >1 allows for disconnected power networks to receive power - circuit = 20, -- No caveats - storage_input = 20, -- No caveats - storage_output = 20, -- >0 allows for item teleportation (allowed_items only) + energy = 100, -- >1 allows for disconnected power networks to receive power + circuit = 100, -- No caveats + storage_input = 100, -- No caveats + storage_output = 100, -- >0 allows for item teleportation (allowed_items only) }, allowed_items = { --- @setting allowed_items List of all items allowed in vlayer storage and their properties From de6474dc7690f6c78f317cad68752dde7461caac Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Sun, 12 Jan 2025 03:43:48 +0900 Subject: [PATCH 096/176] . --- exp_legacy/module/modules/addons/logging.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/exp_legacy/module/modules/addons/logging.lua b/exp_legacy/module/modules/addons/logging.lua index 103a47a5..84e4ce17 100644 --- a/exp_legacy/module/modules/addons/logging.lua +++ b/exp_legacy/module/modules/addons/logging.lua @@ -44,7 +44,7 @@ Event.add(defines.events.on_research_finished, function(event) return end - if (event.research.level and config_res.inf_res[event.research.name]) and (event.research.level >= config_res.inf_res[event.research.name]) then + if (event.research.level and config.inf_res[config.mod_set][event.research.name]) and (event.research.level >= config.inf_res[config.mod_set][event.research.name]) then add_log{ "logging.add-l", event.research.prototype.localised_name, event.research.level - 1 } else add_log{ "logging.add-n", event.research.prototype.localised_name } From 9e44de8850d2e7141abf9b9b1ef3f7bdfd67ce3c Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Mon, 13 Jan 2025 19:07:40 +0900 Subject: [PATCH 097/176] . --- exp_legacy/module/modules/addons/logging.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/exp_legacy/module/modules/addons/logging.lua b/exp_legacy/module/modules/addons/logging.lua index 84e4ce17..cf940d15 100644 --- a/exp_legacy/module/modules/addons/logging.lua +++ b/exp_legacy/module/modules/addons/logging.lua @@ -44,7 +44,7 @@ Event.add(defines.events.on_research_finished, function(event) return end - if (event.research.level and config.inf_res[config.mod_set][event.research.name]) and (event.research.level >= config.inf_res[config.mod_set][event.research.name]) then + if (event.research.level and config_res.inf_res[config_res.mod_set][event.research.name]) and (event.research.level >= config_res.inf_res[config_res.mod_set][event.research.name]) then add_log{ "logging.add-l", event.research.prototype.localised_name, event.research.level - 1 } else add_log{ "logging.add-n", event.research.prototype.localised_name } From 4fa1ea4fb3045b237aa0389bff9e62a10e9a611e Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Mon, 13 Jan 2025 22:03:03 +0900 Subject: [PATCH 098/176] . --- exp_legacy/module/modules/gui/bonus.lua | 2 ++ 1 file changed, 2 insertions(+) diff --git a/exp_legacy/module/modules/gui/bonus.lua b/exp_legacy/module/modules/gui/bonus.lua index e69ee0b8..1f89048f 100644 --- a/exp_legacy/module/modules/gui/bonus.lua +++ b/exp_legacy/module/modules/gui/bonus.lua @@ -75,6 +75,7 @@ local function apply_periodic_bonus(player) local disp = frame.container["bonus_st_2"].disp.table if vlayer.get_statistics()["energy_sustained"] > 0 then + --[[ local armor = player.get_inventory(defines.inventory.character_armor)[1].grid if armor then @@ -90,6 +91,7 @@ local function apply_periodic_bonus(player) end end end + ]] end end From bfe5110254a2b9ddc8db456bddfa4c243bd95aa9 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Mon, 13 Jan 2025 22:34:31 +0900 Subject: [PATCH 099/176] . --- exp_legacy/module/modules/control/vlayer.lua | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/exp_legacy/module/modules/control/vlayer.lua b/exp_legacy/module/modules/control/vlayer.lua index 1fce06fe..d494b13c 100644 --- a/exp_legacy/module/modules/control/vlayer.lua +++ b/exp_legacy/module/modules/control/vlayer.lua @@ -40,6 +40,12 @@ Storage.register(vlayer_data, function(tbl) vlayer_data = tbl end) +--[[ +if script.active_mods["space-age"] then + config.allowed_items.landfill.surface_area = math.floor(config.allowed_items.landfill.surface_area * 2.5) +end +]] + for name, properties in pairs(config.allowed_items) do properties.modded = false From c10de39a89a79347983d3e28c708addb1a081f27 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Mon, 13 Jan 2025 22:48:10 +0900 Subject: [PATCH 100/176] . --- exp_legacy/module/modules/addons/death-logger.lua | 2 ++ 1 file changed, 2 insertions(+) diff --git a/exp_legacy/module/modules/addons/death-logger.lua b/exp_legacy/module/modules/addons/death-logger.lua index 760c407d..831d312c 100644 --- a/exp_legacy/module/modules/addons/death-logger.lua +++ b/exp_legacy/module/modules/addons/death-logger.lua @@ -152,12 +152,14 @@ if config.auto_collect_bodies then Event.add(defines.events.on_character_corpse_expired, function(event) local corpse = event.corpse local inventory = assert(corpse.get_inventory(defines.inventory.character_corpse)) + --[[ ExpUtil.transfer_inventory_to_surface{ inventory = inventory, surface = corpse.surface, name = "steel-chest", allow_creation = true, } + ]] end) end From 843de85206b2641b73fe36dbb41d01b429833b86 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Tue, 14 Jan 2025 13:26:49 +0900 Subject: [PATCH 101/176] . --- exp_commands/module/commands/authorities.lua | 2 +- .../module/modules/addons/death-logger.lua | 2 -- exp_util/module/module_exports.lua | 33 +++++++++---------- type.patch.lua | 3 ++ 4 files changed, 19 insertions(+), 21 deletions(-) diff --git a/exp_commands/module/commands/authorities.lua b/exp_commands/module/commands/authorities.lua index 57b1ce28..db82a6ce 100644 --- a/exp_commands/module/commands/authorities.lua +++ b/exp_commands/module/commands/authorities.lua @@ -82,7 +82,7 @@ authorities.character_only = --- If a command has the flag "remote_only" then the command can only be used inside of remote view authorities.remote_only = add(function(player, command) - if command.flags.character_only and player.controller_type ~= defines.controllers.remote then + if command.flags.remote_only and player.controller_type ~= defines.controllers.remote then return deny{ "exp-commands-authorities.remote-only" } else return allow() diff --git a/exp_legacy/module/modules/addons/death-logger.lua b/exp_legacy/module/modules/addons/death-logger.lua index 831d312c..760c407d 100644 --- a/exp_legacy/module/modules/addons/death-logger.lua +++ b/exp_legacy/module/modules/addons/death-logger.lua @@ -152,14 +152,12 @@ if config.auto_collect_bodies then Event.add(defines.events.on_character_corpse_expired, function(event) local corpse = event.corpse local inventory = assert(corpse.get_inventory(defines.inventory.character_corpse)) - --[[ ExpUtil.transfer_inventory_to_surface{ inventory = inventory, surface = corpse.surface, name = "steel-chest", allow_creation = true, } - ]] end) end diff --git a/exp_util/module/module_exports.lua b/exp_util/module/module_exports.lua index a5deec4b..903821fa 100644 --- a/exp_util/module/module_exports.lua +++ b/exp_util/module/module_exports.lua @@ -403,6 +403,7 @@ end function ExpUtil.get_storage_for_stack(options) local surface = assert(options.surface, "A surface must be provided") local item = assert(options.item, "An item stack must be provided") + assert(type(item) ~= "userdata" or item.valid_for_read, "Invalid stack provided") -- Perform a search if on has not been done already local cache = options.cache @@ -420,16 +421,6 @@ function ExpUtil.get_storage_for_stack(options) local current, count, entities = cache.current, cache.count, cache.entities for i = 1, cache.count do local entity = entities[((current + i - 1) % count) + 1] - if entity == nil then - -- See Github Issue #352 - error("entity was nil, context:\n" .. ExpUtil.format_any({ - cache = cache, - i = i, - }, { - max_line_count = 0, - no_locale_strings = true - })) - end if entity.can_insert(item) then cache.current = current + 1 return entity @@ -454,7 +445,7 @@ function ExpUtil.get_storage_for_stack(options) assert(entity, "Failed to create a new entity") cache.count = count + 1 - entities[count] = entity + entities[count + 1] = entity return entity end @@ -468,9 +459,12 @@ end function ExpUtil.copy_items_to_surface(options) local entity for item_index = 1, #options.items do - options.item = options.items[item_index] - entity = ExpUtil.get_storage_for_stack(options) - entity.insert(options.item) + local item = options.items[item_index] + if type(item) ~= "userdata" or item.valid_for_read then + options.item = item + entity = ExpUtil.get_storage_for_stack(options) + entity.insert(options.item) + end end return entity end @@ -485,10 +479,13 @@ end function ExpUtil.move_items_to_surface(options) local entity for item_index = 1, #options.items do - options.item = options.items[item_index] - entity = ExpUtil.get_storage_for_stack(options) - entity.insert(options.item) - options.item.clear() + local item = options.items[item_index] + if type(item) ~= "userdata" or item.valid_for_read then + options.item = item + entity = ExpUtil.get_storage_for_stack(options) + entity.insert(options.item) + options.item.clear() + end end return entity end diff --git a/type.patch.lua b/type.patch.lua index b27b5997..64cd9f6e 100644 --- a/type.patch.lua +++ b/type.patch.lua @@ -29,7 +29,10 @@ script = { --- --- Type patched in 2.0.28: [Bug Report](https://forums.factorio.com/viewtopic.php?f=233&t=125062) --- Changed "event" from "string | integer" to "LuaEventType" + --- Resolved in 2.0.29, this patch will be removed was version is stable ---@param event LuaEventType ID or name of the event to raise. ---@param data table Table with extra data that will be passed to the event handler. Any invalid LuaObjects will silently stop the event from being raised. raise_event = function(event, data) end; } +---@class LuaObject:userdata +--https://github.com/justarandomgeek/vscode-factoriomod-debug/issues/165 From d7dc4040c8bc744f80bd03d47734dc9c4018119d Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Tue, 14 Jan 2025 18:48:24 +0900 Subject: [PATCH 102/176] . --- exp_legacy/module/modules/control/vlayer.lua | 11 ++++++----- exp_legacy/module/modules/gui/vlayer.lua | 12 ++++++------ 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/exp_legacy/module/modules/control/vlayer.lua b/exp_legacy/module/modules/control/vlayer.lua index d494b13c..5e879a3e 100644 --- a/exp_legacy/module/modules/control/vlayer.lua +++ b/exp_legacy/module/modules/control/vlayer.lua @@ -712,11 +712,12 @@ function vlayer.remove_interface(surface, position) -- Get the details which will be returned if #entities == 0 then - return nil, nil + return nil, nil, nil end local interface = entities[1] local name = interface.name + local sur = interface.surface local pos = interface.position -- Return the type of interface removed and do some clean up @@ -731,7 +732,7 @@ function vlayer.remove_interface(surface, position) table.remove_element(vlayer_data.entity_interfaces.storage_input, interface) interface.destroy() - return "storage-input", pos + return "storage-input", sur, pos elseif name == "requester-chest" then local inventory = assert(interface.get_inventory(defines.inventory.chest)) ExpUtil.transfer_inventory_to_surface{ @@ -743,18 +744,18 @@ function vlayer.remove_interface(surface, position) table.remove_element(vlayer_data.entity_interfaces.storage_output, interface) interface.destroy() - return "storage-output", pos + return "storage-output", sur, pos elseif name == "constant-combinator" then table.remove_element(vlayer_data.entity_interfaces.circuit, interface) interface.destroy() - return "circuit", pos + return "circuit", sur, pos elseif name == "electric-energy-interface" then vlayer_data.storage.energy = vlayer_data.storage.energy + interface.energy table.remove_element(vlayer_data.entity_interfaces.energy, interface) interface.destroy() - return "energy", pos + return "energy", sur, pos end end diff --git a/exp_legacy/module/modules/gui/vlayer.lua b/exp_legacy/module/modules/gui/vlayer.lua index 974570fb..e37c0437 100644 --- a/exp_legacy/module/modules/gui/vlayer.lua +++ b/exp_legacy/module/modules/gui/vlayer.lua @@ -32,8 +32,8 @@ local vlayer_control_type_list = { [4] = "storage_output", } -local function pos_to_gps_string(pos) - return "[gps=" .. string.format("%.1f", pos.x) .. "," .. string.format("%.1f", pos.y) .. "]" +local function pos_to_gps_string(pos, surface_name) + return "[gps=" .. string.format("%.1f", pos.x) .. "," .. string.format("%.1f", pos.y) .. "," .. surface_name .. "]" end local function format_energy(amount, unit) @@ -127,7 +127,7 @@ Selection.on_selection(SelectionConvertArea, function(event) vlayer.create_output_interface(event.surface, e_pos, e_circ, player) end - game.print{ "vlayer.interface-result", player.name, pos_to_gps_string(e_pos), { "vlayer.result-build" }, { "vlayer.control-type-" .. target:gsub("_", "-") } } + game.print{ "vlayer.interface-result", player.name, pos_to_gps_string(e_pos, event.surface), { "vlayer.result-build" }, { "vlayer.control-type-" .. target:gsub("_", "-") } } end) --- Display label for the number of solar panels @@ -373,7 +373,7 @@ local vlayer_gui_control_see = local entity = i[vlayer_control_type_list[target]][n] if entity and entity.valid then player.set_controller{ type = defines.controllers.remote, position = entity.position, surface = entity.surface } - player.print{ "vlayer.result-interface-location", { "vlayer.control-type-" .. vlayer_control_type_list[target]:gsub("_", "-") }, pos_to_gps_string(entity.position) } + player.print{ "vlayer.result-interface-location", { "vlayer.control-type-" .. vlayer_control_type_list[target]:gsub("_", "-") }, pos_to_gps_string(entity.position, entity.surface) } end end end) @@ -415,10 +415,10 @@ local vlayer_gui_control_remove = local i = vlayer.get_interfaces() if i and i[vlayer_control_type_list[target]] then - local interface_type, interface_position = vlayer.remove_interface(i[vlayer_control_type_list[target]][n].surface, i[vlayer_control_type_list[target]][n].position) + local interface_type, interface_surface, interface_position = vlayer.remove_interface(i[vlayer_control_type_list[target]][n].surface, i[vlayer_control_type_list[target]][n].position) if interface_type then - game.print{ "vlayer.interface-result", player.name, pos_to_gps_string(interface_position), { "vlayer.result-remove" }, { "vlayer.control-type-" .. interface_type } } + game.print{ "vlayer.interface-result", player.name, pos_to_gps_string(interface_position, interface_surface), { "vlayer.result-remove" }, { "vlayer.control-type-" .. interface_type } } end end end From fdf0cb66cfbe153004dec92adfc19aea1abe45c4 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Tue, 14 Jan 2025 18:53:31 +0900 Subject: [PATCH 103/176] . --- exp_legacy/module/modules/control/vlayer.lua | 2 -- 1 file changed, 2 deletions(-) diff --git a/exp_legacy/module/modules/control/vlayer.lua b/exp_legacy/module/modules/control/vlayer.lua index 5e879a3e..0b80127f 100644 --- a/exp_legacy/module/modules/control/vlayer.lua +++ b/exp_legacy/module/modules/control/vlayer.lua @@ -40,11 +40,9 @@ Storage.register(vlayer_data, function(tbl) vlayer_data = tbl end) ---[[ if script.active_mods["space-age"] then config.allowed_items.landfill.surface_area = math.floor(config.allowed_items.landfill.surface_area * 2.5) end -]] for name, properties in pairs(config.allowed_items) do properties.modded = false From 781760d67e11f5da7e1ba91c2ba80e04b4b9c4e4 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Tue, 14 Jan 2025 19:13:57 +0900 Subject: [PATCH 104/176] . --- exp_legacy/module/modules/gui/bonus.lua | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/exp_legacy/module/modules/gui/bonus.lua b/exp_legacy/module/modules/gui/bonus.lua index 1f89048f..f0ee48d8 100644 --- a/exp_legacy/module/modules/gui/bonus.lua +++ b/exp_legacy/module/modules/gui/bonus.lua @@ -75,23 +75,25 @@ local function apply_periodic_bonus(player) local disp = frame.container["bonus_st_2"].disp.table if vlayer.get_statistics()["energy_sustained"] > 0 then - --[[ - local armor = player.get_inventory(defines.inventory.character_armor)[1].grid + local armor = player.get_inventory(defines.inventory.character_armor)[1] if armor then - local slider = disp["bonus_display_personal_battery_recharge_slider"].slider_value * 100000 * config.player_special_bonus_rate / 6 + local armor_grid = armor.grid - for i = 1, #armor.equipment do - if armor.equipment[i].energy < armor.equipment[i].max_energy then - local energy_required = math.min(math.floor(armor.equipment[i].max_energy - armor.equipment[i].energy), vlayer.get_statistics()["energy_storage"], slider) - armor.equipment[i].energy = armor.equipment[i].energy + energy_required - vlayer.energy_changed(-energy_required) + if armor_grid then + local slider = disp["bonus_display_personal_battery_recharge_slider"].slider_value * 100000 * config.player_special_bonus_rate / 6 - slider = slider - energy_required + for i = 1, #armor_grid.equipment do + if armor_grid.equipment[i].energy < armor_grid.equipment[i].max_energy then + local energy_required = math.min(math.floor(armor_grid.equipment[i].max_energy - armor_grid.equipment[i].energy), vlayer.get_statistics()["energy_storage"], slider) + armor_grid.equipment[i].energy = armor_grid.equipment[i].energy + energy_required + vlayer.energy_changed(-energy_required) + + slider = slider - energy_required + end end end end - ]] end end From 7c87cfc8bc610c1074e2c3fea4134a5cbf0f7f5d Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Tue, 14 Jan 2025 19:19:55 +0900 Subject: [PATCH 105/176] . --- exp_legacy/module/modules/gui/vlayer.lua | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/exp_legacy/module/modules/gui/vlayer.lua b/exp_legacy/module/modules/gui/vlayer.lua index e37c0437..44409c24 100644 --- a/exp_legacy/module/modules/gui/vlayer.lua +++ b/exp_legacy/module/modules/gui/vlayer.lua @@ -127,7 +127,7 @@ Selection.on_selection(SelectionConvertArea, function(event) vlayer.create_output_interface(event.surface, e_pos, e_circ, player) end - game.print{ "vlayer.interface-result", player.name, pos_to_gps_string(e_pos, event.surface), { "vlayer.result-build" }, { "vlayer.control-type-" .. target:gsub("_", "-") } } + game.print{ "vlayer.interface-result", player.name, pos_to_gps_string(e_pos, event.surface.name), { "vlayer.result-build" }, { "vlayer.control-type-" .. target:gsub("_", "-") } } end) --- Display label for the number of solar panels @@ -373,7 +373,7 @@ local vlayer_gui_control_see = local entity = i[vlayer_control_type_list[target]][n] if entity and entity.valid then player.set_controller{ type = defines.controllers.remote, position = entity.position, surface = entity.surface } - player.print{ "vlayer.result-interface-location", { "vlayer.control-type-" .. vlayer_control_type_list[target]:gsub("_", "-") }, pos_to_gps_string(entity.position, entity.surface) } + player.print{ "vlayer.result-interface-location", { "vlayer.control-type-" .. vlayer_control_type_list[target]:gsub("_", "-") }, pos_to_gps_string(entity.position, entity.surface.name) } end end end) @@ -418,7 +418,7 @@ local vlayer_gui_control_remove = local interface_type, interface_surface, interface_position = vlayer.remove_interface(i[vlayer_control_type_list[target]][n].surface, i[vlayer_control_type_list[target]][n].position) if interface_type then - game.print{ "vlayer.interface-result", player.name, pos_to_gps_string(interface_position, interface_surface), { "vlayer.result-remove" }, { "vlayer.control-type-" .. interface_type } } + game.print{ "vlayer.interface-result", player.name, pos_to_gps_string(interface_position, interface_surface.name), { "vlayer.result-remove" }, { "vlayer.control-type-" .. interface_type } } end end end From 29abf08b706f47c34824f818567d455718f003cc Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Tue, 14 Jan 2025 19:48:51 +0900 Subject: [PATCH 106/176] . --- exp_legacy/module/modules/gui/bonus.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/exp_legacy/module/modules/gui/bonus.lua b/exp_legacy/module/modules/gui/bonus.lua index f0ee48d8..266d811b 100644 --- a/exp_legacy/module/modules/gui/bonus.lua +++ b/exp_legacy/module/modules/gui/bonus.lua @@ -75,10 +75,10 @@ local function apply_periodic_bonus(player) local disp = frame.container["bonus_st_2"].disp.table if vlayer.get_statistics()["energy_sustained"] > 0 then - local armor = player.get_inventory(defines.inventory.character_armor)[1] + local armor = player.get_inventory(defines.inventory.character_armor) if armor then - local armor_grid = armor.grid + local armor_grid = armor[1].grid if armor_grid then local slider = disp["bonus_display_personal_battery_recharge_slider"].slider_value * 100000 * config.player_special_bonus_rate / 6 From 7784dbf3ad23734f49a51112f9ac6b1b958a41a3 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Tue, 14 Jan 2025 23:38:43 +0900 Subject: [PATCH 107/176] . --- exp_legacy/module/modules/gui/bonus.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/exp_legacy/module/modules/gui/bonus.lua b/exp_legacy/module/modules/gui/bonus.lua index 266d811b..c4d63c17 100644 --- a/exp_legacy/module/modules/gui/bonus.lua +++ b/exp_legacy/module/modules/gui/bonus.lua @@ -77,7 +77,7 @@ local function apply_periodic_bonus(player) if vlayer.get_statistics()["energy_sustained"] > 0 then local armor = player.get_inventory(defines.inventory.character_armor) - if armor then + if armor and armor[1] then local armor_grid = armor[1].grid if armor_grid then From 736df61152952bb92590019ece64bca27704a4d7 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Wed, 15 Jan 2025 12:44:37 +0900 Subject: [PATCH 108/176] . --- exp_legacy/module/config/vlayer.lua | 2 +- exp_legacy/module/modules/control/vlayer.lua | 4 ---- exp_legacy/module/modules/gui/bonus.lua | 2 +- 3 files changed, 2 insertions(+), 6 deletions(-) diff --git a/exp_legacy/module/config/vlayer.lua b/exp_legacy/module/config/vlayer.lua index 70db3ac3..8406dd72 100644 --- a/exp_legacy/module/config/vlayer.lua +++ b/exp_legacy/module/config/vlayer.lua @@ -54,7 +54,7 @@ return { ["landfill"] = { starting_value = 0, required_area = 0, - surface_area = 8, -- Tiles + surface_area = 20, -- Tiles }, ["wood"] = { starting_value = 0, diff --git a/exp_legacy/module/modules/control/vlayer.lua b/exp_legacy/module/modules/control/vlayer.lua index 0b80127f..cff7aea8 100644 --- a/exp_legacy/module/modules/control/vlayer.lua +++ b/exp_legacy/module/modules/control/vlayer.lua @@ -40,10 +40,6 @@ Storage.register(vlayer_data, function(tbl) vlayer_data = tbl end) -if script.active_mods["space-age"] then - config.allowed_items.landfill.surface_area = math.floor(config.allowed_items.landfill.surface_area * 2.5) -end - for name, properties in pairs(config.allowed_items) do properties.modded = false diff --git a/exp_legacy/module/modules/gui/bonus.lua b/exp_legacy/module/modules/gui/bonus.lua index c4d63c17..25da2127 100644 --- a/exp_legacy/module/modules/gui/bonus.lua +++ b/exp_legacy/module/modules/gui/bonus.lua @@ -77,7 +77,7 @@ local function apply_periodic_bonus(player) if vlayer.get_statistics()["energy_sustained"] > 0 then local armor = player.get_inventory(defines.inventory.character_armor) - if armor and armor[1] then + if armor and armor[1] and armor[1].valid_for_read then local armor_grid = armor[1].grid if armor_grid then From 9fb1af24d29e096565299823560690279ea4be60 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Wed, 15 Jan 2025 16:50:05 +0900 Subject: [PATCH 109/176] . --- exp_legacy/module/modules/gui/bonus.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/exp_legacy/module/modules/gui/bonus.lua b/exp_legacy/module/modules/gui/bonus.lua index 25da2127..9ee65303 100644 --- a/exp_legacy/module/modules/gui/bonus.lua +++ b/exp_legacy/module/modules/gui/bonus.lua @@ -77,10 +77,10 @@ local function apply_periodic_bonus(player) if vlayer.get_statistics()["energy_sustained"] > 0 then local armor = player.get_inventory(defines.inventory.character_armor) - if armor and armor[1] and armor[1].valid_for_read then + if armor and armor[1] and armor[1].valid_for_read and armor[1].grid then local armor_grid = armor[1].grid - if armor_grid then + if armor_grid and armor_grid.available_in_batteries and armor_grid.battery_capacity and armor_grid.available_in_batteries < armor_grid.battery_capacity then local slider = disp["bonus_display_personal_battery_recharge_slider"].slider_value * 100000 * config.player_special_bonus_rate / 6 for i = 1, #armor_grid.equipment do From 8ad24b3afd0ba4593ac6e2549bafcb59d6c96549 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Wed, 15 Jan 2025 17:36:34 +0900 Subject: [PATCH 110/176] . --- exp_legacy/module/modules/addons/compilatron.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/exp_legacy/module/modules/addons/compilatron.lua b/exp_legacy/module/modules/addons/compilatron.lua index c72020fa..c6843a8c 100644 --- a/exp_legacy/module/modules/addons/compilatron.lua +++ b/exp_legacy/module/modules/addons/compilatron.lua @@ -44,7 +44,7 @@ local speech_bubble_async = local function circle_messages() for name, ent in pairs(Public.compilatrons) do if not ent.valid then - Public.spawn_compilatron(game.players[1].surface or game.surfaces[1], name) + Public.spawn_compilatron(game.surfaces[1] or game.players[1].surface, name) end local current_message = Public.current_messages[name] local msg_number From f9405b930deec906d37c754267d9bda2119e25d4 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Thu, 16 Jan 2025 14:06:51 +0900 Subject: [PATCH 111/176] . --- exp_legacy/module/config/research.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/exp_legacy/module/config/research.lua b/exp_legacy/module/config/research.lua index 7ba2e223..07925afa 100644 --- a/exp_legacy/module/config/research.lua +++ b/exp_legacy/module/config/research.lua @@ -114,9 +114,9 @@ return { -- Robot Speed ["worker-robots-speed-7"] = 7, -- Laser Damage - ["energy-weapons-damage-7"] = 7, + ["laser-weapons-damage-7"] = 7, -- Electric Damage - ["electric-weapons-damage-3"] = 3, + ["electric-weapons-damage-4"] = 4, -- Explosive Damage ["stronger-explosives-7"] = 7, -- Bullet Damage From 55fe9b6069ef8c89f1a1dcfb346dd9b0b22fd6c4 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Fri, 17 Jan 2025 18:05:21 +0900 Subject: [PATCH 112/176] . --- exp_legacy/module/modules/control/vlayer.lua | 21 ++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/exp_legacy/module/modules/control/vlayer.lua b/exp_legacy/module/modules/control/vlayer.lua index cff7aea8..01633c9d 100644 --- a/exp_legacy/module/modules/control/vlayer.lua +++ b/exp_legacy/module/modules/control/vlayer.lua @@ -439,19 +439,20 @@ local function handle_output_interfaces() vlayer_data.entity_interfaces.storage_output[index] = nil else local inventory = interface.get_inventory(defines.inventory.chest) + local inventory_request_sections = interface.get_or_create_control_behavior().sections - for i = 1, interface.request_slot_count do - local request = interface.get_request_slot(i) + for i = 1, #inventory_request_sections do + for _, v in pairs(inventory_request_sections[i].filters) do + if v.value and config.allowed_items[v.value.name] then + local current_amount = inventory.get_item_count(v.value.name) + local request_amount = math.min(v.min - current_amount, vlayer_data.storage.items[v.value.name]) - if request and config.allowed_items[request.name] then - local current_amount = inventory.get_item_count(request.name) - local request_amount = math.min(request.count - current_amount, vlayer_data.storage.items[request.name]) + if request_amount > 0 and inventory.can_insert{ name = v.value.name, count = request_amount } then + local removed_item_count = vlayer.remove_item(v.value.name, request_amount) - if request_amount > 0 and inventory.can_insert{ name = request.name, count = request_amount } then - local removed_item_count = vlayer.remove_item(request.name, request_amount) - - if removed_item_count > 0 then - inventory.insert{ name = request.name, count = removed_item_count } + if removed_item_count > 0 then + inventory.insert{ name = v.value.name, count = removed_item_count, quality = "normal" } + end end end end From e2173cc57d766c9e2750c58d4ec2445fb039ee9e Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Fri, 17 Jan 2025 20:05:42 +0900 Subject: [PATCH 113/176] . --- exp_scenario/module/locale/en.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/exp_scenario/module/locale/en.cfg b/exp_scenario/module/locale/en.cfg index 52edc056..f2086f9c 100644 --- a/exp_scenario/module/locale/en.cfg +++ b/exp_scenario/module/locale/en.cfg @@ -275,7 +275,7 @@ cleared-last=__1__ had their last warning cleared by __2__. description=Replace tiles with shallow water. requires-explosives=__ITEM__cliff-explosives__ are required to create water. enter=Entered waterfill selection mode, select the area to fill with water. -exit=Exited water fill seclection mode. +exit=Exited waterfill seclection mode. nauvis-only=Can only waterfill on Nauvis, this may change in the future. area-too-large=Selected area is too large, must be less than __1__ tiles, selected __2__. too-few-explosives=Requires __1__ __ITEM__cliff-explosives__ you have __2__. From 3fd2876ba785d04a72323b937bdbe117835c1a15 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Fri, 17 Jan 2025 20:07:36 +0900 Subject: [PATCH 114/176] . --- exp_legacy/module/locale/en/gui.cfg | 2 ++ exp_scenario/module/locale/en.cfg | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/exp_legacy/module/locale/en/gui.cfg b/exp_legacy/module/locale/en/gui.cfg index 0e9058bf..6252ec27 100644 --- a/exp_legacy/module/locale/en/gui.cfg +++ b/exp_legacy/module/locale/en/gui.cfg @@ -289,6 +289,8 @@ control-type-energy=Energy control-type-circuit=Circuit control-type-storage-input=Storage Input control-type-storage-output=Storage Output +enter=Entered vlayer selection mode. +exit=Exited vlayer selection mode. [module] main-tooltip=Module GUI diff --git a/exp_scenario/module/locale/en.cfg b/exp_scenario/module/locale/en.cfg index f2086f9c..2dd747e4 100644 --- a/exp_scenario/module/locale/en.cfg +++ b/exp_scenario/module/locale/en.cfg @@ -275,7 +275,7 @@ cleared-last=__1__ had their last warning cleared by __2__. description=Replace tiles with shallow water. requires-explosives=__ITEM__cliff-explosives__ are required to create water. enter=Entered waterfill selection mode, select the area to fill with water. -exit=Exited waterfill seclection mode. +exit=Exited waterfill selection mode. nauvis-only=Can only waterfill on Nauvis, this may change in the future. area-too-large=Selected area is too large, must be less than __1__ tiles, selected __2__. too-few-explosives=Requires __1__ __ITEM__cliff-explosives__ you have __2__. From 3f351df82d55d28eaf79fb326abb99d81f1ff2eb Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Fri, 17 Jan 2025 20:09:48 +0900 Subject: [PATCH 115/176] . --- exp_legacy/module/locale/zh-CN/gui.cfg | 2 ++ exp_legacy/module/locale/zh-TW/gui.cfg | 2 ++ exp_scenario/module/locale/zh-CN.cfg | 4 ++-- exp_scenario/module/locale/zh-TW.cfg | 4 ++-- 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/exp_legacy/module/locale/zh-CN/gui.cfg b/exp_legacy/module/locale/zh-CN/gui.cfg index 657363f1..da2ac6bb 100644 --- a/exp_legacy/module/locale/zh-CN/gui.cfg +++ b/exp_legacy/module/locale/zh-CN/gui.cfg @@ -289,6 +289,8 @@ control-type-energy=電力 control-type-circuit=回路 control-type-storage-input=放入箱 control-type-storage-output=提取箱 +enter=現在進入 vlayer 區域選擇 +exit=已進入 vlayer 區域選擇 [module] main-tooltip=模組介面 diff --git a/exp_legacy/module/locale/zh-TW/gui.cfg b/exp_legacy/module/locale/zh-TW/gui.cfg index 657363f1..da2ac6bb 100644 --- a/exp_legacy/module/locale/zh-TW/gui.cfg +++ b/exp_legacy/module/locale/zh-TW/gui.cfg @@ -289,6 +289,8 @@ control-type-energy=電力 control-type-circuit=回路 control-type-storage-input=放入箱 control-type-storage-output=提取箱 +enter=現在進入 vlayer 區域選擇 +exit=已進入 vlayer 區域選擇 [module] main-tooltip=模組介面 diff --git a/exp_scenario/module/locale/zh-CN.cfg b/exp_scenario/module/locale/zh-CN.cfg index 109dd7ce..6abe8229 100644 --- a/exp_scenario/module/locale/zh-CN.cfg +++ b/exp_scenario/module/locale/zh-CN.cfg @@ -274,8 +274,8 @@ cleared-last=__1__ 的最後警告己被 __2__ 清除。 [exp-commands_waterfill] description=把地換為淺水。 requires-explosives=沒有足夠的 __ITEM__cliff-explosives__ 。 -enter=現在進入區域選擇 -exit=已進入區域選擇 +enter=現在進入挖水區域選擇 +exit=已進入挖水區域選擇 nauvis-only=只可在地星上填水,之後可能會再改變。 area-too-large=區域太大了,需少過 __1__ 格,你選了 __2__ 格。 too-few-explosives=需要 __1__ 個 __ITEM__cliff-explosives__,你現在有 __2__ 個。 diff --git a/exp_scenario/module/locale/zh-TW.cfg b/exp_scenario/module/locale/zh-TW.cfg index 109dd7ce..6abe8229 100644 --- a/exp_scenario/module/locale/zh-TW.cfg +++ b/exp_scenario/module/locale/zh-TW.cfg @@ -274,8 +274,8 @@ cleared-last=__1__ 的最後警告己被 __2__ 清除。 [exp-commands_waterfill] description=把地換為淺水。 requires-explosives=沒有足夠的 __ITEM__cliff-explosives__ 。 -enter=現在進入區域選擇 -exit=已進入區域選擇 +enter=現在進入挖水區域選擇 +exit=已進入挖水區域選擇 nauvis-only=只可在地星上填水,之後可能會再改變。 area-too-large=區域太大了,需少過 __1__ 格,你選了 __2__ 格。 too-few-explosives=需要 __1__ 個 __ITEM__cliff-explosives__,你現在有 __2__ 個。 From e291759cb733aa75654f2a705d62f2a3a77bba29 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Fri, 17 Jan 2025 20:14:03 +0900 Subject: [PATCH 116/176] . --- exp_legacy/module/modules/gui/vlayer.lua | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/exp_legacy/module/modules/gui/vlayer.lua b/exp_legacy/module/modules/gui/vlayer.lua index 44409c24..12595259 100644 --- a/exp_legacy/module/modules/gui/vlayer.lua +++ b/exp_legacy/module/modules/gui/vlayer.lua @@ -390,9 +390,10 @@ local vlayer_gui_control_build = }:on_click(function(player, _, _) if Selection.is_selecting(player, SelectionConvertArea) then Selection.stop(player) + player.print{ "vlayer.exit" } else Selection.start(player, SelectionConvertArea) - player.print{ "exp-commands_waterfill.entered-area-selection" } + player.print{ "vlayer.enter" } end vlayer_gui_list_refresh(player) From c56f8b4f27d43afc695aef128d031d4dd9adf645 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Mon, 20 Jan 2025 16:19:52 +0900 Subject: [PATCH 117/176] . --- exp_legacy/module/modules/control/vlayer.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/exp_legacy/module/modules/control/vlayer.lua b/exp_legacy/module/modules/control/vlayer.lua index 01633c9d..0bdb9ba3 100644 --- a/exp_legacy/module/modules/control/vlayer.lua +++ b/exp_legacy/module/modules/control/vlayer.lua @@ -439,7 +439,7 @@ local function handle_output_interfaces() vlayer_data.entity_interfaces.storage_output[index] = nil else local inventory = interface.get_inventory(defines.inventory.chest) - local inventory_request_sections = interface.get_or_create_control_behavior().sections + local inventory_request_sections = interface.get_logistic_sections().sections for i = 1, #inventory_request_sections do for _, v in pairs(inventory_request_sections[i].filters) do From 79f6747f79d5ba7f9758bdcf371077847cbab285 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Mon, 20 Jan 2025 16:26:27 +0900 Subject: [PATCH 118/176] . --- exp_util/module/module_exports.lua | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/exp_util/module/module_exports.lua b/exp_util/module/module_exports.lua index f7059c5f..a41fdb04 100644 --- a/exp_util/module/module_exports.lua +++ b/exp_util/module/module_exports.lua @@ -277,15 +277,15 @@ function ExpUtil.extract_time_units(ticks, units) -- Remove units that are not requested if not units.days then - rtn.hours = rtn.hours + rtn.days * 24 + rtn.hours = rtn.hours + (rtn.days or 0) * 24 rtn.days = nil end if not units.hours then - rtn.minutes = rtn.minutes + rtn.hours * 60 + rtn.minutes = rtn.minutes + (rtn.hours or 0) * 60 rtn.hours = nil end if not units.minutes then - rtn.seconds = rtn.seconds + rtn.minutes * 60 + rtn.seconds = rtn.seconds + (rtn.minutes or 0) * 60 rtn.minutes = nil end if not units.seconds then From 7b7482b70d371057b0fdfbe1a50a133116dd6105 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Mon, 20 Jan 2025 16:27:56 +0900 Subject: [PATCH 119/176] . --- exp_util/module/module_exports.lua | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/exp_util/module/module_exports.lua b/exp_util/module/module_exports.lua index a41fdb04..2d58ee9e 100644 --- a/exp_util/module/module_exports.lua +++ b/exp_util/module/module_exports.lua @@ -277,15 +277,15 @@ function ExpUtil.extract_time_units(ticks, units) -- Remove units that are not requested if not units.days then - rtn.hours = rtn.hours + (rtn.days or 0) * 24 + rtn.hours = (rtn.hours or 0) + (rtn.days or 0) * 24 rtn.days = nil end if not units.hours then - rtn.minutes = rtn.minutes + (rtn.hours or 0) * 60 + rtn.minutes = (rtn.minutes or 0) + (rtn.hours or 0) * 60 rtn.hours = nil end if not units.minutes then - rtn.seconds = rtn.seconds + (rtn.minutes or 0) * 60 + rtn.seconds = (rtn.seconds or 0) + (rtn.minutes or 0) * 60 rtn.minutes = nil end if not units.seconds then From f21586192d6c1c29b0f570fbd52886f30bd6558b Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Mon, 20 Jan 2025 16:29:52 +0900 Subject: [PATCH 120/176] . --- exp_util/module/module_exports.lua | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/exp_util/module/module_exports.lua b/exp_util/module/module_exports.lua index 2d58ee9e..4d0bb78a 100644 --- a/exp_util/module/module_exports.lua +++ b/exp_util/module/module_exports.lua @@ -265,6 +265,7 @@ end --- @param units Common.format_time_param_units A table selecting which units should be displayed, options are: days, hours, minutes, seconds --- @return Common.extract_time_units_return function ExpUtil.extract_time_units(ticks, units) + ticks = ticks or 0 -- Calculate the values to be determine the display values local max_days, max_hours, max_minutes, max_seconds = ticks / 5184000, ticks / 216000, ticks / 3600, ticks / 60 @@ -277,15 +278,15 @@ function ExpUtil.extract_time_units(ticks, units) -- Remove units that are not requested if not units.days then - rtn.hours = (rtn.hours or 0) + (rtn.days or 0) * 24 + rtn.hours = rtn.hours + rtn.days * 24 rtn.days = nil end if not units.hours then - rtn.minutes = (rtn.minutes or 0) + (rtn.hours or 0) * 60 + rtn.minutes = rtn.minutes + rtn.hours * 60 rtn.hours = nil end if not units.minutes then - rtn.seconds = (rtn.seconds or 0) + (rtn.minutes or 0) * 60 + rtn.seconds = rtn.seconds + rtn.minutes * 60 rtn.minutes = nil end if not units.seconds then From f95f5faad9f9e71c780732b95f98fc60cdbc02cc Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Mon, 20 Jan 2025 16:33:10 +0900 Subject: [PATCH 121/176] . --- exp_util/module/module_exports.lua | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/exp_util/module/module_exports.lua b/exp_util/module/module_exports.lua index 4d0bb78a..616758d2 100644 --- a/exp_util/module/module_exports.lua +++ b/exp_util/module/module_exports.lua @@ -265,15 +265,14 @@ end --- @param units Common.format_time_param_units A table selecting which units should be displayed, options are: days, hours, minutes, seconds --- @return Common.extract_time_units_return function ExpUtil.extract_time_units(ticks, units) - ticks = ticks or 0 -- Calculate the values to be determine the display values local max_days, max_hours, max_minutes, max_seconds = ticks / 5184000, ticks / 216000, ticks / 3600, ticks / 60 local rtn = { - day = floor(max_days), - hours = floor(max_hours - floor(max_days) * 24), - minutes = floor(max_minutes - floor(max_hours) * 60), - seconds = floor(max_seconds - floor(max_minutes) * 60), + day = floor(max_days) or 0, + hours = floor(max_hours - floor(max_days) * 24) or 0, + minutes = floor(max_minutes - floor(max_hours) * 60) or 0, + seconds = floor(max_seconds - floor(max_minutes) * 60) or 0, } -- Remove units that are not requested From ab12a8be527fc5a5d7973ea98c4ba7b0cd0045b3 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Mon, 20 Jan 2025 16:36:41 +0900 Subject: [PATCH 122/176] . --- exp_util/module/module_exports.lua | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/exp_util/module/module_exports.lua b/exp_util/module/module_exports.lua index 616758d2..afdc0cf0 100644 --- a/exp_util/module/module_exports.lua +++ b/exp_util/module/module_exports.lua @@ -269,10 +269,10 @@ function ExpUtil.extract_time_units(ticks, units) local max_days, max_hours, max_minutes, max_seconds = ticks / 5184000, ticks / 216000, ticks / 3600, ticks / 60 local rtn = { - day = floor(max_days) or 0, - hours = floor(max_hours - floor(max_days) * 24) or 0, - minutes = floor(max_minutes - floor(max_hours) * 60) or 0, - seconds = floor(max_seconds - floor(max_minutes) * 60) or 0, + days = floor(max_days), + hours = floor(max_hours - floor(max_days) * 24), + minutes = floor(max_minutes - floor(max_hours) * 60), + seconds = floor(max_seconds - floor(max_minutes) * 60), } -- Remove units that are not requested From 3c876d4873a0b63a25c03f209c1727f69e63eb9c Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Mon, 20 Jan 2025 22:54:38 +0900 Subject: [PATCH 123/176] . --- exp_legacy/module/config/research.lua | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/exp_legacy/module/config/research.lua b/exp_legacy/module/config/research.lua index 07925afa..df106aa7 100644 --- a/exp_legacy/module/config/research.lua +++ b/exp_legacy/module/config/research.lua @@ -106,7 +106,9 @@ return { -- Artillery Range ["artillery-shell-range-1"] = 1, -- Artillery Speed - ["artillery-shell-speed-1"] = 1 + ["artillery-shell-speed-1"] = 1, + -- Follower Robot Count + ["follower-robot-count-5"] = 5, }, ["space-age"] = { -- Mining Productivity @@ -152,7 +154,9 @@ return { -- Rocket Fuel Productivity ["rocket-fuel-productivity"] = 1, -- Rocket Part Productivity - ["rocket-part-productivity"] = 1 + ["rocket-part-productivity"] = 1, + -- Follower Robot Count + ["follower-robot-count-5"] = 5, } }, } From 30f9e325500d23db0478c06127f52f1708c9dd49 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Tue, 21 Jan 2025 19:05:14 +0900 Subject: [PATCH 124/176] . --- exp_legacy/module/config/nukeprotect.lua | 4 ---- exp_legacy/module/config/research.lua | 9 +++++++++ exp_legacy/module/modules/addons/nukeprotect.lua | 9 --------- exp_legacy/module/modules/gui/research.lua | 9 +++++++++ 4 files changed, 18 insertions(+), 13 deletions(-) diff --git a/exp_legacy/module/config/nukeprotect.lua b/exp_legacy/module/config/nukeprotect.lua index 65af3830..f80b6a7a 100644 --- a/exp_legacy/module/config/nukeprotect.lua +++ b/exp_legacy/module/config/nukeprotect.lua @@ -27,8 +27,4 @@ return { }, ignore_permisison = "bypass-nukeprotect", -- @setting ignore_permisison The permission that nukeprotect will ignore ignore_admins = true, -- @setting ignore_admins Ignore admins, true by default. Allows usage outside of the roles module - disable_nuke_research = false, -- @setting disable_nuke_research Disable the nuke research, true by default - disable_nuke_research_names = { - ["atomic-bomb"] = true, - }, -- @setting disable_nuke_research_names The names of the researches to disabled } diff --git a/exp_legacy/module/config/research.lua b/exp_legacy/module/config/research.lua index df106aa7..c2c705d7 100644 --- a/exp_legacy/module/config/research.lua +++ b/exp_legacy/module/config/research.lua @@ -159,4 +159,13 @@ return { ["follower-robot-count-5"] = 5, } }, + -- prevent research up to a certain level + limit_res = { + -- Artillery Range + ["artillery-shell-range-1"] = 7, + -- Artillery Speed + ["artillery-shell-speed-1"] = 7, + -- Atomic Bomb + -- ["atomic-bomb"] = 1 + }, } diff --git a/exp_legacy/module/modules/addons/nukeprotect.lua b/exp_legacy/module/modules/addons/nukeprotect.lua index e474de28..59238290 100644 --- a/exp_legacy/module/modules/addons/nukeprotect.lua +++ b/exp_legacy/module/modules/addons/nukeprotect.lua @@ -43,12 +43,3 @@ for _, inventory in ipairs(config.inventories) do end) end end - -if config.disable_nuke_research then - Event.add(defines.events.on_research_started, function(event) - local name = event.research.name - if config.disable_nuke_research_names[name] then - event.research.force.cancel_current_research() - end - end) -end diff --git a/exp_legacy/module/modules/gui/research.lua b/exp_legacy/module/modules/gui/research.lua index 3325581a..06865eb9 100644 --- a/exp_legacy/module/modules/gui/research.lua +++ b/exp_legacy/module/modules/gui/research.lua @@ -309,6 +309,15 @@ Event.add(defines.events.on_research_finished, function(event) end end) +Event.add(defines.events.on_research_started, function(event) + local r = event.research + local res_name = config.limit_res[r.name] + + if res_name and r.level > res_name then + table.remove(r.force.research_queue) + end +end) + Event.on_nth_tick(60, function() local current_time = research_time_format(game.tick) From e3d42442d4540458707b78586f7803fae61e9a4f Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Tue, 21 Jan 2025 19:33:31 +0900 Subject: [PATCH 125/176] . --- exp_legacy/module/modules/gui/research.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/exp_legacy/module/modules/gui/research.lua b/exp_legacy/module/modules/gui/research.lua index 06865eb9..5ac84803 100644 --- a/exp_legacy/module/modules/gui/research.lua +++ b/exp_legacy/module/modules/gui/research.lua @@ -311,9 +311,9 @@ end) Event.add(defines.events.on_research_started, function(event) local r = event.research - local res_name = config.limit_res[r.name] + local rn = config.limit_res[r.name] - if res_name and r.level > res_name then + if rn and r.level > rn then table.remove(r.force.research_queue) end end) From 8376f240bbc03066785f1fb3262664cb018e0237 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Tue, 21 Jan 2025 19:52:12 +0900 Subject: [PATCH 126/176] . --- exp_legacy/module/modules/gui/research.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/exp_legacy/module/modules/gui/research.lua b/exp_legacy/module/modules/gui/research.lua index 5ac84803..4d78c29d 100644 --- a/exp_legacy/module/modules/gui/research.lua +++ b/exp_legacy/module/modules/gui/research.lua @@ -314,7 +314,7 @@ Event.add(defines.events.on_research_started, function(event) local rn = config.limit_res[r.name] if rn and r.level > rn then - table.remove(r.force.research_queue) + r.force.research_queue = table.remove(r.force.research_queue) end end) From 9b72f9e127f8eb3b6c6ab469be060ed2dcf39e95 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Tue, 21 Jan 2025 19:58:57 +0900 Subject: [PATCH 127/176] . --- exp_legacy/module/modules/gui/research.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/exp_legacy/module/modules/gui/research.lua b/exp_legacy/module/modules/gui/research.lua index 4d78c29d..f33e69bf 100644 --- a/exp_legacy/module/modules/gui/research.lua +++ b/exp_legacy/module/modules/gui/research.lua @@ -314,7 +314,7 @@ Event.add(defines.events.on_research_started, function(event) local rn = config.limit_res[r.name] if rn and r.level > rn then - r.force.research_queue = table.remove(r.force.research_queue) + r.force.cancel_current_research() end end) From d101dc1f11996c3be6568557a04f144fd0f3046d Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Tue, 21 Jan 2025 20:07:41 +0900 Subject: [PATCH 128/176] . --- exp_legacy/module/modules/gui/research.lua | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/exp_legacy/module/modules/gui/research.lua b/exp_legacy/module/modules/gui/research.lua index f33e69bf..a04c3043 100644 --- a/exp_legacy/module/modules/gui/research.lua +++ b/exp_legacy/module/modules/gui/research.lua @@ -311,10 +311,12 @@ end) Event.add(defines.events.on_research_started, function(event) local r = event.research - local rn = config.limit_res[r.name] + local rq = r.force.research_queue - if rn and r.level > rn then - r.force.cancel_current_research() + for i = #rq, 1, -1 do + if config.limit_res[rq[i]] and rq[i].level > config.limit_res[rq[i]] then + r.force.cancel_current_research() + end end end) From 4ab3fb0b4d3f3f2a48cb0a3a6830de2ba6a19868 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Tue, 21 Jan 2025 20:42:09 +0900 Subject: [PATCH 129/176] . --- exp_legacy/module/modules/gui/research.lua | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/exp_legacy/module/modules/gui/research.lua b/exp_legacy/module/modules/gui/research.lua index a04c3043..d96b2b94 100644 --- a/exp_legacy/module/modules/gui/research.lua +++ b/exp_legacy/module/modules/gui/research.lua @@ -309,16 +309,18 @@ Event.add(defines.events.on_research_finished, function(event) end end) +--[[ Event.add(defines.events.on_research_started, function(event) local r = event.research local rq = r.force.research_queue for i = #rq, 1, -1 do - if config.limit_res[rq[i]] and rq[i].level > config.limit_res[rq[i]] then + if config.limit_res[rq[i] ] and rq[i].level > config.limit_res[rq[i] ] then r.force.cancel_current_research() end end end) +]] Event.on_nth_tick(60, function() local current_time = research_time_format(game.tick) From 70625f08880812cb08bd8864cd12b9cb0e040749 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Wed, 22 Jan 2025 18:01:47 +0900 Subject: [PATCH 130/176] . --- exp_scenario/module/commands/waterfill.lua | 26 ++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/exp_scenario/module/commands/waterfill.lua b/exp_scenario/module/commands/waterfill.lua index 1451112e..ef4c57b7 100644 --- a/exp_scenario/module/commands/waterfill.lua +++ b/exp_scenario/module/commands/waterfill.lua @@ -36,15 +36,26 @@ Selection.on_selection(SelectionName, function(event) ]] local area_size = (area.right_bottom.x - area.left_top.x) * (area.right_bottom.y - area.left_top.y) + if area_size > 1000 then player.print({ "exp-commands_waterfill.area-too-large", 1000, area_size }, Commands.print_settings.error) return end - local item_count = player.get_item_count("cliff-explosives") - if item_count < area_size then - player.print({ "exp-commands_waterfill.too-few-explosives", area_size, item_count }, Commands.print_settings.error) + local item_count_cliff = player.get_item_count("cliff-explosives") + local item_count_cliff_craft = math.min(math.floor(player.get_item_count("explosives") / 10), player.get_item_count("barrel"), player.get_item_count("grenade")) + local item_count_type_bool = true + + if item_count_cliff > 0 and item_count_cliff < area_size then + player.print({ "exp-commands_waterfill.too-few-explosives", area_size, item_count_cliff }, Commands.print_settings.error) return + elseif item_count_cliff_craft > 0 then + if item_count_cliff_craft < area_size then + player.print({ "exp-commands_waterfill.too-few-explosives", area_size, item_count_cliff_craft }, Commands.print_settings.error) + return + else + item_count_type_bool = false + end end local tile_count = 0 @@ -61,7 +72,14 @@ Selection.on_selection(SelectionName, function(event) surface.set_tiles(tiles_to_make, true, "abort_on_collision", true, false, player, 0) local remaining_tiles = surface.count_tiles_filtered{ area = area, name = "water-mud" } - player.remove_item{ name = "cliff-explosives", count = tile_count - remaining_tiles } + + if item_count_type_bool then + player.remove_item{ name = "cliff-explosives", count = tile_count - remaining_tiles } + else + player.remove_item{ name = "explosives", count = 10 * (tile_count - remaining_tiles) } + player.remove_item{ name = "barrel", count = tile_count - remaining_tiles } + player.remove_item{ name = "grenade", count = tile_count - remaining_tiles } + end if remaining_tiles > 0 then player.print({ "exp-commands_waterfill.part-complete", tile_count, remaining_tiles }, Commands.print_settings.default) From b8f78835d09473594e7b23c6c3a0f0e9a999fe29 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Wed, 22 Jan 2025 18:11:19 +0900 Subject: [PATCH 131/176] . --- exp_scenario/module/commands/waterfill.lua | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/exp_scenario/module/commands/waterfill.lua b/exp_scenario/module/commands/waterfill.lua index ef4c57b7..0603e613 100644 --- a/exp_scenario/module/commands/waterfill.lua +++ b/exp_scenario/module/commands/waterfill.lua @@ -72,13 +72,14 @@ Selection.on_selection(SelectionName, function(event) surface.set_tiles(tiles_to_make, true, "abort_on_collision", true, false, player, 0) local remaining_tiles = surface.count_tiles_filtered{ area = area, name = "water-mud" } + local t_diff = tile_count - remaining_tiles if item_count_type_bool then - player.remove_item{ name = "cliff-explosives", count = tile_count - remaining_tiles } + player.remove_item{ name = "cliff-explosives", count = t_diff } else - player.remove_item{ name = "explosives", count = 10 * (tile_count - remaining_tiles) } - player.remove_item{ name = "barrel", count = tile_count - remaining_tiles } - player.remove_item{ name = "grenade", count = tile_count - remaining_tiles } + player.remove_item{ name = "explosives", count = 10 * t_diff } + player.remove_item{ name = "barrel", count = t_diff } + player.remove_item{ name = "grenade", count = t_diff } end if remaining_tiles > 0 then From 3914e4594d2cb5508cd5a6ed67e369881368728f Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Wed, 22 Jan 2025 18:17:14 +0900 Subject: [PATCH 132/176] . --- exp_scenario/module/commands/waterfill.lua | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/exp_scenario/module/commands/waterfill.lua b/exp_scenario/module/commands/waterfill.lua index 0603e613..3525c658 100644 --- a/exp_scenario/module/commands/waterfill.lua +++ b/exp_scenario/module/commands/waterfill.lua @@ -43,19 +43,22 @@ Selection.on_selection(SelectionName, function(event) end local item_count_cliff = player.get_item_count("cliff-explosives") - local item_count_cliff_craft = math.min(math.floor(player.get_item_count("explosives") / 10), player.get_item_count("barrel"), player.get_item_count("grenade")) + local item_count_craft = math.min(math.floor(player.get_item_count("explosives") / 10), player.get_item_count("barrel"), player.get_item_count("grenade")) local item_count_type_bool = true + local item_count_cliff_ne = false + local item_count_craft_ne = false - if item_count_cliff > 0 and item_count_cliff < area_size then + if item_count_cliff < area_size then + item_count_cliff_ne = true + elseif item_count_craft < area_size then + item_count_craft_ne = true + end + + if item_count_cliff_ne and item_count_craft_ne then player.print({ "exp-commands_waterfill.too-few-explosives", area_size, item_count_cliff }, Commands.print_settings.error) return - elseif item_count_cliff_craft > 0 then - if item_count_cliff_craft < area_size then - player.print({ "exp-commands_waterfill.too-few-explosives", area_size, item_count_cliff_craft }, Commands.print_settings.error) - return - else - item_count_type_bool = false - end + elseif item_count_cliff_ne and (not item_count_craft_ne) then + item_count_type_bool = false end local tile_count = 0 From 112d5b7bdaf7f88bd419b46b21bc80e138756c05 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Wed, 22 Jan 2025 18:27:36 +0900 Subject: [PATCH 133/176] . --- exp_scenario/module/commands/waterfill.lua | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/exp_scenario/module/commands/waterfill.lua b/exp_scenario/module/commands/waterfill.lua index 3525c658..65e2b21e 100644 --- a/exp_scenario/module/commands/waterfill.lua +++ b/exp_scenario/module/commands/waterfill.lua @@ -57,7 +57,9 @@ Selection.on_selection(SelectionName, function(event) if item_count_cliff_ne and item_count_craft_ne then player.print({ "exp-commands_waterfill.too-few-explosives", area_size, item_count_cliff }, Commands.print_settings.error) return - elseif item_count_cliff_ne and (not item_count_craft_ne) then + end + + if item_count_cliff_ne and (not item_count_craft_ne) then item_count_type_bool = false end From fe901c5f11f58b14fcfc02354a8dcaff365bf4ce Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Wed, 22 Jan 2025 18:30:24 +0900 Subject: [PATCH 134/176] . --- exp_scenario/module/commands/waterfill.lua | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/exp_scenario/module/commands/waterfill.lua b/exp_scenario/module/commands/waterfill.lua index 65e2b21e..e86e4445 100644 --- a/exp_scenario/module/commands/waterfill.lua +++ b/exp_scenario/module/commands/waterfill.lua @@ -44,7 +44,6 @@ Selection.on_selection(SelectionName, function(event) local item_count_cliff = player.get_item_count("cliff-explosives") local item_count_craft = math.min(math.floor(player.get_item_count("explosives") / 10), player.get_item_count("barrel"), player.get_item_count("grenade")) - local item_count_type_bool = true local item_count_cliff_ne = false local item_count_craft_ne = false @@ -59,10 +58,6 @@ Selection.on_selection(SelectionName, function(event) return end - if item_count_cliff_ne and (not item_count_craft_ne) then - item_count_type_bool = false - end - local tile_count = 0 local tiles_to_make = {} for x = area.left_top.x, area.right_bottom.x do @@ -79,7 +74,7 @@ Selection.on_selection(SelectionName, function(event) local remaining_tiles = surface.count_tiles_filtered{ area = area, name = "water-mud" } local t_diff = tile_count - remaining_tiles - if item_count_type_bool then + if (not item_count_cliff_ne) and item_count_craft_ne then player.remove_item{ name = "cliff-explosives", count = t_diff } else player.remove_item{ name = "explosives", count = 10 * t_diff } From 733c70823af73583be24e976c24125fbdf67b6c0 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Wed, 22 Jan 2025 18:31:07 +0900 Subject: [PATCH 135/176] . --- exp_scenario/module/commands/waterfill.lua | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/exp_scenario/module/commands/waterfill.lua b/exp_scenario/module/commands/waterfill.lua index e86e4445..7070586c 100644 --- a/exp_scenario/module/commands/waterfill.lua +++ b/exp_scenario/module/commands/waterfill.lua @@ -47,13 +47,7 @@ Selection.on_selection(SelectionName, function(event) local item_count_cliff_ne = false local item_count_craft_ne = false - if item_count_cliff < area_size then - item_count_cliff_ne = true - elseif item_count_craft < area_size then - item_count_craft_ne = true - end - - if item_count_cliff_ne and item_count_craft_ne then + if item_count_cliff < area_size and item_count_craft < area_size then player.print({ "exp-commands_waterfill.too-few-explosives", area_size, item_count_cliff }, Commands.print_settings.error) return end From b297b0d0b7f71af1cd548a3b0c2d2f955d5d3483 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Wed, 22 Jan 2025 18:32:28 +0900 Subject: [PATCH 136/176] . --- exp_scenario/module/commands/waterfill.lua | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/exp_scenario/module/commands/waterfill.lua b/exp_scenario/module/commands/waterfill.lua index 7070586c..570be202 100644 --- a/exp_scenario/module/commands/waterfill.lua +++ b/exp_scenario/module/commands/waterfill.lua @@ -44,10 +44,8 @@ Selection.on_selection(SelectionName, function(event) local item_count_cliff = player.get_item_count("cliff-explosives") local item_count_craft = math.min(math.floor(player.get_item_count("explosives") / 10), player.get_item_count("barrel"), player.get_item_count("grenade")) - local item_count_cliff_ne = false - local item_count_craft_ne = false - if item_count_cliff < area_size and item_count_craft < area_size then + if (item_count_cliff < area_size) and (item_count_craft < area_size) then player.print({ "exp-commands_waterfill.too-few-explosives", area_size, item_count_cliff }, Commands.print_settings.error) return end @@ -68,7 +66,7 @@ Selection.on_selection(SelectionName, function(event) local remaining_tiles = surface.count_tiles_filtered{ area = area, name = "water-mud" } local t_diff = tile_count - remaining_tiles - if (not item_count_cliff_ne) and item_count_craft_ne then + if item_count_cliff >= area_size then player.remove_item{ name = "cliff-explosives", count = t_diff } else player.remove_item{ name = "explosives", count = 10 * t_diff } From 5e1c27d52fbb02205a869f07ebcf817aa98cca1c Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Wed, 22 Jan 2025 18:37:29 +0900 Subject: [PATCH 137/176] . --- exp_scenario/module/locale/en.cfg | 2 +- exp_scenario/module/locale/zh-CN.cfg | 2 +- exp_scenario/module/locale/zh-TW.cfg | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/exp_scenario/module/locale/en.cfg b/exp_scenario/module/locale/en.cfg index 2dd747e4..1b928702 100644 --- a/exp_scenario/module/locale/en.cfg +++ b/exp_scenario/module/locale/en.cfg @@ -278,6 +278,6 @@ enter=Entered waterfill selection mode, select the area to fill with water. exit=Exited waterfill selection mode. nauvis-only=Can only waterfill on Nauvis, this may change in the future. area-too-large=Selected area is too large, must be less than __1__ tiles, selected __2__. -too-few-explosives=Requires __1__ __ITEM__cliff-explosives__ you have __2__. +too-few-explosives=Requires __1__ __ITEM__cliff-explosives__ or its ingredients, you have __2__. part-complete=__1__ tiles were filled with water, but entities are blocking __2__ tiles. complete=__1__ tiles were filled with water. diff --git a/exp_scenario/module/locale/zh-CN.cfg b/exp_scenario/module/locale/zh-CN.cfg index 6abe8229..48c25ba3 100644 --- a/exp_scenario/module/locale/zh-CN.cfg +++ b/exp_scenario/module/locale/zh-CN.cfg @@ -278,6 +278,6 @@ enter=現在進入挖水區域選擇 exit=已進入挖水區域選擇 nauvis-only=只可在地星上填水,之後可能會再改變。 area-too-large=區域太大了,需少過 __1__ 格,你選了 __2__ 格。 -too-few-explosives=需要 __1__ 個 __ITEM__cliff-explosives__,你現在有 __2__ 個。 +too-few-explosives=需要 __1__ 個 __ITEM__cliff-explosives__或其材料,你現在有 __2__ 個。 part-complete=__1__ 格已填水,但有 __2__ 格有東西擋著。 complete=__1__ 格已經轉換好。 diff --git a/exp_scenario/module/locale/zh-TW.cfg b/exp_scenario/module/locale/zh-TW.cfg index 6abe8229..48c25ba3 100644 --- a/exp_scenario/module/locale/zh-TW.cfg +++ b/exp_scenario/module/locale/zh-TW.cfg @@ -278,6 +278,6 @@ enter=現在進入挖水區域選擇 exit=已進入挖水區域選擇 nauvis-only=只可在地星上填水,之後可能會再改變。 area-too-large=區域太大了,需少過 __1__ 格,你選了 __2__ 格。 -too-few-explosives=需要 __1__ 個 __ITEM__cliff-explosives__,你現在有 __2__ 個。 +too-few-explosives=需要 __1__ 個 __ITEM__cliff-explosives__或其材料,你現在有 __2__ 個。 part-complete=__1__ 格已填水,但有 __2__ 格有東西擋著。 complete=__1__ 格已經轉換好。 From 852cf45d0c8b6db87de7a9359b43590457748398 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Wed, 22 Jan 2025 18:39:18 +0900 Subject: [PATCH 138/176] . --- exp_scenario/module/commands/waterfill.lua | 1 - 1 file changed, 1 deletion(-) diff --git a/exp_scenario/module/commands/waterfill.lua b/exp_scenario/module/commands/waterfill.lua index 570be202..8c36202b 100644 --- a/exp_scenario/module/commands/waterfill.lua +++ b/exp_scenario/module/commands/waterfill.lua @@ -36,7 +36,6 @@ Selection.on_selection(SelectionName, function(event) ]] local area_size = (area.right_bottom.x - area.left_top.x) * (area.right_bottom.y - area.left_top.y) - if area_size > 1000 then player.print({ "exp-commands_waterfill.area-too-large", 1000, area_size }, Commands.print_settings.error) return From d4b4f50618611669223529995cdb7becfd8a164f Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Wed, 22 Jan 2025 18:42:39 +0900 Subject: [PATCH 139/176] . --- exp_scenario/module/locale/zh-CN.cfg | 2 +- exp_scenario/module/locale/zh-TW.cfg | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/exp_scenario/module/locale/zh-CN.cfg b/exp_scenario/module/locale/zh-CN.cfg index 48c25ba3..4272fa51 100644 --- a/exp_scenario/module/locale/zh-CN.cfg +++ b/exp_scenario/module/locale/zh-CN.cfg @@ -278,6 +278,6 @@ enter=現在進入挖水區域選擇 exit=已進入挖水區域選擇 nauvis-only=只可在地星上填水,之後可能會再改變。 area-too-large=區域太大了,需少過 __1__ 格,你選了 __2__ 格。 -too-few-explosives=需要 __1__ 個 __ITEM__cliff-explosives__或其材料,你現在有 __2__ 個。 +too-few-explosives=需要 __1__ 個 __ITEM__cliff-explosives__ 或其材料,你現在有 __2__ 個。 part-complete=__1__ 格已填水,但有 __2__ 格有東西擋著。 complete=__1__ 格已經轉換好。 diff --git a/exp_scenario/module/locale/zh-TW.cfg b/exp_scenario/module/locale/zh-TW.cfg index 48c25ba3..4272fa51 100644 --- a/exp_scenario/module/locale/zh-TW.cfg +++ b/exp_scenario/module/locale/zh-TW.cfg @@ -278,6 +278,6 @@ enter=現在進入挖水區域選擇 exit=已進入挖水區域選擇 nauvis-only=只可在地星上填水,之後可能會再改變。 area-too-large=區域太大了,需少過 __1__ 格,你選了 __2__ 格。 -too-few-explosives=需要 __1__ 個 __ITEM__cliff-explosives__或其材料,你現在有 __2__ 個。 +too-few-explosives=需要 __1__ 個 __ITEM__cliff-explosives__ 或其材料,你現在有 __2__ 個。 part-complete=__1__ 格已填水,但有 __2__ 格有東西擋著。 complete=__1__ 格已經轉換好。 From 991d26510edc00aaca450e1245854083b154a070 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Wed, 22 Jan 2025 19:46:56 +0900 Subject: [PATCH 140/176] . --- exp_legacy/module/modules/gui/vlayer.lua | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/exp_legacy/module/modules/gui/vlayer.lua b/exp_legacy/module/modules/gui/vlayer.lua index 12595259..fc924518 100644 --- a/exp_legacy/module/modules/gui/vlayer.lua +++ b/exp_legacy/module/modules/gui/vlayer.lua @@ -81,10 +81,16 @@ Selection.on_selection(SelectionConvertArea, function(event) return nil end - local entities = event.surface.find_entities_filtered{ area = area, name = "steel-chest", force = player.force } local frame = Gui.get_left_element(player, vlayer_container) local disp = frame.container["vlayer_st_2"].disp.table local target = vlayer_control_type_list[disp[vlayer_gui_control_type.name].selected_index] + local entities + + if event.surface and event.surface.platform and target == "energy" then + entities = event.surface.find_entities_filtered{ area = area, name = "constant-combinator", force = player.force } + else + entities = event.surface.find_entities_filtered{ area = area, name = "steel-chest", force = player.force } + end if #entities == 0 then player.print{ "vlayer.steel-chest-detect" } From 357eba0e649c468b41c1640f8812ad5d979510dc Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Wed, 22 Jan 2025 19:51:04 +0900 Subject: [PATCH 141/176] . --- exp_legacy/module/modules/gui/vlayer.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/exp_legacy/module/modules/gui/vlayer.lua b/exp_legacy/module/modules/gui/vlayer.lua index fc924518..e196098b 100644 --- a/exp_legacy/module/modules/gui/vlayer.lua +++ b/exp_legacy/module/modules/gui/vlayer.lua @@ -106,7 +106,7 @@ Selection.on_selection(SelectionConvertArea, function(event) local e = entities[1] local e_pos = { x = string.format("%.1f", e.position.x), y = string.format("%.1f", e.position.y) } - local e_circ = {} -- e.circuit_connected_entities --- TODO use new circuit api + local e_circ = e.get_wire_connectors if not e.get_inventory(defines.inventory.chest).is_empty() then player.print{ "vlayer.steel-chest-empty" } From 1f7ac1ace541f0d838c232b7ae3004635a9aff9f Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Wed, 22 Jan 2025 20:10:48 +0900 Subject: [PATCH 142/176] . --- exp_legacy/module/modules/control/vlayer.lua | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/exp_legacy/module/modules/control/vlayer.lua b/exp_legacy/module/modules/control/vlayer.lua index 0bdb9ba3..800b824f 100644 --- a/exp_legacy/module/modules/control/vlayer.lua +++ b/exp_legacy/module/modules/control/vlayer.lua @@ -340,9 +340,9 @@ function vlayer.create_input_interface(surface, position, circuit, last_user) end if circuit then - for k, _ in pairs(circuit) do - for _, v in pairs(circuit[k]) do - interface.connect_neighbour{ wire = defines.wire_type[k], target_entity = v } + for k, _ in pairs({ defines.wire_connector_id.circuit_red, defines.wire_connector_id.circuit_green }) do + for _, v in pairs(circuit.get_wire_connector{ wire_connector_id = k, or_create = false }.real_connections) do + interface.connect_to{ target = v.target } end end end @@ -418,9 +418,9 @@ function vlayer.create_output_interface(surface, position, circuit, last_user) end if circuit then - for k, _ in pairs(circuit) do - for _, v in pairs(circuit[k]) do - interface.connect_neighbour{ wire = defines.wire_type[k], target_entity = v } + for k, _ in pairs({ defines.wire_connector_id.circuit_red, defines.wire_connector_id.circuit_green }) do + for _, v in pairs(circuit.get_wire_connector{ wire_connector_id = k, or_create = false }.real_connections) do + interface.connect_to{ target = v.target } end end end @@ -555,9 +555,9 @@ function vlayer.create_circuit_interface(surface, position, circuit, last_user) end if circuit then - for k, _ in pairs(circuit) do - for _, v in pairs(circuit[k]) do - interface.connect_neighbour{ wire = defines.wire_type[k], target_entity = v } + for k, _ in pairs({ defines.wire_connector_id.circuit_red, defines.wire_connector_id.circuit_green }) do + for _, v in pairs(circuit.get_wire_connector{ wire_connector_id = k, or_create = false }.real_connections) do + interface.connect_to{ target = v.target } end end end From 0eaa2b15428d5a0678c38a39eae40204f4afecf6 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Wed, 22 Jan 2025 20:13:32 +0900 Subject: [PATCH 143/176] . --- exp_legacy/module/modules/gui/vlayer.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/exp_legacy/module/modules/gui/vlayer.lua b/exp_legacy/module/modules/gui/vlayer.lua index e196098b..74c8ac00 100644 --- a/exp_legacy/module/modules/gui/vlayer.lua +++ b/exp_legacy/module/modules/gui/vlayer.lua @@ -106,7 +106,7 @@ Selection.on_selection(SelectionConvertArea, function(event) local e = entities[1] local e_pos = { x = string.format("%.1f", e.position.x), y = string.format("%.1f", e.position.y) } - local e_circ = e.get_wire_connectors + local e_circ = e.get_wire_connectors{ or_create = false } if not e.get_inventory(defines.inventory.chest).is_empty() then player.print{ "vlayer.steel-chest-empty" } From 16574b590820a5a0a2b7f462bbe98b4fcb3e8e88 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Wed, 22 Jan 2025 20:26:23 +0900 Subject: [PATCH 144/176] . --- exp_legacy/module/modules/gui/vlayer.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/exp_legacy/module/modules/gui/vlayer.lua b/exp_legacy/module/modules/gui/vlayer.lua index 74c8ac00..31b9686e 100644 --- a/exp_legacy/module/modules/gui/vlayer.lua +++ b/exp_legacy/module/modules/gui/vlayer.lua @@ -106,7 +106,7 @@ Selection.on_selection(SelectionConvertArea, function(event) local e = entities[1] local e_pos = { x = string.format("%.1f", e.position.x), y = string.format("%.1f", e.position.y) } - local e_circ = e.get_wire_connectors{ or_create = false } + local e_circ = {} -- e.get_wire_connectors{ or_create = false } if not e.get_inventory(defines.inventory.chest).is_empty() then player.print{ "vlayer.steel-chest-empty" } From 064dead08c2d9e6c72b2b2aa942a50e041fad71c Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Wed, 22 Jan 2025 20:27:50 +0900 Subject: [PATCH 145/176] . --- exp_legacy/module/modules/gui/vlayer.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/exp_legacy/module/modules/gui/vlayer.lua b/exp_legacy/module/modules/gui/vlayer.lua index 31b9686e..f0301633 100644 --- a/exp_legacy/module/modules/gui/vlayer.lua +++ b/exp_legacy/module/modules/gui/vlayer.lua @@ -106,7 +106,7 @@ Selection.on_selection(SelectionConvertArea, function(event) local e = entities[1] local e_pos = { x = string.format("%.1f", e.position.x), y = string.format("%.1f", e.position.y) } - local e_circ = {} -- e.get_wire_connectors{ or_create = false } + local e_circ = nil -- e.get_wire_connectors{ or_create = false } if not e.get_inventory(defines.inventory.chest).is_empty() then player.print{ "vlayer.steel-chest-empty" } From 6520014c47d936629a12f2edb01e9bfc00b5508c Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Wed, 22 Jan 2025 20:37:19 +0900 Subject: [PATCH 146/176] . --- exp_legacy/module/modules/gui/vlayer.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/exp_legacy/module/modules/gui/vlayer.lua b/exp_legacy/module/modules/gui/vlayer.lua index f0301633..62e504d8 100644 --- a/exp_legacy/module/modules/gui/vlayer.lua +++ b/exp_legacy/module/modules/gui/vlayer.lua @@ -108,7 +108,7 @@ Selection.on_selection(SelectionConvertArea, function(event) local e_pos = { x = string.format("%.1f", e.position.x), y = string.format("%.1f", e.position.y) } local e_circ = nil -- e.get_wire_connectors{ or_create = false } - if not e.get_inventory(defines.inventory.chest).is_empty() then + if e.name and e.name == "steel-chest" and (not e.get_inventory(defines.inventory.chest).is_empty()) then player.print{ "vlayer.steel-chest-empty" } return nil end From bf29c1ccd97764e438f576f763d5c983e43ceaf7 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Thu, 23 Jan 2025 22:14:32 +0900 Subject: [PATCH 147/176] . --- exp_legacy/module/config/vlayer.lua | 1 + 1 file changed, 1 insertion(+) diff --git a/exp_legacy/module/config/vlayer.lua b/exp_legacy/module/config/vlayer.lua index 8406dd72..67e8f13a 100644 --- a/exp_legacy/module/config/vlayer.lua +++ b/exp_legacy/module/config/vlayer.lua @@ -9,6 +9,7 @@ return { unlimited_capacity = false, --- @setting unlimited_capacity When true the vlayer has an unlimited energy capacity, accumulators are not required unlimited_surface_area = false, --- @setting unlimited_surface_area When true the vlayer has an unlimited surface area, landfill is not required modded_auto_downgrade = true, --- @setting modded_auto_downgrade When true modded items will be converted into their base game equivalent, original items can not be recovered + power_on_space = false, --- @setting power_on_space When true allow on spaceship mimic_surface = "nauvis", --- @setting mimic_surface Surface name/index the vlayer will copy its settings from, use nil to use the settings below surface = { --- @setting surface When mimic_surface is nil these settings will be used instead, see LuaSurface for details From cea73d7ab8f161690b10c0d864213cf760e1b263 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Thu, 23 Jan 2025 22:16:21 +0900 Subject: [PATCH 148/176] . --- exp_legacy/module/modules/gui/vlayer.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/exp_legacy/module/modules/gui/vlayer.lua b/exp_legacy/module/modules/gui/vlayer.lua index 62e504d8..15e6af02 100644 --- a/exp_legacy/module/modules/gui/vlayer.lua +++ b/exp_legacy/module/modules/gui/vlayer.lua @@ -86,7 +86,7 @@ Selection.on_selection(SelectionConvertArea, function(event) local target = vlayer_control_type_list[disp[vlayer_gui_control_type.name].selected_index] local entities - if event.surface and event.surface.platform and target == "energy" then + if config.power_on_space and event.surface and event.surface.platform and target == "energy" then entities = event.surface.find_entities_filtered{ area = area, name = "constant-combinator", force = player.force } else entities = event.surface.find_entities_filtered{ area = area, name = "steel-chest", force = player.force } From c00f5b54a8eb7fe89c0f568adc27beea3bc9c815 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Thu, 23 Jan 2025 22:17:26 +0900 Subject: [PATCH 149/176] . --- exp_legacy/module/config/vlayer.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/exp_legacy/module/config/vlayer.lua b/exp_legacy/module/config/vlayer.lua index 67e8f13a..e52db602 100644 --- a/exp_legacy/module/config/vlayer.lua +++ b/exp_legacy/module/config/vlayer.lua @@ -9,7 +9,7 @@ return { unlimited_capacity = false, --- @setting unlimited_capacity When true the vlayer has an unlimited energy capacity, accumulators are not required unlimited_surface_area = false, --- @setting unlimited_surface_area When true the vlayer has an unlimited surface area, landfill is not required modded_auto_downgrade = true, --- @setting modded_auto_downgrade When true modded items will be converted into their base game equivalent, original items can not be recovered - power_on_space = false, --- @setting power_on_space When true allow on spaceship + power_on_space = true, --- @setting power_on_space When true allow on spaceship mimic_surface = "nauvis", --- @setting mimic_surface Surface name/index the vlayer will copy its settings from, use nil to use the settings below surface = { --- @setting surface When mimic_surface is nil these settings will be used instead, see LuaSurface for details From 403bace3abb0b4779d479e2eb47e9f53f34271fb Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Thu, 23 Jan 2025 22:22:53 +0900 Subject: [PATCH 150/176] . --- exp_scenario/module/commands/waterfill.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/exp_scenario/module/commands/waterfill.lua b/exp_scenario/module/commands/waterfill.lua index 8c36202b..20d84005 100644 --- a/exp_scenario/module/commands/waterfill.lua +++ b/exp_scenario/module/commands/waterfill.lua @@ -65,7 +65,7 @@ Selection.on_selection(SelectionName, function(event) local remaining_tiles = surface.count_tiles_filtered{ area = area, name = "water-mud" } local t_diff = tile_count - remaining_tiles - if item_count_cliff >= area_size then + if item_count_cliff >= t_diff then player.remove_item{ name = "cliff-explosives", count = t_diff } else player.remove_item{ name = "explosives", count = 10 * t_diff } From a86a625d628dc090817895dbdd41ee03721f36fe Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Sun, 26 Jan 2025 13:50:43 +0900 Subject: [PATCH 151/176] . --- exp_scenario/module/commands/kill.lua | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/exp_scenario/module/commands/kill.lua b/exp_scenario/module/commands/kill.lua index 2ab239bd..05149f4e 100644 --- a/exp_scenario/module/commands/kill.lua +++ b/exp_scenario/module/commands/kill.lua @@ -20,11 +20,10 @@ Commands.new("kill", { "exp-commands_kill.description" }) if other_player == nil then -- Can only be nil if the target is the player and they are already dead return Commands.status.error{ "exp-commands_kill.already-dead" } - elseif other_player == player then - -- You can always kill yourself - other_player.character.die() - elseif highest_role(other_player).index < highest_role(player).index then - -- Can kill lower role players + elseif (other_player == player) or highest_role(other_player).index < highest_role(player).index then + -- You can always kill yourself or can kill lower role players + local pos = other_player.position + other_player.surface.create_entity{ name = "lightning", position = { pos.x, pos.y - 16 }, target = other_player.character } other_player.character.die() else return Commands.status.unauthorised{ "exp-commands_kill.lower-role" } From c2089a89ba63aef67471c69d02fdd78b440b0768 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Sun, 26 Jan 2025 13:50:58 +0900 Subject: [PATCH 152/176] . --- exp_scenario/module/commands/kill.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/exp_scenario/module/commands/kill.lua b/exp_scenario/module/commands/kill.lua index 05149f4e..509daff6 100644 --- a/exp_scenario/module/commands/kill.lua +++ b/exp_scenario/module/commands/kill.lua @@ -20,7 +20,7 @@ Commands.new("kill", { "exp-commands_kill.description" }) if other_player == nil then -- Can only be nil if the target is the player and they are already dead return Commands.status.error{ "exp-commands_kill.already-dead" } - elseif (other_player == player) or highest_role(other_player).index < highest_role(player).index then + elseif (other_player == player) or (highest_role(other_player).index < highest_role(player).index) then -- You can always kill yourself or can kill lower role players local pos = other_player.position other_player.surface.create_entity{ name = "lightning", position = { pos.x, pos.y - 16 }, target = other_player.character } From a7a0e85a95e97963c38d1bf94e1280998d897304 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Sun, 26 Jan 2025 22:02:17 +0900 Subject: [PATCH 153/176] . --- exp_scenario/module/commands/kill.lua | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/exp_scenario/module/commands/kill.lua b/exp_scenario/module/commands/kill.lua index 509daff6..7c3dd922 100644 --- a/exp_scenario/module/commands/kill.lua +++ b/exp_scenario/module/commands/kill.lua @@ -22,8 +22,10 @@ Commands.new("kill", { "exp-commands_kill.description" }) return Commands.status.error{ "exp-commands_kill.already-dead" } elseif (other_player == player) or (highest_role(other_player).index < highest_role(player).index) then -- You can always kill yourself or can kill lower role players - local pos = other_player.position - other_player.surface.create_entity{ name = "lightning", position = { pos.x, pos.y - 16 }, target = other_player.character } + if script.active_mods["space-age"] then + local pos = other_player.position + other_player.surface.create_entity{ name = "lightning", position = { pos.x, pos.y - 16 }, target = other_player.character } + end other_player.character.die() else return Commands.status.unauthorised{ "exp-commands_kill.lower-role" } From 1aaae3fa13a988a4382fab02fe19c15b4687599e Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Mon, 27 Jan 2025 00:00:04 +0900 Subject: [PATCH 154/176] . --- exp_scenario/module/commands/kill.lua | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/exp_scenario/module/commands/kill.lua b/exp_scenario/module/commands/kill.lua index 7c3dd922..ac4356d0 100644 --- a/exp_scenario/module/commands/kill.lua +++ b/exp_scenario/module/commands/kill.lua @@ -23,8 +23,7 @@ Commands.new("kill", { "exp-commands_kill.description" }) elseif (other_player == player) or (highest_role(other_player).index < highest_role(player).index) then -- You can always kill yourself or can kill lower role players if script.active_mods["space-age"] then - local pos = other_player.position - other_player.surface.create_entity{ name = "lightning", position = { pos.x, pos.y - 16 }, target = other_player.character } + other_player.surface.create_entity{ name = "lightning", position = { other_player.position.x, other_player.position.y - 16 }, target = other_player.character } end other_player.character.die() else From bbe25ec120c5bac6b0fd36a1063f141eba335ce5 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Tue, 28 Jan 2025 17:05:23 +0900 Subject: [PATCH 155/176] . --- exp_scenario/module/commands/waterfill.lua | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/exp_scenario/module/commands/waterfill.lua b/exp_scenario/module/commands/waterfill.lua index 20d84005..6ca7a005 100644 --- a/exp_scenario/module/commands/waterfill.lua +++ b/exp_scenario/module/commands/waterfill.lua @@ -43,8 +43,9 @@ Selection.on_selection(SelectionName, function(event) local item_count_cliff = player.get_item_count("cliff-explosives") local item_count_craft = math.min(math.floor(player.get_item_count("explosives") / 10), player.get_item_count("barrel"), player.get_item_count("grenade")) + local item_count_total = item_count_cliff + item_count_craft - if (item_count_cliff < area_size) and (item_count_craft < area_size) then + if item_count_total < area_size then player.print({ "exp-commands_waterfill.too-few-explosives", area_size, item_count_cliff }, Commands.print_settings.error) return end @@ -68,9 +69,11 @@ Selection.on_selection(SelectionName, function(event) if item_count_cliff >= t_diff then player.remove_item{ name = "cliff-explosives", count = t_diff } else - player.remove_item{ name = "explosives", count = 10 * t_diff } - player.remove_item{ name = "barrel", count = t_diff } - player.remove_item{ name = "grenade", count = t_diff } + local item_count_needed = t_diff - item_count_cliff + player.remove_item{ name = "cliff-explosives", count = item_count_cliff } + player.remove_item{ name = "explosives", count = 10 * item_count_needed } + player.remove_item{ name = "barrel", count = item_count_needed } + player.remove_item{ name = "grenade", count = item_count_needed } end if remaining_tiles > 0 then From 4bc18e10f5dd6204dd5474d75572906e63f754d4 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Tue, 28 Jan 2025 17:09:27 +0900 Subject: [PATCH 156/176] . --- exp_legacy/module/config/vlayer.lua | 3 +++ 1 file changed, 3 insertions(+) diff --git a/exp_legacy/module/config/vlayer.lua b/exp_legacy/module/config/vlayer.lua index e52db602..98c0644a 100644 --- a/exp_legacy/module/config/vlayer.lua +++ b/exp_legacy/module/config/vlayer.lua @@ -10,6 +10,9 @@ return { unlimited_surface_area = false, --- @setting unlimited_surface_area When true the vlayer has an unlimited surface area, landfill is not required modded_auto_downgrade = true, --- @setting modded_auto_downgrade When true modded items will be converted into their base game equivalent, original items can not be recovered power_on_space = true, --- @setting power_on_space When true allow on spaceship + power_on_space_research = { + ["research-productivity"] = 10 + }, mimic_surface = "nauvis", --- @setting mimic_surface Surface name/index the vlayer will copy its settings from, use nil to use the settings below surface = { --- @setting surface When mimic_surface is nil these settings will be used instead, see LuaSurface for details From d475a5546031f5dabcbea72f0979af630f1084f0 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Tue, 28 Jan 2025 17:55:04 +0900 Subject: [PATCH 157/176] . --- exp_legacy/module/config/vlayer.lua | 3 ++- exp_legacy/module/locale/en/gui.cfg | 1 + exp_legacy/module/locale/zh-CN/gui.cfg | 1 + exp_legacy/module/locale/zh-TW/gui.cfg | 1 + exp_legacy/module/modules/gui/vlayer.lua | 6 +++++- 5 files changed, 10 insertions(+), 2 deletions(-) diff --git a/exp_legacy/module/config/vlayer.lua b/exp_legacy/module/config/vlayer.lua index 98c0644a..b2d49af6 100644 --- a/exp_legacy/module/config/vlayer.lua +++ b/exp_legacy/module/config/vlayer.lua @@ -11,7 +11,8 @@ return { modded_auto_downgrade = true, --- @setting modded_auto_downgrade When true modded items will be converted into their base game equivalent, original items can not be recovered power_on_space = true, --- @setting power_on_space When true allow on spaceship power_on_space_research = { - ["research-productivity"] = 10 + name = "research-productivity", + level = 10 }, mimic_surface = "nauvis", --- @setting mimic_surface Surface name/index the vlayer will copy its settings from, use nil to use the settings below diff --git a/exp_legacy/module/locale/en/gui.cfg b/exp_legacy/module/locale/en/gui.cfg index 6252ec27..f59db6d8 100644 --- a/exp_legacy/module/locale/en/gui.cfg +++ b/exp_legacy/module/locale/en/gui.cfg @@ -289,6 +289,7 @@ control-type-energy=Energy control-type-circuit=Circuit control-type-storage-input=Storage Input control-type-storage-output=Storage Output +power-on-space-research=You need to research [technology=__1__] for the space platform vlayer feature. enter=Entered vlayer selection mode. exit=Exited vlayer selection mode. diff --git a/exp_legacy/module/locale/zh-CN/gui.cfg b/exp_legacy/module/locale/zh-CN/gui.cfg index da2ac6bb..442b3c4c 100644 --- a/exp_legacy/module/locale/zh-CN/gui.cfg +++ b/exp_legacy/module/locale/zh-CN/gui.cfg @@ -289,6 +289,7 @@ control-type-energy=電力 control-type-circuit=回路 control-type-storage-input=放入箱 control-type-storage-output=提取箱 +power-on-space-research=你要研究 [technology=__1__] 才可使用太空平台 vlayer 功能。 enter=現在進入 vlayer 區域選擇 exit=已進入 vlayer 區域選擇 diff --git a/exp_legacy/module/locale/zh-TW/gui.cfg b/exp_legacy/module/locale/zh-TW/gui.cfg index da2ac6bb..442b3c4c 100644 --- a/exp_legacy/module/locale/zh-TW/gui.cfg +++ b/exp_legacy/module/locale/zh-TW/gui.cfg @@ -289,6 +289,7 @@ control-type-energy=電力 control-type-circuit=回路 control-type-storage-input=放入箱 control-type-storage-output=提取箱 +power-on-space-research=你要研究 [technology=__1__] 才可使用太空平台 vlayer 功能。 enter=現在進入 vlayer 區域選擇 exit=已進入 vlayer 區域選擇 diff --git a/exp_legacy/module/modules/gui/vlayer.lua b/exp_legacy/module/modules/gui/vlayer.lua index 15e6af02..1f360336 100644 --- a/exp_legacy/module/modules/gui/vlayer.lua +++ b/exp_legacy/module/modules/gui/vlayer.lua @@ -87,7 +87,11 @@ Selection.on_selection(SelectionConvertArea, function(event) local entities if config.power_on_space and event.surface and event.surface.platform and target == "energy" then - entities = event.surface.find_entities_filtered{ area = area, name = "constant-combinator", force = player.force } + if player.force.technologies[config.power_on_space_research.name].level >= config.power_on_space_research.level then + entities = event.surface.find_entities_filtered{ area = area, name = "constant-combinator", force = player.force } + else + player.print{ "vlayer.power-on-space-research", config.power_on_space_research.name } + end else entities = event.surface.find_entities_filtered{ area = area, name = "steel-chest", force = player.force } end From 3ae1b7c1f82b36a50930b935601445219bc4bf2a Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Tue, 28 Jan 2025 18:01:00 +0900 Subject: [PATCH 158/176] . --- exp_legacy/module/locale/en/gui.cfg | 2 +- exp_legacy/module/locale/zh-CN/gui.cfg | 2 +- exp_legacy/module/locale/zh-TW/gui.cfg | 2 +- exp_legacy/module/modules/gui/vlayer.lua | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/exp_legacy/module/locale/en/gui.cfg b/exp_legacy/module/locale/en/gui.cfg index f59db6d8..bfc6f3d5 100644 --- a/exp_legacy/module/locale/en/gui.cfg +++ b/exp_legacy/module/locale/en/gui.cfg @@ -289,7 +289,7 @@ control-type-energy=Energy control-type-circuit=Circuit control-type-storage-input=Storage Input control-type-storage-output=Storage Output -power-on-space-research=You need to research [technology=__1__] for the space platform vlayer feature. +power-on-space-research=You need to research [technology=__1__] at __2__ level for the space platform vlayer feature. enter=Entered vlayer selection mode. exit=Exited vlayer selection mode. diff --git a/exp_legacy/module/locale/zh-CN/gui.cfg b/exp_legacy/module/locale/zh-CN/gui.cfg index 442b3c4c..4af76596 100644 --- a/exp_legacy/module/locale/zh-CN/gui.cfg +++ b/exp_legacy/module/locale/zh-CN/gui.cfg @@ -289,7 +289,7 @@ control-type-energy=電力 control-type-circuit=回路 control-type-storage-input=放入箱 control-type-storage-output=提取箱 -power-on-space-research=你要研究 [technology=__1__] 才可使用太空平台 vlayer 功能。 +power-on-space-research=你要研究 [technology=__1__] 在 __2__ 級 才可使用太空平台 vlayer 功能。 enter=現在進入 vlayer 區域選擇 exit=已進入 vlayer 區域選擇 diff --git a/exp_legacy/module/locale/zh-TW/gui.cfg b/exp_legacy/module/locale/zh-TW/gui.cfg index 442b3c4c..76864eb7 100644 --- a/exp_legacy/module/locale/zh-TW/gui.cfg +++ b/exp_legacy/module/locale/zh-TW/gui.cfg @@ -289,7 +289,7 @@ control-type-energy=電力 control-type-circuit=回路 control-type-storage-input=放入箱 control-type-storage-output=提取箱 -power-on-space-research=你要研究 [technology=__1__] 才可使用太空平台 vlayer 功能。 +power-on-space-research=你要研究 [technology=__1__] 在 __2__ 級才可使用太空平台 vlayer 功能。 enter=現在進入 vlayer 區域選擇 exit=已進入 vlayer 區域選擇 diff --git a/exp_legacy/module/modules/gui/vlayer.lua b/exp_legacy/module/modules/gui/vlayer.lua index 1f360336..b2ecbc2c 100644 --- a/exp_legacy/module/modules/gui/vlayer.lua +++ b/exp_legacy/module/modules/gui/vlayer.lua @@ -90,7 +90,7 @@ Selection.on_selection(SelectionConvertArea, function(event) if player.force.technologies[config.power_on_space_research.name].level >= config.power_on_space_research.level then entities = event.surface.find_entities_filtered{ area = area, name = "constant-combinator", force = player.force } else - player.print{ "vlayer.power-on-space-research", config.power_on_space_research.name } + player.print{ "vlayer.power-on-space-research", config.power_on_space_research.name, config.power_on_space_research.level } end else entities = event.surface.find_entities_filtered{ area = area, name = "steel-chest", force = player.force } From ddd6dc474ff366f50c654fcbd7faadcf6e95f0f3 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Tue, 28 Jan 2025 18:03:36 +0900 Subject: [PATCH 159/176] . --- exp_legacy/module/config/vlayer.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/exp_legacy/module/config/vlayer.lua b/exp_legacy/module/config/vlayer.lua index b2d49af6..64aafdf3 100644 --- a/exp_legacy/module/config/vlayer.lua +++ b/exp_legacy/module/config/vlayer.lua @@ -13,7 +13,7 @@ return { power_on_space_research = { name = "research-productivity", level = 10 - }, + }, --- @setting power_on_space_research the research level needed to use power_on_space mimic_surface = "nauvis", --- @setting mimic_surface Surface name/index the vlayer will copy its settings from, use nil to use the settings below surface = { --- @setting surface When mimic_surface is nil these settings will be used instead, see LuaSurface for details From 8ae03a7ee15e9e5c69f74ab74681d17162e43757 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Tue, 28 Jan 2025 18:03:50 +0900 Subject: [PATCH 160/176] . --- exp_legacy/module/config/vlayer.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/exp_legacy/module/config/vlayer.lua b/exp_legacy/module/config/vlayer.lua index 64aafdf3..db29bb15 100644 --- a/exp_legacy/module/config/vlayer.lua +++ b/exp_legacy/module/config/vlayer.lua @@ -10,10 +10,10 @@ return { unlimited_surface_area = false, --- @setting unlimited_surface_area When true the vlayer has an unlimited surface area, landfill is not required modded_auto_downgrade = true, --- @setting modded_auto_downgrade When true modded items will be converted into their base game equivalent, original items can not be recovered power_on_space = true, --- @setting power_on_space When true allow on spaceship - power_on_space_research = { + power_on_space_research = { --- @setting power_on_space_research the research level needed to use power_on_space name = "research-productivity", level = 10 - }, --- @setting power_on_space_research the research level needed to use power_on_space + }, mimic_surface = "nauvis", --- @setting mimic_surface Surface name/index the vlayer will copy its settings from, use nil to use the settings below surface = { --- @setting surface When mimic_surface is nil these settings will be used instead, see LuaSurface for details From a59f5830f2c0d6d845a4375eafc08c1a28da842b Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Tue, 28 Jan 2025 18:07:17 +0900 Subject: [PATCH 161/176] . --- exp_legacy/module/modules/gui/vlayer.lua | 1 + 1 file changed, 1 insertion(+) diff --git a/exp_legacy/module/modules/gui/vlayer.lua b/exp_legacy/module/modules/gui/vlayer.lua index b2ecbc2c..ec694a61 100644 --- a/exp_legacy/module/modules/gui/vlayer.lua +++ b/exp_legacy/module/modules/gui/vlayer.lua @@ -91,6 +91,7 @@ Selection.on_selection(SelectionConvertArea, function(event) entities = event.surface.find_entities_filtered{ area = area, name = "constant-combinator", force = player.force } else player.print{ "vlayer.power-on-space-research", config.power_on_space_research.name, config.power_on_space_research.level } + return nil end else entities = event.surface.find_entities_filtered{ area = area, name = "steel-chest", force = player.force } From 1d4af308437538be09aee2b4af907dba30788d0e Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Tue, 28 Jan 2025 19:49:14 +0900 Subject: [PATCH 162/176] . --- exp_legacy/module/config/bonus.lua | 1 + 1 file changed, 1 insertion(+) diff --git a/exp_legacy/module/config/bonus.lua b/exp_legacy/module/config/bonus.lua index 0f832ab7..05d0375b 100644 --- a/exp_legacy/module/config/bonus.lua +++ b/exp_legacy/module/config/bonus.lua @@ -18,6 +18,7 @@ return { ]] pts = { base = 260, + increase_percentage_per_role_level = 5, }, gui_display_width = { half = 150, From be6ccb27f13598c3b0f23a16fb8d5b294d9da7be Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Tue, 28 Jan 2025 20:21:14 +0900 Subject: [PATCH 163/176] . --- exp_legacy/module/config/bonus.lua | 1 + exp_legacy/module/modules/gui/bonus.lua | 1 + 2 files changed, 2 insertions(+) diff --git a/exp_legacy/module/config/bonus.lua b/exp_legacy/module/config/bonus.lua index 05d0375b..2e4052c4 100644 --- a/exp_legacy/module/config/bonus.lua +++ b/exp_legacy/module/config/bonus.lua @@ -19,6 +19,7 @@ return { pts = { base = 260, increase_percentage_per_role_level = 5, + role_name = "Member" }, gui_display_width = { half = 150, diff --git a/exp_legacy/module/modules/gui/bonus.lua b/exp_legacy/module/modules/gui/bonus.lua index 9ee65303..e696009d 100644 --- a/exp_legacy/module/modules/gui/bonus.lua +++ b/exp_legacy/module/modules/gui/bonus.lua @@ -329,6 +329,7 @@ bonus_container = local disp = frame.container["bonus_st_1"].disp.table local n = bonus_gui_pts_needed(player) disp[bonus_gui_control_pts_n_count.name].caption = n + disp[bonus_gui_control_pts_a_count.name].caption = config.pts.base * (Roles.get_player_highest_role(player).index - Roles.get_role_by_name(config.pts.role_name).index) local r = tonumber(disp[bonus_gui_control_pts_a_count.name].caption) - n disp[bonus_gui_control_pts_r_count.name].caption = r From dbe3c873f6cde20adeb20ebb5c12400759d37d0f Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Tue, 28 Jan 2025 20:26:14 +0900 Subject: [PATCH 164/176] . --- exp_legacy/module/modules/gui/bonus.lua | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/exp_legacy/module/modules/gui/bonus.lua b/exp_legacy/module/modules/gui/bonus.lua index e696009d..557ba5fb 100644 --- a/exp_legacy/module/modules/gui/bonus.lua +++ b/exp_legacy/module/modules/gui/bonus.lua @@ -62,6 +62,12 @@ local function apply_bonus(player) end end +local function max_bonus_pts_update(player) + local frame = Gui.get_left_element(player, bonus_container) + local disp = frame.container["bonus_st_2"].disp.table + disp["bonus_control_pts_a_count"].caption = config.pts.base * (Roles.get_player_highest_role(player).index - Roles.get_role_by_name(config.pts.role_name).index) +end + local function apply_periodic_bonus(player) if not Roles.player_allowed(player, "gui/bonus") then return @@ -360,11 +366,15 @@ Event.add(defines.events.on_player_created, function(event) end) Event.add(Roles.events.on_role_assigned, function(event) - apply_bonus(game.players[event.player_index]) + local player = game.players[event.player_index] + apply_bonus(player) + max_bonus_pts_update(player) end) Event.add(Roles.events.on_role_unassigned, function(event) - apply_bonus(game.players[event.player_index]) + local player = game.players[event.player_index] + apply_bonus(player) + max_bonus_pts_update(player) end) --- When a player respawns re-apply bonus From 97c6f7f3c325d97a19fa69288b11ff7eb594531d Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Tue, 28 Jan 2025 20:31:44 +0900 Subject: [PATCH 165/176] . --- exp_legacy/module/config/bonus.lua | 2 +- exp_legacy/module/modules/gui/bonus.lua | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/exp_legacy/module/config/bonus.lua b/exp_legacy/module/config/bonus.lua index 2e4052c4..db97d270 100644 --- a/exp_legacy/module/config/bonus.lua +++ b/exp_legacy/module/config/bonus.lua @@ -18,7 +18,7 @@ return { ]] pts = { base = 260, - increase_percentage_per_role_level = 5, + increase_percentage_per_role_level = 0.05, role_name = "Member" }, gui_display_width = { diff --git a/exp_legacy/module/modules/gui/bonus.lua b/exp_legacy/module/modules/gui/bonus.lua index 557ba5fb..7c85c99b 100644 --- a/exp_legacy/module/modules/gui/bonus.lua +++ b/exp_legacy/module/modules/gui/bonus.lua @@ -65,7 +65,7 @@ end local function max_bonus_pts_update(player) local frame = Gui.get_left_element(player, bonus_container) local disp = frame.container["bonus_st_2"].disp.table - disp["bonus_control_pts_a_count"].caption = config.pts.base * (Roles.get_player_highest_role(player).index - Roles.get_role_by_name(config.pts.role_name).index) + disp["bonus_control_pts_a_count"].caption = math.floor(config.pts.base * (1 + config.pts.increase_percentage_per_role_level * (Roles.get_player_highest_role(player).index - Roles.get_role_by_name(config.pts.role_name).index))) end local function apply_periodic_bonus(player) @@ -335,7 +335,7 @@ bonus_container = local disp = frame.container["bonus_st_1"].disp.table local n = bonus_gui_pts_needed(player) disp[bonus_gui_control_pts_n_count.name].caption = n - disp[bonus_gui_control_pts_a_count.name].caption = config.pts.base * (Roles.get_player_highest_role(player).index - Roles.get_role_by_name(config.pts.role_name).index) + max_bonus_pts_update(player) local r = tonumber(disp[bonus_gui_control_pts_a_count.name].caption) - n disp[bonus_gui_control_pts_r_count.name].caption = r From 8f230bb3931534356468b886011ebfecbf435cb9 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Tue, 28 Jan 2025 20:47:08 +0900 Subject: [PATCH 166/176] . --- exp_legacy/module/config/chat_reply.lua | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/exp_legacy/module/config/chat_reply.lua b/exp_legacy/module/config/chat_reply.lua index 4a1cd6e8..784b5aaf 100644 --- a/exp_legacy/module/config/chat_reply.lua +++ b/exp_legacy/module/config/chat_reply.lua @@ -23,12 +23,9 @@ return { allow_command_prefix_for_messages = true, --- @setting allow_command_prefix_for_messages when true any message trigger will print to all player when prefixed messages = { --- @setting messages will trigger when ever the word is said ["discord"] = { "info.discord" }, - ["expgaming"] = { "info.website" }, + ["aperx"] = { "info.website" }, ["website"] = { "info.website" }, - ["status"] = { "info.status" }, ["github"] = { "info.github" }, - ["patreon"] = { "info.patreon" }, - ["donate"] = { "info.patreon" }, ["command"] = { "info.custom-commands" }, ["commands"] = { "info.custom-commands" }, ["softmod"] = { "info.softmod" }, From d12ad7ed2ebd2b261677566e5ca87e87215e9966 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Tue, 28 Jan 2025 21:00:45 +0900 Subject: [PATCH 167/176] . --- exp_legacy/module/modules/gui/bonus.lua | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/exp_legacy/module/modules/gui/bonus.lua b/exp_legacy/module/modules/gui/bonus.lua index 7c85c99b..c04790cc 100644 --- a/exp_legacy/module/modules/gui/bonus.lua +++ b/exp_legacy/module/modules/gui/bonus.lua @@ -9,7 +9,9 @@ local Event = require("modules/exp_legacy/utils/event") --- @dep utils.event local config = require("modules.exp_legacy.config.bonus") --- @dep config.bonus local vlayer = require("modules.exp_legacy.modules.control.vlayer") local format_number = require("util").format_number --- @dep util + local bonus_container +local bonus_gui_control_pts_a_count local function bonus_gui_pts_needed(player) local frame = Gui.get_left_element(player, bonus_container) @@ -65,7 +67,7 @@ end local function max_bonus_pts_update(player) local frame = Gui.get_left_element(player, bonus_container) local disp = frame.container["bonus_st_2"].disp.table - disp["bonus_control_pts_a_count"].caption = math.floor(config.pts.base * (1 + config.pts.increase_percentage_per_role_level * (Roles.get_player_highest_role(player).index - Roles.get_role_by_name(config.pts.role_name).index))) + disp[bonus_gui_control_pts_a_count.name].caption = math.floor(config.pts.base * (1 + config.pts.increase_percentage_per_role_level * (Roles.get_player_highest_role(player).index - Roles.get_role_by_name(config.pts.role_name).index))) end local function apply_periodic_bonus(player) @@ -115,7 +117,7 @@ local bonus_gui_control_pts_a = width = config.gui_display_width["half"], } -local bonus_gui_control_pts_a_count = +bonus_gui_control_pts_a_count = Gui.element{ type = "label", name = "bonus_control_pts_a_count", From 8c79c0363ca52bfa19a347e670a2d4a8f502d16e Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Tue, 28 Jan 2025 21:53:14 +0900 Subject: [PATCH 168/176] . --- exp_legacy/module/modules/gui/bonus.lua | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/exp_legacy/module/modules/gui/bonus.lua b/exp_legacy/module/modules/gui/bonus.lua index c04790cc..e5c3022c 100644 --- a/exp_legacy/module/modules/gui/bonus.lua +++ b/exp_legacy/module/modules/gui/bonus.lua @@ -64,11 +64,13 @@ local function apply_bonus(player) end end +--[[ local function max_bonus_pts_update(player) local frame = Gui.get_left_element(player, bonus_container) local disp = frame.container["bonus_st_2"].disp.table disp[bonus_gui_control_pts_a_count.name].caption = math.floor(config.pts.base * (1 + config.pts.increase_percentage_per_role_level * (Roles.get_player_highest_role(player).index - Roles.get_role_by_name(config.pts.role_name).index))) end +]] local function apply_periodic_bonus(player) if not Roles.player_allowed(player, "gui/bonus") then @@ -337,7 +339,6 @@ bonus_container = local disp = frame.container["bonus_st_1"].disp.table local n = bonus_gui_pts_needed(player) disp[bonus_gui_control_pts_n_count.name].caption = n - max_bonus_pts_update(player) local r = tonumber(disp[bonus_gui_control_pts_a_count.name].caption) - n disp[bonus_gui_control_pts_r_count.name].caption = r @@ -368,15 +369,11 @@ Event.add(defines.events.on_player_created, function(event) end) Event.add(Roles.events.on_role_assigned, function(event) - local player = game.players[event.player_index] - apply_bonus(player) - max_bonus_pts_update(player) + apply_bonus(game.players[event.player_index]) end) Event.add(Roles.events.on_role_unassigned, function(event) - local player = game.players[event.player_index] - apply_bonus(player) - max_bonus_pts_update(player) + apply_bonus(game.players[event.player_index]) end) --- When a player respawns re-apply bonus From 9e1f7530e23e0e394b68b2d26acb5dfc7eb69752 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Tue, 28 Jan 2025 22:21:07 +0900 Subject: [PATCH 169/176] . --- exp_scenario/module/commands/cheat.lua | 4 ++-- exp_scenario/module/locale/zh-CN.cfg | 4 ++-- exp_scenario/module/locale/zh-TW.cfg | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/exp_scenario/module/commands/cheat.lua b/exp_scenario/module/commands/cheat.lua index ab0e4183..a9ead34a 100644 --- a/exp_scenario/module/commands/cheat.lua +++ b/exp_scenario/module/commands/cheat.lua @@ -42,7 +42,7 @@ Commands.new("set-always-day", { "exp-commands_cheat.description-always-day" }) else surface.always_day = state end - game.print{ "exp-commands_cheat.always-day", format_player_name(player), surface.localised_name, surface.always_day } + game.print{ "exp-commands_cheat.always-day", format_player_name(player), surface.name, surface.always_day } end) --- Toggles friendly fire for your force or another @@ -89,7 +89,7 @@ Commands.new("clear-pollution", { "exp-commands_cheat.description-clear-pollutio :register(function(player, surface) --- @cast surface LuaSurface surface.clear_pollution() - game.print{ "exp-commands_cheat.clear-pollution", format_player_name(player), surface.localised_name } + game.print{ "exp-commands_cheat.clear-pollution", format_player_name(player), surface.name } end) --- Toggles pollution being enabled in the game diff --git a/exp_scenario/module/locale/zh-CN.cfg b/exp_scenario/module/locale/zh-CN.cfg index 4272fa51..09cc70d3 100644 --- a/exp_scenario/module/locale/zh-CN.cfg +++ b/exp_scenario/module/locale/zh-CN.cfg @@ -38,8 +38,8 @@ arg-surface=位面 arg-amount=數量 cheat-mode=作弊模式現在為 __1__ always-day=__1__ 把在 __2__ 的位面的永久白天設置為 __3__ 。 -friendly-fire=__1__ 已為在 __2__ 的位面設定成 __3__ 。 -research-all=__1__ 已為在 __2__ 的位面啟用所有科技 。 +friendly-fire=__1__ 已為在 __2__ 的勢力設定成 __3__ 。 +research-all=__1__ 已為在 __2__ 的勢力啟用所有科技 。 clear-pollution=__1__ 已為在 __2__ 的位面清除所有污染 。 pollution-enabled=__1__ 已設定污染為 __2__ 。 game-speed-set=__1__ 把遊戲速度改成 __2__ 。 diff --git a/exp_scenario/module/locale/zh-TW.cfg b/exp_scenario/module/locale/zh-TW.cfg index 4272fa51..09cc70d3 100644 --- a/exp_scenario/module/locale/zh-TW.cfg +++ b/exp_scenario/module/locale/zh-TW.cfg @@ -38,8 +38,8 @@ arg-surface=位面 arg-amount=數量 cheat-mode=作弊模式現在為 __1__ always-day=__1__ 把在 __2__ 的位面的永久白天設置為 __3__ 。 -friendly-fire=__1__ 已為在 __2__ 的位面設定成 __3__ 。 -research-all=__1__ 已為在 __2__ 的位面啟用所有科技 。 +friendly-fire=__1__ 已為在 __2__ 的勢力設定成 __3__ 。 +research-all=__1__ 已為在 __2__ 的勢力啟用所有科技 。 clear-pollution=__1__ 已為在 __2__ 的位面清除所有污染 。 pollution-enabled=__1__ 已設定污染為 __2__ 。 game-speed-set=__1__ 把遊戲速度改成 __2__ 。 From fc7c9d41adae3348f8a86ce7b491ef62f8ec478e Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Wed, 29 Jan 2025 00:32:54 +0900 Subject: [PATCH 170/176] . --- exp_scenario/module/commands/waterfill.lua | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/exp_scenario/module/commands/waterfill.lua b/exp_scenario/module/commands/waterfill.lua index 6ca7a005..02c0a5a5 100644 --- a/exp_scenario/module/commands/waterfill.lua +++ b/exp_scenario/module/commands/waterfill.lua @@ -41,12 +41,10 @@ Selection.on_selection(SelectionName, function(event) return end - local item_count_cliff = player.get_item_count("cliff-explosives") - local item_count_craft = math.min(math.floor(player.get_item_count("explosives") / 10), player.get_item_count("barrel"), player.get_item_count("grenade")) - local item_count_total = item_count_cliff + item_count_craft + local item_count_total = player.get_item_count("cliff-explosives") + math.min(math.floor(player.get_item_count("explosives") / 10), player.get_item_count("barrel"), player.get_item_count("grenade")) if item_count_total < area_size then - player.print({ "exp-commands_waterfill.too-few-explosives", area_size, item_count_cliff }, Commands.print_settings.error) + player.print({ "exp-commands_waterfill.too-few-explosives", area_size, item_count_total }, Commands.print_settings.error) return end From cc590372def8f8881045590cc75028fd77ef7389 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Wed, 29 Jan 2025 00:34:20 +0900 Subject: [PATCH 171/176] . --- exp_legacy/module/modules/gui/tool.lua | 10 ++++++---- exp_scenario/module/commands/waterfill.lua | 4 +++- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/exp_legacy/module/modules/gui/tool.lua b/exp_legacy/module/modules/gui/tool.lua index be36d435..82123d1b 100644 --- a/exp_legacy/module/modules/gui/tool.lua +++ b/exp_legacy/module/modules/gui/tool.lua @@ -83,11 +83,13 @@ local tool_gui_waterfill_b = if Selection.is_selecting(player, SelectionWaterfillArea) then Selection.stop(player) return player.print{ "exp-commands_waterfill.exit" } - elseif player.get_item_count("cliff-explosives") == 0 then - return player.print{ "exp-commands_waterfill.requires-explosives" } else - Selection.start(player, SelectionWaterfillArea) - return player.print{ "exp-commands_waterfill.enter" } + if player.get_item_count("cliff-explosives") == 0 then + return player.print{ "exp-commands_waterfill.requires-explosives" } + else + Selection.start(player, SelectionWaterfillArea) + return player.print{ "exp-commands_waterfill.enter" } + end end end) diff --git a/exp_scenario/module/commands/waterfill.lua b/exp_scenario/module/commands/waterfill.lua index 02c0a5a5..f612e075 100644 --- a/exp_scenario/module/commands/waterfill.lua +++ b/exp_scenario/module/commands/waterfill.lua @@ -41,7 +41,9 @@ Selection.on_selection(SelectionName, function(event) return end - local item_count_total = player.get_item_count("cliff-explosives") + math.min(math.floor(player.get_item_count("explosives") / 10), player.get_item_count("barrel"), player.get_item_count("grenade")) + local item_count_cliff = player.get_item_count("cliff-explosives") + local item_count_craft = math.min(math.floor(player.get_item_count("explosives") / 10), player.get_item_count("barrel"), player.get_item_count("grenade")) + local item_count_total = item_count_cliff + item_count_craft if item_count_total < area_size then player.print({ "exp-commands_waterfill.too-few-explosives", area_size, item_count_total }, Commands.print_settings.error) From 4c257d14974cf34ce596cf7e99b1bf2896eb934e Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Wed, 29 Jan 2025 00:35:15 +0900 Subject: [PATCH 172/176] . --- exp_legacy/module/modules/gui/tool.lua | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/exp_legacy/module/modules/gui/tool.lua b/exp_legacy/module/modules/gui/tool.lua index 82123d1b..eaeede89 100644 --- a/exp_legacy/module/modules/gui/tool.lua +++ b/exp_legacy/module/modules/gui/tool.lua @@ -84,7 +84,10 @@ local tool_gui_waterfill_b = Selection.stop(player) return player.print{ "exp-commands_waterfill.exit" } else - if player.get_item_count("cliff-explosives") == 0 then + local item_count_cliff = player.get_item_count("cliff-explosives") + local item_count_craft = math.min(math.floor(player.get_item_count("explosives") / 10), player.get_item_count("barrel"), player.get_item_count("grenade")) + local item_count_total = item_count_cliff + item_count_craft + if item_count_total == 0 then return player.print{ "exp-commands_waterfill.requires-explosives" } else Selection.start(player, SelectionWaterfillArea) From fd5d95bcd8b3dcdfead38720c722dc54f403f7d4 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Wed, 29 Jan 2025 00:35:57 +0900 Subject: [PATCH 173/176] . --- exp_scenario/module/commands/waterfill.lua | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/exp_scenario/module/commands/waterfill.lua b/exp_scenario/module/commands/waterfill.lua index f612e075..161ef81e 100644 --- a/exp_scenario/module/commands/waterfill.lua +++ b/exp_scenario/module/commands/waterfill.lua @@ -13,11 +13,16 @@ Commands.new("waterfill", { "exp-commands_waterfill.description" }) if Selection.is_selecting(player, SelectionName) then Selection.stop(player) return Commands.status.success{ "exp-commands_waterfill.exit" } - elseif player.get_item_count("cliff-explosives") == 0 then - return Commands.status.error{ "exp-commands_waterfill.requires-explosives" } else - Selection.start(player, SelectionName) - return Commands.status.success{ "exp-commands_waterfill.enter" } + local item_count_cliff = player.get_item_count("cliff-explosives") + local item_count_craft = math.min(math.floor(player.get_item_count("explosives") / 10), player.get_item_count("barrel"), player.get_item_count("grenade")) + local item_count_total = item_count_cliff + item_count_craft + if item_count_total == 0 then + return player.print{ "exp-commands_waterfill.requires-explosives" } + else + Selection.start(player, SelectionWaterfillArea) + return player.print{ "exp-commands_waterfill.enter" } + end end end) From c62cfc413d849441385319fdd4d020d1b5b6cdbc Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Wed, 29 Jan 2025 00:36:26 +0900 Subject: [PATCH 174/176] . --- exp_scenario/module/commands/waterfill.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/exp_scenario/module/commands/waterfill.lua b/exp_scenario/module/commands/waterfill.lua index 161ef81e..d47eb8fc 100644 --- a/exp_scenario/module/commands/waterfill.lua +++ b/exp_scenario/module/commands/waterfill.lua @@ -20,7 +20,7 @@ Commands.new("waterfill", { "exp-commands_waterfill.description" }) if item_count_total == 0 then return player.print{ "exp-commands_waterfill.requires-explosives" } else - Selection.start(player, SelectionWaterfillArea) + Selection.start(player, SelectionName) return player.print{ "exp-commands_waterfill.enter" } end end From 8407c1357d8e3b2cb7404f0234131b7e8d3a907d Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Wed, 29 Jan 2025 00:43:43 +0900 Subject: [PATCH 175/176] . --- exp_scenario/module/commands/waterfill.lua | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/exp_scenario/module/commands/waterfill.lua b/exp_scenario/module/commands/waterfill.lua index d47eb8fc..9bb7e8d0 100644 --- a/exp_scenario/module/commands/waterfill.lua +++ b/exp_scenario/module/commands/waterfill.lua @@ -74,11 +74,13 @@ Selection.on_selection(SelectionName, function(event) if item_count_cliff >= t_diff then player.remove_item{ name = "cliff-explosives", count = t_diff } else - local item_count_needed = t_diff - item_count_cliff player.remove_item{ name = "cliff-explosives", count = item_count_cliff } - player.remove_item{ name = "explosives", count = 10 * item_count_needed } - player.remove_item{ name = "barrel", count = item_count_needed } - player.remove_item{ name = "grenade", count = item_count_needed } + local item_count_needed = t_diff - item_count_cliff + if item_count_needed > 0 then + player.remove_item{ name = "explosives", count = 10 * item_count_needed } + player.remove_item{ name = "barrel", count = item_count_needed } + player.remove_item{ name = "grenade", count = item_count_needed } + end end if remaining_tiles > 0 then From 40bf727e49e9f2163234420a4ab305661965d3b9 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Wed, 29 Jan 2025 00:45:39 +0900 Subject: [PATCH 176/176] . --- exp_scenario/module/commands/waterfill.lua | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/exp_scenario/module/commands/waterfill.lua b/exp_scenario/module/commands/waterfill.lua index 9bb7e8d0..d59d912d 100644 --- a/exp_scenario/module/commands/waterfill.lua +++ b/exp_scenario/module/commands/waterfill.lua @@ -74,7 +74,9 @@ Selection.on_selection(SelectionName, function(event) if item_count_cliff >= t_diff then player.remove_item{ name = "cliff-explosives", count = t_diff } else - player.remove_item{ name = "cliff-explosives", count = item_count_cliff } + if item_count_cliff > 0 then + player.remove_item{ name = "cliff-explosives", count = item_count_cliff } + end local item_count_needed = t_diff - item_count_cliff if item_count_needed > 0 then player.remove_item{ name = "explosives", count = 10 * item_count_needed }