From f5d548e709376da7cb7cf029d8a6bf1080d76fde Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Sun, 29 Dec 2024 14:04:13 +0900 Subject: [PATCH 001/101] . --- .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/101] . --- 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/101] . --- 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/101] . --- 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/101] . --- 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/101] . --- 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/101] . --- 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/101] . --- 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/101] . --- 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/101] . --- 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/101] . --- 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/101] . --- 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/101] 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/101] 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/101] . --- 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/101] . --- 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/101] . --- 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/101] . --- 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/101] . --- 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/101] . --- 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/101] . --- 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/101] . --- 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/101] . --- 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/101] . --- 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/101] . --- 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/101] . --- 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/101] . --- 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/101] . --- 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/101] . --- 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/101] . --- 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/101] . --- 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/101] . --- 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/101] . --- 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/101] . --- 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/101] . --- 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/101] . --- 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/101] . --- 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/101] . --- 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/101] . --- 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/101] . --- 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/101] . --- 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/101] . --- 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/101] . --- 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/101] . --- 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/101] . --- 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/101] . --- 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/101] . --- 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/101] . --- 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/101] . --- 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/101] . --- 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/101] . --- 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/101] . --- 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/101] . --- 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/101] . --- 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/101] . --- 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/101] . --- 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/101] . --- 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/101] . --- 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/101] . --- 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/101] . --- 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/101] . --- 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/101] . --- 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/101] . --- 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/101] . --- 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/101] . --- 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/101] . --- 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/101] . --- 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/101] . --- 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/101] . --- 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/101] . --- 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/101] . --- 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/101] . --- 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/101] . --- 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/101] . --- 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/101] . --- 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/101] . --- 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/101] . --- 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/101] . --- 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/101] . --- 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/101] . --- 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/101] . --- 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/101] . --- 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/101] . --- 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/101] . --- 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/101] . --- 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/101] . --- 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/101] . --- 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/101] . --- 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/101] . --- 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/101] . --- 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/101] . --- 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/101] . --- 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/101] . --- 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/101] . --- 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/101] . --- 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/101] . --- 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/101] . --- 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/101] . --- 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/101] . --- 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/101] . --- 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/101] . --- 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