From 2a1206c498270517dc3ef4d733e749d8538607ab Mon Sep 17 00:00:00 2001 From: Cooldude2606 <25043174+Cooldude2606@users.noreply.github.com> Date: Sun, 22 Sep 2024 23:38:58 +0100 Subject: [PATCH] Add startable legacy code --- exp_legacy/module/config/chat_reply.lua | 59 ++- .../config/expcore/command_auth_admin.lua | 2 +- .../config/expcore/command_auth_roles.lua | 4 +- .../config/expcore/command_color_parse.lua | 4 +- .../config/expcore/command_general_parse.lua | 2 +- .../config/expcore/command_role_parse.lua | 6 +- .../expcore/command_runtime_disable.lua | 6 +- .../config/expcore/permission_groups.lua | 12 +- exp_legacy/module/config/expcore/roles.lua | 4 +- exp_legacy/module/config/gui/autofill.lua | 2 +- .../module/config/gui/player_list_actions.lua | 12 +- exp_legacy/module/control.lua | 27 +- exp_legacy/module/expcore/async.lua | 101 ---- exp_legacy/module/expcore/commands.lua | 15 +- exp_legacy/module/expcore/common.lua | 17 +- exp_legacy/module/expcore/datastore.lua | 9 +- exp_legacy/module/expcore/external.lua | 8 +- exp_legacy/module/expcore/gui.lua | 2 +- exp_legacy/module/expcore/gui/_require.lua | 16 +- .../module/expcore/gui/core_defines.lua | 4 +- exp_legacy/module/expcore/gui/defines.lua | 2 +- .../module/expcore/gui/helper_functions.lua | 2 +- exp_legacy/module/expcore/gui/left_flow.lua | 4 +- exp_legacy/module/expcore/gui/prototype.lua | 4 +- exp_legacy/module/expcore/gui/top_flow.lua | 4 +- .../module/expcore/permission_groups.lua | 18 +- exp_legacy/module/expcore/player_data.lua | 21 +- exp_legacy/module/expcore/roles.lua | 24 +- exp_legacy/module/module.json | 3 +- .../module/modules/addons/advanced-start.lua | 6 +- exp_legacy/module/modules/addons/afk-kick.lua | 16 +- .../module/modules/addons/chat-popups.lua | 12 +- .../module/modules/addons/chat-reply.lua | 6 +- .../module/modules/addons/compilatron.lua | 42 +- .../module/modules/addons/damage-popups.lua | 8 +- .../module/modules/addons/death-logger.lua | 8 +- exp_legacy/module/modules/addons/deconlog.lua | 8 +- .../module/modules/addons/discord-alerts.lua | 14 +- exp_legacy/module/modules/addons/fagc.lua | 2 +- exp_legacy/module/modules/addons/inserter.lua | 2 +- .../module/modules/addons/inventory-clear.lua | 4 +- .../module/modules/addons/lawnmower.lua | 8 +- exp_legacy/module/modules/addons/logging.lua | 6 +- exp_legacy/module/modules/addons/miner.lua | 9 +- .../module/modules/addons/nukeprotect.lua | 6 +- .../modules/addons/pollution-grading.lua | 4 +- .../module/modules/addons/protection-jail.lua | 10 +- .../module/modules/addons/report-jail.lua | 6 +- .../module/modules/addons/scorched-earth.lua | 8 +- .../module/modules/addons/spawn-area.lua | 8 +- .../modules/addons/station-auto-name.lua | 4 +- .../module/modules/addons/tree-decon.lua | 14 +- .../module/modules/commands/admin-chat.lua | 5 +- .../module/modules/commands/admin-markers.lua | 10 +- .../module/modules/commands/artillery.lua | 6 +- .../module/modules/commands/bot-queue.lua | 4 +- .../module/modules/commands/cheat-mode.lua | 4 +- .../modules/commands/clear-inventory.lua | 4 +- .../module/modules/commands/connect.lua | 10 +- exp_legacy/module/modules/commands/debug.lua | 4 +- exp_legacy/module/modules/commands/enemy.lua | 4 +- exp_legacy/module/modules/commands/find.lua | 4 +- .../module/modules/commands/friendly-fire.lua | 4 +- exp_legacy/module/modules/commands/help.lua | 13 +- exp_legacy/module/modules/commands/home.lua | 8 +- .../module/modules/commands/interface.lua | 7 +- exp_legacy/module/modules/commands/jail.lua | 6 +- exp_legacy/module/modules/commands/kill.lua | 8 +- .../module/modules/commands/last-location.lua | 4 +- exp_legacy/module/modules/commands/me.lua | 2 +- .../module/modules/commands/pollution.lua | 4 +- .../module/modules/commands/protection.lua | 14 +- .../module/modules/commands/rainbow.lua | 2 +- exp_legacy/module/modules/commands/ratio.lua | 2 +- exp_legacy/module/modules/commands/repair.lua | 6 +- .../module/modules/commands/reports.lua | 8 +- .../module/modules/commands/research.lua | 10 +- exp_legacy/module/modules/commands/roles.lua | 8 +- exp_legacy/module/modules/commands/search.lua | 6 +- exp_legacy/module/modules/commands/spawn.lua | 6 +- .../module/modules/commands/spectate.lua | 7 +- exp_legacy/module/modules/commands/speed.lua | 4 +- .../modules/commands/surface-clearing.lua | 4 +- .../module/modules/commands/teleport.lua | 4 +- exp_legacy/module/modules/commands/train.lua | 6 +- exp_legacy/module/modules/commands/vlayer.lua | 6 +- .../module/modules/commands/warnings.lua | 8 +- .../module/modules/commands/waterfill.lua | 8 +- exp_legacy/module/modules/control/jail.lua | 6 +- .../module/modules/control/production.lua | 6 +- .../module/modules/control/protection.lua | 12 +- exp_legacy/module/modules/control/reports.lua | 8 +- exp_legacy/module/modules/control/rockets.lua | 10 +- .../module/modules/control/selection.lua | 6 +- .../module/modules/control/spectate.lua | 10 +- exp_legacy/module/modules/control/tasks.lua | 8 +- exp_legacy/module/modules/control/vlayer.lua | 8 +- .../module/modules/control/warnings.lua | 14 +- exp_legacy/module/modules/control/warps.lua | 10 +- exp_legacy/module/modules/data/alt-view.lua | 4 +- exp_legacy/module/modules/data/bonus.lua | 12 +- exp_legacy/module/modules/data/greetings.lua | 12 +- exp_legacy/module/modules/data/language.lua | 4 +- .../module/modules/data/personal-logistic.lua | 4 +- .../module/modules/data/player-colours.lua | 8 +- exp_legacy/module/modules/data/quickbar.lua | 8 +- exp_legacy/module/modules/data/statistics.lua | 10 +- exp_legacy/module/modules/data/tag.lua | 18 +- .../module/modules/factorio-control.lua | 10 +- .../module/modules/graftorio/forcestats.lua | 6 +- .../module/modules/graftorio/general.lua | 6 +- .../module/modules/graftorio/require.lua | 10 +- .../module/modules/graftorio/statics.lua | 2 +- exp_legacy/module/modules/gui/autofill.lua | 18 +- exp_legacy/module/modules/gui/bonus.lua | 12 +- .../module/modules/gui/debug/_g_view.lua | 8 +- .../module/modules/gui/debug/event_view.lua | 22 +- .../gui/debug/expcore_datastore_view.lua | 8 +- .../modules/gui/debug/expcore_gui_view.lua | 8 +- .../module/modules/gui/debug/global_view.lua | 14 +- .../module/modules/gui/debug/main_view.lua | 18 +- exp_legacy/module/modules/gui/debug/model.lua | 4 +- .../module/modules/gui/debug/package_view.lua | 7 +- .../modules/gui/debug/redmew_global_view.lua | 19 +- exp_legacy/module/modules/gui/landfill.lua | 6 +- exp_legacy/module/modules/gui/module.lua | 10 +- exp_legacy/module/modules/gui/player-list.lua | 12 +- exp_legacy/module/modules/gui/playerdata.lua | 12 +- exp_legacy/module/modules/gui/production.lua | 6 +- exp_legacy/module/modules/gui/readme.lua | 14 +- exp_legacy/module/modules/gui/research.lua | 12 +- exp_legacy/module/modules/gui/rocket-info.lua | 12 +- .../module/modules/gui/science-info.lua | 10 +- exp_legacy/module/modules/gui/server-ups.lua | 10 +- .../module/modules/gui/surveillance.lua | 6 +- exp_legacy/module/modules/gui/task-list.lua | 12 +- exp_legacy/module/modules/gui/toolbar.lua | 4 +- exp_legacy/module/modules/gui/vlayer.lua | 14 +- exp_legacy/module/modules/gui/warp-list.lua | 18 +- exp_legacy/module/overrides/debug.lua | 164 ------ exp_legacy/module/overrides/inspect.lua | 341 ------------ exp_legacy/module/overrides/math.lua | 55 -- exp_legacy/module/overrides/print.lua | 10 - exp_legacy/module/overrides/require.lua | 8 - exp_legacy/module/overrides/stages.lua | 14 - exp_legacy/module/overrides/table.lua | 4 +- exp_legacy/module/utils/color_presets.lua | 147 ------ exp_legacy/module/utils/event.lua | 488 +++--------------- exp_legacy/module/utils/event_core.lua | 137 ----- exp_legacy/module/utils/game.lua | 70 +-- exp_legacy/module/utils/global.lua | 79 --- exp_legacy/module/utils/gui.lua | 6 +- exp_legacy/module/utils/priority_queue.lua | 74 --- exp_legacy/module/utils/queue.lua | 34 -- exp_legacy/module/utils/task.lua | 115 ----- exp_legacy/module/utils/token.lua | 69 --- exp_legacy/tsconfig.node.json | 4 +- exp_util/module/async.lua | 34 +- exp_util/module/common.lua | 56 +- exp_util/module/floating_text.lua | 4 +- exp_util/module/include/require.lua | 2 +- exp_util/module/module.json | 2 +- exp_util/module/{global.lua => storage.lua} | 79 ++- 163 files changed, 756 insertions(+), 2573 deletions(-) delete mode 100644 exp_legacy/module/expcore/async.lua delete mode 100644 exp_legacy/module/overrides/debug.lua delete mode 100644 exp_legacy/module/overrides/inspect.lua delete mode 100644 exp_legacy/module/overrides/math.lua delete mode 100644 exp_legacy/module/overrides/print.lua delete mode 100644 exp_legacy/module/overrides/require.lua delete mode 100644 exp_legacy/module/overrides/stages.lua delete mode 100644 exp_legacy/module/utils/color_presets.lua delete mode 100644 exp_legacy/module/utils/event_core.lua delete mode 100644 exp_legacy/module/utils/global.lua delete mode 100644 exp_legacy/module/utils/priority_queue.lua delete mode 100644 exp_legacy/module/utils/queue.lua delete mode 100644 exp_legacy/module/utils/task.lua delete mode 100644 exp_legacy/module/utils/token.lua rename exp_util/module/{global.lua => storage.lua} (50%) diff --git a/exp_legacy/module/config/chat_reply.lua b/exp_legacy/module/config/chat_reply.lua index bf3305fd..d57534d4 100644 --- a/exp_legacy/module/config/chat_reply.lua +++ b/exp_legacy/module/config/chat_reply.lua @@ -1,14 +1,23 @@ --- This file defines the different triggers for the chat bot -- @config Chat-Reply -local Async = require 'expcore.async' -local format_time = _C.format_time --- @dep expcore.common +local ExpUtil = require("modules/exp_util") +local Async = require("modules/exp_util/async") --- eg Async(async_message, is_command or player, message) -local async_message = Async.register(function(player, message) - if player == true then game.print(message) else player.print(message) end +local send_message_async = +Async.register(function(player, message) + if player == true then + game.print(message) + else + player.print(message) + end end) +local afk_time_units = { + minutes = true, + seconds = true, +} + -- luacheck:ignore 212/player 212/is_command return { allow_command_prefix_for_messages = true, --- @setting allow_command_prefix_for_messages when true any message trigger will print to all player when prefixed @@ -37,7 +46,7 @@ return { max = next_player end end - return {'chat-bot.afk', max.name, format_time(max.afk_time, {minutes = true, seconds = true, long = true})} + return {'chat-bot.afk', max.name, ExpUtil.format_locale_time(max.afk_time, "long", afk_time_units)} end, ['players'] = function(_player, _is_command) return {'chat-bot.players', #game.players} @@ -74,46 +83,46 @@ return { end, ['makepopcorn'] = function(player, _is_command) local timeout = math.floor(180*(math.random()+0.5)) - Async(async_message, true, {'chat-bot.reply', {'chat-bot.get-popcorn-1'}}) - Async.wait(timeout, async_message, true, {'chat-bot.reply', {'chat-bot.get-popcorn-2', player.name}}) + send_message_async(true, {'chat-bot.reply', {'chat-bot.get-popcorn-1'}}) + send_message_async:start_after(timeout, true, {'chat-bot.reply', {'chat-bot.get-popcorn-2', player.name}}) end, ['passsomesnaps'] = function(player, _is_command) local timeout = math.floor(180*(math.random()+0.5)) - Async(async_message, player, {'chat-bot.reply', {'chat-bot.get-snaps-1'}}) - Async.wait(timeout, async_message, true, {'chat-bot.reply', {'chat-bot.get-snaps-2', player.name}}) - Async.wait(timeout*(math.random()+0.5), async_message, true, {'chat-bot.reply', {'chat-bot.get-snaps-3', player.name}}) + send_message_async(player, {'chat-bot.reply', {'chat-bot.get-snaps-1'}}) + send_message_async:start_after(timeout, true, {'chat-bot.reply', {'chat-bot.get-snaps-2', player.name}}) + send_message_async:start_after(timeout*(math.random()+0.5), true, {'chat-bot.reply', {'chat-bot.get-snaps-3', player.name}}) end, ['makecocktail'] = function(player, _is_command) local timeout = math.floor(180*(math.random()+0.5)) - Async(async_message, true, {'chat-bot.reply', {'chat-bot.get-cocktail-1'}}) - Async.wait(timeout, async_message, true, {'chat-bot.reply', {'chat-bot.get-cocktail-2', player.name}}) - Async.wait(timeout*(math.random()+0.5), async_message, true, {'chat-bot.reply', {'chat-bot.get-cocktail-3', player.name}}) + send_message_async(true, {'chat-bot.reply', {'chat-bot.get-cocktail-1'}}) + send_message_async:start_after(timeout, true, {'chat-bot.reply', {'chat-bot.get-cocktail-2', player.name}}) + send_message_async:start_after(timeout*(math.random()+0.5), true, {'chat-bot.reply', {'chat-bot.get-cocktail-3', player.name}}) end, ['makecoffee'] = function(player, _is_command) local timeout = math.floor(180*(math.random()+0.5)) - Async(async_message, true, {'chat-bot.reply', {'chat-bot.make-coffee-1'}}) - Async.wait(timeout, async_message, true, {'chat-bot.reply', {'chat-bot.make-coffee-2', player.name}}) + send_message_async(true, {'chat-bot.reply', {'chat-bot.make-coffee-1'}}) + send_message_async:start_after(timeout, true, {'chat-bot.reply', {'chat-bot.make-coffee-2', player.name}}) end, ['orderpizza'] = function(player, _is_command) local timeout = math.floor(180*(math.random()+0.5)) - Async(async_message, true, {'chat-bot.reply', {'chat-bot.order-pizza-1'}}) - Async.wait(timeout, async_message, true, {'chat-bot.reply', {'chat-bot.order-pizza-2', player.name}}) - Async.wait(timeout*(math.random()+0.5), async_message, true, {'chat-bot.reply', {'chat-bot.order-pizza-3', player.name}}) + send_message_async(true, {'chat-bot.reply', {'chat-bot.order-pizza-1'}}) + send_message_async:start_after(timeout, true, {'chat-bot.reply', {'chat-bot.order-pizza-2', player.name}}) + send_message_async:start_after(timeout*(math.random()+0.5), true, {'chat-bot.reply', {'chat-bot.order-pizza-3', player.name}}) end, ['maketea'] = function(player, _is_command) local timeout = math.floor(180*(math.random()+0.5)) - Async(async_message, true, {'chat-bot.reply', {'chat-bot.make-tea-1'}}) - Async.wait(timeout, async_message, true, {'chat-bot.reply', {'chat-bot.make-tea-2', player.name}}) + send_message_async(true, {'chat-bot.reply', {'chat-bot.make-tea-1'}}) + send_message_async:start_after(timeout, true, {'chat-bot.reply', {'chat-bot.make-tea-2', player.name}}) end, ['meadplease'] = function(player, _is_command) local timeout = math.floor(180*(math.random()+0.5)) - Async(async_message, true, {'chat-bot.reply', {'chat-bot.get-mead-1'}}) - Async.wait(timeout, async_message, true, {'chat-bot.reply', {'chat-bot.get-mead-2', player.name}}) + send_message_async(true, {'chat-bot.reply', {'chat-bot.get-mead-1'}}) + send_message_async:start_after(timeout, true, {'chat-bot.reply', {'chat-bot.get-mead-2', player.name}}) end, ['passabeer'] = function(player, _is_command) local timeout = math.floor(180*(math.random()+0.5)) - Async(async_message, true, {'chat-bot.reply', {'chat-bot.get-beer-1'}}) - Async.wait(timeout, async_message, true, {'chat-bot.reply', {'chat-bot.get-beer-2', player.name}}) + send_message_async(true, {'chat-bot.reply', {'chat-bot.get-beer-1'}}) + send_message_async:start_after(timeout, true, {'chat-bot.reply', {'chat-bot.get-beer-2', player.name}}) end } } diff --git a/exp_legacy/module/config/expcore/command_auth_admin.lua b/exp_legacy/module/config/expcore/command_auth_admin.lua index 360e6ee8..65fa57bb 100644 --- a/exp_legacy/module/config/expcore/command_auth_admin.lua +++ b/exp_legacy/module/config/expcore/command_auth_admin.lua @@ -3,7 +3,7 @@ -- either way you can change the requirements to be "admin" if you wanted to -- @config Commands-Auth-Admin -local Commands = require 'expcore.commands' --- @dep expcore.commands +local Commands = require("modules.exp_legacy.expcore.commands") --- @dep expcore.commands -- luacheck:ignore 212/command Commands.add_authenticator(function(player, command, tags, reject) diff --git a/exp_legacy/module/config/expcore/command_auth_roles.lua b/exp_legacy/module/config/expcore/command_auth_roles.lua index 3fb6f968..9c792ab5 100644 --- a/exp_legacy/module/config/expcore/command_auth_roles.lua +++ b/exp_legacy/module/config/expcore/command_auth_roles.lua @@ -1,8 +1,8 @@ --- This will make commands only work if the role has been allowed it in the role config -- @config Commands-Auth-Roles -local Commands = require 'expcore.commands' --- @dep expcore.commands -local Roles = require 'expcore.roles' --- @dep expcore.roles +local Commands = require("modules.exp_legacy.expcore.commands") --- @dep expcore.commands +local Roles = require("modules.exp_legacy.expcore.roles") --- @dep expcore.roles -- luacheck:ignore 212/tags Commands.add_authenticator(function(player, command, tags, reject) diff --git a/exp_legacy/module/config/expcore/command_color_parse.lua b/exp_legacy/module/config/expcore/command_color_parse.lua index dafcd4ab..5c55e6bd 100644 --- a/exp_legacy/module/config/expcore/command_color_parse.lua +++ b/exp_legacy/module/config/expcore/command_color_parse.lua @@ -1,8 +1,8 @@ --- This will make commands only work when a valid color from the presets has been selected -- @config Commands-Color-Parse -local Commands = require 'expcore.commands' --- @dep expcore.commands -local Colours = require 'utils.color_presets' --- @dep utils.color_presets +local Commands = require("modules.exp_legacy.expcore.commands") --- @dep expcore.commands +local Colours = require("modules/exp_util/include/color") Commands.add_parse('color',function(input, _, reject) if not input then return end diff --git a/exp_legacy/module/config/expcore/command_general_parse.lua b/exp_legacy/module/config/expcore/command_general_parse.lua index 2cc88b73..42568b5b 100644 --- a/exp_legacy/module/config/expcore/command_general_parse.lua +++ b/exp_legacy/module/config/expcore/command_general_parse.lua @@ -19,7 +19,7 @@ see ./expcore/commands.lua for more details surface ]] -local Commands = require 'expcore.commands' --- @dep expcore.commands +local Commands = require("modules.exp_legacy.expcore.commands") --- @dep expcore.commands -- luacheck:ignore 212/player Commands.add_parse('boolean',function(input, player) diff --git a/exp_legacy/module/config/expcore/command_role_parse.lua b/exp_legacy/module/config/expcore/command_role_parse.lua index 9faabf94..0e6adee2 100644 --- a/exp_legacy/module/config/expcore/command_role_parse.lua +++ b/exp_legacy/module/config/expcore/command_role_parse.lua @@ -7,10 +7,10 @@ player-role-alive ]] -local Commands = require 'expcore.commands' --- @dep expcore.commands -local Roles = require 'expcore.roles' --- @dep expcore.roles +local Commands = require("modules.exp_legacy.expcore.commands") --- @dep expcore.commands +local Roles = require("modules.exp_legacy.expcore.roles") --- @dep expcore.roles local auto_complete = _C.auto_complete --- @dep expcore.common -require 'config.expcore.command_general_parse' +require("modules.exp_legacy.config.expcore.command_general_parse") -- luacheck:ignore 212/player Commands.add_parse('role',function(input, player, reject) diff --git a/exp_legacy/module/config/expcore/command_runtime_disable.lua b/exp_legacy/module/config/expcore/command_runtime_disable.lua index 1d6cde03..47061dcd 100644 --- a/exp_legacy/module/config/expcore/command_runtime_disable.lua +++ b/exp_legacy/module/config/expcore/command_runtime_disable.lua @@ -2,11 +2,11 @@ -- this config adds Commands.disable and Commands.enable to enable and disable commands for all users -- @config Commands-Auth-Runtime-Disable -local Commands = require 'expcore.commands' --- @dep expcore.commands -local Global = require 'utils.global' --- @dep utils.global +local Commands = require("modules.exp_legacy.expcore.commands") --- @dep expcore.commands +local Storage = require("modules/exp_util/storage") local disabled_commands = {} -Global.register(disabled_commands, function(tbl) +Storage.register(disabled_commands, function(tbl) disabled_commands = tbl end) diff --git a/exp_legacy/module/config/expcore/permission_groups.lua b/exp_legacy/module/config/expcore/permission_groups.lua index 2e893e77..33779577 100644 --- a/exp_legacy/module/config/expcore/permission_groups.lua +++ b/exp_legacy/module/config/expcore/permission_groups.lua @@ -4,8 +4,8 @@ -- then use :allow{} and :disallow{} to specify certain actions to allow/disallow -- @config Permission-Groups ---local Event = require 'utils.event' -- @dep utils.event -local Permission_Groups = require 'expcore.permission_groups' --- @dep expcore.permission_groups +--local Event = require("modules/exp_legacy/utils/event") -- @dep utils.event +local Permission_Groups = require("modules.exp_legacy.expcore.permission_groups") --- @dep expcore.permission_groups Permission_Groups.new_group('Admin') :allow_all() @@ -60,7 +60,7 @@ Permission_Groups.new_group('Standard') 'admin_action', -- trusted 'change_programmable_speaker_alert_parameters', -- standard 'drop_item', - 'set_auto_launch_rocket' + 'change_rocket_silo_mode' } Permission_Groups.new_group('Guest') @@ -81,7 +81,7 @@ Permission_Groups.new_group('Guest') 'admin_action', -- trusted 'change_programmable_speaker_alert_parameters', -- standard 'drop_item', - 'set_auto_launch_rocket', + 'change_rocket_silo_mode', 'change_programmable_speaker_parameters', -- guest 'change_train_stop_station', --'deconstruct', @@ -89,10 +89,10 @@ Permission_Groups.new_group('Guest') 'remove_train_station', 'reset_assembling_machine', 'rotate_entity', - 'use_artillery_remote', + --'use_artillery_remote', -- not in 2.0 'launch_rocket', 'cancel_research', - 'activate_cut', + --'activate_cut', -- not in 2.0 'flush_opened_entity_fluid', 'flush_opened_entity_specific_fluid' } diff --git a/exp_legacy/module/config/expcore/roles.lua b/exp_legacy/module/config/expcore/roles.lua index 61960187..9c3a893f 100644 --- a/exp_legacy/module/config/expcore/roles.lua +++ b/exp_legacy/module/config/expcore/roles.lua @@ -1,8 +1,8 @@ --- This is the main config file for the role system; file includes defines for roles and role flags and default values -- @config Roles -local Roles = require 'expcore.roles' --- @dep expcore.roles -local PlayerData = require 'expcore.player_data' --- @dep expcore.player_data +local Roles = require("modules.exp_legacy.expcore.roles") --- @dep expcore.roles +local PlayerData = require("modules.exp_legacy.expcore.player_data") --- @dep expcore.player_data local Statistics = PlayerData.Statistics --- Role flags that will run when a player changes roles diff --git a/exp_legacy/module/config/gui/autofill.lua b/exp_legacy/module/config/gui/autofill.lua index b717f97d..1f69dc53 100644 --- a/exp_legacy/module/config/gui/autofill.lua +++ b/exp_legacy/module/config/gui/autofill.lua @@ -1,7 +1,7 @@ --- This file contains all the different settings for the autofill system and gui -- @config Autofill -local table = require 'overrides.table' -- @dep overrides.table +local table = require("modules.exp_legacy.overrides.table") -- @dep overrides.table local config = { -- General config diff --git a/exp_legacy/module/config/gui/player_list_actions.lua b/exp_legacy/module/config/gui/player_list_actions.lua index 411d2395..e6742dfe 100644 --- a/exp_legacy/module/config/gui/player_list_actions.lua +++ b/exp_legacy/module/config/gui/player_list_actions.lua @@ -5,12 +5,12 @@ -- the key used for the name of the button is the permission name used by the role system; -- @config Player-List -local Gui = require 'expcore.gui' --- @dep expcore.gui -local Roles = require 'expcore.roles' --- @dep expcore.roles -local Reports = require 'modules.control.reports' --- @dep modules.control.reports -local Warnings = require 'modules.control.warnings' --- @dep modules.control.warnings -local Jail = require 'modules.control.jail' --- @dep modules.control.jail -local Colors = require 'utils.color_presets' --- @dep utils.color_presets +local Gui = require("modules.exp_legacy.expcore.gui") --- @dep expcore.gui +local Roles = require("modules.exp_legacy.expcore.roles") --- @dep expcore.roles +local Reports = require("modules.exp_legacy.modules.control.reports") --- @dep modules.control.reports +local Warnings = require("modules.exp_legacy.modules.control.warnings") --- @dep modules.control.warnings +local Jail = require("modules.exp_legacy.modules.control.jail") --- @dep modules.control.jail +local Colors = require("modules/exp_util/include/color") local format_chat_player_name = _C.format_chat_player_name --- @dep expcore.common local SelectedPlayer, SelectedAction diff --git a/exp_legacy/module/control.lua b/exp_legacy/module/control.lua index abc2555a..e975cc38 100644 --- a/exp_legacy/module/control.lua +++ b/exp_legacy/module/control.lua @@ -8,20 +8,13 @@ log('[START] -----| Explosive Gaming Scenario Loader |-----') log('[INFO] Setting up lua environment') -- Require the global overrides -require 'overrides.stages' -- Data stages used in factorio, often used to test for runtime -require 'overrides.print' -- Overrides the _G.print function -require 'overrides.math' -- Omitting the math library is a very bad idea -require 'overrides.table' -- Adds alot more functions to the table module -global.version = require 'overrides.version' -- The current version for exp gaming scenario -inspect = require 'overrides.inspect' -- Used to covert any value into human readable string -Debug = require 'overrides.debug' -- Global Debug module -_C = require 'expcore.common' -- _C is used to store lots of common functions expected to be used -_CHEATS = false -_DEBUG = false +require("modules.exp_legacy.overrides.table") -- Adds alot more functions to the table module +storage.version = require("modules.exp_legacy.overrides.version") -- The current version for exp gaming scenario +_C = require("modules.exp_legacy.expcore.common") -- _C is used to store lots of common functions expected to be used -- Please go to config/file_loader.lua to edit the files that are loaded log('[INFO] Reading loader config') -local files = require 'config._file_loader' +local files = require("modules.exp_legacy.config._file_loader") -- Error handler for loading files local errors = {} @@ -44,14 +37,14 @@ local total_file_count = string.format('%3d', #files) for index, path in pairs(files) do currently_loading = path log(string.format('[INFO] Loading file %3d/%s (%s)', index, total_file_count, path)) - xpcall(require, error_handler, path) + xpcall(require, error_handler, "modules.exp_legacy." .. path) end --- Override the default require; require can no longer load new scripts -log('[INFO] Require Overwrite! No more requires can be made!') -require 'overrides.require' - -- Logs all errors again to make it make it easy to find log('[INFO] All files loaded with '..error_count..' errors:') for _, error in ipairs(errors) do log(error) end -log('[END] -----| Explosive Gaming Scenario Loader |-----') \ No newline at end of file +log('[END] -----| Explosive Gaming Scenario Loader |-----') + +--- Register all event handlers via clusterio +local Event = require("modules/exp_legacy/utils/event") +return Event.real_handlers \ No newline at end of file diff --git a/exp_legacy/module/expcore/async.lua b/exp_legacy/module/expcore/async.lua deleted file mode 100644 index 346932ca..00000000 --- a/exp_legacy/module/expcore/async.lua +++ /dev/null @@ -1,101 +0,0 @@ ---[[-- Core Module - Async -- An extention of task and token to allow a single require to register and run async functions. -@core Async -@alias Async - -@usage --- To use Async you must register the allowed functions when the file is loaded, often this will just be giving access to --- some functions within a module if you expect that at part may be blocked by in game permissions or a custom system you have made --- you may also want to register functions that you want to have a time delay, such as waiting 2 seconds before printing a message - --- When player.admin is called (either command or gui element event) by a player who isnt admin then it will error --- here we register the function to promote the player so that it will run async and outside the player scope -local promote_player = -Async.register(function(player) - player.admin = true -end) - --- This will allow us to bypass the error by running one tick later outside of any player scope -Async(promote_player, game.player) - --- Here we make an sync function that we want to have a delay, note the delay is not defined here -local print_message = -Async.register(function(player, message) - player.print(message) -end) - --- We can then call the async function with a delay using the wait function -Async.wait(60, print_message, game.player, 'One second has passed!') - -]] -local Task = require 'utils.task' --- @dep utils.task -local Token = require 'utils.token' --- @dep utils.token - -local Async = {} - -local internal_run = -Token.register(function(params) - local func = Token.get(params.token) - return func(table.unpack(params.params)) -end) - ---[[-- Register a new async function, must called when the file is loaded -@function register -@tparam function callback the function that can be called as an async function -@treturn string the uid of the async function which can be passed to Async.run and Async.wait - -@usage-- Registering a function to set the admin state of a player -local set_admin = -Async.register(function(player, state) - if player.valid then - player.admin = state - end -end) - -@usage-- Registering a function to print to a player -local print_to_player = -Async.register(function(player, message) - if player.valid then - player.print(message) - end -end) - -]] -Async.register = Token.register - ---[[-- Runs an async function, you may supply any number of arguments as required by that function -@tparam string token the token of the async function you want to run -@tparam[opt] any ... the other params that you want to pass to your function - -@usage-- Make a player admin regardless of if you are admin -Async.run(set_admin, player, true) - -]] -function Async.run(token, ...) - Task.queue_task(internal_run, { - token = token, - params = {...} - }) -end - ---[[-- Runs an async function after the given number of ticks, you may supply any number of arguments as required by that function -@tparam number ticks the number of ticks that you want the function to run after -@tparam string token the token of the async function you want to run -@tparam[opt] any ... the other params that you want to pass to your function - -@usage-- Print a message to a player after 5 seconds -Async.wait(300, print_to_player, 'Hello, World!') - -]] -function Async.wait(ticks, token, ...) - Task.set_timeout_in_ticks(ticks, internal_run, { - token = token, - params = {...} - }) -end - -return setmetatable(Async, { - __call = function(self, ...) - self.run(...) - end -}) \ No newline at end of file diff --git a/exp_legacy/module/expcore/commands.lua b/exp_legacy/module/expcore/commands.lua index 001fc855..afe6eb20 100644 --- a/exp_legacy/module/expcore/commands.lua +++ b/exp_legacy/module/expcore/commands.lua @@ -185,7 +185,6 @@ end) ]] -local Game = require 'utils.game' --- @dep utils.game local player_return, write_json = _C.player_return, _C.write_json --- @dep expcore.common local trace = debug.traceback @@ -392,20 +391,13 @@ local commands = Commands.get() ]] function Commands.get(player) - player = Game.get_player_from_any(player) - - if not player then - return Commands.commands - end - + if not player then return Commands.commands end local allowed = {} - for name, command_data in pairs(Commands.commands) do if Commands.authorize(player, name) then allowed[name] = command_data end end - return allowed end @@ -425,7 +417,6 @@ function Commands.search(keyword, player) local custom_commands = Commands.get(player) local matches = {} keyword = keyword:lower() - -- Loops over custom commands for name, command_data in pairs(custom_commands) do -- combines name help and aliases into one message to be searched @@ -435,7 +426,6 @@ function Commands.search(keyword, player) matches[name] = command_data end end - -- Loops over the names of game commands for name, description in pairs(commands.game_commands) do if name:lower():match(keyword) then @@ -448,7 +438,6 @@ function Commands.search(keyword, player) } end end - return matches end @@ -480,9 +469,7 @@ function Commands.new_command(name, help, descr) }, { __index = Commands._prototype }) - Commands.commands[name] = command - return command end diff --git a/exp_legacy/module/expcore/common.lua b/exp_legacy/module/expcore/common.lua index 4c2c83f9..daa385bc 100644 --- a/exp_legacy/module/expcore/common.lua +++ b/exp_legacy/module/expcore/common.lua @@ -4,8 +4,8 @@ @alias Common ]] -local Colours = require 'utils.color_presets' --- @dep utils.color_presets -local Game = require 'utils.game' --- @dep utils.game +local Colours = require("modules/exp_util/include/color") +local Game = require("modules.exp_legacy.utils.game") --- @dep utils.game local Common = {} @@ -138,21 +138,12 @@ end --- Will raise an error if called during runtime -- @usage error_if_runtime() function Common.error_if_runtime() - if _LIFECYCLE == 8 then + if package.lifecycle == 8 then local function_name = debug.getinfo(2, 'n').name or '' error(function_name..' can not be called during runtime', 3) end end ---- Will raise an error if the function is a closure --- @usage error_if_runetime_closure(func) -function Common.error_if_runetime_closure(func) - if _LIFECYCLE == 8 and Debug.is_closure(func) then - local function_name = debug.getinfo(2, 'n').name or '' - error(function_name..' can not be called during runtime with a closure', 3) - end -end - --- Value Returns. -- @section valueReturns @@ -255,7 +246,7 @@ local file_path = get_file_path() ]] function Common.get_file_path(offset) offset = offset or 0 - return debug.getinfo(offset+2, 'S').source:match('^.+/currently%-playing/(.+)$'):sub(1, -5) + return debug.getinfo(offset+2, 'S').short_src:sub(10, -5) end --[[-- Converts a table to an enum diff --git a/exp_legacy/module/expcore/datastore.lua b/exp_legacy/module/expcore/datastore.lua index fcf88afd..da1ca956 100644 --- a/exp_legacy/module/expcore/datastore.lua +++ b/exp_legacy/module/expcore/datastore.lua @@ -146,7 +146,7 @@ PlayerData.Statistics:combine('JoinCount') ]] -local Event = require 'utils.event' --- @dep utils.event +local Storage = require("modules/exp_util/storage") local DatastoreManager = {} local Datastores = {} @@ -156,9 +156,8 @@ local copy = table.deep_copy local trace = debug.traceback --- Save datastores in the global table -global.datastores = Data -Event.on_load(function() - Data = global.datastores +Storage.register(Data, function(tbl) + Data = tbl for datastoreName, datastore in pairs(Datastores) do datastore.data = Data[datastoreName] end @@ -187,7 +186,7 @@ local ExampleData = Datastore.connect('ExampleData', true) -- saveToDisk ]] function DatastoreManager.connect(datastoreName, saveToDisk, autoSave, propagateChanges) if Datastores[datastoreName] then return Datastores[datastoreName] end - if _LIFECYCLE ~= _STAGE.control then + if package.lifecycle ~= package.lifecycle_stage.control then -- Only allow this function to be called during the control stage error('New datastore connection can not be created during runtime', 2) end diff --git a/exp_legacy/module/expcore/external.lua b/exp_legacy/module/expcore/external.lua index 314901ad..27cf8699 100644 --- a/exp_legacy/module/expcore/external.lua +++ b/exp_legacy/module/expcore/external.lua @@ -4,7 +4,7 @@ @alias External @usage-- Printing all server to chat -local External = require 'expcore.external' --- @dep expcore.external +local External = require("modules.exp_legacy.expcore.external") --- @dep expcore.external local message = 'id: %s name: %s version: %s status: %s' for server_id, server in pairs(External.get_servers()) do @@ -29,11 +29,11 @@ end ]] function External.valid() - if global.ext == nil then return false end - if ext == global.ext and var == ext.var then + if storage.ext == nil then return false end + if ext == storage.ext and var == ext.var then return var ~= nil else - ext = global.ext + ext = storage.ext var = ext.var return var ~= nil end diff --git a/exp_legacy/module/expcore/gui.lua b/exp_legacy/module/expcore/gui.lua index 70817151..86c4c457 100644 --- a/exp_legacy/module/expcore/gui.lua +++ b/exp_legacy/module/expcore/gui.lua @@ -1 +1 @@ -return require 'expcore.gui._require' \ No newline at end of file +return require("modules.exp_legacy.expcore.gui._require") diff --git a/exp_legacy/module/expcore/gui/_require.lua b/exp_legacy/module/expcore/gui/_require.lua index 5f795413..1c2ecf8f 100644 --- a/exp_legacy/module/expcore/gui/_require.lua +++ b/exp_legacy/module/expcore/gui/_require.lua @@ -121,15 +121,15 @@ end) ]] -local Gui = require 'expcore.gui.prototype' -require 'expcore.gui.helper_functions' -require 'expcore.gui.core_defines' -require 'expcore.gui.top_flow' -require 'expcore.gui.left_flow' -require 'expcore.gui.defines' +local Gui = require("modules.exp_legacy.expcore.gui.prototype") +require("modules.exp_legacy.expcore.gui.helper_functions") +require("modules.exp_legacy.expcore.gui.core_defines") +require("modules.exp_legacy.expcore.gui.top_flow") +require("modules.exp_legacy.expcore.gui.left_flow") +require("modules.exp_legacy.expcore.gui.defines") -local Roles = _C.opt_require('expcore.roles') -local Event = _C.opt_require('utils.event') +local Roles = _C.opt_require("modules.exp_legacy.expcore.roles") +local Event = _C.opt_require("modules/exp_legacy/utils/event") if Roles and Event then Event.add(Roles.events.on_role_assigned, function(e) diff --git a/exp_legacy/module/expcore/gui/core_defines.lua b/exp_legacy/module/expcore/gui/core_defines.lua index ff39a20f..dee098b3 100644 --- a/exp_legacy/module/expcore/gui/core_defines.lua +++ b/exp_legacy/module/expcore/gui/core_defines.lua @@ -3,8 +3,8 @@ @module Gui ]] -local Gui = require 'expcore.gui.prototype' -local Event = require 'utils.event' +local Gui = require("modules.exp_legacy.expcore.gui.prototype") +local Event = require("modules/exp_legacy/utils/event") --- Core Defines. -- @section coreDefines diff --git a/exp_legacy/module/expcore/gui/defines.lua b/exp_legacy/module/expcore/gui/defines.lua index 99453181..22891cdf 100644 --- a/exp_legacy/module/expcore/gui/defines.lua +++ b/exp_legacy/module/expcore/gui/defines.lua @@ -3,7 +3,7 @@ @module Gui ]] -local Gui = require 'expcore.gui.prototype' +local Gui = require("modules.exp_legacy.expcore.gui.prototype") --- Defines. -- @section defines diff --git a/exp_legacy/module/expcore/gui/helper_functions.lua b/exp_legacy/module/expcore/gui/helper_functions.lua index 5346c593..fb14f1a7 100644 --- a/exp_legacy/module/expcore/gui/helper_functions.lua +++ b/exp_legacy/module/expcore/gui/helper_functions.lua @@ -3,7 +3,7 @@ @module Gui ]] -local Gui = require 'expcore.gui.prototype' +local Gui = require("modules.exp_legacy.expcore.gui.prototype") --- Helper Functions. -- @section helperFunctions diff --git a/exp_legacy/module/expcore/gui/left_flow.lua b/exp_legacy/module/expcore/gui/left_flow.lua index 3069f17a..bf1801f3 100644 --- a/exp_legacy/module/expcore/gui/left_flow.lua +++ b/exp_legacy/module/expcore/gui/left_flow.lua @@ -3,7 +3,7 @@ @module Gui ]] -local Gui = require 'expcore.gui.prototype' +local Gui = require("modules.exp_legacy.expcore.gui.prototype") local mod_gui = require 'mod-gui' local hide_left_flow = Gui.core_defines.hide_left_flow.name @@ -89,7 +89,7 @@ end function Gui.inject_left_flow_order(provider) Gui.get_left_flow_order = provider local debug_info = debug.getinfo(2, "Sn") - local file_name = debug_info.source:match('^.+/currently%-playing/(.+)$'):sub(1, -5) + local file_name = debug_info.short_src:sub(10, -5) local func_name = debug_info.name or ("") Gui._left_flow_order_src = file_name..":"..func_name end diff --git a/exp_legacy/module/expcore/gui/prototype.lua b/exp_legacy/module/expcore/gui/prototype.lua index 25b6ebdc..463d24da 100644 --- a/exp_legacy/module/expcore/gui/prototype.lua +++ b/exp_legacy/module/expcore/gui/prototype.lua @@ -3,7 +3,7 @@ @module Gui ]] -local Event = require 'utils.event' --- @dep utils.event +local Event = require("modules/exp_legacy/utils/event") --- @dep utils.event local Gui = { --- The current highest uid that is being used by a define, will not increase during runtime @@ -58,7 +58,7 @@ end --- Get where a function was defined as a string local function get_defined_at(level) local debug_info = debug.getinfo(level, "Sn") - local file_name = debug_info.source:match('^.+/currently%-playing/(.+)$'):sub(1, -5) + local file_name = debug_info.short_src:sub(10, -5) local func_name = debug_info.name or ("") return file_name..":"..func_name end diff --git a/exp_legacy/module/expcore/gui/top_flow.lua b/exp_legacy/module/expcore/gui/top_flow.lua index 0ee4f6d6..a064a805 100644 --- a/exp_legacy/module/expcore/gui/top_flow.lua +++ b/exp_legacy/module/expcore/gui/top_flow.lua @@ -3,7 +3,7 @@ @module Gui ]] -local Gui = require 'expcore.gui.prototype' +local Gui = require("modules.exp_legacy.expcore.gui.prototype") local mod_gui = require 'mod-gui' --- @dep mod-gui local toolbar_button_size = 36 @@ -107,7 +107,7 @@ end function Gui.inject_top_flow_order(provider) Gui.get_top_flow_order = provider local debug_info = debug.getinfo(2, "Sn") - local file_name = debug_info.source:match('^.+/currently%-playing/(.+)$'):sub(1, -5) + local file_name = debug_info.short_src:sub(10, -5) local func_name = debug_info.name or ("") Gui._top_flow_order_src = file_name..":"..func_name end diff --git a/exp_legacy/module/expcore/permission_groups.lua b/exp_legacy/module/expcore/permission_groups.lua index 0eca5f75..a466734c 100644 --- a/exp_legacy/module/expcore/permission_groups.lua +++ b/exp_legacy/module/expcore/permission_groups.lua @@ -24,9 +24,9 @@ Permission_Groups.new_group('Restricted') -- this defines a new group called "Re ]] -local Game = require 'utils.game' --- @dep utils.game -local Event = require 'utils.event' --- @dep utils.event -local Async = require 'expcore.async' --- @dep expcore.async +local Game = require("modules.exp_legacy.utils.game") --- @dep utils.game +local Event = require("modules/exp_legacy/utils/event") --- @dep utils.event +local Async = require("modules/exp_util/async") local Permissions_Groups = { groups={}, -- store for the different groups that are created @@ -34,18 +34,18 @@ local Permissions_Groups = { } -- Async function to add players to permission groups -local add_to_permission_group = +local add_to_permission_group_async = Async.register(function(permission_group, player) permission_group.add_player(player) end) -Permissions_Groups.async_token_add_to_permission_group = add_to_permission_group +Permissions_Groups.add_to_permission_group_async = add_to_permission_group_async -- Async function to remove players from permission groups -local remove_from_permission_group = +local remove_from_permission_group_async = Async.register(function(permission_group, player) permission_group.remove_player(player) end) -Permissions_Groups.async_token_remove_from_permission_group = remove_from_permission_group +Permissions_Groups.remove_from_permission_group_async = remove_from_permission_group_async --- Getters. -- Functions that get permission groups @@ -286,7 +286,7 @@ function Permissions_Groups._prototype:add_player(player) player = Game.get_player_from_any(player) local group = self:get_raw() if not group or not player then return false end - Async(add_to_permission_group, group, player) + add_to_permission_group_async(group, player) return true end @@ -302,7 +302,7 @@ function Permissions_Groups._prototype:remove_player(player) player = Game.get_player_from_any(player) local group = self:get_raw() if not group or not player then return false end - Async(remove_from_permission_group, group, player) + remove_from_permission_group_async(group, player) return true end diff --git a/exp_legacy/module/expcore/player_data.lua b/exp_legacy/module/expcore/player_data.lua index 2eba29f5..d1e9394b 100644 --- a/exp_legacy/module/expcore/player_data.lua +++ b/exp_legacy/module/expcore/player_data.lua @@ -3,7 +3,7 @@ @core PlayerData @usage-- Adding a colour setting for players -local PlayerData = require 'expcore.player_data' +local PlayerData = require("modules.exp_legacy.expcore.player_data") local PlayerColors = PlayerData.Settings:combine('Color') -- Set the players color when their data is loaded @@ -19,8 +19,8 @@ PlayerColors:on_save(function(player_name, _) end) @usage-- Add a playtime statistic for players -local Event = require 'utils.event' -local PlayerData = require 'expcore.player_data' +local Event = require("modules/exp_legacy/utils/event") +local PlayerData = require("modules.exp_legacy.expcore.player_data") local Playtime = PlayerData.Statistics:combine('Playtime') -- When playtime reaches an hour interval tell the player and say thanks @@ -41,11 +41,11 @@ end) ]] -local Event = require 'utils.event' --- @dep utils.event -local Async = require 'expcore.async' --- @dep expcore.async -local Datastore = require 'expcore.datastore' --- @dep expcore.datastore -local Commands = require 'expcore.commands' --- @dep expcore.commands -require 'config.expcore.command_general_parse' --- @dep config.expcore.command_general_parse +local Async = require("modules/exp_util/async") +local Event = require("modules/exp_legacy/utils/event") --- @dep utils.event +local Datastore = require("modules.exp_legacy.expcore.datastore") --- @dep expcore.datastore +local Commands = require("modules.exp_legacy.expcore.commands") --- @dep expcore.commands +require("modules.exp_legacy.config.expcore.command_general_parse") --- @dep config.expcore.command_general_parse --- Common player data that acts as the root store for player data local PlayerData = Datastore.connect('PlayerData', true) -- saveToDisk @@ -86,7 +86,8 @@ Commands.new_command('save-data', 'Writes all your player data to a file on your end) --- Async function called after 5 seconds with no player data loaded -local check_data_loaded = Async.register(function(player) +local check_data_loaded_async = +Async.register(function(player) local player_data = PlayerData:get(player) if not player_data or not player_data.valid then player.print{'expcore-data.data-failed'} @@ -127,7 +128,7 @@ end) --- Load player data when they join Event.add(defines.events.on_player_joined_game, function(event) local player = game.players[event.player_index] - Async.wait(300, check_data_loaded, player) + check_data_loaded_async:start_after(300, player) PlayerData:raw_set(player.name) PlayerData:request(player) end) diff --git a/exp_legacy/module/expcore/roles.lua b/exp_legacy/module/expcore/roles.lua index b895897b..7e0cfaff 100644 --- a/exp_legacy/module/expcore/roles.lua +++ b/exp_legacy/module/expcore/roles.lua @@ -108,12 +108,12 @@ Roles.define_role_order{ ]] -local Game = require 'utils.game' --- @dep utils.game -local Global = require 'utils.global' --- @dep utils.global -local Event = require 'utils.event' --- @dep utils.event -local Groups = require 'expcore.permission_groups' --- @dep expcore.permission_groups -local Async = require 'expcore.async' --- @dep expcore.async -local Colours = require 'utils.color_presets' --- @dep utils.color_presets +local Async = require("modules/exp_util/async") +local Storage = require("modules/exp_util/storage") +local Game = require("modules.exp_legacy.utils.game") --- @dep utils.game +local Event = require("modules/exp_legacy/utils/event") --- @dep utils.event +local Groups = require("modules.exp_legacy.expcore.permission_groups") --- @dep expcore.permission_groups +local Colours = require("modules/exp_util/include/color") local write_json = _C.write_json --- @dep expcore.common local Roles = { @@ -134,7 +134,10 @@ local Roles = { } --- When global is loaded it will have the metatable re-assigned to the roles -Global.register({ Roles.config.players, Roles.config.deferred_roles }, function(tbl) +Storage.register({ + Roles.config.players, + Roles.config.deferred_roles +}, function(tbl) Roles.config.players = tbl[1] Roles.config.deferred_roles = tbl[2] end) @@ -652,7 +655,6 @@ end) ]] function Roles.define_flag_trigger(name, callback) - _C.error_if_runtime() Roles.config.flags[name] = Async.register(callback) end @@ -1076,9 +1078,9 @@ end local function role_update(event) local player = game.players[event.player_index] -- Updates flags given to the player - for flag, async_token in pairs(Roles.config.flags) do + for flag, async_function in pairs(Roles.config.flags) do local state = Roles.player_has_flag(player, flag) - Async(async_token, player, state) + async_function(player, state) end -- Updates the players permission group local highest = Roles.get_player_highest_role(player) @@ -1086,7 +1088,7 @@ local function role_update(event) if highest.permission_group[1] then local group = game.permissions.get_group(highest.permission_group[2]) if group then - Async(Groups.async_token_add_to_permission_group, group, player) + Groups.add_to_permission_group_async(group, player) end else Groups.set_player_group(player, highest.permission_group) diff --git a/exp_legacy/module/module.json b/exp_legacy/module/module.json index ef64f0ba..5652b929 100644 --- a/exp_legacy/module/module.json +++ b/exp_legacy/module/module.json @@ -6,6 +6,7 @@ "require": [ ], "dependencies": { - "clusterio": "*" + "clusterio": "*", + "exp_util": "*" } } diff --git a/exp_legacy/module/modules/addons/advanced-start.lua b/exp_legacy/module/modules/addons/advanced-start.lua index 65795f26..d7da6fca 100644 --- a/exp_legacy/module/modules/addons/advanced-start.lua +++ b/exp_legacy/module/modules/addons/advanced-start.lua @@ -1,8 +1,8 @@ --- Adds a better method of player starting items based on production levels. -- @addon Advanced-Start -local Event = require 'utils.event' --- @dep utils.event -local config = require 'config.advanced_start' --- @dep config.advanced_start +local Event = require("modules/exp_legacy/utils/event") --- @dep utils.event +local config = require("modules.exp_legacy.config.advanced_start") --- @dep config.advanced_start local items = config.items Event.add(defines.events.on_player_created, function(event) @@ -43,7 +43,7 @@ Event.on_init(function() remote.call('freeplay', 'set_skip_intro', config.skip_intro) if config.research_queue_from_start then for _, force in pairs(game.forces) do - force.research_queue_enabled = true + --force.research_queue_enabled = true end end if not config.disable_base_game_silo_script then diff --git a/exp_legacy/module/modules/addons/afk-kick.lua b/exp_legacy/module/modules/addons/afk-kick.lua index 3b306647..a597f669 100644 --- a/exp_legacy/module/modules/addons/afk-kick.lua +++ b/exp_legacy/module/modules/addons/afk-kick.lua @@ -1,25 +1,25 @@ --- Kicks players when all players on the server are afk -- @addon afk-kick -local Event = require 'utils.event' --- @dep utils.event -local Global = require 'utils.global' --- @dep utils.global -local config = require 'config.afk_kick' --- @dep config.afk_kick -local Async = require 'expcore.async' --- @dep expcore.async +local Async = require("modules/exp_util/async") +local Storage = require("modules/exp_util/storage") +local Event = require("modules/exp_legacy/utils/event") --- @dep utils.event +local config = require("modules.exp_legacy.config.afk_kick") --- @dep config.afk_kick --- Optional roles require local Roles if config.active_role then - Roles = require 'expcore.roles' + Roles = require("modules.exp_legacy.expcore.roles") end --- Globals local primitives = { last_active = 0 } -Global.register(primitives, function(tbl) +Storage.register(primitives, function(tbl) primitives = tbl end) --- Kicks an afk player, used to add a delay so the gui has time to appear -local kick_player = +local kick_player_async = Async.register(function(player) if game.tick - primitives.last_active < config.kick_time then return end -- Safety Catch game.kick_player(player, 'AFK while no active players on the server') @@ -54,7 +54,7 @@ Event.on_nth_tick(config.update_time, function() }.location = { x=res.width*(0.5 - 0.11*uis), y=res.height*(0.5 - 0.14*uis) } -- Kick the player, some delay needed because network delay - Async.wait(10, kick_player, player) + kick_player_async:start_after(10, player) end end) diff --git a/exp_legacy/module/modules/addons/chat-popups.lua b/exp_legacy/module/modules/addons/chat-popups.lua index 8bc18701..c78a7b4d 100644 --- a/exp_legacy/module/modules/addons/chat-popups.lua +++ b/exp_legacy/module/modules/addons/chat-popups.lua @@ -2,11 +2,11 @@ -- also displays a ping above users who are named in the message -- @addon Chat-Popups -local Game = require 'utils.game' --- @dep utils.game -local Event = require 'utils.event' --- @dep utils.event -local config = require 'config.popup_messages' --- @dep config.popup_messages +local FloatingText = require("modules/exp_util/floating_text") +local Event = require("modules/exp_legacy/utils/event") --- @dep utils.event +local config = require("modules.exp_legacy.config.popup_messages") --- @dep config.popup_messages -local send_text = Game.print_player_floating_text -- (player_index, text, color) +local send_text = FloatingText.print_as_player -- (player, text) Event.add(defines.events.on_console_chat, function(event) if not event.player_index or event.player_index < 1 then return end @@ -18,7 +18,7 @@ Event.add(defines.events.on_console_chat, function(event) -- Sends the message as text above them if config.show_player_messages then - send_text(player.index, {'chat-popup.message', player.name, event.message}, player.chat_color) + send_text(player, {'chat-popup.message', player.name, event.message}) end if not config.show_player_mentions then return end @@ -30,7 +30,7 @@ Event.add(defines.events.on_console_chat, function(event) for _, mentioned_player in pairs(game.connected_players) do if mentioned_player.index ~= player.index then if search_string:find(mentioned_player.name:lower(), 1, true) then - send_text(mentioned_player.index, {'chat-popup.ping', player.name}, player.chat_color) + send_text(mentioned_player, {'chat-popup.ping', player.name}) end end end diff --git a/exp_legacy/module/modules/addons/chat-reply.lua b/exp_legacy/module/modules/addons/chat-reply.lua index 2f7cf3f9..aed97a25 100644 --- a/exp_legacy/module/modules/addons/chat-reply.lua +++ b/exp_legacy/module/modules/addons/chat-reply.lua @@ -1,9 +1,9 @@ --- Adds auto replies to chat messages; as well as chat commands -- @addon Chat-Reply -local Event = require 'utils.event' --- @dep utils.event -local Roles = require 'expcore.roles' --- @dep expcore.roles -local config = require 'config.chat_reply' --- @dep config.chat_reply +local Event = require("modules/exp_legacy/utils/event") --- @dep utils.event +local Roles = require("modules.exp_legacy.expcore.roles") --- @dep expcore.roles +local config = require("modules.exp_legacy.config.chat_reply") --- @dep config.chat_reply Event.add(defines.events.on_console_chat, function(event) local player_index = event.player_index diff --git a/exp_legacy/module/modules/addons/compilatron.lua b/exp_legacy/module/modules/addons/compilatron.lua index bc3686f3..2f5c58a5 100644 --- a/exp_legacy/module/modules/addons/compilatron.lua +++ b/exp_legacy/module/modules/addons/compilatron.lua @@ -1,11 +1,10 @@ --- Adds a compilatron that walks around the spawn area; adapted from redmew code -- @addon Compilatron -local Event = require 'utils.event' --- @dep utils.event -local Global = require 'utils.global' --- @dep utils.global -local Task = require 'utils.task' --- @dep utils.task -local Token = require 'utils.token' --- @dep utils.token -local config = require 'config.compilatron' --- @dep config.compilatron +local Async = require("modules/exp_util/async") +local Event = require("modules/exp_legacy/utils/event") --- @dep utils.event +local Storage = require("modules/exp_util/storage") +local config = require("modules.exp_legacy.config.compilatron") --- @dep config.compilatron local messages = config.messages local locations = config.locations @@ -14,7 +13,7 @@ local Public = { current_messages={} } -Global.register({ +Storage.register({ compilatrons = Public.compilatrons, current_messages = Public.current_messages }, function(tbl) @@ -22,20 +21,21 @@ Global.register({ Public.current_messages = tbl.current_messages end) ---- This will re-create the speech bubble after it de-spawns called with set_timeout -local callback = - Token.register( - function(data) - local ent = data.ent - local name = data.name - local msg_number = data.msg_number - local message = - ent.surface.create_entity( - {name = 'compi-speech-bubble', text = messages[name][msg_number], position = {0, 0}, source = ent} - ) - Public.current_messages[name] = {message = message, msg_number = msg_number} - end -) +local speech_bubble_async = +Async.register(function(data) + local message = + data.entity.surface.create_entity{ + name = 'compi-speech-bubble', + text = messages[data.name][data.msg_number], + source = data.entity, + position = {0, 0}, + } + + Public.current_messages[data.name] = { + message = message, + msg_number = data.msg_number + } +end) --- This will move the messages onto the next message in the loop local function circle_messages() @@ -57,7 +57,7 @@ local function circle_messages() msg_number = 1 end -- this calls the callback above to re-spawn the message after some time - Task.set_timeout_in_ticks(300, callback, {ent = ent, name = name, msg_number = msg_number}) + speech_bubble_async:start_after(300, {ent = ent, name = name, msg_number = msg_number}) end end diff --git a/exp_legacy/module/modules/addons/damage-popups.lua b/exp_legacy/module/modules/addons/damage-popups.lua index b6cb1662..b5a141c4 100644 --- a/exp_legacy/module/modules/addons/damage-popups.lua +++ b/exp_legacy/module/modules/addons/damage-popups.lua @@ -2,9 +2,9 @@ -- also shows player health when a player is attacked -- @addon Damage-Popups -local Game = require 'utils.game' --- @dep utils.game -local Event = require 'utils.event' --- @dep utils.event -local config = require 'config.popup_messages' --- @dep config.popup_messages +local FloatingText = require("modules/exp_util/floating_text") +local Event = require("modules/exp_legacy/utils/event") --- @dep utils.event +local config = require("modules.exp_legacy.config.popup_messages") --- @dep config.popup_messages Event.add(defines.events.on_entity_damaged, function(event) local entity = event.entity @@ -31,7 +31,7 @@ Event.add(defines.events.on_entity_damaged, function(event) -- Outputs the message as floating text if message then - Game.print_floating_text( + FloatingText.print( entity.surface, position, message, diff --git a/exp_legacy/module/modules/addons/death-logger.lua b/exp_legacy/module/modules/addons/death-logger.lua index 092bcd4a..70cc4583 100644 --- a/exp_legacy/module/modules/addons/death-logger.lua +++ b/exp_legacy/module/modules/addons/death-logger.lua @@ -1,9 +1,9 @@ --- Makes markers on the map where places have died and reclaims items if not recovered -- @addon Death-Logger -local Event = require 'utils.event' --- @dep utils.event -local Global = require 'utils.global' --- @dep utils.global -local config = require 'config.death_logger' --- @dep config.death_logger +local Event = require("modules/exp_legacy/utils/event") --- @dep utils.event +local Storage = require("modules/exp_util/storage") +local config = require("modules.exp_legacy.config.death_logger") --- @dep config.death_logger local format_time, move_items = _C.format_time, _C.move_items_stack --- @dep expcore.common -- Max amount of ticks a corpse can be alive @@ -13,7 +13,7 @@ local deaths = { archive={} -- deaths moved here after body is gone --{player_name='Cooldude2606', time_of_death='15H 15M', position={x=0, y=0}, corpse=LuaEntity, tag=LuaCustomChartTag} } -Global.register(deaths, function(tbl) +Storage.register(deaths, function(tbl) deaths = tbl end) diff --git a/exp_legacy/module/modules/addons/deconlog.lua b/exp_legacy/module/modules/addons/deconlog.lua index 0f3c8fd5..e00449fd 100644 --- a/exp_legacy/module/modules/addons/deconlog.lua +++ b/exp_legacy/module/modules/addons/deconlog.lua @@ -1,11 +1,11 @@ --- Log certain actions into a file when events are triggered -- @addon Deconlog -local Event = require 'utils.event' --- @dep utils.event -local Roles = require 'expcore.roles' --- @dep expcore.roles +local Event = require("modules/exp_legacy/utils/event") --- @dep utils.event +local Roles = require("modules.exp_legacy.expcore.roles") --- @dep expcore.roles local format_time = _C.format_time --- @dep expcore.common -local format_number = require('util').format_number --- @dep util -local config = require 'config.deconlog' --- @dep config.deconlog +local format_number = require("util").format_number --- @dep util +local config = require("modules.exp_legacy.config.deconlog") --- @dep config.deconlog local filepath = "log/decon.log" diff --git a/exp_legacy/module/modules/addons/discord-alerts.lua b/exp_legacy/module/modules/addons/discord-alerts.lua index d68150b4..e52a750d 100644 --- a/exp_legacy/module/modules/addons/discord-alerts.lua +++ b/exp_legacy/module/modules/addons/discord-alerts.lua @@ -1,10 +1,10 @@ --- Sends alert messages to our discord server when certain events are triggered -- @addon Discord-Alerts -local Event = require 'utils.event' --- @dep utils.event -local Colors = require 'utils.color_presets' --- @dep utils.color_presets +local Event = require("modules/exp_legacy/utils/event") --- @dep utils.event +local Colors = require("modules/exp_util/include/color") local write_json, format_time = _C.write_json, _C.format_time --- @dep expcore.common -local config = require 'config.discord_alerts' --- @dep config.discord_alerts +local config = require("modules.exp_legacy.config.discord_alerts") --- @dep config.discord_alerts local playtime_format = {hours = true, minutes = true, short = true, string = true} @@ -96,7 +96,7 @@ end --- Repeated protected entity mining if config.entity_protection then - local EntityProtection = require 'modules.control.protection' --- @dep modules.control.protection + local EntityProtection = require("modules.exp_legacy.modules.control.protection") --- @dep modules.control.protection Event.add(EntityProtection.events.on_repeat_violation, function(event) local player_name = get_player_name(event) emit_event{ @@ -112,7 +112,7 @@ end --- Reports added and removed if config.player_reports then - local Reports = require 'modules.control.reports' --- @dep modules.control.reports + local Reports = require("modules.exp_legacy.modules.control.reports") --- @dep modules.control.reports Event.add(Reports.events.on_player_reported, function(event) local player_name, by_player_name = get_player_name(event) emit_event{ @@ -141,7 +141,7 @@ end --- Warnings added and removed if config.player_warnings then - local Warnings = require 'modules.control.warnings' --- @dep modules.control.warnings + local Warnings = require("modules.exp_legacy.modules.control.warnings") --- @dep modules.control.warnings Event.add(Warnings.events.on_warning_added, function(event) local player_name, by_player_name = get_player_name(event) local player = game.get_player(player_name) @@ -171,7 +171,7 @@ end --- When a player is jailed or unjailed if config.player_jail then - local Jail = require 'modules.control.jail' + local Jail = require("modules.exp_legacy.modules.control.jail") Event.add(Jail.events.on_player_jailed, function(event) local player_name, by_player_name = get_player_name(event) emit_event{ diff --git a/exp_legacy/module/modules/addons/fagc.lua b/exp_legacy/module/modules/addons/fagc.lua index ddf10485..6bcdcf9f 100644 --- a/exp_legacy/module/modules/addons/fagc.lua +++ b/exp_legacy/module/modules/addons/fagc.lua @@ -1,7 +1,7 @@ --- Allows the FAGC clientside bot to receive information about bans and unbans and propagate that information to other servers -- @addon FAGC -local Event = require 'utils.event' --- @dep utils.event +local Event = require("modules/exp_legacy/utils/event") --- @dep utils.event -- Clear the file on startup to minimize its size Event.on_init(function() diff --git a/exp_legacy/module/modules/addons/inserter.lua b/exp_legacy/module/modules/addons/inserter.lua index 5ddd696f..dc03c514 100644 --- a/exp_legacy/module/modules/addons/inserter.lua +++ b/exp_legacy/module/modules/addons/inserter.lua @@ -1,4 +1,4 @@ -local Event = require 'utils.event' +local Event = require("modules/exp_legacy/utils/event") local controllers_with_inventory = { [defines.controllers.character] = true, diff --git a/exp_legacy/module/modules/addons/inventory-clear.lua b/exp_legacy/module/modules/addons/inventory-clear.lua index 51dc18e2..de761baf 100644 --- a/exp_legacy/module/modules/addons/inventory-clear.lua +++ b/exp_legacy/module/modules/addons/inventory-clear.lua @@ -1,8 +1,8 @@ --- Will move players items to spawn when they are banned or kicked, option to clear on leave -- @addon Inventory-Clear -local Event = require 'utils.event' --- @dep utils.event -local events = require 'config.inventory_clear' --- @dep config.inventory_clear +local Event = require("modules/exp_legacy/utils/event") --- @dep utils.event +local events = require("modules.exp_legacy.config.inventory_clear") --- @dep config.inventory_clear local move_items_stack = _C.move_items_stack --- @dep expcore.common local function clear_items(event) diff --git a/exp_legacy/module/modules/addons/lawnmower.lua b/exp_legacy/module/modules/addons/lawnmower.lua index f7b68116..e0d8c355 100644 --- a/exp_legacy/module/modules/addons/lawnmower.lua +++ b/exp_legacy/module/modules/addons/lawnmower.lua @@ -3,10 +3,10 @@ @addon Lawnmower ]] -local Commands = require 'expcore.commands' --- @dep expcore.commands -local Event = require 'utils.event' --- @dep utils.event -local config = require 'config.lawnmower' --- @dep config.lawnmower -require 'config.expcore.command_general_parse' +local Commands = require("modules.exp_legacy.expcore.commands") --- @dep expcore.commands +local Event = require("modules/exp_legacy/utils/event") --- @dep utils.event +local config = require("modules.exp_legacy.config.lawnmower") --- @dep config.lawnmower +require("modules.exp_legacy.config.expcore.command_general_parse") Commands.new_command('lawnmower', {'expcom-lawnmower.description'}, 'Clean up biter corpse, decoratives and nuclear hole') :add_param('range', false, 'integer-range', 1, 200) diff --git a/exp_legacy/module/modules/addons/logging.lua b/exp_legacy/module/modules/addons/logging.lua index b3e04876..9f5f85aa 100644 --- a/exp_legacy/module/modules/addons/logging.lua +++ b/exp_legacy/module/modules/addons/logging.lua @@ -2,9 +2,9 @@ @addon Logging ]] -local Event = require 'utils.event' --- @dep utils.event -local config = require 'config.logging' --- @dep config.logging -local config_res = require 'config.research' --- @dep config.research +local Event = require("modules/exp_legacy/utils/event") --- @dep utils.event +local config = require("modules.exp_legacy.config.logging") --- @dep config.logging +local config_res = require("modules.exp_legacy.config.research") --- @dep config.research local function add_log(data) game.write_file(config.file_name, data, true, 0) diff --git a/exp_legacy/module/modules/addons/miner.lua b/exp_legacy/module/modules/addons/miner.lua index b4909003..573984ce 100644 --- a/exp_legacy/module/modules/addons/miner.lua +++ b/exp_legacy/module/modules/addons/miner.lua @@ -1,10 +1,9 @@ -local Event = require 'utils.event_core' --- @dep utils.event_core -local Global = require 'utils.global' --- @dep utils.global -local config = require 'config.miner' --- @dep config.miner +local Event = require("modules/exp_legacy/utils/event") --- @dep utils.event_core +local Storage = require("modules/exp_util/storage") +local config = require("modules.exp_legacy.config.miner") --- @dep config.miner local miner_data = {} - -Global.register(miner_data, function(tbl) +Storage.register(miner_data, function(tbl) miner_data = tbl end) diff --git a/exp_legacy/module/modules/addons/nukeprotect.lua b/exp_legacy/module/modules/addons/nukeprotect.lua index 77c55a54..18df9046 100644 --- a/exp_legacy/module/modules/addons/nukeprotect.lua +++ b/exp_legacy/module/modules/addons/nukeprotect.lua @@ -1,9 +1,9 @@ --- Disable new players from having certain items in their inventory, most commonly nukes -- @addon Nukeprotect -local Event = require 'utils.event' --- @dep utils.event -local Roles = require 'expcore.roles' --- @dep expcore.roles -local config = require 'config.nukeprotect' --- @dep config.nukeprotect +local Event = require("modules/exp_legacy/utils/event") --- @dep utils.event +local Roles = require("modules.exp_legacy.expcore.roles") --- @dep expcore.roles +local config = require("modules.exp_legacy.config.nukeprotect") --- @dep config.nukeprotect local move_items_stack = _C.move_items_stack --- @dep expcore.common diff --git a/exp_legacy/module/modules/addons/pollution-grading.lua b/exp_legacy/module/modules/addons/pollution-grading.lua index 872cd758..50d5f7ee 100644 --- a/exp_legacy/module/modules/addons/pollution-grading.lua +++ b/exp_legacy/module/modules/addons/pollution-grading.lua @@ -1,8 +1,8 @@ --- Makes polution look much nice of the map, ie not one big red mess -- @addon Pollution-Grading -local Event = require 'utils.event' --- @dep utils.event -local config = require 'config.pollution_grading' --- @dep config.pollution_grading +local Event = require("modules/exp_legacy/utils/event") --- @dep utils.event +local config = require("modules.exp_legacy.config.pollution_grading") --- @dep config.pollution_grading local delay = config.update_delay * 3600 -- convert from minutes to ticks Event.on_nth_tick(delay, function() diff --git a/exp_legacy/module/modules/addons/protection-jail.lua b/exp_legacy/module/modules/addons/protection-jail.lua index e717c67b..53ac001f 100644 --- a/exp_legacy/module/modules/addons/protection-jail.lua +++ b/exp_legacy/module/modules/addons/protection-jail.lua @@ -1,15 +1,15 @@ --- When a player triggers protection multiple times they are automatically jailed -- @addon protection-jail -local Event = require 'utils.event' ---@dep utils.event -local Global = require 'utils.global' ---@dep utils.global -local Jail = require 'modules.control.jail' ---@dep modules.control.jail -local Protection = require 'modules.control.protection' --- @dep modules.control.protection +local Event = require("modules/exp_legacy/utils/event") ---@dep utils.event +local Storage = require("modules/exp_util/storage") ---@dep utils.global +local Jail = require("modules.exp_legacy.modules.control.jail") ---@dep modules.control.jail +local Protection = require("modules.exp_legacy.modules.control.protection") --- @dep modules.control.protection local format_chat_player_name = _C.format_chat_player_name --- @dep expcore.common --- Stores how many times the repeat violation was triggered local repeat_count = {} -Global.register(repeat_count, function(tbl) +Storage.register(repeat_count, function(tbl) repeat_count = tbl end) diff --git a/exp_legacy/module/modules/addons/report-jail.lua b/exp_legacy/module/modules/addons/report-jail.lua index 275321a3..993fbcda 100644 --- a/exp_legacy/module/modules/addons/report-jail.lua +++ b/exp_legacy/module/modules/addons/report-jail.lua @@ -1,9 +1,9 @@ --- When a player is reported, the player is automatically jailed if the combined playtime of the reporters exceeds the reported player -- @addon report-jail -local Event = require 'utils.event' ---@dep utils.event -local Jail = require 'modules.control.jail' ---@dep modules.control.jail -local Reports = require 'modules.control.reports' --- @dep modules.control.reports +local Event = require("modules/exp_legacy/utils/event") ---@dep utils.event +local Jail = require("modules.exp_legacy.modules.control.jail") ---@dep modules.control.jail +local Reports = require("modules.exp_legacy.modules.control.reports") --- @dep modules.control.reports local format_chat_player_name = _C.format_chat_player_name --- @dep expcore.common --- Returns the playtime of the reporter. Used when calculating the total playtime of all reporters diff --git a/exp_legacy/module/modules/addons/scorched-earth.lua b/exp_legacy/module/modules/addons/scorched-earth.lua index 1af6b59b..90cd0d79 100644 --- a/exp_legacy/module/modules/addons/scorched-earth.lua +++ b/exp_legacy/module/modules/addons/scorched-earth.lua @@ -1,10 +1,10 @@ --- When a player walks around the tiles under them will degrade over time, the same is true when entites are built -- @addon Scorched-Earth -local Event = require 'utils.event' --- @dep utils.event -local Global = require 'utils.global' --- @dep utils.global +local Event = require("modules/exp_legacy/utils/event") --- @dep utils.event +local Storage = require("modules/exp_util/storage") local print_grid_value, clear_flying_text = _C.print_grid_value, _C.clear_flying_text --- @dep expcore.common -local config = require 'config.scorched_earth' --- @dep config.scorched_earth +local config = require("modules.exp_legacy.config.scorched_earth") --- @dep config.scorched_earth -- Loops over the config and finds the wile which has the highest value for strength local max_strength = 0 @@ -16,7 +16,7 @@ end -- Used for debugging the degrade chances local debug_players = {} -Global.register(debug_players, function(tbl) +Storage.register(debug_players, function(tbl) debug_players = tbl end) diff --git a/exp_legacy/module/modules/addons/spawn-area.lua b/exp_legacy/module/modules/addons/spawn-area.lua index 3d28b4a2..f8260355 100644 --- a/exp_legacy/module/modules/addons/spawn-area.lua +++ b/exp_legacy/module/modules/addons/spawn-area.lua @@ -1,12 +1,12 @@ --- Adds a custom spawn area with chests and afk turrets -- @addon Spawn-Area -local Global = require 'utils.global' --- @dep utils.global -local Event = require 'utils.event' --- @dep utils.event -local config = require 'config.spawn_area' --- @dep config.spawn_area +local Storage = require("modules/exp_util/storage") +local Event = require("modules/exp_legacy/utils/event") --- @dep utils.event +local config = require("modules.exp_legacy.config.spawn_area") --- @dep config.spawn_area local turrets = config.turrets.locations -Global.register(turrets, function(tbl) +Storage.register(turrets, function(tbl) turrets = tbl end) diff --git a/exp_legacy/module/modules/addons/station-auto-name.lua b/exp_legacy/module/modules/addons/station-auto-name.lua index fc164743..813e4be8 100644 --- a/exp_legacy/module/modules/addons/station-auto-name.lua +++ b/exp_legacy/module/modules/addons/station-auto-name.lua @@ -1,7 +1,7 @@ ---LuaPlayerBuiltEntityEventFilters ---Events.set_event_filter(defines.events.on_built_entity, {{filter = "name", name = "fast-inserter"}}) -local Event = require 'utils.event' --- @dep utils.event -local config = require 'config.station_auto_name' --- @dep config.chat_reply +local Event = require("modules/exp_legacy/utils/event") --- @dep utils.event +local config = require("modules.exp_legacy.config.station_auto_name") --- @dep config.chat_reply --Credit to Cooldude2606 for using his lua magic to make this function. local directions = { diff --git a/exp_legacy/module/modules/addons/tree-decon.lua b/exp_legacy/module/modules/addons/tree-decon.lua index c33f1cdd..6d02701e 100644 --- a/exp_legacy/module/modules/addons/tree-decon.lua +++ b/exp_legacy/module/modules/addons/tree-decon.lua @@ -1,16 +1,16 @@ --- Makes trees which are marked for decon "decay" quickly to allow faster building -- @addon Tree-Decon -local Event = require 'utils.event' --- @dep utils.event -local Global = require 'utils.global' --- @dep utils.global -local Roles = require 'expcore.roles' --- @dep expcore.roles -local Gui = require 'expcore.gui' --- @dep expcore.gui -local PlayerData = require 'expcore.player_data' --- @dep expcore.player_data +local Event = require("modules/exp_legacy/utils/event") --- @dep utils.event +local Storage = require("modules/exp_util/storage") +local Roles = require("modules.exp_legacy.expcore.roles") --- @dep expcore.roles +local Gui = require("modules.exp_legacy.expcore.gui") --- @dep expcore.gui +local PlayerData = require("modules.exp_legacy.expcore.player_data") --- @dep expcore.player_data --- Global queue used to store trees that need to be removed, also cache for player roles +-- Storage queue used to store trees that need to be removed, also cache for player roles local cache = {} local tree_queue = { _head=0 } -Global.register({tree_queue, cache}, function(tbl) +Storage.register({tree_queue, cache}, function(tbl) tree_queue = tbl[1] cache = tbl[2] end) diff --git a/exp_legacy/module/modules/commands/admin-chat.lua b/exp_legacy/module/modules/commands/admin-chat.lua index b755c49a..d6f1dbbe 100644 --- a/exp_legacy/module/modules/commands/admin-chat.lua +++ b/exp_legacy/module/modules/commands/admin-chat.lua @@ -3,9 +3,9 @@ @commands Admin-Chat ]] -local Commands = require 'expcore.commands' --- @dep expcore.commands +local Commands = require("modules.exp_legacy.expcore.commands") --- @dep expcore.commands local format_chat_player_name = _C.format_chat_player_name --- @dep expcore.common -require 'config.expcore.command_general_parse' +require("modules.exp_legacy.config.expcore.command_general_parse") --- Sends a message in chat that only admins can see -- @command admin-chat @@ -17,7 +17,6 @@ Commands.new_command('admin-chat', {'expcom-admin-chat.description'}, 'Sends a m :add_alias('ac') :register(function(player, message) local player_name_colour = format_chat_player_name(player) - for _, return_player in pairs(game.connected_players) do if return_player.admin then return_player.print{'expcom-admin-chat.format', player_name_colour, message} diff --git a/exp_legacy/module/modules/commands/admin-markers.lua b/exp_legacy/module/modules/commands/admin-markers.lua index 098fd07d..62291590 100644 --- a/exp_legacy/module/modules/commands/admin-markers.lua +++ b/exp_legacy/module/modules/commands/admin-markers.lua @@ -3,15 +3,15 @@ @commands Admin-Markers ]] -local Commands = require 'expcore.commands' --- @dep expcore.commands -local Global = require 'utils.global' --- @dep utils.global -local Event = require 'utils.event' --- @dep utils.event +local Commands = require("modules.exp_legacy.expcore.commands") --- @dep expcore.commands +local Storage = require("modules/exp_util/storage") +local Event = require("modules/exp_legacy/utils/event") --- @dep utils.event local admins = {} -- Stores all players in admin marker mode local markers = {} -- Stores all admin markers ---- Global variables -Global.register({ +--- Storage variables +Storage.register({ admins = admins, markers = markers }, function(tbl) diff --git a/exp_legacy/module/modules/commands/artillery.lua b/exp_legacy/module/modules/commands/artillery.lua index 01e9e4d9..5050a3a1 100644 --- a/exp_legacy/module/modules/commands/artillery.lua +++ b/exp_legacy/module/modules/commands/artillery.lua @@ -3,9 +3,9 @@ @commands Artillery ]] -local Commands = require 'expcore.commands' --- @dep expcore.commands -require 'config.expcore.command_general_parse' -local Selection = require 'modules.control.selection' --- @dep modules.control.selection +local Commands = require("modules.exp_legacy.expcore.commands") --- @dep expcore.commands +require("modules.exp_legacy.config.expcore.command_general_parse") +local Selection = require("modules.exp_legacy.modules.control.selection") --- @dep modules.control.selection local SelectionArtyArea = 'ArtyArea' local function location_break(player, pos) diff --git a/exp_legacy/module/modules/commands/bot-queue.lua b/exp_legacy/module/modules/commands/bot-queue.lua index 65a967eb..8313ad8d 100644 --- a/exp_legacy/module/modules/commands/bot-queue.lua +++ b/exp_legacy/module/modules/commands/bot-queue.lua @@ -3,8 +3,8 @@ @commands Bot Queue ]] -local Commands = require 'expcore.commands' --- @dep expcore.commands -require 'config.expcore.command_general_parse' +local Commands = require("modules.exp_legacy.expcore.commands") --- @dep expcore.commands +require("modules.exp_legacy.config.expcore.command_general_parse") Commands.new_command('bot-queue-get', {'expcom-bot-queue.description-get'}, 'Get bot queue') :set_flag('admin_only') diff --git a/exp_legacy/module/modules/commands/cheat-mode.lua b/exp_legacy/module/modules/commands/cheat-mode.lua index 853d82b9..c3903b64 100644 --- a/exp_legacy/module/modules/commands/cheat-mode.lua +++ b/exp_legacy/module/modules/commands/cheat-mode.lua @@ -3,8 +3,8 @@ @commands Cheat-Mode ]] -local Commands = require 'expcore.commands' --- @dep expcore.commands -require 'config.expcore.command_general_parse' +local Commands = require("modules.exp_legacy.expcore.commands") --- @dep expcore.commands +require("modules.exp_legacy.config.expcore.command_general_parse") --- Toggles cheat mode for your player, or another player. -- @command toggle-cheat-mode diff --git a/exp_legacy/module/modules/commands/clear-inventory.lua b/exp_legacy/module/modules/commands/clear-inventory.lua index 21df9a0a..a87a50aa 100644 --- a/exp_legacy/module/modules/commands/clear-inventory.lua +++ b/exp_legacy/module/modules/commands/clear-inventory.lua @@ -3,9 +3,9 @@ @commands Clear-Inventory ]] -local Commands = require 'expcore.commands' --- @dep expcore.commands +local Commands = require("modules.exp_legacy.expcore.commands") --- @dep expcore.commands local move_items_stack = _C.move_items_stack --- @dep expcore.common -require 'config.expcore.command_role_parse' +require("modules.exp_legacy.config.expcore.command_role_parse") --- Clears a players inventory -- @command clear-inventory diff --git a/exp_legacy/module/modules/commands/connect.lua b/exp_legacy/module/modules/commands/connect.lua index ba128b2c..d48c950c 100644 --- a/exp_legacy/module/modules/commands/connect.lua +++ b/exp_legacy/module/modules/commands/connect.lua @@ -3,13 +3,13 @@ @commands Connect ]] -local Async = require 'expcore.async' --- @dep expcore.async -local External = require 'expcore.external' --- @dep expcore.external -local Commands = require 'expcore.commands' --- @dep expcore.commands -require 'config.expcore.command_role_parse' +local Async = require("modules/exp_util/async") +local External = require("modules.exp_legacy.expcore.external") --- @dep expcore.external +local Commands = require("modules.exp_legacy.expcore.commands") --- @dep expcore.commands +require("modules.exp_legacy.config.expcore.command_role_parse") local concat = table.concat -local request_connection = Async.register(External.request_connection) +local request_connection_async = Async.register(External.request_connection) local function get_server_id(server) local current_server = External.get_current_server() diff --git a/exp_legacy/module/modules/commands/debug.lua b/exp_legacy/module/modules/commands/debug.lua index df0daf36..59835009 100644 --- a/exp_legacy/module/modules/commands/debug.lua +++ b/exp_legacy/module/modules/commands/debug.lua @@ -3,8 +3,8 @@ @commands Debug ]] -local DebugView = require 'modules.gui.debug.main_view' --- @dep modules.gui.debug.main_view -local Commands = require 'expcore.commands' --- @dep expcore.commands +local DebugView = require("modules.exp_legacy.modules.gui.debug.main_view") --- @dep modules.gui.debug.main_view +local Commands = require("modules.exp_legacy.expcore.commands") --- @dep expcore.commands --- Opens the debug pannel for viewing tables. -- @command debug diff --git a/exp_legacy/module/modules/commands/enemy.lua b/exp_legacy/module/modules/commands/enemy.lua index b0313a15..427a9ff3 100644 --- a/exp_legacy/module/modules/commands/enemy.lua +++ b/exp_legacy/module/modules/commands/enemy.lua @@ -3,8 +3,8 @@ @commands Enemy ]] -local Commands = require 'expcore.commands' --- @dep expcore.commands -require 'config.expcore.command_general_parse' +local Commands = require("modules.exp_legacy.expcore.commands") --- @dep expcore.commands +require("modules.exp_legacy.config.expcore.command_general_parse") Commands.new_command('kill-biters', {'expcom-enemy.description-kill'}, 'Kill all biters only') :set_flag('admin_only') diff --git a/exp_legacy/module/modules/commands/find.lua b/exp_legacy/module/modules/commands/find.lua index be9dc5f3..f2dd6a90 100644 --- a/exp_legacy/module/modules/commands/find.lua +++ b/exp_legacy/module/modules/commands/find.lua @@ -3,8 +3,8 @@ @commands Find ]] -local Commands = require 'expcore.commands' --- @dep expcore.commands -require 'config.expcore.command_general_parse' +local Commands = require("modules.exp_legacy.expcore.commands") --- @dep expcore.commands +require("modules.exp_legacy.config.expcore.command_general_parse") --- Find a player on your map. -- @command find-on-map diff --git a/exp_legacy/module/modules/commands/friendly-fire.lua b/exp_legacy/module/modules/commands/friendly-fire.lua index 15c182a0..d8452f1f 100644 --- a/exp_legacy/module/modules/commands/friendly-fire.lua +++ b/exp_legacy/module/modules/commands/friendly-fire.lua @@ -3,8 +3,8 @@ @commands Toggle Friendly Fire ]] -local Commands = require 'expcore.commands' --- @dep expcore.commands -require 'config.expcore.command_general_parse' +local Commands = require("modules.exp_legacy.expcore.commands") --- @dep expcore.commands +require("modules.exp_legacy.config.expcore.command_general_parse") -- For Modded Server Use Commands.new_command('toggle-friendly-fire', {'expcom-ff.description'}, 'Toggle friendly fire') diff --git a/exp_legacy/module/modules/commands/help.lua b/exp_legacy/module/modules/commands/help.lua index 83e66394..13dba196 100644 --- a/exp_legacy/module/modules/commands/help.lua +++ b/exp_legacy/module/modules/commands/help.lua @@ -3,14 +3,14 @@ @commands Help ]] -local Commands = require 'expcore.commands' --- @dep expcore.commands -local Global = require 'utils.global' --- @dep utils.global -require 'config.expcore.command_general_parse' +local Commands = require("modules.exp_legacy.expcore.commands") --- @dep expcore.commands +local Storage = require("modules/exp_util/storage") +require("modules.exp_legacy.config.expcore.command_general_parse") local results_per_page = 5 local search_cache = {} -Global.register(search_cache, function(tbl) +Storage.register(search_cache, function(tbl) search_cache = tbl end) @@ -25,7 +25,6 @@ Commands.new_command('search-help', {'expcom-chelp.description'}, 'Searches for :set_defaults{keyword='', page=1} :register(function(player, keyword, page) local player_index = player and player.index or 0 - -- if keyword is a number then treat it as page number if tonumber(keyword) then page = math.floor(tonumber(keyword)) @@ -45,7 +44,6 @@ Commands.new_command('search-help', {'expcom-chelp.description'}, 'Searches for local current_page = 1 local page_count = 0 local commands = Commands.search(keyword, player) - -- loops other all commands returned by search, includes game commands for _, command_data in pairs(commands) do -- if the number of results if greater than the number already added then it moves onto a new page @@ -54,7 +52,6 @@ Commands.new_command('search-help', {'expcom-chelp.description'}, 'Searches for current_page = current_page + 1 table.insert(pages, {}) end - -- adds the new command to the page page_count = page_count + 1 found = found + 1 @@ -67,7 +64,6 @@ Commands.new_command('search-help', {'expcom-chelp.description'}, 'Searches for alias_format }) end - -- adds the result to the cache search_cache[player_index] = { keyword=keyword:lower(), @@ -91,7 +87,6 @@ Commands.new_command('search-help', {'expcom-chelp.description'}, 'Searches for Commands.print({'expcom-chelp.footer', found, page, #pages}, 'cyan') return Commands.error{'expcom-chelp.out-of-range', page} end - -- blocks command complete message return Commands.success end) diff --git a/exp_legacy/module/modules/commands/home.lua b/exp_legacy/module/modules/commands/home.lua index 7310b790..621783cf 100644 --- a/exp_legacy/module/modules/commands/home.lua +++ b/exp_legacy/module/modules/commands/home.lua @@ -3,12 +3,12 @@ @commands Home ]] -local Commands = require 'expcore.commands' --- @dep expcore.commands -local Global = require 'utils.global' --- @dep utils.global -require 'config.expcore.command_general_parse' +local Commands = require("modules.exp_legacy.expcore.commands") --- @dep expcore.commands +local Storage = require("modules/exp_util/storage") +require("modules.exp_legacy.config.expcore.command_general_parse") local homes = {} -Global.register(homes, function(tbl) +Storage.register(homes, function(tbl) homes = tbl end) diff --git a/exp_legacy/module/modules/commands/interface.lua b/exp_legacy/module/modules/commands/interface.lua index 1ed5410b..552ab763 100644 --- a/exp_legacy/module/modules/commands/interface.lua +++ b/exp_legacy/module/modules/commands/interface.lua @@ -3,8 +3,8 @@ @commands Interface ]] -local Commands = require 'expcore.commands' --- @dep expcore.commands -local Global = require 'utils.global' --- @dep utils.global +local Commands = require("modules.exp_legacy.expcore.commands") --- @dep expcore.commands +local Storage = require("modules/exp_util/storage") -- modules that are loaded into the interface env to be accessed local interface_modules = { @@ -13,7 +13,6 @@ local interface_modules = { ['Group'] = 'expcore.permission_groups', ['Roles'] = 'expcore.roles', ['Gui'] = 'expcore.gui', - ['Async'] = 'expcore.async', ['Datastore'] = 'expcore.datastore', ['External'] = 'expcore.external' } @@ -27,7 +26,7 @@ end local interface_env = {} -- used as a persistent sandbox for interface commands local interface_callbacks = {} -- saves callbacks which can load new values per use -Global.register(interface_env, function(tbl) +Storage.register(interface_env, function(tbl) interface_env = tbl end) diff --git a/exp_legacy/module/modules/commands/jail.lua b/exp_legacy/module/modules/commands/jail.lua index 3b1385e7..7a9a0444 100644 --- a/exp_legacy/module/modules/commands/jail.lua +++ b/exp_legacy/module/modules/commands/jail.lua @@ -3,10 +3,10 @@ @commands Jail ]] -local Commands = require 'expcore.commands' --- @dep expcore.commands -local Jail = require 'modules.control.jail' --- @dep modules.control.jail +local Commands = require("modules.exp_legacy.expcore.commands") --- @dep expcore.commands +local Jail = require("modules.exp_legacy.modules.control.jail") --- @dep modules.control.jail local format_chat_player_name = _C.format_chat_player_name --- @dep expcore.common -require 'config.expcore.command_role_parse' +require("modules.exp_legacy.config.expcore.command_role_parse") --- Puts a player into jail and removes all other roles. -- @command jail diff --git a/exp_legacy/module/modules/commands/kill.lua b/exp_legacy/module/modules/commands/kill.lua index 7f928103..c948c124 100644 --- a/exp_legacy/module/modules/commands/kill.lua +++ b/exp_legacy/module/modules/commands/kill.lua @@ -3,10 +3,10 @@ @commands Kill ]] -local Commands = require 'expcore.commands' --- @dep expcore.commands -local Roles = require 'expcore.roles' --- @dep expcore.roles -require 'config.expcore.command_general_parse' -require 'config.expcore.command_role_parse' +local Commands = require("modules.exp_legacy.expcore.commands") --- @dep expcore.commands +local Roles = require("modules.exp_legacy.expcore.roles") --- @dep expcore.roles +require("modules.exp_legacy.config.expcore.command_general_parse") +require("modules.exp_legacy.config.expcore.command_role_parse") --- Kills yourself or another player. -- @command kill diff --git a/exp_legacy/module/modules/commands/last-location.lua b/exp_legacy/module/modules/commands/last-location.lua index 3796a452..1b840d14 100644 --- a/exp_legacy/module/modules/commands/last-location.lua +++ b/exp_legacy/module/modules/commands/last-location.lua @@ -3,9 +3,9 @@ @commands LastLocation ]] -local Commands = require 'expcore.commands' --- @dep expcore.commands +local Commands = require("modules.exp_legacy.expcore.commands") --- @dep expcore.commands local format_chat_player_name = _C.format_chat_player_name --- @dep expcore.common -require 'config.expcore.command_general_parse' +require("modules.exp_legacy.config.expcore.command_general_parse") --- Get the last location of a player. -- @command last-location diff --git a/exp_legacy/module/modules/commands/me.lua b/exp_legacy/module/modules/commands/me.lua index 16d9b575..899ee663 100644 --- a/exp_legacy/module/modules/commands/me.lua +++ b/exp_legacy/module/modules/commands/me.lua @@ -3,7 +3,7 @@ @commands Me ]] -local Commands = require 'expcore.commands' --- @dep expcore.commands +local Commands = require("modules.exp_legacy.expcore.commands") --- @dep expcore.commands --- Sends an action message in the chat -- @command me diff --git a/exp_legacy/module/modules/commands/pollution.lua b/exp_legacy/module/modules/commands/pollution.lua index 9e13c096..c1f2f95b 100644 --- a/exp_legacy/module/modules/commands/pollution.lua +++ b/exp_legacy/module/modules/commands/pollution.lua @@ -3,8 +3,8 @@ @commands Pollution Handle ]] -local Commands = require 'expcore.commands' --- @dep expcore.commands -require 'config.expcore.command_general_parse' +local Commands = require("modules.exp_legacy.expcore.commands") --- @dep expcore.commands +require("modules.exp_legacy.config.expcore.command_general_parse") Commands.new_command('pollution-clear', {'expcom-pol.description-clr'}, 'Clear pollution') :set_flag('admin_only') diff --git a/exp_legacy/module/modules/commands/protection.lua b/exp_legacy/module/modules/commands/protection.lua index 5a5554d4..7ac2a66a 100644 --- a/exp_legacy/module/modules/commands/protection.lua +++ b/exp_legacy/module/modules/commands/protection.lua @@ -3,19 +3,19 @@ @commands Protection ]] -local Event = require 'utils.event' --- @dep utils.event -local Global = require 'utils.global' --- @dep utils.global -local Roles = require 'expcore.roles' --- @dep expcore.roles -local Commands = require 'expcore.commands' --- @dep expcore.commands +local Event = require("modules/exp_legacy/utils/event") --- @dep utils.event +local Storage = require("modules/exp_util/storage") +local Roles = require("modules.exp_legacy.expcore.roles") --- @dep expcore.roles +local Commands = require("modules.exp_legacy.expcore.commands") --- @dep expcore.commands local format_chat_player_name = _C.format_chat_player_name --- @dep expcore.common -local EntityProtection = require 'modules.control.protection' --- @dep modules.control.protection -local Selection = require 'modules.control.selection' --- @dep modules.control.selection +local EntityProtection = require("modules.exp_legacy.modules.control.protection") --- @dep modules.control.protection +local Selection = require("modules.exp_legacy.modules.control.selection") --- @dep modules.control.selection local SelectionProtectEntity = 'ProtectEntity' local SelectionProtectArea = 'ProtectArea' local renders = {} -- Stores all renders for a player -Global.register({ +Storage.register({ renders = renders }, function(tbl) renders = tbl.renders diff --git a/exp_legacy/module/modules/commands/rainbow.lua b/exp_legacy/module/modules/commands/rainbow.lua index ac9c16d8..b53d3e30 100644 --- a/exp_legacy/module/modules/commands/rainbow.lua +++ b/exp_legacy/module/modules/commands/rainbow.lua @@ -3,7 +3,7 @@ @commands Rainbow ]] -local Commands = require 'expcore.commands' --- @dep expcore.commands +local Commands = require("modules.exp_legacy.expcore.commands") --- @dep expcore.commands local format_chat_colour = _C.format_chat_colour --- @dep expcore.common local function step_component(c1, c2) diff --git a/exp_legacy/module/modules/commands/ratio.lua b/exp_legacy/module/modules/commands/ratio.lua index 0d230280..dffbe2dd 100644 --- a/exp_legacy/module/modules/commands/ratio.lua +++ b/exp_legacy/module/modules/commands/ratio.lua @@ -1,6 +1,6 @@ -local Commands = require 'expcore.commands' +local Commands = require("modules.exp_legacy.expcore.commands") local function Modules(moduleInventory) -- returns the multiplier of the modules local effect1 = moduleInventory.get_item_count("productivity-module") -- type 1 diff --git a/exp_legacy/module/modules/commands/repair.lua b/exp_legacy/module/modules/commands/repair.lua index 72be75d1..ee61300d 100644 --- a/exp_legacy/module/modules/commands/repair.lua +++ b/exp_legacy/module/modules/commands/repair.lua @@ -3,9 +3,9 @@ @commands Repair ]] -local Commands = require 'expcore.commands' --- @dep expcore.commands -local config = require 'config.repair' --- @dep config.repair -require 'config.expcore.command_general_parse' +local Commands = require("modules.exp_legacy.expcore.commands") --- @dep expcore.commands +local config = require("modules.exp_legacy.config.repair") --- @dep config.repair +require("modules.exp_legacy.config.expcore.command_general_parse") local max_time_to_live = 4294967295 -- unit32 max --- Repairs entities on your force around you diff --git a/exp_legacy/module/modules/commands/reports.lua b/exp_legacy/module/modules/commands/reports.lua index 82512c1d..b08f277d 100644 --- a/exp_legacy/module/modules/commands/reports.lua +++ b/exp_legacy/module/modules/commands/reports.lua @@ -3,11 +3,11 @@ @commands Reports ]] -local Roles = require 'expcore.roles' --- @dep expcore.roles -local Commands = require 'expcore.commands' --- @dep expcore.commands -local Reports = require 'modules.control.reports' --- @dep modules.control.reports +local Roles = require("modules.exp_legacy.expcore.roles") --- @dep expcore.roles +local Commands = require("modules.exp_legacy.expcore.commands") --- @dep expcore.commands +local Reports = require("modules.exp_legacy.modules.control.reports") --- @dep modules.control.reports local format_chat_player_name = _C.format_chat_player_name--- @dep expcore.common -require 'config.expcore.command_general_parse' +require("modules.exp_legacy.config.expcore.command_general_parse") --- Print a message to all players who match the value of admin local function print_to_players(admin, message) diff --git a/exp_legacy/module/modules/commands/research.lua b/exp_legacy/module/modules/commands/research.lua index bc05741c..5f4fe417 100644 --- a/exp_legacy/module/modules/commands/research.lua +++ b/exp_legacy/module/modules/commands/research.lua @@ -1,10 +1,10 @@ -local Global = require 'utils.global' --- @dep utils.global -local Event = require 'utils.event' --- @dep utils.event -local Commands = require 'expcore.commands' --- @dep expcore.commands -local config = require 'config.research' --- @dep config.research +local Storage = require("modules/exp_util/storage") +local Event = require("modules/exp_legacy/utils/event") --- @dep utils.event +local Commands = require("modules.exp_legacy.expcore.commands") --- @dep expcore.commands +local config = require("modules.exp_legacy.config.research") --- @dep config.research local research = {} -Global.register(research, function(tbl) +Storage.register(research, function(tbl) research = tbl end) diff --git a/exp_legacy/module/modules/commands/roles.lua b/exp_legacy/module/modules/commands/roles.lua index 194c017e..e8a31a5d 100644 --- a/exp_legacy/module/modules/commands/roles.lua +++ b/exp_legacy/module/modules/commands/roles.lua @@ -3,9 +3,9 @@ @commands Roles ]] -local Commands = require 'expcore.commands' --- @dep expcore.commands -local Roles = require 'expcore.roles' --- @dep expcore.roles -local Colours = require 'utils.color_presets' --- @dep utils.color_presets +local Commands = require("modules.exp_legacy.expcore.commands") --- @dep expcore.commands +local Roles = require("modules.exp_legacy.expcore.roles") --- @dep expcore.roles +local Colours = require("modules/exp_util/include/color") local format_chat_player_name, format_chat_colour_localized = _C.format_chat_player_name, _C.format_chat_colour_localized --- Assigns a role to a player @@ -68,12 +68,10 @@ Commands.new_command('list-roles', {'expcom-roles.description-list-roles'}, 'Lis local role_name = format_chat_colour_localized(role.name, colour) if index == 1 then message = {'expcom-roles.list', role_name} - if player then local player_name_colour = format_chat_player_name(player) message = {'expcom-roles.list-player', player_name_colour, role_name} end - else message = {'expcom-roles.list-element', message, role_name} end diff --git a/exp_legacy/module/modules/commands/search.lua b/exp_legacy/module/modules/commands/search.lua index bc306d05..98cdfa9b 100644 --- a/exp_legacy/module/modules/commands/search.lua +++ b/exp_legacy/module/modules/commands/search.lua @@ -3,11 +3,11 @@ @commands InventorySearch ]] -local Commands = require 'expcore.commands' --- @dep expcore.commands -local format_number = require('util').format_number --- @dep util +local Commands = require("modules.exp_legacy.expcore.commands") --- @dep expcore.commands +local format_number = require("util").format_number --- @dep util local format_chat_player_name = _C.format_chat_player_name --- @dep expcore.common local format_time = _C.format_time -require 'config.expcore.command_general_parse' +require("modules.exp_legacy.config.expcore.command_general_parse") --- Input parse for items by name local function item_parse(input, _, reject) diff --git a/exp_legacy/module/modules/commands/spawn.lua b/exp_legacy/module/modules/commands/spawn.lua index 471067d6..058c9f40 100644 --- a/exp_legacy/module/modules/commands/spawn.lua +++ b/exp_legacy/module/modules/commands/spawn.lua @@ -3,8 +3,8 @@ @commands Spawn ]] -local Commands = require 'expcore.commands' --- @dep expcore.commands -local Roles = require 'expcore.roles' --- @dep expcore.roles +local Commands = require("modules.exp_legacy.expcore.commands") --- @dep expcore.commands +local Roles = require("modules.exp_legacy.expcore.roles") --- @dep expcore.roles local function teleport(player) local surface = player.surface @@ -52,12 +52,10 @@ Commands.new_command('go-to-spawn', {'expcom-spawn.description'}, 'Teleport to s :register(function(player, action_player) if not action_player then return Commands.error{'expcom-spawn.unavailable'} - elseif action_player == player then if not teleport(player) then return Commands.error{'expcom-spawn.unavailable'} end - elseif Roles.player_allowed(player, 'command/go-to-spawn/always') then if not teleport(action_player) then return Commands.error{'expcom-spawn.unavailable'} diff --git a/exp_legacy/module/modules/commands/spectate.lua b/exp_legacy/module/modules/commands/spectate.lua index cf08682d..3621e9c4 100644 --- a/exp_legacy/module/modules/commands/spectate.lua +++ b/exp_legacy/module/modules/commands/spectate.lua @@ -3,9 +3,9 @@ @commands Spectate ]] -local Spectate = require 'modules.control.spectate' --- @dep modules.control.spectate -local Commands = require 'expcore.commands' --- @dep expcore.commands -require 'config.expcore.command_general_parse' +local Spectate = require("modules.exp_legacy.modules.control.spectate") --- @dep modules.control.spectate +local Commands = require("modules.exp_legacy.expcore.commands") --- @dep expcore.commands +require("modules.exp_legacy.config.expcore.command_general_parse") --- Toggles spectator mode for the caller -- @command spectate @@ -13,7 +13,6 @@ Commands.new_command('spectate', {'expcom-spectate.description-spectate'}, 'Togg :register(function(player) if Spectate.is_spectating(player) then Spectate.stop_spectate(player) - else Spectate.start_spectate(player) end diff --git a/exp_legacy/module/modules/commands/speed.lua b/exp_legacy/module/modules/commands/speed.lua index cb61ed9e..868ea0a5 100644 --- a/exp_legacy/module/modules/commands/speed.lua +++ b/exp_legacy/module/modules/commands/speed.lua @@ -3,8 +3,8 @@ @commands Set game speed ]] -local Commands = require 'expcore.commands' --- @dep expcore.commands -require 'config.expcore.command_general_parse' +local Commands = require("modules.exp_legacy.expcore.commands") --- @dep expcore.commands +require("modules.exp_legacy.config.expcore.command_general_parse") Commands.new_command('game-speed', {'expcom-speed.description'}, 'Set game speed') :add_param('amount', 'number-range', 0.2, 8) diff --git a/exp_legacy/module/modules/commands/surface-clearing.lua b/exp_legacy/module/modules/commands/surface-clearing.lua index d1a546de..51ab4a2a 100644 --- a/exp_legacy/module/modules/commands/surface-clearing.lua +++ b/exp_legacy/module/modules/commands/surface-clearing.lua @@ -4,8 +4,8 @@ ]] local copy_items_stack = _C.copy_items_stack --- @dep expcore.common -local Commands = require 'expcore.commands' --- @dep expcore.commands -require 'config.expcore.command_general_parse' +local Commands = require("modules.exp_legacy.expcore.commands") --- @dep expcore.commands +require("modules.exp_legacy.config.expcore.command_general_parse") Commands.new_command('clear-item-on-ground', {'expcom-surface-clearing.description-ci'}, 'Clear Item On Ground') :add_param('range', false, 'integer-range', 1, 1000) diff --git a/exp_legacy/module/modules/commands/teleport.lua b/exp_legacy/module/modules/commands/teleport.lua index 19d4b54e..a63452e4 100644 --- a/exp_legacy/module/modules/commands/teleport.lua +++ b/exp_legacy/module/modules/commands/teleport.lua @@ -3,8 +3,8 @@ @commands Teleport ]] -local Commands = require 'expcore.commands' --- @dep expcore.commands -require 'config.expcore.command_general_parse' +local Commands = require("modules.exp_legacy.expcore.commands") --- @dep expcore.commands +require("modules.exp_legacy.config.expcore.command_general_parse") local function teleport(from_player, to_player) local surface = to_player.surface diff --git a/exp_legacy/module/modules/commands/train.lua b/exp_legacy/module/modules/commands/train.lua index a38fb9ba..0a08b9cd 100644 --- a/exp_legacy/module/modules/commands/train.lua +++ b/exp_legacy/module/modules/commands/train.lua @@ -3,9 +3,9 @@ @commands Set Automatic Train ]] -local Commands = require 'expcore.commands' --- @dep expcore.commands -require 'config.expcore.command_general_parse' -local format_number = require('util').format_number +local Commands = require("modules.exp_legacy.expcore.commands") --- @dep expcore.commands +require("modules.exp_legacy.config.expcore.command_general_parse") +local format_number = require("util").format_number Commands.new_command('set-trains-to-automatic', {'expcom-train.description'}, 'Set All Trains to Automatic') :register(function(player) diff --git a/exp_legacy/module/modules/commands/vlayer.lua b/exp_legacy/module/modules/commands/vlayer.lua index 36d919f2..8ceda791 100644 --- a/exp_legacy/module/modules/commands/vlayer.lua +++ b/exp_legacy/module/modules/commands/vlayer.lua @@ -1,9 +1,9 @@ --- Adds a virtual layer to store power to save space. -- @commands Vlayer -local Commands = require 'expcore.commands' --- @dep expcore.commands -require 'config.expcore.command_general_parse' -local vlayer = require 'modules.control.vlayer' +local Commands = require("modules.exp_legacy.expcore.commands") --- @dep expcore.commands +require("modules.exp_legacy.config.expcore.command_general_parse") +local vlayer = require("modules.exp_legacy.modules.control.vlayer") Commands.new_command('vlayer-info', {'vlayer.description-vi'}, 'Vlayer Info') :register(function(_) diff --git a/exp_legacy/module/modules/commands/warnings.lua b/exp_legacy/module/modules/commands/warnings.lua index 656a36ec..2caef4a3 100644 --- a/exp_legacy/module/modules/commands/warnings.lua +++ b/exp_legacy/module/modules/commands/warnings.lua @@ -3,11 +3,11 @@ @commands Warnings ]] -local Commands = require 'expcore.commands' --- @dep expcore.commands -local Warnings = require 'modules.control.warnings' --- @dep modules.control.warnings +local Commands = require("modules.exp_legacy.expcore.commands") --- @dep expcore.commands +local Warnings = require("modules.exp_legacy.modules.control.warnings") --- @dep modules.control.warnings local format_chat_player_name = _C.format_chat_player_name --- @dep expcore.common -local config = require 'config.warnings' --- @dep config.warnings -require 'config.expcore.command_role_parse' +local config = require("modules.exp_legacy.config.warnings") --- @dep config.warnings +require("modules.exp_legacy.config.expcore.command_role_parse") --- Gives a warning to a player; may lead to automatic script action. -- @command give-warning diff --git a/exp_legacy/module/modules/commands/waterfill.lua b/exp_legacy/module/modules/commands/waterfill.lua index bdaa8e5f..7b38b365 100644 --- a/exp_legacy/module/modules/commands/waterfill.lua +++ b/exp_legacy/module/modules/commands/waterfill.lua @@ -1,10 +1,10 @@ --- Adds a waterfill -- @commands Waterfill -local Commands = require 'expcore.commands' --- @dep expcore.commands -require 'config.expcore.command_general_parse' -local Selection = require 'modules.control.selection' --- @dep modules.control.selection -local SelectionConvertArea = 'WaterfillConvertArea' +local Commands = require("modules.exp_legacy.expcore.commands") --- @dep expcore.commands +require("modules.exp_legacy.config.expcore.command_general_parse") +local Selection = require("modules.exp_legacy.modules.control.selection") --- @dep modules.control.selection +local SelectionConvertArea = 'ConvertArea' --- Align an aabb to the grid by expanding it local function aabb_align_expand(aabb) diff --git a/exp_legacy/module/modules/control/jail.lua b/exp_legacy/module/modules/control/jail.lua index a171c23c..14e8da64 100644 --- a/exp_legacy/module/modules/control/jail.lua +++ b/exp_legacy/module/modules/control/jail.lua @@ -5,7 +5,7 @@ @usage -- import the module from the control modules - local Jail = require 'modules.control.jail' --- @dep modules.control.jail + local Jail = require("modules.exp_legacy.modules.control.jail") --- @dep modules.control.jail -- This will move 'MrBiter' to the jail role and remove all other roles from them -- the player name and reason are only so they can be included in the event for user feedback @@ -16,8 +16,8 @@ Jail.unjail_player('MrBiter', 'Cooldude2606') ]] -local Roles = require 'expcore.roles' --- @dep expcore.roles -local Game = require 'utils.game' --- @dep utils.game +local Roles = require("modules.exp_legacy.expcore.roles") --- @dep expcore.roles +local Game = require("modules.exp_legacy.utils.game") --- @dep utils.game local valid_player = Game.get_player_from_any local assign_roles = Roles.assign_player diff --git a/exp_legacy/module/modules/control/production.lua b/exp_legacy/module/modules/control/production.lua index 0ffccb26..8ac6e96f 100644 --- a/exp_legacy/module/modules/control/production.lua +++ b/exp_legacy/module/modules/control/production.lua @@ -5,7 +5,7 @@ @usage -- import the module from the control modules - local Production = require 'modules.control.production' --- @dep modules.control.production + local Production = require("modules.exp_legacy.modules.control.production") --- @dep modules.control.production -- This will return the less precise index from the one given -- this means that one_second will return one_minute or ten_hours will return fifty_hours @@ -32,8 +32,8 @@ ]] -local Colors = require 'utils.color_presets' --- @dep utils.color_presets -local format_number = require('util').format_number --- @dep util +local Colors = require("modules/exp_util/include/color") +local format_number = require("util").format_number --- @dep util local precision_index = defines.flow_precision_index local Production = {} diff --git a/exp_legacy/module/modules/control/protection.lua b/exp_legacy/module/modules/control/protection.lua index 81056d7d..4e25fe20 100644 --- a/exp_legacy/module/modules/control/protection.lua +++ b/exp_legacy/module/modules/control/protection.lua @@ -4,9 +4,9 @@ @alias Protection ]] -local Global = require 'utils.global' --- @dep utils.global -local Event = require 'utils.event' --- @dep utils.event -local config = require 'config.protection' --- @dep config.protection +local Storage = require("modules/exp_util/storage") +local Event = require("modules/exp_legacy/utils/event") --- @dep utils.event +local config = require("modules.exp_legacy.config.protection") --- @dep config.protection local EntityProtection = { protected_entity_names = table.deep_copy(config.always_protected_names), protected_entity_types = table.deep_copy(config.always_protected_types), @@ -36,17 +36,17 @@ end -- Require roles if a permission is assigned in the config local Roles if config.ignore_permission then - Roles = require 'expcore.roles' --- @dep expcore.roles + Roles = require("modules.exp_legacy.expcore.roles") --- @dep expcore.roles end ------ Global Variables ----- +----- Storage Variables ----- --- Variables stored in the global table local protected_entities = {} -- All entities which are protected local protected_areas = {} -- All areas which are protected local repeats = {} -- Stores repeat removals by players -Global.register({ +Storage.register({ protected_entities = protected_entities, protected_areas = protected_areas, repeats = repeats diff --git a/exp_legacy/module/modules/control/reports.lua b/exp_legacy/module/modules/control/reports.lua index d7004316..1ec6ebca 100644 --- a/exp_legacy/module/modules/control/reports.lua +++ b/exp_legacy/module/modules/control/reports.lua @@ -5,7 +5,7 @@ @usage -- import the module from the control modules - local Reports = require 'modules.control.reports' --- @dep modules.control.reports + local Reports = require("modules.exp_legacy.modules.control.reports") --- @dep modules.control.reports -- This will place a report on "MrBiter" (must be a valid player) the report will have been made -- by "Cooldude2606" (must be the player name) with the reason 'Liking biters too much' this can be @@ -24,8 +24,8 @@ ]] -local Game = require 'utils.game' --- @dep utils.game -local Global = require 'utils.global' --- @dep utils.global +local Game = require("modules.exp_legacy.utils.game") --- @dep utils.game +local Storage = require("modules/exp_util/storage") local valid_player = Game.get_player_from_any @@ -50,7 +50,7 @@ local Reports = { } local user_reports = Reports.user_reports -Global.register(user_reports, function(tbl) +Storage.register(user_reports, function(tbl) Reports.user_reports = tbl user_reports = Reports.user_reports end) diff --git a/exp_legacy/module/modules/control/rockets.lua b/exp_legacy/module/modules/control/rockets.lua index f830ebfa..fddbdaf7 100644 --- a/exp_legacy/module/modules/control/rockets.lua +++ b/exp_legacy/module/modules/control/rockets.lua @@ -5,7 +5,7 @@ @usage -- import the module from the control modules - local Rockets = require 'modules.control.rockets' --- @dep modules.control.rockets + local Rockets = require("modules.exp_legacy.modules.control.rockets") --- @dep modules.control.rockets -- Some basic information is stored for each silo that has been built -- the data includes: the tick it was built, the rockets launched from it and more @@ -25,9 +25,9 @@ ]] -local Event = require 'utils.event' --- @dep utils.event -local Global = require 'utils.global' --- @dep utils.global -local config = require 'config.gui.rockets' --- @dep config.rockets +local Event = require("modules/exp_legacy/utils/event") --- @dep utils.event +local Storage = require("modules/exp_util/storage") +local config = require("modules.exp_legacy.config.gui.rockets") --- @dep config.rockets local largest_rolling_avg = 0 for _, avg_over in pairs(config.stats.rolling_avg) do @@ -45,7 +45,7 @@ local Rockets = { local rocket_times = Rockets.times local rocket_stats = Rockets.stats local rocket_silos = Rockets.silos -Global.register({ +Storage.register({ rocket_times = rocket_times, rocket_stats = rocket_stats, rocket_silos = rocket_silos diff --git a/exp_legacy/module/modules/control/selection.lua b/exp_legacy/module/modules/control/selection.lua index eb481872..f127a708 100644 --- a/exp_legacy/module/modules/control/selection.lua +++ b/exp_legacy/module/modules/control/selection.lua @@ -4,8 +4,8 @@ @alias Selection ]] -local Event = require 'utils.event' --- @dep utils.event -local Global = require 'utils.global' --- @dep utils.global +local Event = require("modules/exp_legacy/utils/event") --- @dep utils.event +local Storage = require("modules/exp_util/storage") local Selection = { events = { --- When a player enters selection mode @@ -24,7 +24,7 @@ local Selection = { local selection_tool = { name='selection-tool' } local selections = {} -Global.register({ +Storage.register({ selections = selections }, function(tbl) selections = tbl.selections diff --git a/exp_legacy/module/modules/control/spectate.lua b/exp_legacy/module/modules/control/spectate.lua index 915b14cb..cc006425 100644 --- a/exp_legacy/module/modules/control/spectate.lua +++ b/exp_legacy/module/modules/control/spectate.lua @@ -1,7 +1,7 @@ -local Event = require 'utils.event' --- @dep utils.event -local Global = require 'utils.global' --- @dep utils.global -local Gui = require 'expcore.gui' --- @dep expcore.gui +local Event = require("modules/exp_legacy/utils/event") --- @dep utils.event +local Storage = require("modules/exp_util/storage") +local Gui = require("modules.exp_legacy.expcore.gui") --- @dep expcore.gui ----- Locals ----- local follow_label -- Gui constructor @@ -9,8 +9,8 @@ local following = {} local spectating = {} local Public = {} ------ Global data ----- -Global.register({ +----- Storage data ----- +Storage.register({ following = following, spectating = spectating }, function(tbl) diff --git a/exp_legacy/module/modules/control/tasks.lua b/exp_legacy/module/modules/control/tasks.lua index 04d61b4d..19e66425 100644 --- a/exp_legacy/module/modules/control/tasks.lua +++ b/exp_legacy/module/modules/control/tasks.lua @@ -10,8 +10,8 @@ Tasks.update_task(task_id, 'We need more iron!', game.player.name) ]] -local Datastore = require 'expcore.datastore' --- @dep expcore.datastore -local Global = require 'utils.global' --- @dep utils.global +local Datastore = require("modules.exp_legacy.expcore.datastore") --- @dep expcore.datastore +local Storage = require("modules/exp_util/storage") --- Stores all data for the warp gui local TaskData = Datastore.connect('TaskData') @@ -19,9 +19,9 @@ TaskData:set_serializer(function(raw_key) return raw_key.task_id end) local Tasks = {} --- Global lookup table for force name to task ids +-- Storage lookup table for force name to task ids local force_tasks = {_uid=1} -Global.register(force_tasks, function(tbl) +Storage.register(force_tasks, function(tbl) force_tasks = tbl end) diff --git a/exp_legacy/module/modules/control/vlayer.lua b/exp_legacy/module/modules/control/vlayer.lua index 81313270..5044c4c5 100644 --- a/exp_legacy/module/modules/control/vlayer.lua +++ b/exp_legacy/module/modules/control/vlayer.lua @@ -4,9 +4,9 @@ @alias vlayer ]] -local Global = require 'utils.global' --- @dep utils.global -local Event = require 'utils.event' --- @dep utils.event -local config = require 'config.vlayer' --- @dep config.vlayer +local Storage = require("modules/exp_util/storage") +local Event = require("modules/exp_legacy/utils/event") --- @dep utils.event +local config = require("modules.exp_legacy.config.vlayer") --- @dep config.vlayer local move_items_stack = _C.move_items_stack local mega = 1000000 @@ -35,7 +35,7 @@ local vlayer_data = { surface = table.deep_copy(config.surface) } -Global.register(vlayer_data, function(tbl) +Storage.register(vlayer_data, function(tbl) vlayer_data = tbl end) diff --git a/exp_legacy/module/modules/control/warnings.lua b/exp_legacy/module/modules/control/warnings.lua index aca6f1ba..ca7e0ff7 100644 --- a/exp_legacy/module/modules/control/warnings.lua +++ b/exp_legacy/module/modules/control/warnings.lua @@ -5,7 +5,7 @@ @usage -- import the module from the control modules - local Warnings = require 'modules.control.warnings' --- @dep modules.control.warnings + local Warnings = require("modules.exp_legacy.modules.control.warnings") --- @dep modules.control.warnings -- This will add a warning to the player Warnings.add_warning('MrBiter', 'Cooldude2606', 'Killed too many biters') @@ -21,15 +21,15 @@ Warnings.clear_warnings('MrBiter', 'Cooldude2606') ]] -local Event = require 'utils.event' --- @dep utils.event -local Game = require 'utils.game' --- @dep utils.game -local Global = require 'utils.global' --- @dep utils.global -local config = require 'config.warnings' --- @dep config.warnings +local Event = require("modules/exp_legacy/utils/event") --- @dep utils.event +local Game = require("modules.exp_legacy.utils.game") --- @dep utils.game +local Storage = require("modules/exp_util/storage") +local config = require("modules.exp_legacy.config.warnings") --- @dep config.warnings local valid_player = Game.get_player_from_any --- Stores the quickbar filters for a player -local PlayerData = require 'expcore.player_data' --- @dep expcore.player_data +local PlayerData = require("modules.exp_legacy.expcore.player_data") --- @dep expcore.player_data local PlayerWarnings = PlayerData.Required:combine('Warnings') PlayerWarnings:set_metadata{ stringify = function(value) @@ -75,7 +75,7 @@ local Warnings = { } local user_script_warnings = Warnings.user_script_warnings -Global.register(user_script_warnings, function(tbl) +Storage.register(user_script_warnings, function(tbl) Warnings.user_script_warnings = tbl user_script_warnings = tbl end) diff --git a/exp_legacy/module/modules/control/warps.lua b/exp_legacy/module/modules/control/warps.lua index bcf43074..038b3b0a 100644 --- a/exp_legacy/module/modules/control/warps.lua +++ b/exp_legacy/module/modules/control/warps.lua @@ -21,9 +21,9 @@ Warps.make_warp_tag(warp_id) ]] -local Datastore = require 'expcore.datastore' --- @dep expcore.datastore -local Global = require 'utils.global' --- @dep utils.global -local config = require 'config.gui.warps' --- @dep config.warps +local Datastore = require("modules.exp_legacy.expcore.datastore") --- @dep expcore.datastore +local Storage = require("modules/exp_util/storage") +local config = require("modules.exp_legacy.config.gui.warps") --- @dep config.warps --- Stores all data for the warp system local WrapData = Datastore.connect('WrapData') @@ -31,10 +31,10 @@ WrapData:set_serializer(function(raw_key) return raw_key.warp_id end) local Warps = {} --- Global lookup table for force name to task ids +-- Storage lookup table for force name to task ids local force_warps = {_uid=1} ---@cast force_warps table -Global.register(force_warps, function(tbl) +Storage.register(force_warps, function(tbl) force_warps = tbl end) diff --git a/exp_legacy/module/modules/data/alt-view.lua b/exp_legacy/module/modules/data/alt-view.lua index 609851ad..518a514f 100644 --- a/exp_legacy/module/modules/data/alt-view.lua +++ b/exp_legacy/module/modules/data/alt-view.lua @@ -1,10 +1,10 @@ --- Stores if you use alt mode or not and auto applies it -- @data Alt-View -local Event = require 'utils.event' ---@dep utils.event +local Event = require("modules/exp_legacy/utils/event") ---@dep utils.event --- Stores the visible state of alt mode -local PlayerData = require 'expcore.player_data' --- @dep expcore.player_data +local PlayerData = require("modules.exp_legacy.expcore.player_data") --- @dep expcore.player_data local UsesAlt = PlayerData.Settings:combine('UsesAlt') UsesAlt:set_default(false) UsesAlt:set_metadata{ diff --git a/exp_legacy/module/modules/data/bonus.lua b/exp_legacy/module/modules/data/bonus.lua index 65846014..ae4dfa61 100644 --- a/exp_legacy/module/modules/data/bonus.lua +++ b/exp_legacy/module/modules/data/bonus.lua @@ -3,14 +3,14 @@ @data Bonus ]] -local Roles = require 'expcore.roles' --- @dep expcore.roles -local Event = require 'utils.event' --- @dep utils.event -local config = require 'config.bonus' --- @dep config.bonuses -local Commands = require 'expcore.commands' --- @dep expcore.commands -require 'config.expcore.command_general_parse' +local Roles = require("modules.exp_legacy.expcore.roles") --- @dep expcore.roles +local Event = require("modules/exp_legacy/utils/event") --- @dep utils.event +local config = require("modules.exp_legacy.config.bonus") --- @dep config.bonuses +local Commands = require("modules.exp_legacy.expcore.commands") --- @dep expcore.commands +require("modules.exp_legacy.config.expcore.command_general_parse") -- Stores the bonus for the player -local PlayerData = require 'expcore.player_data' --- @dep expcore.player_data +local PlayerData = require("modules.exp_legacy.expcore.player_data") --- @dep expcore.player_data local PlayerBonus = PlayerData.Settings:combine('Bonus') PlayerBonus:set_default(0) PlayerBonus:set_metadata{ diff --git a/exp_legacy/module/modules/data/greetings.lua b/exp_legacy/module/modules/data/greetings.lua index 5ec15c28..1b8cfd88 100644 --- a/exp_legacy/module/modules/data/greetings.lua +++ b/exp_legacy/module/modules/data/greetings.lua @@ -1,12 +1,12 @@ --- Greets players on join -- @data Greetings -local config = require 'config.join_messages' --- @dep config.join_messages -local Commands = require 'expcore.commands' ---@dep expcore.commands -require 'config.expcore.command_general_parse' +local config = require("modules.exp_legacy.config.join_messages") --- @dep config.join_messages +local Commands = require("modules.exp_legacy.expcore.commands") ---@dep expcore.commands +require("modules.exp_legacy.config.expcore.command_general_parse") --- Stores the join message that the player have -local PlayerData = require 'expcore.player_data' --- @dep expcore.player_data +local PlayerData = require("modules.exp_legacy.expcore.player_data") --- @dep expcore.player_data local CustomMessages = PlayerData.Settings:combine('JoinMessage') CustomMessages:set_metadata{ permission = 'command/join-message' @@ -26,7 +26,7 @@ end) --- Set your custom join message -- @command join-message -- @tparam string message The custom join message that will be used -Commands.new_command('join-message', {'expcom-join-message.description-msg'}, 'Sets your custom join message') +Commands.new_command('join-message', 'Sets your custom join message') :add_param('message', false, 'string-max-length', 255) :enable_auto_concat() :register(function(player, message) @@ -35,7 +35,7 @@ Commands.new_command('join-message', {'expcom-join-message.description-msg'}, 'S return {'join-message.message-set'} end) -Commands.new_command('join-message-clear', {'expcom-join-message.description-clr'}, 'Clear your join message') +Commands.new_command('join-message-clear', 'Clear your join message') :register(function(player) if not player then return end CustomMessages:remove(player) diff --git a/exp_legacy/module/modules/data/language.lua b/exp_legacy/module/modules/data/language.lua index 98d9de1a..7ae93c47 100644 --- a/exp_legacy/module/modules/data/language.lua +++ b/exp_legacy/module/modules/data/language.lua @@ -1,8 +1,8 @@ --- Stores the language used to join the server -- @data Language -local Event = require 'utils.event' ---@dep utils.event -local PlayerData = require 'expcore.player_data' --- @dep expcore.player_data +local Event = require("modules/exp_legacy/utils/event") ---@dep utils.event +local PlayerData = require("modules.exp_legacy.expcore.player_data") --- @dep expcore.player_data local LocalLanguage = PlayerData.Statistics:combine('LocalLanguage') LocalLanguage:set_default("Unknown") diff --git a/exp_legacy/module/modules/data/personal-logistic.lua b/exp_legacy/module/modules/data/personal-logistic.lua index 357c3199..5903f0ec 100644 --- a/exp_legacy/module/modules/data/personal-logistic.lua +++ b/exp_legacy/module/modules/data/personal-logistic.lua @@ -1,5 +1,5 @@ -local Commands = require 'expcore.commands' --- @dep expcore.commands -local config = require 'config.personal_logistic' --- @dep config.personal-logistic +local Commands = require("modules.exp_legacy.expcore.commands") --- @dep expcore.commands +local config = require("modules.exp_legacy.config.personal_logistic") --- @dep config.personal-logistic local pl = {} diff --git a/exp_legacy/module/modules/data/player-colours.lua b/exp_legacy/module/modules/data/player-colours.lua index f32aa7ff..7f97a7dc 100644 --- a/exp_legacy/module/modules/data/player-colours.lua +++ b/exp_legacy/module/modules/data/player-colours.lua @@ -1,12 +1,12 @@ --- Gives players random colours when they join, also applies preset colours to those who have them -- @data Player-Colours -local Event = require 'utils.event' --- @dep utils.event -local Colours = require 'utils.color_presets' --- @dep utils.color_presets -local config = require 'config.preset_player_colours' --- @dep config.preset_player_colours +local Event = require("modules/exp_legacy/utils/event") --- @dep utils.event +local Colours = require("modules/exp_util/include/color") +local config = require("modules.exp_legacy.config.preset_player_colours") --- @dep config.preset_player_colours --- Stores the colour that the player wants -local PlayerData = require 'expcore.player_data' --- @dep expcore.player_data +local PlayerData = require("modules.exp_legacy.expcore.player_data") --- @dep expcore.player_data local PlayerColours = PlayerData.Settings:combine('Colour') PlayerColours:set_metadata{ stringify = function(value) diff --git a/exp_legacy/module/modules/data/quickbar.lua b/exp_legacy/module/modules/data/quickbar.lua index 6f5f3900..6b73e9d9 100644 --- a/exp_legacy/module/modules/data/quickbar.lua +++ b/exp_legacy/module/modules/data/quickbar.lua @@ -3,11 +3,11 @@ @data Quickbar ]] -local Commands = require 'expcore.commands' --- @dep expcore.commands -local config = require 'config.preset_player_quickbar' --- @dep config.preset_player_quickbar +local Commands = require("modules.exp_legacy.expcore.commands") --- @dep expcore.commands +local config = require("modules.exp_legacy.config.preset_player_quickbar") --- @dep config.preset_player_quickbar --- Stores the quickbar filters for a player -local PlayerData = require 'expcore.player_data' --- @dep expcore.player_data +local PlayerData = require("modules.exp_legacy.expcore.player_data") --- @dep expcore.player_data local PlayerFilters = PlayerData.Settings:combine('QuickbarFilters') PlayerFilters:set_metadata{ permission = 'command/save-quickbar', @@ -41,7 +41,7 @@ local ignoredItems = { --- Saves your quickbar preset to the script-output folder -- @command save-quickbar -Commands.new_command('save-quickbar', {'expcom-quickbar.description'}, 'Saves your quickbar preset items to file') +Commands.new_command('save-quickbar', 'Saves your Quickbar preset items to file') :add_alias('save-toolbar') :register(function(player) local filters = {} diff --git a/exp_legacy/module/modules/data/statistics.lua b/exp_legacy/module/modules/data/statistics.lua index fd6e633c..6c546fef 100644 --- a/exp_legacy/module/modules/data/statistics.lua +++ b/exp_legacy/module/modules/data/statistics.lua @@ -1,19 +1,19 @@ -local Event = require 'utils.event' ---@dep utils.event -local Global = require 'utils.global' ---@dep utils.global -local config = require 'config.statistics' ---@dep config.statistics +local Event = require("modules/exp_legacy/utils/event") ---@dep utils.event +local Storage = require("modules/exp_util/storage") ---@dep utils.global +local config = require("modules.exp_legacy.config.statistics") ---@dep config.statistics local format_time = _C.format_time local floor = math.floor local afk_required = 5*3600 -- 5 minutes --- Stores players who have been created, required to avoid loss of data local new_players = {} -Global.register(new_players, function(tbl) +Storage.register(new_players, function(tbl) new_players = tbl end) --- Stores the statistics on a player -local PlayerData = require 'expcore.player_data' --- @dep expcore.player_data +local PlayerData = require("modules.exp_legacy.expcore.player_data") --- @dep expcore.player_data local AllPlayerData = PlayerData.All local Statistics = PlayerData.Statistics Statistics:set_metadata{ diff --git a/exp_legacy/module/modules/data/tag.lua b/exp_legacy/module/modules/data/tag.lua index 194c5969..5e00e381 100644 --- a/exp_legacy/module/modules/data/tag.lua +++ b/exp_legacy/module/modules/data/tag.lua @@ -3,14 +3,14 @@ @data Tag ]] -local Commands = require 'expcore.commands' --- @dep expcore.commands -local Roles = require 'expcore.roles' --- @dep expcore.roles -require 'config.expcore.command_general_parse' -require 'config.expcore.command_role_parse' -require 'config.expcore.command_color_parse' +local Commands = require("modules.exp_legacy.expcore.commands") --- @dep expcore.commands +local Roles = require("modules.exp_legacy.expcore.roles") --- @dep expcore.roles +require("modules.exp_legacy.config.expcore.command_general_parse") +require("modules.exp_legacy.config.expcore.command_role_parse") +require("modules.exp_legacy.config.expcore.command_color_parse") --- Stores the tag for a player -local PlayerData = require 'expcore.player_data' --- @dep expcore.player_data +local PlayerData = require("modules.exp_legacy.expcore.player_data") --- @dep expcore.player_data local PlayerTags = PlayerData.Settings:combine('Tag') local PlayerTagColors = PlayerData.Settings:combine('TagColor') PlayerTags:set_metadata{ @@ -49,7 +49,7 @@ end) --- Sets your player tag. -- @command tag -- @tparam string tag the tag that will be after the name, there is a max length -Commands.new_command('tag', {'expcom-tag.description'}, 'Sets your player tag.') +Commands.new_command('tag', 'Sets your player tag.') :add_param('tag', false, 'string-max-length', 20) :enable_auto_concat() :register(function(player, tag) @@ -69,7 +69,7 @@ end) --- Clears your tag. Or another player if you are admin. -- @command tag-clear -- @tparam[opt=self] LuaPlayer player the player to remove the tag from, nil will apply to self -Commands.new_command('tag-clear', {'expcom-tag.description-clear'}, 'Clears your tag. Or another player if you are admin.') +Commands.new_command('tag-clear', 'Clears your tag. Or another player if you are admin.') :add_param('player', true, 'player-role') :set_defaults{player=function(player) return player -- default is the user using the command @@ -78,11 +78,9 @@ end} if action_player.index == player.index then -- no player given so removes your tag PlayerTags:remove(action_player) - elseif Roles.player_allowed(player, 'command/clear-tag/always') then -- player given and user is admin so clears that player's tag PlayerTags:remove(action_player) - else -- user is not admin and tried to clear another users tag return Commands.error{'expcore-commands.unauthorized'} diff --git a/exp_legacy/module/modules/factorio-control.lua b/exp_legacy/module/modules/factorio-control.lua index 66a3b541..243829f8 100644 --- a/exp_legacy/module/modules/factorio-control.lua +++ b/exp_legacy/module/modules/factorio-control.lua @@ -1,6 +1,6 @@ -local Event = require 'utils.event' --- @dep utils.event -local Global = require 'utils.global' --- @dep utils.global -local config = require 'config.advanced_start' --- @dep config.advanced_start +local Event = require("modules/exp_legacy/utils/event") --- @dep utils.event +local Storage = require("modules/exp_util/storage") +local config = require("modules.exp_legacy.config.advanced_start") --- @dep config.advanced_start local use_silo_script = not config.disable_base_game_silo_script local util = require("util") @@ -10,8 +10,8 @@ if use_silo_script then end local global = {} -Global.register(global, function(tbl) - global = tbl +Storage.register(global, function(tbl) + global = tbl end) local created_items = function() diff --git a/exp_legacy/module/modules/graftorio/forcestats.lua b/exp_legacy/module/modules/graftorio/forcestats.lua index 2d371c24..55fa5822 100644 --- a/exp_legacy/module/modules/graftorio/forcestats.lua +++ b/exp_legacy/module/modules/graftorio/forcestats.lua @@ -1,6 +1,6 @@ -local Event = require("utils.event") -local general = require("modules.graftorio.general") -local config = require("config.graftorio") +local Event = require("modules/exp_legacy/utils/event") +local general = require("modules.exp_legacy.modules.graftorio.general") +local config = require("modules.exp_legacy.config.graftorio") local lib = {} diff --git a/exp_legacy/module/modules/graftorio/general.lua b/exp_legacy/module/modules/graftorio/general.lua index 020ed262..820acac4 100644 --- a/exp_legacy/module/modules/graftorio/general.lua +++ b/exp_legacy/module/modules/graftorio/general.lua @@ -1,5 +1,5 @@ -local Event = require("utils.event") -local Global = require("utils.global") +local Event = require("modules/exp_legacy/utils/event") +local Storage = require("modules/exp_util/storage") local lib = {} @@ -7,7 +7,7 @@ lib.data = { output = {} } -Global.register(lib.data, function(tbl) +Storage.register(lib.data, function(tbl) lib.data = tbl end) diff --git a/exp_legacy/module/modules/graftorio/require.lua b/exp_legacy/module/modules/graftorio/require.lua index 8d378f2b..5f8eae65 100644 --- a/exp_legacy/module/modules/graftorio/require.lua +++ b/exp_legacy/module/modules/graftorio/require.lua @@ -1,11 +1,11 @@ -local Commands = require("expcore.commands") -local config = require("config.graftorio") -local statics = require("modules.graftorio.statics") -local general = require("modules.graftorio.general") +local Commands = require("modules.exp_legacy.expcore.commands") +local config = require("modules.exp_legacy.config.graftorio") +local statics = require("modules.exp_legacy.modules.graftorio.statics") +local general = require("modules.exp_legacy.modules.graftorio.general") local forcestats = nil if config.modules.forcestats then - forcestats = require("modules.graftorio.forcestats") + forcestats = require("modules.exp_legacy.modules.graftorio.forcestats") end Commands.new_command("collectdata", "Collect data for RCON usage") diff --git a/exp_legacy/module/modules/graftorio/statics.lua b/exp_legacy/module/modules/graftorio/statics.lua index 3f065e47..df238718 100644 --- a/exp_legacy/module/modules/graftorio/statics.lua +++ b/exp_legacy/module/modules/graftorio/statics.lua @@ -1,4 +1,4 @@ -local general = require("modules.graftorio.general") +local general = require("modules.exp_legacy.modules.graftorio.general") local lib = {} diff --git a/exp_legacy/module/modules/gui/autofill.lua b/exp_legacy/module/modules/gui/autofill.lua index 7fd09ea8..a3394dec 100644 --- a/exp_legacy/module/modules/gui/autofill.lua +++ b/exp_legacy/module/modules/gui/autofill.lua @@ -4,19 +4,19 @@ @alias autofill ]] -local Game = require 'utils.game' -- @dep utils.game -local Gui = require 'expcore.gui' -- @dep expcore.gui -local Roles = require 'expcore.roles' -- @dep expcore.gui -local Global = require 'utils.global' -- @dep utils.global -local config = require 'config.gui.autofill' -- @dep config.gui.autofill -local Event = require 'utils.event' -- @dep utils.event -local table = require 'overrides.table' -- @dep overrides.table +local FloatingText = require("modules/exp_util/floating_text") +local Gui = require("modules.exp_legacy.expcore.gui") -- @dep expcore.gui +local Roles = require("modules.exp_legacy.expcore.roles") -- @dep expcore.gui +local Storage = require("modules/exp_util/storage") -- @dep utils.global +local config = require("modules.exp_legacy.config.gui.autofill") -- @dep config.gui.autofill +local Event = require("modules/exp_legacy/utils/event") -- @dep utils.event +local table = require("modules.exp_legacy.overrides.table") -- @dep overrides.table -local print_text = Game.print_floating_text -- (surface, position, text, color) +local print_text = FloatingText.print -- (surface, position, text, color) --- Table that stores if autofill is enabled or not local autofill_player_settings = {} -Global.register(autofill_player_settings, function(tbl) +Storage.register(autofill_player_settings, function(tbl) autofill_player_settings = tbl end) diff --git a/exp_legacy/module/modules/gui/bonus.lua b/exp_legacy/module/modules/gui/bonus.lua index 9d210049..19bd5290 100644 --- a/exp_legacy/module/modules/gui/bonus.lua +++ b/exp_legacy/module/modules/gui/bonus.lua @@ -3,13 +3,11 @@ @alias bonus_container ]] -local Gui = require 'expcore.gui' --- @dep expcore.gui -local Roles = require 'expcore.roles' --- @dep expcore.roles -local Event = require 'utils.event' --- @dep utils.event -local config = require 'config.bonus' --- @dep config.bonus -local vlayer = require 'modules.control.vlayer' - -local format_number = require('util').format_number --- @dep util +local Gui = require("modules.exp_legacy.expcore.gui") --- @dep expcore.gui +local Roles = require("modules.exp_legacy.expcore.roles") --- @dep expcore.roles +local Event = require("modules/exp_legacy/utils/event") --- @dep utils.event +local config = require("modules.exp_legacy.config.bonus") --- @dep config.bonus +local format_number = require("util").format_number --- @dep util local bonus_container local function bonus_gui_pts_needed(player) diff --git a/exp_legacy/module/modules/gui/debug/_g_view.lua b/exp_legacy/module/modules/gui/debug/_g_view.lua index 2cf7490a..6802d4b8 100644 --- a/exp_legacy/module/modules/gui/debug/_g_view.lua +++ b/exp_legacy/module/modules/gui/debug/_g_view.lua @@ -1,6 +1,6 @@ -local Gui = require 'utils.gui' --- @dep utils.gui -local Model = require 'modules.gui.debug.model' --- @dep modules.gui.debug.model -local Color = require 'utils.color_presets' --- @dep utils.color_presets +local Gui = require("modules.exp_legacy.utils.gui") --- @dep utils.gui +local Model = require("modules.exp_legacy.modules.gui.debug.model") --- @dep modules.gui.debug.model +local Color = require("modules/exp_util/include/color") local dump = Model.dump @@ -42,7 +42,7 @@ local ignore = { serpent = true, log = true, table_size = true, - global = true, + storage = true, remote = true, commands = true, settings = true, diff --git a/exp_legacy/module/modules/gui/debug/event_view.lua b/exp_legacy/module/modules/gui/debug/event_view.lua index b56cb34f..20df146b 100644 --- a/exp_legacy/module/modules/gui/debug/event_view.lua +++ b/exp_legacy/module/modules/gui/debug/event_view.lua @@ -1,7 +1,7 @@ -local Event = require 'utils.event' -local table = require 'overrides.table' -local Gui = require 'utils.gui' -local Model = require 'modules.gui.debug.model' +local Event = require("modules/exp_legacy/utils/event") +local table = require("modules.exp_legacy.overrides.table") +local Gui = require("modules.exp_legacy.utils.gui") +local Model = require("modules.exp_legacy.modules.gui.debug.model") local format = string.format local insert = table.insert @@ -22,17 +22,17 @@ local checkbox_name = Gui.uid_name() local filter_name = Gui.uid_name() local clear_filter_name = Gui.uid_name() --- global tables +-- storage tables local enabled = {} local last_events = {} -global.debug_event_view = { +storage.debug_event_view = { enabled = enabled, last_events = last_events, filter = '' } function Public.on_open_debug() - local tbl = global.debug_event_view + local tbl = storage.debug_event_view if tbl then enabled = tbl.enabled last_events = tbl.last_events @@ -40,7 +40,7 @@ function Public.on_open_debug() enabled = {} last_events = {} - global.debug_event_view = { + storage.debug_event_view = { enabled = enabled, last_events = last_events } @@ -108,7 +108,7 @@ local function redraw_event_table(gui_table, filter) end function Public.show(container) - local filter = global.debug_event_view.filter + local filter = storage.debug_event_view.filter local main_frame_flow = container.add({type = 'flow', direction = 'vertical'}) @@ -136,7 +136,7 @@ Gui.on_text_changed( local filter = element.text:gsub(' ', '_') - global.debug_event_view.filter = filter + storage.debug_event_view.filter = filter element.text = filter gui_table.clear() @@ -153,7 +153,7 @@ Gui.on_click( local gui_table = data.gui_table filter_textfield.text = '' - global.debug_event_view.filter = '' + storage.debug_event_view.filter = '' gui_table.clear() redraw_event_table(gui_table, '') diff --git a/exp_legacy/module/modules/gui/debug/expcore_datastore_view.lua b/exp_legacy/module/modules/gui/debug/expcore_datastore_view.lua index cecd92c6..611aa1f7 100644 --- a/exp_legacy/module/modules/gui/debug/expcore_datastore_view.lua +++ b/exp_legacy/module/modules/gui/debug/expcore_datastore_view.lua @@ -1,7 +1,7 @@ -local Gui = require 'utils.gui' --- @dep utils.gui -local Datastore = require 'expcore.datastore' --- @dep expcore.datastore -local Color = require 'utils.color_presets' --- @dep utils.color_presets -local Model = require 'modules.gui.debug.model' --- @dep modules.gui.debug.model +local Gui = require("modules.exp_legacy.utils.gui") --- @dep utils.gui +local Datastore = require("modules.exp_legacy.expcore.datastore") --- @dep expcore.datastore +local Color = require("modules/exp_util/include/color") +local Model = require("modules.exp_legacy.modules.gui.debug.model") --- @dep modules.gui.debug.model local dump = Model.dump local concat = table.concat diff --git a/exp_legacy/module/modules/gui/debug/expcore_gui_view.lua b/exp_legacy/module/modules/gui/debug/expcore_gui_view.lua index 468196e4..68a57f99 100644 --- a/exp_legacy/module/modules/gui/debug/expcore_gui_view.lua +++ b/exp_legacy/module/modules/gui/debug/expcore_gui_view.lua @@ -1,7 +1,7 @@ -local Gui = require 'utils.gui' --- @dep utils.gui -local ExpGui = require 'expcore.gui' --- @dep utils.global -local Color = require 'utils.color_presets' --- @dep utils.color_presets -local Model = require 'modules.gui.debug.model' --- @dep modules.gui.debug.model +local Gui = require("modules.exp_legacy.utils.gui") --- @dep utils.gui +local ExpGui = require("modules.exp_legacy.expcore.gui") +local Color = require("modules/exp_util/include/color") +local Model = require("modules.exp_legacy.modules.gui.debug.model") --- @dep modules.gui.debug.model local dump = Model.dump local dump_text = Model.dump_text diff --git a/exp_legacy/module/modules/gui/debug/global_view.lua b/exp_legacy/module/modules/gui/debug/global_view.lua index aff9a6fd..7deba872 100644 --- a/exp_legacy/module/modules/gui/debug/global_view.lua +++ b/exp_legacy/module/modules/gui/debug/global_view.lua @@ -1,6 +1,6 @@ -local Gui = require 'utils.gui' --- @dep utils.gui -local Model = require 'modules.gui.debug.model' --- @dep modules.gui.debug.model -local Color = require 'utils.color_presets' --- @dep utils.color_presets +local Gui = require("modules.exp_legacy.utils.gui") --- @dep utils.gui +local Model = require("modules.exp_legacy.modules.gui.debug.model") --- @dep modules.gui.debug.model +local Color = require("modules/exp_util/include/color") local dump = Model.dump local dump_text = Model.dump_text @@ -16,7 +16,7 @@ local right_panel_name = Gui.uid_name() local input_text_box_name = Gui.uid_name() local refresh_name = Gui.uid_name() -Public.name = 'global' +Public.name = 'storage' function Public.show(container) local main_flow = container.add {type = 'flow', direction = 'horizontal'} @@ -25,7 +25,7 @@ function Public.show(container) local left_panel_style = left_panel.style left_panel_style.width = 300 - for key, _ in pairs(global) do + for key, _ in pairs(storage) do if not ignore[key] then local header = left_panel.add({type = 'flow'}).add {type = 'label', name = header_name, caption = tostring(key)} @@ -90,10 +90,10 @@ Gui.on_click( element.style.font_color = Color.orange data.selected_header = element - input_text_box.text = concat {"global['", key, "']"} + input_text_box.text = concat {"storage['", key, "']"} input_text_box.style.font_color = Color.black - local content = dump(global[key]) or 'nil' + local content = dump(storage[key]) or 'nil' right_panel.text = content end ) diff --git a/exp_legacy/module/modules/gui/debug/main_view.lua b/exp_legacy/module/modules/gui/debug/main_view.lua index e74fb53f..c15c47d3 100644 --- a/exp_legacy/module/modules/gui/debug/main_view.lua +++ b/exp_legacy/module/modules/gui/debug/main_view.lua @@ -1,16 +1,16 @@ -local Gui = require 'utils.gui' --- @dep utils.gui -local Color = require 'utils.color_presets' --- @dep utils.color_presets +local Gui = require("modules.exp_legacy.utils.gui") --- @dep utils.gui +local Color = require("modules/exp_util/include/color") local Public = {} local pages = { - require 'modules.gui.debug.redmew_global_view', - require 'modules.gui.debug.expcore_datastore_view', - require 'modules.gui.debug.expcore_gui_view', - require 'modules.gui.debug.global_view', - require 'modules.gui.debug.package_view', - require 'modules.gui.debug._g_view', - require 'modules.gui.debug.event_view' + require("modules.exp_legacy.modules.gui.debug.redmew_global_view"), + require("modules.exp_legacy.modules.gui.debug.expcore_datastore_view"), + require("modules.exp_legacy.modules.gui.debug.expcore_gui_view"), + require("modules.exp_legacy.modules.gui.debug.global_view"), + require("modules.exp_legacy.modules.gui.debug.package_view"), + require("modules.exp_legacy.modules.gui.debug._g_view"), + require("modules.exp_legacy.modules.gui.debug.event_view") } local main_frame_name = Gui.uid_name() diff --git a/exp_legacy/module/modules/gui/debug/model.lua b/exp_legacy/module/modules/gui/debug/model.lua index 435897db..951d14d8 100644 --- a/exp_legacy/module/modules/gui/debug/model.lua +++ b/exp_legacy/module/modules/gui/debug/model.lua @@ -1,5 +1,5 @@ -local Gui = require 'utils.gui' --- @dep utils.gui -local table = require 'overrides.table' --- @dep overrides.table +local Gui = require("modules.exp_legacy.utils.gui") --- @dep utils.gui +local table = require("modules.exp_legacy.overrides.table") --- @dep overrides.table local gui_names = Gui.names local type = type diff --git a/exp_legacy/module/modules/gui/debug/package_view.lua b/exp_legacy/module/modules/gui/debug/package_view.lua index 292bf9d7..11b50c0d 100644 --- a/exp_legacy/module/modules/gui/debug/package_view.lua +++ b/exp_legacy/module/modules/gui/debug/package_view.lua @@ -1,6 +1,6 @@ -local Gui = require 'utils.gui' --- @dep utils.gui -local Color = require 'utils.color_presets' --- @dep utils.color_presets -local Model = require 'modules.gui.debug.model' --- @dep modules.gui.debug.model +local Gui = require("modules.exp_legacy.utils.gui") --- @dep utils.gui +local Color = require("modules/exp_util/include/color") +local Model = require("modules.exp_legacy.modules.gui.debug.model") --- @dep modules.gui.debug.model local dump_function = Model.dump_function local loaded = _G.package.loaded @@ -19,7 +19,6 @@ local ignore = { serpent = true, ['overrides.math'] = true, util = true, - ['overrides.inspect'] = true, ['mod-gui'] = true } diff --git a/exp_legacy/module/modules/gui/debug/redmew_global_view.lua b/exp_legacy/module/modules/gui/debug/redmew_global_view.lua index 4bff705f..40284939 100644 --- a/exp_legacy/module/modules/gui/debug/redmew_global_view.lua +++ b/exp_legacy/module/modules/gui/debug/redmew_global_view.lua @@ -1,8 +1,7 @@ -local Gui = require 'utils.gui' --- @dep utils.gui -local Global = require 'utils.global' --- @dep utils.global -local Token = require 'utils.token' --- @dep utils.token -local Color = require 'utils.color_presets' --- @dep utils.color_presets -local Model = require 'modules.gui.debug.model' --- @dep modules.gui.debug.model +local Gui = require("modules.exp_legacy.utils.gui") --- @dep utils.gui +local Storage = require("modules/exp_util/storage") +local Color = require("modules/exp_util/include/color") +local Model = require("modules.exp_legacy.modules.gui.debug.model") --- @dep modules.gui.debug.model local dump = Model.dump local dump_text = Model.dump_text @@ -16,7 +15,7 @@ local right_panel_name = Gui.uid_name() local input_text_box_name = Gui.uid_name() local refresh_name = Gui.uid_name() -Public.name = 'Global' +Public.name = 'Storage' function Public.show(container) local main_flow = container.add {type = 'flow', direction = 'horizontal'} @@ -25,8 +24,8 @@ function Public.show(container) local left_panel_style = left_panel.style left_panel_style.width = 300 - for token_id, token_name in pairs(Global.names) do - local header = left_panel.add({type = 'flow'}).add {type = 'label', name = header_name, caption = token_name} + for token_id in pairs(Storage.registered) do + local header = left_panel.add({type = 'flow'}).add {type = 'label', name = header_name, caption = token_id} Gui.set_data(header, token_id) end @@ -86,10 +85,10 @@ Gui.on_click( element.style.font_color = Color.orange data.selected_header = element - input_text_box.text = concat {'global.tokens[', token_id, ']'} + input_text_box.text = concat {'storage.exp_storage[', token_id, ']'} input_text_box.style.font_color = Color.black - local content = dump(Token.get_global(token_id)) or 'nil' + local content = dump(storage.exp_storage[token_id]) or 'nil' right_panel.text = content end ) diff --git a/exp_legacy/module/modules/gui/landfill.lua b/exp_legacy/module/modules/gui/landfill.lua index 326c90c9..dcc42809 100644 --- a/exp_legacy/module/modules/gui/landfill.lua +++ b/exp_legacy/module/modules/gui/landfill.lua @@ -4,9 +4,9 @@ @alias landfill_container ]] -local Gui = require 'expcore.gui' --- @dep expcore.gui -local Event = require 'utils.event' --- @dep utils.event -local Roles = require 'expcore.roles' --- @dep expcore.roles +local Gui = require("modules.exp_legacy.expcore.gui") --- @dep expcore.gui +local Event = require("modules/exp_legacy/utils/event") --- @dep utils.event +local Roles = require("modules.exp_legacy.expcore.roles") --- @dep expcore.roles local rolling_stocks = {} diff --git a/exp_legacy/module/modules/gui/module.lua b/exp_legacy/module/modules/gui/module.lua index 1414efeb..d5518139 100644 --- a/exp_legacy/module/modules/gui/module.lua +++ b/exp_legacy/module/modules/gui/module.lua @@ -1,11 +1,11 @@ ---- module inserter -- @gui Module -local Gui = require 'expcore.gui' --- @dep expcore.gui -local Event = require 'utils.event' --- @dep utils.event -local Roles = require 'expcore.roles' --- @dep expcore.roles -local config = require 'config.module' --- @dep config.module -local Selection = require 'modules.control.selection' --- @dep modules.control.selection +local Gui = require("modules.exp_legacy.expcore.gui") --- @dep expcore.gui +local Event = require("modules/exp_legacy/utils/event") --- @dep utils.event +local Roles = require("modules.exp_legacy.expcore.roles") --- @dep expcore.roles +local config = require("modules.exp_legacy.config.module") --- @dep config.module +local Selection = require("modules.exp_legacy.modules.control.selection") --- @dep modules.control.selection local SelectionModuleArea = 'ModuleArea' --- align an aabb to the grid by expanding it diff --git a/exp_legacy/module/modules/gui/player-list.lua b/exp_legacy/module/modules/gui/player-list.lua index 99a70cb7..afbcde06 100644 --- a/exp_legacy/module/modules/gui/player-list.lua +++ b/exp_legacy/module/modules/gui/player-list.lua @@ -5,12 +5,12 @@ ]] -- luacheck:ignore 211/Colors -local Gui = require 'expcore.gui' --- @dep expcore.gui -local Roles = require 'expcore.roles' --- @dep expcore.roles -local Datastore = require 'expcore.datastore' --- @dep expcore.datastore -local Event = require 'utils.event' --- @dep utils.event -local config = require 'config.gui.player_list_actions' --- @dep config.gui.player_list_actions -local Colors = require 'utils.color_presets' --- @dep utils.color_presets +local Gui = require("modules.exp_legacy.expcore.gui") --- @dep expcore.gui +local Roles = require("modules.exp_legacy.expcore.roles") --- @dep expcore.roles +local Datastore = require("modules.exp_legacy.expcore.datastore") --- @dep expcore.datastore +local Event = require("modules/exp_legacy/utils/event") --- @dep utils.event +local config = require("modules.exp_legacy.config.gui.player_list_actions") --- @dep config.gui.player_list_actions +local Colors = require("modules/exp_util/include/color") local format_time = _C.format_time --- @dep expcore.common --- Stores all data for the warp gui diff --git a/exp_legacy/module/modules/gui/playerdata.lua b/exp_legacy/module/modules/gui/playerdata.lua index 76473f48..bd905f8f 100644 --- a/exp_legacy/module/modules/gui/playerdata.lua +++ b/exp_legacy/module/modules/gui/playerdata.lua @@ -1,13 +1,13 @@ ---- module pd -- @gui PlayerData -local Gui = require 'expcore.gui' --- @dep expcore.gui -local Roles = require 'expcore.roles' --- @dep expcore.roles -local Event = require 'utils.event' --- @dep utils.event -local PlayerData = require 'expcore.player_data' --- @dep expcore.player_data -require 'modules.data.statistics' +local Gui = require("modules.exp_legacy.expcore.gui") --- @dep expcore.gui +local Roles = require("modules.exp_legacy.expcore.roles") --- @dep expcore.roles +local Event = require("modules/exp_legacy/utils/event") --- @dep utils.event +local PlayerData = require("modules.exp_legacy.expcore.player_data") --- @dep expcore.player_data +require("modules.exp_legacy.modules.data.statistics") local format_time = _C.format_time --- @dep expcore.common -local format_number = require('util').format_number --- @dep util +local format_number = require("util").format_number --- @dep util local pd_container local label_width = { diff --git a/exp_legacy/module/modules/gui/production.lua b/exp_legacy/module/modules/gui/production.lua index ce9ead41..14fced6b 100644 --- a/exp_legacy/module/modules/gui/production.lua +++ b/exp_legacy/module/modules/gui/production.lua @@ -1,9 +1,9 @@ ---- Production Data -- @gui Production -local Gui = require 'expcore.gui' --- @dep expcore.gui -local Event = require 'utils.event' --- @dep utils.event -local Roles = require 'expcore.roles' --- @dep expcore.roles +local Gui = require("modules.exp_legacy.expcore.gui") --- @dep expcore.gui +local Event = require("modules/exp_legacy/utils/event") --- @dep utils.event +local Roles = require("modules.exp_legacy.expcore.roles") --- @dep expcore.roles local production_container diff --git a/exp_legacy/module/modules/gui/readme.lua b/exp_legacy/module/modules/gui/readme.lua index 3aa1eb58..36c8139a 100644 --- a/exp_legacy/module/modules/gui/readme.lua +++ b/exp_legacy/module/modules/gui/readme.lua @@ -4,14 +4,14 @@ @alias readme ]] -local Event = require 'utils.event' --- @dep utils.event -local Gui = require 'expcore.gui' --- @dep expcore.gui -local Roles = require 'expcore.roles' --- @dep expcore.roles -local Commands = require 'expcore.commands' --- @dep expcore.commands -local PlayerData = require 'expcore.player_data' --- @dep expcore.player_data -local External = require 'expcore.external' --- @dep expcore.external +local Event = require("modules/exp_legacy/utils/event") --- @dep utils.event +local Gui = require("modules.exp_legacy.expcore.gui") --- @dep expcore.gui +local Roles = require("modules.exp_legacy.expcore.roles") --- @dep expcore.roles +local Commands = require("modules.exp_legacy.expcore.commands") --- @dep expcore.commands +local PlayerData = require("modules.exp_legacy.expcore.player_data") --- @dep expcore.player_data +local External = require("modules.exp_legacy.expcore.external") --- @dep expcore.external local format_time = _C.format_time --- @dep expcore.common -local format_number = require('util').format_number --- @dep util +local format_number = require("util").format_number --- @dep util local tabs = {} local function Tab(caption, tooltip, element_define) diff --git a/exp_legacy/module/modules/gui/research.lua b/exp_legacy/module/modules/gui/research.lua index babfc8c0..97a21935 100644 --- a/exp_legacy/module/modules/gui/research.lua +++ b/exp_legacy/module/modules/gui/research.lua @@ -1,15 +1,15 @@ --- research gui -- @gui Research -local Gui = require 'expcore.gui' --- @dep expcore.gui -local Global = require 'utils.global' --- @dep utils.global -local Event = require 'utils.event' --- @dep utils.event -local Roles = require 'expcore.roles' --- @dep expcore.roles -local config = require 'config.research' --- @dep config.research +local Gui = require("modules.exp_legacy.expcore.gui") --- @dep expcore.gui +local Storage = require("modules/exp_util/storage") +local Event = require("modules/exp_legacy/utils/event") --- @dep utils.event +local Roles = require("modules.exp_legacy.expcore.roles") --- @dep expcore.roles +local config = require("modules.exp_legacy.config.research") --- @dep config.research local format_time = _C.format_time --- @dep expcore.common local research = {} -Global.register(research, function(tbl) +Storage.register(research, function(tbl) research = tbl end) diff --git a/exp_legacy/module/modules/gui/rocket-info.lua b/exp_legacy/module/modules/gui/rocket-info.lua index 3b9d7b88..0934fdfa 100644 --- a/exp_legacy/module/modules/gui/rocket-info.lua +++ b/exp_legacy/module/modules/gui/rocket-info.lua @@ -4,12 +4,12 @@ @alias rocket_info ]] -local Gui = require 'expcore.gui' --- @dep expcore.gui -local Roles = require 'expcore.roles' --- @dep expcore.roles -local Event = require 'utils.event' --- @dep utils.event -local config = require 'config.gui.rockets' --- @dep config.gui.rockets -local Colors = require 'utils.color_presets' --- @dep utils.color_presets -local Rockets = require 'modules.control.rockets' --- @dep modules.control.rockets +local Gui = require("modules.exp_legacy.expcore.gui") --- @dep expcore.gui +local Roles = require("modules.exp_legacy.expcore.roles") --- @dep expcore.roles +local Event = require("modules/exp_legacy/utils/event") --- @dep utils.event +local config = require("modules.exp_legacy.config.gui.rockets") --- @dep config.gui.rockets +local Colors = require("modules/exp_util/include/color") +local Rockets = require("modules.exp_legacy.modules.control.rockets") --- @dep modules.control.rockets local format_time = _C.format_time --- @dep expcore.common local time_formats = { diff --git a/exp_legacy/module/modules/gui/science-info.lua b/exp_legacy/module/modules/gui/science-info.lua index 97395ca7..89194ebd 100644 --- a/exp_legacy/module/modules/gui/science-info.lua +++ b/exp_legacy/module/modules/gui/science-info.lua @@ -4,11 +4,11 @@ @alias science_info ]] -local Gui = require 'expcore.gui' --- @dep expcore.gui -local Roles = require 'expcore.roles' --- @dep expcore.gui -local Event = require 'utils.event' --- @dep utils.event -local config = require 'config.gui.science' --- @dep config.gui.science -local Production = require 'modules.control.production' --- @dep modules.control.production +local Gui = require("modules.exp_legacy.expcore.gui") --- @dep expcore.gui +local Roles = require("modules.exp_legacy.expcore.roles") --- @dep expcore.gui +local Event = require("modules/exp_legacy/utils/event") --- @dep utils.event +local config = require("modules.exp_legacy.config.gui.science") --- @dep config.gui.science +local Production = require("modules.exp_legacy.modules.control.production") --- @dep modules.control.production local format_time = _C.format_time --- @dep expcore.common local null_time_short = {'science-info.eta-time', format_time(0, {hours=true, minutes=true, seconds=true, time=true, null=true})} diff --git a/exp_legacy/module/modules/gui/server-ups.lua b/exp_legacy/module/modules/gui/server-ups.lua index af643bdc..c80c5f78 100644 --- a/exp_legacy/module/modules/gui/server-ups.lua +++ b/exp_legacy/module/modules/gui/server-ups.lua @@ -4,13 +4,13 @@ @alias server_ups ]] -local Gui = require 'expcore.gui' --- @dep expcore.gui -local Event = require 'utils.event' --- @dep utils.event -local Commands = require 'expcore.commands' --- @dep expcore.commands -local External = require 'expcore.external' --- @dep expcore.external +local Gui = require("modules.exp_legacy.expcore.gui") --- @dep expcore.gui +local Event = require("modules/exp_legacy/utils/event") --- @dep utils.event +local Commands = require("modules.exp_legacy.expcore.commands") --- @dep expcore.commands +local External = require("modules.exp_legacy.expcore.external") --- @dep expcore.external --- Stores the visible state of server ups -local PlayerData = require 'expcore.player_data' --- @dep expcore.player_data +local PlayerData = require("modules.exp_legacy.expcore.player_data") --- @dep expcore.player_data local UsesServerUps = PlayerData.Settings:combine('UsesServerUps') UsesServerUps:set_default(false) UsesServerUps:set_metadata{ diff --git a/exp_legacy/module/modules/gui/surveillance.lua b/exp_legacy/module/modules/gui/surveillance.lua index 786f7387..82bbe346 100644 --- a/exp_legacy/module/modules/gui/surveillance.lua +++ b/exp_legacy/module/modules/gui/surveillance.lua @@ -1,9 +1,9 @@ ---- module surveillance -- @gui surveillance -local Gui = require 'expcore.gui' --- @dep expcore.gui -local Roles = require 'expcore.roles' --- @dep expcore.roles -local Event = require 'utils.event' --- @dep utils.event +local Gui = require("modules.exp_legacy.expcore.gui") --- @dep expcore.gui +local Roles = require("modules.exp_legacy.expcore.roles") --- @dep expcore.roles +local Event = require("modules/exp_legacy/utils/event") --- @dep utils.event local cctv_player = Gui.element(function(definition, parent, player_list) diff --git a/exp_legacy/module/modules/gui/task-list.lua b/exp_legacy/module/modules/gui/task-list.lua index f947bdb4..212230e1 100644 --- a/exp_legacy/module/modules/gui/task-list.lua +++ b/exp_legacy/module/modules/gui/task-list.lua @@ -3,12 +3,12 @@ @gui Task-List @alias task_list ]] -local Gui = require "expcore.gui" --- @dep expcore.gui -local Event = require "utils.event" --- @dep utils.event -local Roles = require "expcore.roles" --- @dep expcore.roles -local Datastore = require "expcore.datastore" --- @dep expcore.datastore -local config = require "config.gui.tasks" --- @dep config.gui.tasks -local Tasks = require "modules.control.tasks" --- @dep modules.control.tasks +local Gui = require("modules.exp_legacy.expcore.gui") --- @dep expcore.gui +local Event = require("modules/exp_legacy/utils/event") --- @dep utils.event +local Roles = require("modules.exp_legacy.expcore.roles") --- @dep expcore.roles +local Datastore = require("modules.exp_legacy.expcore.datastore") --- @dep expcore.datastore +local config = require("modules.exp_legacy.config.gui.tasks") --- @dep config.gui.tasks +local Tasks = require("modules.exp_legacy.modules.control.tasks") --- @dep modules.control.tasks local format_time = _C.format_time --- @dep expcore.common --- Stores all data for the task gui by player diff --git a/exp_legacy/module/modules/gui/toolbar.lua b/exp_legacy/module/modules/gui/toolbar.lua index cf4d42a3..cb342ac9 100644 --- a/exp_legacy/module/modules/gui/toolbar.lua +++ b/exp_legacy/module/modules/gui/toolbar.lua @@ -1,5 +1,5 @@ -local Gui = require "expcore.gui" --- @dep expcore.gui -local PlayerData = require 'expcore.player_data' --- @dep expcore.player_data +local Gui = require("modules.exp_legacy.expcore.gui") --- @dep expcore.gui +local PlayerData = require("modules.exp_legacy.expcore.player_data") --- @dep expcore.player_data -- Used to store the state of the toolbar when a player leaves local ToolbarState = PlayerData.Settings:combine('ToolbarState') diff --git a/exp_legacy/module/modules/gui/vlayer.lua b/exp_legacy/module/modules/gui/vlayer.lua index 928663f1..c50501bd 100644 --- a/exp_legacy/module/modules/gui/vlayer.lua +++ b/exp_legacy/module/modules/gui/vlayer.lua @@ -4,13 +4,13 @@ @alias vlayer_container ]] -local Gui = require 'expcore.gui' --- @dep expcore.gui -local Roles = require 'expcore.roles' --- @dep expcore.roles -local Event = require 'utils.event' --- @dep utils.event -local format_number = require('util').format_number --- @dep util -local config = require 'config.vlayer' --- @dep config.vlayer -local vlayer = require 'modules.control.vlayer' -local Selection = require 'modules.control.selection' --- @dep modules.control.selection +local Gui = require("modules.exp_legacy.expcore.gui") --- @dep expcore.gui +local Roles = require("modules.exp_legacy.expcore.roles") --- @dep expcore.roles +local Event = require("modules/exp_legacy/utils/event") --- @dep utils.event +local format_number = require("util").format_number --- @dep util +local config = require("modules.exp_legacy.config.vlayer") --- @dep config.vlayer +local vlayer = require("modules.exp_legacy.modules.control.vlayer") +local Selection = require("modules.exp_legacy.modules.control.selection") --- @dep modules.control.selection local SelectionConvertArea = 'VlayerConvertChest' --- Align an aabb to the grid by expanding it diff --git a/exp_legacy/module/modules/gui/warp-list.lua b/exp_legacy/module/modules/gui/warp-list.lua index 54ffb1d4..b30e81ad 100644 --- a/exp_legacy/module/modules/gui/warp-list.lua +++ b/exp_legacy/module/modules/gui/warp-list.lua @@ -4,14 +4,14 @@ @alias warp_list ]] -local Gui = require 'expcore.gui' --- @dep expcore.gui -local Datastore = require 'expcore.datastore' --- @dep expcore.datastore -local Global = require 'utils.global' --- @dep utils.global -local Event = require 'utils.event' --- @dep utils.event -local Roles = require 'expcore.roles' --- @dep expcore.roles -local Colors = require 'utils.color_presets' --- @dep utils.color_presets -local config = require 'config.gui.warps' --- @dep config.gui.warps -local Warps = require 'modules.control.warps' --- @dep modules.control.warps +local Gui = require("modules.exp_legacy.expcore.gui") --- @dep expcore.gui +local Datastore = require("modules.exp_legacy.expcore.datastore") --- @dep expcore.datastore +local Storage = require("modules/exp_util/storage") +local Event = require("modules/exp_legacy/utils/event") --- @dep utils.event +local Roles = require("modules.exp_legacy.expcore.roles") --- @dep expcore.roles +local Colors = require("modules/exp_util/include/color") +local config = require("modules.exp_legacy.config.gui.warps") --- @dep config.gui.warps +local Warps = require("modules.exp_legacy.modules.control.warps") --- @dep modules.control.warps local format_time, player_return = _C.format_time, _C.player_return --- @dep expcore.common --- Stores all data for the warp gui @@ -24,7 +24,7 @@ PlayerCooldown:set_default(0) --- Table that stores a boolean value of weather to keep the warp gui open local keep_gui_open = {} -Global.register(keep_gui_open, function(tbl) +Storage.register(keep_gui_open, function(tbl) keep_gui_open = tbl end) diff --git a/exp_legacy/module/overrides/debug.lua b/exp_legacy/module/overrides/debug.lua deleted file mode 100644 index 49bb1369..00000000 --- a/exp_legacy/module/overrides/debug.lua +++ /dev/null @@ -1,164 +0,0 @@ --- localised functions -local format = string.format -local match = string.match -local gsub = string.gsub -local serialize = serpent.line -local debug_getupvalue = debug.getupvalue - --- this -local Debug = {} - -global.debug_message_count = 0 - ----@return number next index -local function increment() - local next = global.debug_message_count + 1 - global.debug_message_count = next - - return next -end - ---- Takes the table output from debug.getinfo and pretties it -local function cleanup_debug(debug_table) - local short_src = match(debug_table.source, '/[^/]*/[^/]*$') - -- require will not return a valid string so short_src may be nil here - if short_src then - short_src = gsub(short_src, '%.lua', '') - end - - return format('[function: %s file: %s line number: %s]', debug_table.name, short_src, debug_table.currentline) -end - ----Shows the given message if debug is enabled. Uses serpent to print non scalars. --- @param message --- @param trace_levels levels of stack trace to give, defaults to 1 level if nil -function Debug.print(message, trace_levels) - if not _DEBUG then - return - end - - if not trace_levels then - trace_levels = 2 - else - trace_levels = trace_levels + 1 - end - - local traceback_string = '' - if type(message) ~= 'string' and type(message) ~= 'number' and type(message) ~= 'boolean' then - message = serialize(message) - end - - message = format('[%d] %s', increment(), tostring(message)) - - if trace_levels >= 2 then - for i = 2, trace_levels do - local debug_table = debug.getinfo(i) - if debug_table then - traceback_string = format('%s -> %s', traceback_string, cleanup_debug(debug_table)) - else - break - end - end - message = format('%s - Traceback%s', message, traceback_string) - end - - if _LIFECYCLE == _STAGE.runtime then - game.print(message) - end - log(message) -end - -local function get(obj, prop) - return obj[prop] -end - -local function get_lua_object_type_safe(obj) - local s, r = pcall(get, obj, 'help') - - if not s then - return - end - - return r():match('Lua%a+') -end - ---- Returns the value of the key inside the object --- or 'InvalidLuaObject' if the LuaObject is invalid. --- or 'InvalidLuaObjectKey' if the LuaObject does not have an entry at that key --- @param object LuaObject or metatable --- @param key --- @return -function Debug.get_meta_value(object, key) - if Debug.object_type(object) == 'InvalidLuaObject' then - return 'InvalidLuaObject' - end - - local suc, value = pcall(get, object, key) - if not suc then - return 'InvalidLuaObjectKey' - end - - return value -end - ---- Returns the Lua data type or the factorio LuaObject type --- or 'NoHelpLuaObject' if the LuaObject does not have a help function --- or 'InvalidLuaObject' if the LuaObject is invalid. --- @param object --- @return string -function Debug.object_type(object) - local obj_type = type(object) - - if obj_type ~= 'table' or type(object.__self) ~= 'userdata' then - return obj_type - end - - local suc, valid = pcall(get, object, 'valid') - if not suc then - -- no 'valid' property - return get_lua_object_type_safe(object) or 'NoHelpLuaObject' - end - - if not valid then - return 'InvalidLuaObject' - else - return get_lua_object_type_safe(object) or 'NoHelpLuaObject' - end -end - ----Shows the given message if debug is on. ----@param position MapPosition ----@param message string -function Debug.print_position(position, message) - Debug.print(format('%s %s', serialize(position), message)) -end - ----Executes the given callback if cheating is enabled. ----@param callback function -function Debug.cheat(callback) - if _CHEATS then - callback() - end -end - ---- Returns true if the function is a closure, false otherwise. --- A closure is a function that contains 'upvalues' or in other words --- has a reference to a local variable defined outside the function's scope. --- @param func --- @return boolean -function Debug.is_closure(func) - local i = 1 - while true do - local n = debug_getupvalue(func, i) - - if n == nil then - return false - elseif n ~= '_ENV' then - return true - end - - i = i + 1 - end -end - -return Debug \ No newline at end of file diff --git a/exp_legacy/module/overrides/inspect.lua b/exp_legacy/module/overrides/inspect.lua deleted file mode 100644 index 6cf7296f..00000000 --- a/exp_legacy/module/overrides/inspect.lua +++ /dev/null @@ -1,341 +0,0 @@ -local inspect ={ - _VERSION = 'inspect.lua 3.1.0', - _URL = 'http://github.com/kikito/inspect.lua', - _DESCRIPTION = 'human-readable representations of tables', - _LICENSE = [[ - MIT LICENSE - - Copyright (c) 2013 Enrique García Cota - - Permission is hereby granted, free of charge, to any person obtaining a - copy of this software and associated documentation files (the - "Software"), to deal in the Software without restriction, including - without limitation the rights to use, copy, modify, merge, publish, - distribute, sublicense, and/or sell copies of the Software, and to - permit persons to whom the Software is furnished to do so, subject to - the following conditions: - - The above copyright notice and this permission notice shall be included - in all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY - CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, - TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE - SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ]] -} - -local tostring = tostring - -inspect.KEY = setmetatable({}, {__tostring = function() return 'inspect.KEY' end}) -inspect.METATABLE = setmetatable({}, {__tostring = function() return 'inspect.METATABLE' end}) - --- Apostrophizes the string if it has quotes, but not aphostrophes --- Otherwise, it returns a regular quoted string -local function smartQuote(str) - if str:match('"') and not str:match("'") then - return "'" .. str .. "'" - end - return '"' .. str:gsub('"', '\\"') .. '"' -end - --- \a => '\\a', \0 => '\\0', 31 => '\31' -local shortControlCharEscapes = { - ["\a"] = "\\a", ["\b"] = "\\b", ["\f"] = "\\f", ["\n"] = "\\n", - ["\r"] = "\\r", ["\t"] = "\\t", ["\v"] = "\\v" -} -local longControlCharEscapes = {} -- \a => nil, \0 => \000, 31 => \031 -for i=0, 31 do - local ch = string.char(i) - if not shortControlCharEscapes[ch] then - shortControlCharEscapes[ch] = "\\"..i - longControlCharEscapes[ch] = string.format("\\%03d", i) - end -end - -local function escape(str) - return (str:gsub("\\", "\\\\") - :gsub("(%c)%f[0-9]", longControlCharEscapes) - :gsub("%c", shortControlCharEscapes)) -end - -local function isIdentifier(str) - return type(str) == 'string' and str:match( "^[_%a][_%a%d]*$" ) -end - -local function isSequenceKey(k, sequenceLength) - return type(k) == 'number' - and 1 <= k - and k <= sequenceLength - and math.floor(k) == k -end - -local defaultTypeOrders = { - ['number'] = 1, ['boolean'] = 2, ['string'] = 3, ['table'] = 4, - ['function'] = 5, ['userdata'] = 6, ['thread'] = 7 -} - -local function sortKeys(a, b) - local ta, tb = type(a), type(b) - - -- strings and numbers are sorted numerically/alphabetically - if ta == tb and (ta == 'string' or ta == 'number') then return a < b end - - local dta, dtb = defaultTypeOrders[ta], defaultTypeOrders[tb] - -- Two default types are compared according to the defaultTypeOrders table - if dta and dtb then return defaultTypeOrders[ta] < defaultTypeOrders[tb] - elseif dta then return true -- default types before custom ones - elseif dtb then return false -- custom types after default ones - end - - -- custom types are sorted out alphabetically - return ta < tb -end - --- For implementation reasons, the behavior of rawlen & # is "undefined" when --- tables aren't pure sequences. So we implement our own # operator. -local function getSequenceLength(t) - local len = 1 - local v = rawget(t, len) - while v ~= nil do - len = len + 1 - v = rawget(t, len) - end - return len - 1 -end - -local function getNonSequentialKeys(t) - local keys = {} - local sequenceLength = getSequenceLength(t) - for k, _ in pairs(t) do - if not isSequenceKey(k, sequenceLength) then table.insert(keys, k) end - end - table.sort(keys, sortKeys) - return keys, sequenceLength -end - -local function getToStringResultSafely(t, mt) - local __tostring = type(mt) == 'table' and rawget(mt, '__tostring') - local str, ok - if type(__tostring) == 'function' then - ok, str = pcall(__tostring, t) - str = ok and str or 'error: ' .. tostring(str) - end - if type(str) == 'string' and #str > 0 then return str end -end - -local function countTableAppearances(t, tableAppearances) - tableAppearances = tableAppearances or {} - - if type(t) == 'table' then - if not tableAppearances[t] then - tableAppearances[t] = 1 - for k, v in pairs(t) do - countTableAppearances(k, tableAppearances) - countTableAppearances(v, tableAppearances) - end - countTableAppearances(getmetatable(t), tableAppearances) - else - tableAppearances[t] = tableAppearances[t] + 1 - end - end - - return tableAppearances -end - -local copySequence = function(s) - local copy, len = {}, #s - for i=1, len do copy[i] = s[i] end - return copy, len -end - -local function makePath(path, ...) - local keys = {...} - local newPath, len = copySequence(path) - for i=1, #keys do - newPath[len + i] = keys[i] - end - return newPath -end - -local function processRecursive(process, item, path, visited) - - if item == nil then return nil end - if visited[item] then return visited[item] end - - local processed = process(item, path) - if type(processed) == 'table' then - local processedCopy = {} - visited[item] = processedCopy - local processedKey - - for k, v in pairs(processed) do - processedKey = processRecursive(process, k, makePath(path, k, inspect.KEY), visited) - if processedKey ~= nil then - processedCopy[processedKey] = processRecursive(process, v, makePath(path, processedKey), visited) - end - end - - local mt = processRecursive(process, getmetatable(processed), makePath(path, inspect.METATABLE), visited) - setmetatable(processedCopy, mt) - processed = processedCopy - end - return processed -end - - - -------------------------------------------------------------------- - -local Inspector = {} -local Inspector_mt = {__index = Inspector} - -function Inspector:puts(...) - local args = {...} - local buffer = self.buffer - local len = #buffer - for i=1, #args do - len = len + 1 - buffer[len] = args[i] - end -end - -function Inspector:down(f) - self.level = self.level + 1 - f() - self.level = self.level - 1 -end - -function Inspector:tabify() - self:puts(self.newline, string.rep(self.indent, self.level)) -end - -function Inspector:alreadyVisited(v) - return self.ids[v] ~= nil -end - -function Inspector:getId(v) - local id = self.ids[v] - if not id then - local tv = type(v) - id = (self.maxIds[tv] or 0) + 1 - self.maxIds[tv] = id - self.ids[v] = id - end - return tostring(id) -end - -function Inspector:putKey(k) - if isIdentifier(k) then return self:puts(k) end - self:puts("[") - self:putValue(k) - self:puts("]") -end - -function Inspector:putTable(t) - if t == inspect.KEY or t == inspect.METATABLE then - self:puts(tostring(t)) - elseif self:alreadyVisited(t) then - self:puts('
') - elseif self.level >= self.depth then - self:puts('{...}') - else - if self.tableAppearances[t] > 1 then self:puts('<', self:getId(t), '>') end - - local nonSequentialKeys, sequenceLength = getNonSequentialKeys(t) - local mt = getmetatable(t) - local toStringResult = getToStringResultSafely(t, mt) - - self:puts('{') - self:down(function() - if toStringResult then - self:puts(' -- ', escape(toStringResult)) - if sequenceLength >= 1 then self:tabify() end - end - - local count = 0 - for i=1, sequenceLength do - if count > 0 then self:puts(', ') end - self:puts(' ') - self:putValue(t[i]) - count = count + 1 - end - - for _, k in ipairs(nonSequentialKeys) do - if count > 0 then self:puts(', ') end - self:tabify() - self:putKey(k) - self:puts(' = ') - self:putValue(t[k]) - count = count + 1 - end - - if mt then - if count > 0 then self:puts(', ') end - self:tabify() - self:puts(' = ') - self:putValue(mt) - end - end) - - if #nonSequentialKeys > 0 or mt then -- result is multi-lined. Justify closing } - self:tabify() - elseif sequenceLength > 0 then -- array tables have one extra space before closing } - self:puts(' ') - end - - self:puts('}') - end -end - -function Inspector:putValue(v) - local tv = type(v) - - if tv == 'string' then - self:puts(smartQuote(escape(v))) - elseif tv == 'number' or tv == 'boolean' or tv == 'nil' or - tv == 'cdata' or tv == 'ctype' then - self:puts(tostring(v)) - elseif tv == 'table' then - self:putTable(v) - else - self:puts('<', tv, ' ', self:getId(v), '>') - end -end - -------------------------------------------------------------------- - -function inspect.inspect(root, options) - options = options or {} - - local depth = options.depth or math.huge - local newline = options.newline or '\n' - local indent = options.indent or ' ' - local process = options.process - - if process then - root = processRecursive(process, root, {}, {}) - end - - local inspector = setmetatable({ - depth = depth, - level = 0, - buffer = {}, - ids = {}, - maxIds = {}, - newline = newline, - indent = indent, - tableAppearances = countTableAppearances(root) - }, Inspector_mt) - - inspector:putValue(root) - - return table.concat(inspector.buffer) -end - -setmetatable(inspect, { __call = function(_, ...) return inspect.inspect(...) end }) - -return inspect \ No newline at end of file diff --git a/exp_legacy/module/overrides/math.lua b/exp_legacy/module/overrides/math.lua deleted file mode 100644 index a9ba046f..00000000 --- a/exp_legacy/module/overrides/math.lua +++ /dev/null @@ -1,55 +0,0 @@ ---luacheck:ignore global math -local _sin = math.sin -local _cos = math.cos - -math.sqrt2 = math.sqrt(2) -math.inv_sqrt2 = 1 / math.sqrt2 -math.tau = 2 * math.pi - -math.sin = function(x) - return math.floor(_sin(x) * 10000000 + 0.5) / 10000000 -end - -math.cos = function(x) - return math.floor(_cos(x) * 10000000 + 0.5) / 10000000 -end - --- rounds number (num) to certain number of decimal places (idp) -math.round = function(num, idp) - local mult = 10 ^ (idp or 0) - return math.floor(num * mult + 0.5) / mult -end - -math.clamp = function(num, min, max) - if num < min then - return min - elseif num > max then - return max - else - return num - end -end - ---- Takes two points and calculates the slope of a line --- @param x1, y1 numbers - coordinates of a point on a line --- @param x2, y2 numbers - coordinates of a point on a line --- @return number - the slope of the line -math.calculate_slope = function(x1, y1, x2, y2) - return math.abs((y2 - y1) / (x2 - x1)) -end - ---- Calculates the y-intercept of a line --- @param x number - coordinates of point on line --- @param y number - coordinates of point on line --- @param slope number - the slope of a line --- @return number - the y-intercept of a line -math.calculate_y_intercept = function(x, y, slope) - return y - (slope * x) -end - -local deg_to_rad = math.tau / 360 -math.degrees = function(angle) - return angle * deg_to_rad -end - -return math \ No newline at end of file diff --git a/exp_legacy/module/overrides/print.lua b/exp_legacy/module/overrides/print.lua deleted file mode 100644 index 22f3c72a..00000000 --- a/exp_legacy/module/overrides/print.lua +++ /dev/null @@ -1,10 +0,0 @@ ---luacheck:ignore global print -local locale_string = {'', '[PRINT] ', nil} -local raw_print = print - -function print(str) - locale_string[3] = str - log(locale_string) -end - -return raw_print \ No newline at end of file diff --git a/exp_legacy/module/overrides/require.lua b/exp_legacy/module/overrides/require.lua deleted file mode 100644 index 4436e5d8..00000000 --- a/exp_legacy/module/overrides/require.lua +++ /dev/null @@ -1,8 +0,0 @@ -local loaded = package.loaded -local raw_require = require - -function require(path) - return loaded[path] or error('Can only require files at runtime that have been required in the control stage.', 2) -end - -return raw_require \ No newline at end of file diff --git a/exp_legacy/module/overrides/stages.lua b/exp_legacy/module/overrides/stages.lua deleted file mode 100644 index 8a7fb800..00000000 --- a/exp_legacy/module/overrides/stages.lua +++ /dev/null @@ -1,14 +0,0 @@ --- Info on the data lifecycle and how we use it: https://github.com/Refactorio/RedMew/wiki/The-data-lifecycle --- Non-applicable stages are commented out. -_STAGE = { - --settings = 1, - --data = 2, - --migration = 3, - control = 4, - init = 5, - load = 6, - --config_change = 7, - runtime = 8 -} - -_LIFECYCLE = _STAGE.control \ No newline at end of file diff --git a/exp_legacy/module/overrides/table.lua b/exp_legacy/module/overrides/table.lua index f6503f0d..d9c35483 100644 --- a/exp_legacy/module/overrides/table.lua +++ b/exp_legacy/module/overrides/table.lua @@ -400,7 +400,7 @@ function table.binary_search(t, target) end -- add table-related functions that exist in base factorio/util to the 'table' table -require 'util' +require("util") --- Similar to serpent.block, returns a string with a pretty representation of a table. -- Notice: This method is not appropriate for saving/restoring tables. It is meant to be used by the programmer mainly while debugging a program. @@ -410,7 +410,7 @@ require 'util' -- process is a function which allow altering the passed object before transforming it into a string. -- A typical way to use it would be to remove certain values so that they don't appear at all. -- return the prettied table -table.inspect = require 'overrides.inspect' --- @dep overrides.inspect +table.inspect = require("modules/exp_util/include/inspect") --- @dep overrides.inspect --- Takes a table and returns the number of entries in the table. (Slower than #table, faster than iterating via pairs) table.size = table_size diff --git a/exp_legacy/module/utils/color_presets.lua b/exp_legacy/module/utils/color_presets.lua deleted file mode 100644 index 738b7b73..00000000 --- a/exp_legacy/module/utils/color_presets.lua +++ /dev/null @@ -1,147 +0,0 @@ --- source: https://www.rapidtables.com/web/color/RGB_Color.html -return { - maroon = {r = 128, g = 0, b = 0}, - dark_red = {r = 139, g = 0, b = 0}, - brown = {r = 165, g = 42, b = 42}, - firebrick = {r = 178, g = 34, b = 34}, - crimson = {r = 220, g = 20, b = 60}, - red = {r = 255, g = 0, b = 0}, - tomato = {r = 255, g = 99, b = 71}, - coral = {r = 255, g = 127, b = 80}, - indian_red = {r = 205, g = 92, b = 92}, - light_coral = {r = 240, g = 128, b = 128}, - dark_salmon = {r = 233, g = 150, b = 122}, - salmon = {r = 250, g = 128, b = 114}, - light_salmon = {r = 255, g = 160, b = 122}, - orange_red = {r = 255, g = 69, b = 0}, - dark_orange = {r = 255, g = 140, b = 0}, - orange = {r = 255, g = 165, b = 0}, - gold = {r = 255, g = 215, b = 0}, - dark_golden_rod = {r = 184, g = 134, b = 11}, - golden_rod = {r = 218, g = 165, b = 32}, - pale_golden_rod = {r = 238, g = 232, b = 170}, - dark_khaki = {r = 189, g = 183, b = 107}, - khaki = {r = 240, g = 230, b = 140}, - olive = {r = 128, g = 128, b = 0}, - yellow = {r = 255, g = 255, b = 0}, - yellow_green = {r = 154, g = 205, b = 50}, - dark_olive_green = {r = 85, g = 107, b = 47}, - olive_drab = {r = 107, g = 142, b = 35}, - lawn_green = {r = 124, g = 252, b = 0}, - chart_reuse = {r = 127, g = 255, b = 0}, - green_yellow = {r = 173, g = 255, b = 47}, - dark_green = {r = 0, g = 100, b = 0}, - green = {r = 0, g = 128, b = 0}, - forest_green = {r = 34, g = 139, b = 34}, - lime = {r = 0, g = 255, b = 0}, - lime_green = {r = 50, g = 205, b = 50}, - light_green = {r = 144, g = 238, b = 144}, - pale_green = {r = 152, g = 251, b = 152}, - dark_sea_green = {r = 143, g = 188, b = 143}, - medium_spring_green = {r = 0, g = 250, b = 154}, - spring_green = {r = 0, g = 255, b = 127}, - sea_green = {r = 46, g = 139, b = 87}, - medium_aqua_marine = {r = 102, g = 205, b = 170}, - medium_sea_green = {r = 60, g = 179, b = 113}, - light_sea_green = {r = 32, g = 178, b = 170}, - dark_slate_gray = {r = 47, g = 79, b = 79}, - teal = {r = 0, g = 128, b = 128}, - dark_cyan = {r = 0, g = 139, b = 139}, - aqua = {r = 0, g = 255, b = 255}, - cyan = {r = 0, g = 255, b = 255}, - light_cyan = {r = 224, g = 255, b = 255}, - dark_turquoise = {r = 0, g = 206, b = 209}, - turquoise = {r = 64, g = 224, b = 208}, - medium_turquoise = {r = 72, g = 209, b = 204}, - pale_turquoise = {r = 175, g = 238, b = 238}, - aqua_marine = {r = 127, g = 255, b = 212}, - powder_blue = {r = 176, g = 224, b = 230}, - cadet_blue = {r = 95, g = 158, b = 160}, - steel_blue = {r = 70, g = 130, b = 180}, - corn_flower_blue = {r = 100, g = 149, b = 237}, - deep_sky_blue = {r = 0, g = 191, b = 255}, - dodger_blue = {r = 30, g = 144, b = 255}, - light_blue = {r = 173, g = 216, b = 230}, - sky_blue = {r = 135, g = 206, b = 235}, - light_sky_blue = {r = 135, g = 206, b = 250}, - midnight_blue = {r = 25, g = 25, b = 112}, - navy = {r = 0, g = 0, b = 128}, - dark_blue = {r = 0, g = 0, b = 139}, - medium_blue = {r = 0, g = 0, b = 205}, - blue = {r = 0, g = 0, b = 255}, - royal_blue = {r = 65, g = 105, b = 225}, - blue_violet = {r = 138, g = 43, b = 226}, - indigo = {r = 75, g = 0, b = 130}, - dark_slate_blue = {r = 72, g = 61, b = 139}, - slate_blue = {r = 106, g = 90, b = 205}, - medium_slate_blue = {r = 123, g = 104, b = 238}, - medium_purple = {r = 147, g = 112, b = 219}, - dark_magenta = {r = 139, g = 0, b = 139}, - dark_violet = {r = 148, g = 0, b = 211}, - dark_orchid = {r = 153, g = 50, b = 204}, - medium_orchid = {r = 186, g = 85, b = 211}, - purple = {r = 128, g = 0, b = 128}, - thistle = {r = 216, g = 191, b = 216}, - plum = {r = 221, g = 160, b = 221}, - violet = {r = 238, g = 130, b = 238}, - magenta = {r = 255, g = 0, b = 255}, - fuchsia = {r = 255, g = 0, b = 255}, - orchid = {r = 218, g = 112, b = 214}, - medium_violet_red = {r = 199, g = 21, b = 133}, - pale_violet_red = {r = 219, g = 112, b = 147}, - deep_pink = {r = 255, g = 20, b = 147}, - hot_pink = {r = 255, g = 105, b = 180}, - light_pink = {r = 255, g = 182, b = 193}, - pink = {r = 255, g = 192, b = 203}, - antique_white = {r = 250, g = 235, b = 215}, - beige = {r = 245, g = 245, b = 220}, - bisque = {r = 255, g = 228, b = 196}, - blanched_almond = {r = 255, g = 235, b = 205}, - wheat = {r = 245, g = 222, b = 179}, - corn_silk = {r = 255, g = 248, b = 220}, - lemon_chiffon = {r = 255, g = 250, b = 205}, - light_golden_rod_yellow = {r = 250, g = 250, b = 210}, - light_yellow = {r = 255, g = 255, b = 224}, - saddle_brown = {r = 139, g = 69, b = 19}, - sienna = {r = 160, g = 82, b = 45}, - chocolate = {r = 210, g = 105, b = 30}, - peru = {r = 205, g = 133, b = 63}, - sandy_brown = {r = 244, g = 164, b = 96}, - burly_wood = {r = 222, g = 184, b = 135}, - tan = {r = 210, g = 180, b = 140}, - rosy_brown = {r = 188, g = 143, b = 143}, - moccasin = {r = 255, g = 228, b = 181}, - navajo_white = {r = 255, g = 222, b = 173}, - peach_puff = {r = 255, g = 218, b = 185}, - misty_rose = {r = 255, g = 228, b = 225}, - lavender_blush = {r = 255, g = 240, b = 245}, - linen = {r = 250, g = 240, b = 230}, - old_lace = {r = 253, g = 245, b = 230}, - papaya_whip = {r = 255, g = 239, b = 213}, - sea_shell = {r = 255, g = 245, b = 238}, - mint_cream = {r = 245, g = 255, b = 250}, - slate_gray = {r = 112, g = 128, b = 144}, - light_slate_gray = {r = 119, g = 136, b = 153}, - light_steel_blue = {r = 176, g = 196, b = 222}, - lavender = {r = 230, g = 230, b = 250}, - floral_white = {r = 255, g = 250, b = 240}, - alice_blue = {r = 240, g = 248, b = 255}, - ghost_white = {r = 248, g = 248, b = 255}, - honeydew = {r = 240, g = 255, b = 240}, - ivory = {r = 255, g = 255, b = 240}, - azure = {r = 240, g = 255, b = 255}, - snow = {r = 255, g = 250, b = 250}, - black = {r = 0, g = 0, b = 0}, - silver = {r = 192, g = 192, b = 192}, - dim_grey = {r = 105, g = 105, b = 105}, - grey = {r = 128, g = 128, b = 128}, - dark_grey = {r = 169, g = 169, b = 169}, - light_grey = {r = 211, g = 211, b = 211}, - gainsboro = {r = 220, g = 220, b = 220}, - white_smoke = {r = 245, g = 245, b = 245}, - white = {r = 255, g = 255, b = 255}, - success = {r = 0, g = 255, b = 0}, - warning = {r = 255, g = 255, b = 0}, - fail = {r = 255, g = 0, b = 0}, - info = {r = 255, g = 255, b = 255} -} diff --git a/exp_legacy/module/utils/event.lua b/exp_legacy/module/utils/event.lua index 09673c5d..b39aec93 100644 --- a/exp_legacy/module/utils/event.lua +++ b/exp_legacy/module/utils/event.lua @@ -1,457 +1,87 @@ ---- This Module allows for registering multiple handlers to the same event, overcoming the limitation of script.register. --- --- ** Event.add(event_name, handler) ** --- --- Handlers added with Event.add must be added at the control stage or in Event.on_init or Event.on_load. --- Remember that for each player, on_init or on_load is run, never both. So if you can't add the handler in the --- control stage add the handler in both on_init and on_load. --- Handlers added with Event.add cannot be removed. --- For handlers that need to be removed or added at runtime use Event.add_removable. --- @usage --- local Event = require 'utils.event' --- @dep utils.event --- Event.add( --- defines.events.on_built_entity, --- function(event) --- game.print(serpent.block(event)) -- prints the content of the event table to console. --- end --- ) --- --- ** Event.add_removable(event_name, token) ** --- --- For conditional event handlers. Event.add_removable can be safely called at runtime without desync risk. --- Only use this if you need to add the handler at runtime or need to remove the handler, otherwise use Event.add --- --- Event.add_removable can be safely used at the control stage or in Event.on_init. If used in on_init you don't --- need to also add in on_load (unlike Event.add). --- Event.add_removable cannot be called in on_load, doing so will crash the game on loading. --- Token is used because it's a desync risk to store closures inside the global table. --- --- @usage --- local Token = require 'utils.token' --- @dep utils.token --- local Event = require 'utils.event' --- @dep utils.event --- --- Token.register must not be called inside an event handler. --- local handler = --- Token.register( --- function(event) --- game.print(serpent.block(event)) -- prints the content of the event table to console. --- end --- ) --- --- The below code would typically be inside another event or a custom command. --- Event.add_removable(defines.events.on_built_entity, handler) --- --- When you no longer need the handler. --- Event.remove_removable(defines.events.on_built_entity, handler) --- --- It's not an error to register the same token multiple times to the same event, however when --- removing only the first occurrence is removed. --- --- ** Event.add_removable_function(event_name, func) ** --- --- Only use this function if you can't use Event.add_removable. i.e you are registering the handler at the console. --- The same restrictions that apply to Event.add_removable also apply to Event.add_removable_function. --- func cannot be a closure in this case, as there is no safe way to store closures in the global table. --- A closure is a function that uses a local variable not defined in the function. --- --- @usage --- local Event = require 'utils.event' --- @dep utils.event --- --- If you want to remove the handler you will need to keep a reference to it. --- global.handler = function(event) --- game.print(serpent.block(event)) -- prints the content of the event table to console. --- end --- --- The below code would typically be used at the command console. --- Event.add_removable_function(defines.events.on_built_entity, global.handler) --- --- When you no longer need the handler. --- Event.remove_removable_function(defines.events.on_built_entity, global.handler) --- --- ** Other Events ** --- --- Use Event.on_init(handler) for script.on_init(handler) --- Use Event.on_load(handler) for script.on_load(handler) --- --- Use Event.on_nth_tick(tick, handler) for script.on_nth_tick(tick, handler) --- Favour this event over Event.add(defines.events.on_tick, handler) --- There are also Event.add_removable_nth_tick(tick, token) and Event.add_removable_nth_tick_function(tick, func) --- That work the same as above. --- --- ** Custom Scenario Events ** --- --- local Event = require 'utils.event' --- @dep utils.event --- --- local event_id = script.generate_event_name() --- --- Event.add( --- event_id, --- function(event) --- game.print(serpent.block(event)) -- prints the content of the event table to console. --- end --- ) --- --- The table contains extra information that you want to pass to the handler. --- script.raise_event(event_id, {extra = 'data'}) +local Clustorio = require("modules/clusterio/api") +local ExpUtil = require("modules/exp_util") -local EventCore = require 'utils.event_core' --- @dep utils.event_core -local Global = require 'utils.global' --- @dep utils.global -local Token = require 'utils.token' --- @dep utils.token -local Debug = require 'overrides.debug' --- @dep overrides.debug -local table_remove = table.remove -local core_add = EventCore.add -local core_on_init = EventCore.on_init -local core_on_load = EventCore.on_load -local core_on_nth_tick = EventCore.on_nth_tick -local stage_load = _STAGE.load -local script_on_event = script.on_event -local script_on_nth_tick = script.on_nth_tick - -local Event = {} - -local handlers_added = false -- set to true after the removeable event handlers have been added. - -local event_handlers = EventCore.get_event_handlers() -local on_nth_tick_event_handlers = EventCore.get_on_nth_tick_event_handlers() - -local token_handlers = {} -local token_nth_tick_handlers = {} -local function_handlers = {} -local function_nth_tick_handlers = {} - -Global.register( - { - token_handlers = token_handlers, - token_nth_tick_handlers = token_nth_tick_handlers, - function_handlers = function_handlers, - function_nth_tick_handlers = function_nth_tick_handlers +local Event = { + real_handlers = { + events = {}, + on_nth_tick = {}, + on_init = nil, + on_load = nil, }, - function(tbl) - token_handlers = tbl.token_handlers - token_nth_tick_handlers = tbl.token_nth_tick_handlers - function_handlers = tbl.function_handlers - function_nth_tick_handlers = tbl.function_nth_tick_handlers - end -) + handlers = { + events = {}, + on_nth_tick = {}, + on_init = nil, + on_load = nil, + } +} -local function remove(tbl, handler) - if tbl == nil then - return - end - - -- the handler we are looking for is more likely to be at the back of the array. - for i = #tbl, 1, -1 do - if tbl[i] == handler then - table_remove(tbl, i) - break +local function call_handlers_factory(handlers) + return function(event) + for _, handler in ipairs(handlers) do + handler(event) end end end ---- Register a handler for the event_name event. --- This function must be called in the control stage or in Event.on_init or Event.on_load. --- See documentation at top of file for details on using events. --- @param event_name --- @param handler function Event.add(event_name, handler) - if _LIFECYCLE == 8 then - error('Calling Event.add after on_init() or on_load() has run is a desync risk.', 2) + ExpUtil.assert_not_runtime() + ExpUtil.assert_argument_type(event_name, "number", 1, "event_name") + ExpUtil.assert_argument_type(handler, "function", 2, "handler") + + local handlers = Event.handlers.events[event_name] + if not handlers then + handlers = {} + Event.handlers.events[event_name] = handlers + Event.real_handlers.events[event_name] = call_handlers_factory(handlers) end - core_add(event_name, handler) + handlers[#handlers+1] = handler end ---- Register a handler for the script.on_init event. --- This function must be called in the control stage or in Event.on_init or Event.on_load --- See documentation at top of file for details on using events. --- @param handler -function Event.on_init(handler) - if _LIFECYCLE == 8 then - error('Calling Event.on_init after on_init() or on_load() has run is a desync risk.', 2) - end - - core_on_init(handler) -end - ---- Register a handler for the script.on_load event. --- This function must be called in the control stage or in Event.on_init or Event.on_load --- See documentation at top of file for details on using events. --- @param handler -function Event.on_load(handler) - if _LIFECYCLE == 8 then - error('Calling Event.on_load after on_init() or on_load() has run is a desync risk.', 2) - end - - core_on_load(handler) -end - ---- Register a handler for the nth_tick event. --- This function must be called in the control stage or in Event.on_init or Event.on_load. --- See documentation at top of file for details on using events. --- @param tick The handler will be called every nth tick --- @param handler function Event.on_nth_tick(tick, handler) - if _LIFECYCLE == 8 then - error('Calling Event.on_nth_tick after on_init() or on_load() has run is a desync risk.', 2) + ExpUtil.assert_not_runtime() + ExpUtil.assert_argument_type(tick, "number", 1, "tick") + ExpUtil.assert_argument_type(handler, "function", 2, "handler") + + local handlers = Event.handlers.on_nth_tick[tick] + if not handlers then + handlers = {} + Event.handlers.on_nth_tick[tick] = handlers + Event.real_handlers.on_nth_tick[tick] = call_handlers_factory(handlers) end - core_on_nth_tick(tick, handler) + handlers[#handlers+1] = handler end ---- Register a token handler that can be safely added and removed at runtime. --- Do NOT call this method during on_load. --- See documentation at top of file for details on using events. --- @param event_name --- @param token -function Event.add_removable(event_name, token) - if type(token) ~= 'number' then - error('token must be a number', 2) - end - if _LIFECYCLE == stage_load then - error('cannot call during on_load', 2) +function Event.on_init(handler) + ExpUtil.assert_not_runtime() + ExpUtil.assert_argument_type(handler, "function", 1, "handler") + + local handlers = Event.handlers.on_init + if not handlers then + handlers = {} + Event.handlers.on_init = handlers + Event.real_handlers.on_init = call_handlers_factory(handlers) end - local tokens = token_handlers[event_name] - if not tokens then - token_handlers[event_name] = {token} - else - tokens[#tokens + 1] = token - end - - if handlers_added then - local handler = Token.get(token) - core_add(event_name, handler) - end + handlers[#handlers+1] = handler + Event.add(Clustorio.events.on_server_startup, handler) end ---- Removes a token handler for the given event_name. --- Do NOT call this method during on_load. --- See documentation at top of file for details on using events. --- @param event_name --- @param token -function Event.remove_removable(event_name, token) - if _LIFECYCLE == stage_load then - error('cannot call during on_load', 2) - end - local tokens = token_handlers[event_name] +function Event.on_load(handler) + ExpUtil.assert_not_runtime() + ExpUtil.assert_argument_type(handler, "function", 1, "handler") - if not tokens then - return + local handlers = Event.handlers.on_load + if not handlers then + handlers = {} + Event.handlers.on_load = handlers + Event.real_handlers.on_load = call_handlers_factory(handlers) end - local handler = Token.get(token) - local handlers = event_handlers[event_name] - - remove(tokens, token) - remove(handlers, handler) - - if #handlers == 0 then - script_on_event(event_name, nil) - end + handlers[#handlers+1] = handler end ---- Register a handler that can be safely added and removed at runtime. --- The handler must not be a closure, as that is a desync risk. --- Do NOT call this method during on_load. --- See documentation at top of file for details on using events. --- @param event_name --- @param func -function Event.add_removable_function(event_name, func) - if _LIFECYCLE == stage_load then - error('cannot call during on_load', 2) - end - if type(func) ~= 'function' then - error('func must be a function', 2) - end - - if Debug.is_closure(func) then - error( - 'func cannot be a closure as that is a desync risk. Consider using Event.add_removable(event_name, token) instead.', - 2 - ) - end - - local functions = function_handlers[event_name] - if not functions then - function_handlers[event_name] = {func} - else - functions[#functions + 1] = func - end - - if handlers_added then - core_add(event_name, func) - end -end - ---- Removes a handler for the given event_name. --- Do NOT call this method during on_load. --- See documentation at top of file for details on using events. --- @param event_name --- @param func -function Event.remove_removable_function(event_name, func) - if _LIFECYCLE == stage_load then - error('cannot call during on_load', 2) - end - local functions = function_handlers[event_name] - - if not functions then - return - end - - local handlers = event_handlers[event_name] - - remove(functions, func) - remove(handlers, func) - - if #handlers == 0 then - script_on_event(event_name, nil) - end -end - ---- Register a token handler for the nth tick that can be safely added and removed at runtime. --- Do NOT call this method during on_load. --- See documentation at top of file for details on using events. --- @param tick --- @param token -function Event.add_removable_nth_tick(tick, token) - if _LIFECYCLE == stage_load then - error('cannot call during on_load', 2) - end - if type(token) ~= 'number' then - error('token must be a number', 2) - end - - local tokens = token_nth_tick_handlers[tick] - if not tokens then - token_nth_tick_handlers[tick] = {token} - else - tokens[#tokens + 1] = token - end - - if handlers_added then - local handler = Token.get(token) - core_on_nth_tick(tick, handler) - end -end - ---- Removes a token handler for the nth tick. --- Do NOT call this method during on_load. --- See documentation at top of file for details on using events. --- @param tick --- @param token -function Event.remove_removable_nth_tick(tick, token) - if _LIFECYCLE == stage_load then - error('cannot call during on_load', 2) - end - local tokens = token_nth_tick_handlers[tick] - - if not tokens then - return - end - - local handler = Token.get(token) - local handlers = on_nth_tick_event_handlers[tick] - - remove(tokens, token) - remove(handlers, handler) - - if #handlers == 0 then - script_on_nth_tick(tick, nil) - end -end - ---- Register a handler for the nth tick that can be safely added and removed at runtime. --- The handler must not be a closure, as that is a desync risk. --- Do NOT call this method during on_load. --- See documentation at top of file for details on using events. --- @param tick --- @param func -function Event.add_removable_nth_tick_function(tick, func) - if _LIFECYCLE == stage_load then - error('cannot call during on_load', 2) - end - if type(func) ~= 'function' then - error('func must be a function', 2) - end - - if Debug.is_closure(func) then - error( - 'func cannot be a closure as that is a desync risk. Consider using Event.add_removable_nth_tick(tick, token) instead.', - 2 - ) - end - - local functions = function_nth_tick_handlers[tick] - if not functions then - function_nth_tick_handlers[tick] = {func} - else - functions[#functions + 1] = func - end - - if handlers_added then - core_on_nth_tick(tick, func) - end -end - ---- Removes a handler for the nth tick. --- Do NOT call this method during on_load. --- See documentation at top of file for details on using events. --- @param tick --- @param func -function Event.remove_removable_nth_tick_function(tick, func) - if _LIFECYCLE == stage_load then - error('cannot call during on_load', 2) - end - local functions = function_nth_tick_handlers[tick] - - if not functions then - return - end - - local handlers = on_nth_tick_event_handlers[tick] - - remove(functions, func) - remove(handlers, func) - - if #handlers == 0 then - script_on_nth_tick(tick, nil) - end -end - -local function add_handlers() - for event_name, tokens in pairs(token_handlers) do - for i = 1, #tokens do - local handler = Token.get(tokens[i]) - core_add(event_name, handler) - end - end - - for event_name, functions in pairs(function_handlers) do - for i = 1, #functions do - local handler = functions[i] - core_add(event_name, handler) - end - end - - for tick, tokens in pairs(token_nth_tick_handlers) do - for i = 1, #tokens do - local handler = Token.get(tokens[i]) - core_on_nth_tick(tick, handler) - end - end - - for tick, functions in pairs(function_nth_tick_handlers) do - for i = 1, #functions do - local handler = functions[i] - core_on_nth_tick(tick, handler) - end - end - - handlers_added = true -end - -core_on_init(add_handlers) -core_on_load(add_handlers) - return Event diff --git a/exp_legacy/module/utils/event_core.lua b/exp_legacy/module/utils/event_core.lua deleted file mode 100644 index 9525167a..00000000 --- a/exp_legacy/module/utils/event_core.lua +++ /dev/null @@ -1,137 +0,0 @@ --- This module exists to break the circular dependency between event.lua and global.lua. --- It is not expected that any user code would require this module instead event.lua should be required. - -local Public = {} - -local init_event_name = -1 -local load_event_name = -2 - --- map of event_name to handlers[] -local event_handlers = {} --- map of nth_tick to handlers[] -local on_nth_tick_event_handlers = {} - -local trace = debug.traceback -local xpcall = xpcall -local log = log -local script_on_event = script.on_event -local script_on_nth_tick = script.on_nth_tick - -local function handler_error(err) - log('\n\t'..trace(err)) -end - -local function call_handlers(handlers, event) - if _DEBUG then - for i = 1, #handlers do - local handler = handlers[i] - handler(event) - end - else - for i = 1, #handlers do - xpcall(handlers[i], handler_error, event) - end - end -end - -local function on_event(event) - local handlers = event_handlers[event.name] - call_handlers(handlers, event) -end - -local function on_init() - _LIFECYCLE = 5 -- on_init - log('[INFO] Entering on_init') - local handlers = event_handlers[init_event_name] - call_handlers(handlers) - - event_handlers[init_event_name] = nil - event_handlers[load_event_name] = nil - - _LIFECYCLE = 8 -- Runtime - log('[INFO] Entering runtime') -end - -local function on_load() - _LIFECYCLE = 6 -- on_load - log('[INFO] Entering on_load') - local handlers = event_handlers[load_event_name] - call_handlers(handlers) - - event_handlers[init_event_name] = nil - event_handlers[load_event_name] = nil - - _LIFECYCLE = 8 -- Runtime - log('[INFO] Entering runtime') -end - -local function on_nth_tick_event(event) - local handlers = on_nth_tick_event_handlers[event.nth_tick] - call_handlers(handlers, event) -end - ---- Do not use this function, use Event.add instead as it has safety checks. -function Public.add(event_name, handler) - local handlers = event_handlers[event_name] - if not handlers then - event_handlers[event_name] = {handler} - script_on_event(event_name, on_event) - else - table.insert(handlers, handler) - if #handlers == 1 then - script_on_event(event_name, on_event) - end - end -end - ---- Do not use this function, use Event.on_init instead as it has safety checks. -function Public.on_init(handler) - local handlers = event_handlers[init_event_name] - if not handlers then - event_handlers[init_event_name] = {handler} - script.on_init(on_init) - else - table.insert(handlers, handler) - if #handlers == 1 then - script.on_init(on_init) - end - end -end - ---- Do not use this function, use Event.on_load instead as it has safety checks. -function Public.on_load(handler) - local handlers = event_handlers[load_event_name] - if not handlers then - event_handlers[load_event_name] = {handler} - script.on_load(on_load) - else - table.insert(handlers, handler) - if #handlers == 1 then - script.on_load(on_load) - end - end -end - ---- Do not use this function, use Event.on_nth_tick instead as it has safety checks. -function Public.on_nth_tick(tick, handler) - local handlers = on_nth_tick_event_handlers[tick] - if not handlers then - on_nth_tick_event_handlers[tick] = {handler} - script_on_nth_tick(tick, on_nth_tick_event) - else - table.insert(handlers, handler) - if #handlers == 1 then - script_on_nth_tick(tick, on_nth_tick_event) - end - end -end - -function Public.get_event_handlers() - return event_handlers -end - -function Public.get_on_nth_tick_event_handlers() - return on_nth_tick_event_handlers -end - -return Public diff --git a/exp_legacy/module/utils/game.lua b/exp_legacy/module/utils/game.lua index 98903554..c1fec710 100644 --- a/exp_legacy/module/utils/game.lua +++ b/exp_legacy/module/utils/game.lua @@ -1,5 +1,5 @@ -local Color = require 'utils.color_presets' --- @dep utils.color_presets +local Color = require("modules/exp_util/include/color") local Game = {} --[[ Note to readers @@ -38,72 +38,4 @@ function Game.get_player_from_any(obj) end end ---- Prints to player or console. --- @param str table if locale is used --- @param color
defaults to white -function Game.player_print(str, color) - color = color or Color.white - if game.player then - game.player.print(str, color) - else - print(str) - end -end - ---[[ - Creates a floating text entity at a location with the specified color. - Example: "+10 iron" or "-10 coins" - - @param surface LuaSurface - @param position String to display at - @param text String to display - @param color table in {r = 0~1, g = 0~1, b = 0~1}, defaults to white. - - @return the created entity -]] -function Game.print_floating_text(surface, position, text, color) - color = color or Color.white - - return surface.create_entity { - name = 'tutorial-flying-text', - color = color, - text = text, - position = position - } -end - ---[[ - Creates a floating text entity at the player location with the specified color and offset. - Example: "+10 iron" or "-10 coins" - - @param text String to display - @param color table in {r = 0~1, g = 0~1, b = 0~1}, defaults to white. - @param x_offset number the x offset for the floating text - @param y_offset number the y offset for the floating text - - @return the created entity -]] -function Game.print_player_floating_text_position(player, text, color, x_offset, y_offset) - player = Game.get_player_from_any(player) - if not player or not player.valid then - return - end - - local position = player.position - return Game.print_floating_text(player.surface, {x = position.x + x_offset, y = position.y + y_offset}, text, color) -end - ---[[ - Creates a floating text entity at the player location with the specified color in {r, g, b} format. - Example: "+10 iron" or "-10 coins" - - @param text String to display - @param color table in {r = 0~1, g = 0~1, b = 0~1}, defaults to white. - - @return the created entity -]] -function Game.print_player_floating_text(player, text, color) - Game.print_player_floating_text_position(player, text, color, 0, -1.5) -end - return Game \ No newline at end of file diff --git a/exp_legacy/module/utils/global.lua b/exp_legacy/module/utils/global.lua deleted file mode 100644 index 159c3148..00000000 --- a/exp_legacy/module/utils/global.lua +++ /dev/null @@ -1,79 +0,0 @@ -local Event = require 'utils.event_core' --- @dep utils.event_core -local Token = require 'utils.token' --- @dep utils.token - -local Global = {} - -function Global.register(tbl, callback) - if _LIFECYCLE ~= _STAGE.control then - error('can only be called during the control stage', 2) - end - local token = Token.register_global(tbl) - - Event.on_load( - function() - callback(Token.get_global(token)) - end - ) -end - -function Global.register_init(tbl, init_handler, callback) - if _LIFECYCLE ~= _STAGE.control then - error('can only be called during the control stage', 2) - end - local token = Token.register_global(tbl) - - Event.on_init( - function() - init_handler(tbl) - callback(tbl) - end - ) - - Event.on_load( - function() - callback(Token.get_global(token)) - end - ) -end - -if _DEBUG or true then - local concat = table.concat - - local names = {} - Global.names = names - - function Global.register(tbl, callback) - local filepath = debug.getinfo(2, 'S').source:match('^.+/currently%-playing/(.+)$'):sub(1, -5) - local token = Token.register_global(tbl) - - names[token] = concat {token, ' - ', filepath} - - Event.on_load( - function() - callback(Token.get_global(token)) - end - ) - end - - function Global.register_init(tbl, init_handler, callback) - local filepath = debug.getinfo(2, 'S').source:match('^.+/currently%-playing/(.+)$'):sub(1, -5) - local token = Token.register_global(tbl) - - names[token] = concat {token, ' - ', filepath} - - Event.on_init( - function() - init_handler(tbl) - callback(tbl) - end - ) - - Event.on_load( - function() - callback(Token.get_global(token)) - end - ) - end -end - -return Global diff --git a/exp_legacy/module/utils/gui.lua b/exp_legacy/module/utils/gui.lua index c29e0039..1e48be7d 100644 --- a/exp_legacy/module/utils/gui.lua +++ b/exp_legacy/module/utils/gui.lua @@ -1,12 +1,12 @@ -local Global = require 'utils.global' --- @dep utils.global -local Event = require 'utils.event' --- @dep expcore.gui +local Storage = require("modules/exp_util/storage") +local Event = require("modules/exp_legacy/utils/event") --- @dep expcore.gui local mod_gui = require 'mod-gui' --- @dep mod-gui local Gui = {} local data = {} local uid = 0 -Global.register( +Storage.register( data, function(tbl) data = tbl diff --git a/exp_legacy/module/utils/priority_queue.lua b/exp_legacy/module/utils/priority_queue.lua deleted file mode 100644 index bccd2358..00000000 --- a/exp_legacy/module/utils/priority_queue.lua +++ /dev/null @@ -1,74 +0,0 @@ -local PriorityQueue = {} - -function PriorityQueue.new() - return {} -end - -local function default_comp(a, b) - return a < b -end - -local function HeapifyFromEndToStart(queue, comp) - comp = comp or default_comp - local pos = #queue - while pos > 1 do - local parent = bit32.rshift(pos, 1) -- integer division by 2 - if comp(queue[pos], queue[parent]) then - queue[pos], queue[parent] = queue[parent], queue[pos] - pos = parent - else - break - end - end -end - -local function HeapifyFromStartToEnd(queue, comp) - comp = comp or default_comp - local parent = 1 - local smallest = 1 - while true do - local child = parent * 2 - if child > #queue then - break - end - if comp(queue[child], queue[parent]) then - smallest = child - end - child = child + 1 - if child <= #queue and comp(queue[child], queue[smallest]) then - smallest = child - end - - if parent ~= smallest then - queue[parent], queue[smallest] = queue[smallest], queue[parent] - parent = smallest - else - break - end - end -end - -function PriorityQueue.size(queue) - return #queue -end - -function PriorityQueue.push(queue, element, comp) - table.insert(queue, element) - HeapifyFromEndToStart(queue, comp) -end - -function PriorityQueue.pop(queue, comp) - local element = queue[1] - - queue[1] = queue[#queue] - queue[#queue] = nil - HeapifyFromStartToEnd(queue, comp) - - return element -end - -function PriorityQueue.peek(queue) - return queue[1] -end - -return PriorityQueue diff --git a/exp_legacy/module/utils/queue.lua b/exp_legacy/module/utils/queue.lua deleted file mode 100644 index 1907c30b..00000000 --- a/exp_legacy/module/utils/queue.lua +++ /dev/null @@ -1,34 +0,0 @@ -local Queue = {} - -function Queue.new() - local queue = {_head = 0, _tail = 0} - return queue -end - -function Queue.size(queue) - return queue._tail - queue._head -end - -function Queue.push(queue, element) - local index = queue._head - queue[index] = element - queue._head = index - 1 -end - -function Queue.peek(queue) - return queue[queue._tail] -end - -function Queue.pop(queue) - local index = queue._tail - - local element = queue[index] - queue[index] = nil - - if element then - queue._tail = index - 1 - end - return element -end - -return Queue diff --git a/exp_legacy/module/utils/task.lua b/exp_legacy/module/utils/task.lua deleted file mode 100644 index edccfcce..00000000 --- a/exp_legacy/module/utils/task.lua +++ /dev/null @@ -1,115 +0,0 @@ ---- Threading simulation module --- Task.sleep() --- @author Valansch and Grilledham --- github: https://github.com/Refactorio/RedMew --- ======================================================= -- - -local Queue = require 'utils.queue' --- @dep utils.queue -local PriorityQueue = require 'utils.priority_queue' --- @dep utils.priority_queue -local Event = require 'utils.event' --- @dep utils.event -local Token = require 'utils.token' --- @dep utils.token - -local Task = {} - -global.callbacks = global.callbacks or PriorityQueue.new() -global.next_async_callback_time = -1 -global.task_queue = global.task_queue or Queue.new() -global.total_task_weight = 0 -global.task_queue_speed = 1 - -local function comp(a, b) - return a.time < b.time -end - -global.tpt = global.task_queue_speed -local function get_task_per_tick() - if game.tick % 300 == 0 then - local size = global.total_task_weight - global.tpt = math.floor(math.log(size + 1, 10)) * global.task_queue_speed - if global.tpt < 1 then - global.tpt = 1 - end - end - return global.tpt -end - -local function on_tick() - local queue = global.task_queue - for i = 1, get_task_per_tick() do - local task = Queue.peek(queue) - if task ~= nil then - -- result is error if not success else result is a boolean for if the task should stay in the queue. - local success, result = pcall(Token.get(task.func_token), task.params) - if not success then - if _DEBUG then - error(result) - else - log(result) - end - Queue.pop(queue) - global.total_task_weight = global.total_task_weight - task.weight - elseif not result then - Queue.pop(queue) - global.total_task_weight = global.total_task_weight - task.weight - end - end - end - - local callbacks = global.callbacks - local callback = PriorityQueue.peek(callbacks) - while callback ~= nil and game.tick >= callback.time do - local success, result = pcall(Token.get(callback.func_token), callback.params) - if not success then - if _DEBUG then - error(result) - else - log(result) - end - end - PriorityQueue.pop(callbacks, comp) - callback = PriorityQueue.peek(callbacks) - end -end - ---- Allows you to set a timer (in ticks) after which the tokened function will be run with params given as an argument --- Cannot be called before init --- @param ticks --- @param func_token a token for a function store via the token system --- @param params the argument to send to the tokened function -function Task.set_timeout_in_ticks(ticks, func_token, params) - if not game then - error('cannot call when game is not available', 2) - end - local time = game.tick + ticks - local callback = {time = time, func_token = func_token, params = params} - PriorityQueue.push(global.callbacks, callback, comp) -end - ---- Allows you to set a timer (in seconds) after which the tokened function will be run with params given as an argument --- Cannot be called before init --- @param sec --- @param func_token a token for a function store via the token system --- @param params the argument to send to the tokened function -function Task.set_timeout(sec, func_token, params) - if not game then - error('cannot call when game is not available', 2) - end - Task.set_timeout_in_ticks(60 * sec, func_token, params) -end - ---- Queueing allows you to split up heavy tasks which don't need to be completed in the same tick. --- Queued tasks are generally run 1 per tick. If the queue backs up, more tasks will be processed per tick. --- @param func_token a token for a function stored via the token system --- If this function returns `true` it will run again the next tick, delaying other queued tasks (see weight) --- @param params the argument to send to the tokened function --- @param weight (defaults to 1) weight is the number of ticks a task is expected to take. --- Ex. if the task is expected to repeat multiple times (ie. the function returns true and loops several ticks) -function Task.queue_task(func_token, params, weight) - weight = weight or 1 - global.total_task_weight = global.total_task_weight + weight - Queue.push(global.task_queue, {func_token = func_token, params = params, weight = weight}) -end - -Event.add(defines.events.on_tick, on_tick) - -return Task diff --git a/exp_legacy/module/utils/token.lua b/exp_legacy/module/utils/token.lua deleted file mode 100644 index 1f374521..00000000 --- a/exp_legacy/module/utils/token.lua +++ /dev/null @@ -1,69 +0,0 @@ -local Token = {} - -local tokens = {} - -local counter = 0 - ---- Assigns a unique id for the given var. --- This function cannot be called after on_init() or on_load() has run as that is a desync risk. --- Typically this is used to register functions, so the id can be stored in the global table --- instead of the function. This is because closures cannot be safely stored in the global table. --- @param var --- @return number the unique token for the variable. -function Token.register(var) - if _LIFECYCLE == 8 then - error('Calling Token.register after on_init() or on_load() has run is a desync risk.', 2) - end - - counter = counter + 1 - - tokens[counter] = var - - return counter -end - -function Token.get(token_id) - return tokens[token_id] -end - -global.tokens = {} - -function Token.register_global(var) - local c = #global.tokens + 1 - - global.tokens[c] = var - - return c -end - -function Token.get_global(token_id) - return global.tokens[token_id] -end - -function Token.set_global(token_id, var) - global.tokens[token_id] = var -end - -local uid_counter = 0 - -function Token.uid() - if _LIFECYCLE == 8 then - return Token.runtime_uid() - end - - uid_counter = uid_counter + 1 - - return uid_counter -end - -function Token.runtime_uid() - if not global.uid_counter then - global.uid_counter = 0 - end - - global.uid_counter = global.uid_counter + 1 - - return global.uid_counter+uid_counter -end - -return Token diff --git a/exp_legacy/tsconfig.node.json b/exp_legacy/tsconfig.node.json index ce0e013f..bfcdb73d 100644 --- a/exp_legacy/tsconfig.node.json +++ b/exp_legacy/tsconfig.node.json @@ -1,7 +1,7 @@ { - "extends": "../../tsconfig.node.json", + "extends": "../../../tsconfig.node.json", "references": [ - { "path": "../../packages/lib/tsconfig.node.json" }, + { "path": "../../../packages/lib/tsconfig.node.json" }, ], "include": ["./**/*.ts"], "exclude": ["test/*", "./dist/*"], diff --git a/exp_util/module/async.lua b/exp_util/module/async.lua index 2e40d994..e1e83da7 100644 --- a/exp_util/module/async.lua +++ b/exp_util/module/async.lua @@ -12,16 +12,16 @@ end local setAdminAsync = Async.register(setAdmin) setAdminAsync(game.players[1], true) -@usage-- Functions stored in global table +@usage-- Functions stored in storage table -- This can be used to create run time configurable callbacks, although this is not recommended -global.myCallback = Async.register(function() +storage.myCallback = Async.register(function() game.print("I got called!") end) -- The function can be called just like any other function -global.myCallback() +storage.myCallback() -@usage-- Creating singleton tasks (best used with global data) +@usage-- Creating singleton tasks (best used with storage data) -- This allows you to split large tasks across multiple ticks to prevent lag local myTask = Async.register(function(remainingWork) game.print("Working... " .. remainingWork) @@ -68,7 +68,7 @@ fillTableAsync({}, "foo", 10) -- Puts 10 lots of foo into the table ]] local Clustorio = require("modules/clusterio/api") -local ExpUtil = require("modules.exp_util.common") --- @dep exp_util.common +local ExpUtil = require("modules/exp_util/common") local Async = { status = {}, -- Stores the allowed return types from a async function @@ -286,10 +286,10 @@ local function on_tick() end --- On load, check the queue status and update the pressure values -local function on_load() - if global.exp_async_next == nil then return end - async_next = global.exp_async_next - async_queue = global.exp_async_queue +function Async.on_load() + if storage.exp_async_next == nil then return end + async_next = storage.exp_async_next + async_queue = storage.exp_async_queue for _, pending in ipairs(async_next) do local count = Async._queue_pressure[pending.id] if count == nil then @@ -310,17 +310,15 @@ local function on_load() end end ---- On server startup initialise the global data -local function on_server_startup() - if global.exp_async_next == nil then - global.exp_async_next = {} - global.exp_async_queue = {} +--- On server startup initialise the storage data +function Async.on_init() + if storage.exp_async_next == nil then + storage.exp_async_next = {} + storage.exp_async_queue = {} end - on_load() + Async.on_load() end -Async.on_load = on_load -Async.on_init = on_server_startup Async.events[defines.events.on_tick] = on_tick -Async.events[Clustorio.events.on_server_startup] = on_server_startup +Async.events[Clustorio.events.on_server_startup] = Async.on_init return Async diff --git a/exp_util/module/common.lua b/exp_util/module/common.lua index bad942d9..aa7a0856 100644 --- a/exp_util/module/common.lua +++ b/exp_util/module/common.lua @@ -5,8 +5,6 @@ ]] local assert = assert ---local getlocal = debug.getlocal ---local getupvalue = debug.getupvalue local getinfo = debug.getinfo local traceback = debug.traceback local floor = math.floor @@ -14,7 +12,7 @@ local concat = table.concat local Common = { --- A large mapping of colour rgb values by their common name - color = require 'modules.exp_util.include.color' + color = require("modules/exp_util/include/color") } --- Raise an error if we are not in runtime @@ -35,40 +33,50 @@ function Common.assert_not_closure(func) end end]] +--- Check the type of a value, also considers LuaObject.object_name and metatable.__class +--- Returns true when the check failed and an error should be raised +local function check_type(value, type_name) + local value_type = type(value) --[[@as string]] + if value_type == "userdata" then + if type_name == "userdata" then + return false, value_type + end + value_type = value.object_name + elseif value_type == "table" then + if type_name == "table" then + return false, value_type + end + local mt = getmetatable(value) + if mt and mt.__class then + value_type = mt.__class + end + end + return value == nil or value_type ~= type_name, value_type +end + local assert_type_fmt = "%s expected to be of type %s but got %s" --- Raise an error if the type of a value is not as expected -- @param value The value to assert the type of -- @tparam string type_name The name of the type that value is expected to be -- @tparam[opt=Value] string value_name The name of the value being tested, this is included in the error message function Common.assert_type(value, type_name, value_name) - if value == nil or type(value) ~= type_name then - error(assert_type_fmt:format(value_name or "Value", type_name, type(value)), 2) + local failed, actual_type = check_type(value, type_name) + if failed then + error(assert_type_fmt:format(value_name or "Value", type_name, actual_type), 2) end end local assert_argument_fmt = "Bad argument #%d to %s; %s expected to be of type %s but got %s" ---[[--- Raise an error if the type of any argument is not as expected, can be costly, for frequent callers see assert_argument_type --- @tparam string ... The type for each argument of the calling function -function Common.assert_argument_types(...) - local arg_types = {...} - local info = getinfo(2, "nu") - for arg_index = 1, info.nparams do - local arg_name, arg_value = getlocal(2, arg_index) - if arg_types[arg_index] and (arg_value == nil or type(arg_value) ~= arg_types[arg_index]) then - error(assert_argument_fmt:format(arg_index, info.name or "", arg_name, arg_types[arg_index]), 2) - end - end -end]] - --- Raise an error if the type of any argument is not as expected, more performant than assert_argument_types, but requires more manual input -- @param arg_value The argument to assert the type of -- @tparam string type_name The name of the type that value is expected to be -- @tparam number arg_index The index of the argument being tested, this is included in the error message -- @tparam[opt=Argument] string arg_name The name of the argument being tested, this is included in the error message function Common.assert_argument_type(arg_value, type_name, arg_index, arg_name) - if arg_value == nil or type(arg_value) ~= type_name then + local failed, actual_type = check_type(arg_value, type_name) + if failed then local func_name = getinfo(2, "n").name or "" - error(assert_argument_fmt:format(arg_index, func_name, arg_name or "Argument", type_name), 2) + error(assert_argument_fmt:format(arg_index, func_name, arg_name or "Argument", type_name, actual_type), 2) end end @@ -110,14 +118,14 @@ end -- @treturn string The relative filepath of the given stack frame function Common.safe_file_path(level) level = level or 1 - return getinfo(level+1, 'S').source:match('^.+/currently%-playing/(.+)$'):sub(1, -5) + return getinfo(level+1, 'S').short_src:sub(10, -5) end --- Returns the name of your module, this assumes your module is stored within /modules (which it is for clustorio) -- @tparam[opt=1] number level The level of the stack to get the module of, a value of 1 is the caller of this function -- @treturn string The name of the module at the given stack frame function Common.get_module_name(level) - local file_within_module = getinfo((level or 1)+1, 'S').source:match('^.+/currently%-playing/modules/(.+)$'):sub(1, -5) + local file_within_module = getinfo((level or 1)+1, 'S').short_src:sub(18, -5) local next_slash = file_within_module:find("/") if next_slash then return file_within_module:sub(1, next_slash-1) @@ -132,8 +140,8 @@ end -- @treturn string The name of the function at the given stack frame or provided as an argument function Common.get_function_name(func, raw) local debug_info = getinfo(func, "Sn") - local safe_source = debug_info.source:match('^.+/currently%-playing/(.+)$') - local file_name = safe_source and safe_source:sub(1, -5) or debug_info.source + local safe_source = debug_info.source:find('__level__') + local file_name = safe_source == 1 and debug_info.short_src:sub(10, -5) or debug_info.source local func_name = debug_info.name or debug_info.linedefined if raw then return file_name .. ":" .. func_name end return "<" .. file_name .. ":" .. func_name .. ">" diff --git a/exp_util/module/floating_text.lua b/exp_util/module/floating_text.lua index a73b9a42..175609ab 100644 --- a/exp_util/module/floating_text.lua +++ b/exp_util/module/floating_text.lua @@ -25,7 +25,7 @@ end ]] local FloatingText = {} -FloatingText.color = require("modules.exp_util.include.color") +FloatingText.color = require("modules/exp_util/include/color") --- Print Messages. -- Short lived messages that last at most a few seconds @@ -177,4 +177,4 @@ function FloatingText.create_tag_as_player(player, text, alt_mode) } end -return FloatingText \ No newline at end of file +return FloatingText diff --git a/exp_util/module/include/require.lua b/exp_util/module/include/require.lua index 4032b12f..4b733e3c 100644 --- a/exp_util/module/include/require.lua +++ b/exp_util/module/include/require.lua @@ -1,6 +1,6 @@ --luacheck:ignore global require -local package = require 'modules.exp_util.include.package' +local package = require("modules/exp_util/include/package") local loaded = package.loaded local _require = require diff --git a/exp_util/module/module.json b/exp_util/module/module.json index d0ee65a6..0e397b4a 100644 --- a/exp_util/module/module.json +++ b/exp_util/module/module.json @@ -3,7 +3,7 @@ "load": [ "include/package.lua", "include/require.lua", - "global.lua", + "storage.lua", "async.lua" ], "require": [ diff --git a/exp_util/module/global.lua b/exp_util/module/storage.lua similarity index 50% rename from exp_util/module/global.lua rename to exp_util/module/storage.lua index 05c2084a..6f28cf9e 100644 --- a/exp_util/module/global.lua +++ b/exp_util/module/storage.lua @@ -1,31 +1,31 @@ ---[[-- Util Module - Global -- Provides a method of using global with the guarantee that keys will not conflict -@core Global -@alias Global +--[[-- Util Module - Storage +- Provides a method of using storage with the guarantee that keys will not conflict +@core Storage +@alias Storage @usage--- Drop in boiler plate: --- Below is a drop in boiler plate which ensures your global access will not conflict with other modules -local global = {} -Global.register(global, function(tbl) - global = tbl +-- Below is a drop in boiler plate which ensures your storage access will not conflict with other modules +local storage = {} +Storage.register(storage, function(tbl) + storage = tbl end) -@usage--- Registering new global tables: +@usage--- Registering new storage tables: -- The boiler plate above is not recommend because it is not descriptive in its function --- Best practice is to list out all variables you are storing in global and their function +-- Best practice is to list out all variables you are storing in storage and their function local MyModule = { public_data = {} -- Stores data which other modules can access } local private_data = {} -- Stores data which other modules cant access local more_private_data = {} -- Stores more data which other modules cant access --- You can not store a whole module in global because not all data types are serialisable -Global.register({ +-- You can not store a whole module in storage because not all data types are serialisable +Storage.register({ MyModule.public_data, private_data, more_private_data }, function(tbl) - -- You can also use this callback to set metatable on class instances you have stored in global + -- You can also use this callback to set metatable on class instances you have stored in storage MyModule.public_data = tbl[1] private_data = tbl[2] more_private_data = tbl[3] @@ -34,26 +34,26 @@ end) ]] local Clustorio = require("modules/clusterio/api") -local ExpUtil = require("modules.exp_util.common") +local ExpUtil = require("modules/exp_util/common") -local Global = { +local Storage = { registered = {}, -- Map of all registered values and their initial values } ---- Register a new table to be stored in global, can only be called once per file, can not be called during runtime +--- Register a new table to be stored in storage, can only be called once per file, can not be called during runtime -- @tparam table tbl The initial value for the table you are registering, this should be a local variable -- @tparam function callback The callback used to replace local references and metatables -function Global.register(tbl, callback) +function Storage.register(tbl, callback) ExpUtil.assert_not_runtime() ExpUtil.assert_argument_type(tbl, "table", 1, "tbl") ExpUtil.assert_argument_type(callback, "function", 2, "callback") local name = ExpUtil.safe_file_path(2) - if Global.registered[name] then - error("Global.register can only be called once per file", 2) + if Storage.registered[name] then + error("Storage.register can only be called once per file", 2) end - Global.registered[name] = { + Storage.registered[name] = { init = tbl, callback = callback } @@ -61,41 +61,40 @@ end --- Register a metatable which will be automatically restored during on_load -- @tparam string name The name of the metatable to register, must be unique within your module -function Global.register_metatable(name, tbl) +function Storage.register_metatable(name, tbl) local module_name = ExpUtil.get_module_name(2) script.register_metatable(module_name.."."..name, tbl) end --- Restore aliases on load, we do not need to initialise data during this event -function Global.on_load() - local globals = global.exp_global - if globals == nil then return end - for name, data in pairs(Global.registered) do - if globals[name] ~= nil then - data.callback(globals[name]) +function Storage.on_load() + local exp_storage = storage.exp_storage + if exp_storage == nil then return end + for name, info in pairs(Storage.registered) do + if exp_storage[name] ~= nil then + info.callback(exp_storage[name]) end end end --- Event Handler, sets initial values if needed and calls all callbacks -local function on_server_startup() - local globals = global.exp_global - if globals == nil then - globals = {} - global.exp_global = globals +function Storage.on_init() + local exp_storage = storage.exp_storage + if exp_storage == nil then + exp_storage = {} + storage.exp_storage = exp_storage end - for name, data in pairs(Global.registered) do - if globals[name] == nil then - globals[name] = data.init + for name, info in pairs(Storage.registered) do + if exp_storage[name] == nil then + exp_storage[name] = info.init end - data.callback(globals[name]) + info.callback(exp_storage[name]) end end -Global.on_init = on_server_startup -Global.events = { - [Clustorio.events.on_server_startup] = on_server_startup +Storage.events = { + [Clustorio.events.on_server_startup] = Storage.on_init } -return Global +return Storage