@expcluster/legacy 7.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (108) hide show
  1. package/LICENSE.md +21 -0
  2. package/dist/browser/package.json +40 -0
  3. package/dist/browser/tsconfig.browser.tsbuildinfo +1 -0
  4. package/dist/browser/web/index.d.ts +1 -0
  5. package/dist/browser/web/index.d.ts.map +1 -0
  6. package/dist/browser/web/index.js +2 -0
  7. package/dist/browser/web/index.js.map +1 -0
  8. package/dist/node/index.d.ts +3 -0
  9. package/dist/node/index.d.ts.map +1 -0
  10. package/dist/node/index.js +10 -0
  11. package/dist/node/index.js.map +1 -0
  12. package/dist/node/instance.d.ts +4 -0
  13. package/dist/node/instance.d.ts.map +1 -0
  14. package/dist/node/instance.js +8 -0
  15. package/dist/node/instance.js.map +1 -0
  16. package/dist/node/tsconfig.node.tsbuildinfo +1 -0
  17. package/dist/web/manifest.json +7 -0
  18. package/dist/web/static/exp_legacy.9b6538559ed5e689539c.js +355 -0
  19. package/dist/web/static/index_ts.8f9d451c8d3f7f293da6.js +22 -0
  20. package/dist/web/static/main.94e1b48804112ca8bdfc.js +118 -0
  21. package/dist/web/static/package_json.a83729efdb0697b12396.js +22 -0
  22. package/dist/web/static/web_index_tsx.e5a01ac0e4b0a6f6517f.js +21 -0
  23. package/index.ts +8 -0
  24. package/instance.ts +7 -0
  25. package/module/config/_file_loader.lua +29 -0
  26. package/module/config/advanced_start.lua +112 -0
  27. package/module/config/afk_kick.lua +14 -0
  28. package/module/config/bonus.lua +105 -0
  29. package/module/config/chat_reply.lua +136 -0
  30. package/module/config/compilatron.lua +25 -0
  31. package/module/config/death_logger.lua +15 -0
  32. package/module/config/deconlog.lua +11 -0
  33. package/module/config/discord_alerts.lua +25 -0
  34. package/module/config/expcore/permission_groups.lua +143 -0
  35. package/module/config/graftorio.lua +7 -0
  36. package/module/config/gui/autofill.lua +129 -0
  37. package/module/config/gui/player_list_actions.lua +201 -0
  38. package/module/config/gui/rockets.lua +47 -0
  39. package/module/config/gui/science.lua +21 -0
  40. package/module/config/gui/tasks.lua +13 -0
  41. package/module/config/gui/warps.lua +52 -0
  42. package/module/config/inventory_clear.lua +9 -0
  43. package/module/config/join_messages.lua +8 -0
  44. package/module/config/lawnmower.lua +6 -0
  45. package/module/config/logging.lua +30 -0
  46. package/module/config/miner.lua +8 -0
  47. package/module/config/module.lua +86 -0
  48. package/module/config/nukeprotect.lua +30 -0
  49. package/module/config/pollution_grading.lua +9 -0
  50. package/module/config/popup_messages.lua +10 -0
  51. package/module/config/preset_player_colours.lua +33 -0
  52. package/module/config/preset_player_quickbar.lua +6 -0
  53. package/module/config/protection.lua +17 -0
  54. package/module/config/repair.lua +8 -0
  55. package/module/config/research.lua +179 -0
  56. package/module/config/scorched_earth.lua +116 -0
  57. package/module/config/spawn_area.lua +255 -0
  58. package/module/config/station_auto_name.lua +11 -0
  59. package/module/config/statistics.lua +46 -0
  60. package/module/config/vlayer.lua +180 -0
  61. package/module/config/warnings.lua +38 -0
  62. package/module/control.lua +46 -0
  63. package/module/expcore/datastore.lua +884 -0
  64. package/module/expcore/external.lua +146 -0
  65. package/module/expcore/permission_groups.lua +355 -0
  66. package/module/expcore/player_data.lua +152 -0
  67. package/module/locale/en/addons.cfg +31 -0
  68. package/module/locale/en/data.cfg +114 -0
  69. package/module/locale/en/expcore.cfg +16 -0
  70. package/module/locale/en/gui.cfg +114 -0
  71. package/module/locale/zh-CN/addons.cfg +31 -0
  72. package/module/locale/zh-CN/data.cfg +114 -0
  73. package/module/locale/zh-CN/expcore.cfg +16 -0
  74. package/module/locale/zh-CN/gui.cfg +122 -0
  75. package/module/locale/zh-TW/addons.cfg +31 -0
  76. package/module/locale/zh-TW/data.cfg +114 -0
  77. package/module/locale/zh-TW/expcore.cfg +16 -0
  78. package/module/locale/zh-TW/gui.cfg +122 -0
  79. package/module/module.json +14 -0
  80. package/module/module_exports.lua +3 -0
  81. package/module/modules/control/jail.lua +119 -0
  82. package/module/modules/control/protection.lua +204 -0
  83. package/module/modules/control/reports.lua +225 -0
  84. package/module/modules/control/spectate.lua +173 -0
  85. package/module/modules/control/vlayer.lua +807 -0
  86. package/module/modules/control/warnings.lua +331 -0
  87. package/module/modules/control/warps.lua +488 -0
  88. package/module/modules/data/alt-view.lua +26 -0
  89. package/module/modules/data/greetings.lua +45 -0
  90. package/module/modules/data/language.lua +21 -0
  91. package/module/modules/data/player-colours.lua +63 -0
  92. package/module/modules/data/quickbar.lua +72 -0
  93. package/module/modules/data/statistics.lua +181 -0
  94. package/module/modules/data/tag.lua +82 -0
  95. package/module/modules/data/toolbar.lua +31 -0
  96. package/module/modules/graftorio/forcestats.lua +196 -0
  97. package/module/modules/graftorio/general.lua +63 -0
  98. package/module/modules/graftorio/require.lua +28 -0
  99. package/module/modules/graftorio/statics.lua +36 -0
  100. package/module/modules/gui/vlayer.lua +547 -0
  101. package/module/modules/gui/warp-list.lua +909 -0
  102. package/module/utils/event.lua +86 -0
  103. package/package.json +38 -0
  104. package/tsconfig.browser.json +4 -0
  105. package/tsconfig.json +7 -0
  106. package/tsconfig.node.json +5 -0
  107. package/web/index.tsx +0 -0
  108. package/webpack.config.js +29 -0
@@ -0,0 +1,129 @@
1
+ --- This file contains all the different settings for the autofill system and gui
2
+ -- @config Autofill
3
+
4
+ local config = {
5
+ -- General config
6
+ icon = "item/piercing-rounds-magazine", -- @setting icon that will be used for the toolbar
7
+ categories = {
8
+ ammo = "ammo",
9
+ fuel = "fuel",
10
+ shell = "shell",
11
+ },
12
+ entities = {
13
+ car = "car",
14
+ tank = "tank",
15
+ spidertron = "spidertron",
16
+ locomotive = "locomotive",
17
+ gun_turret = "gun-turret",
18
+ burner_mining_drill = "burner-mining-drill",
19
+ stone_furnace = "stone-furnace",
20
+ steel_furnace = "steel-furnace",
21
+ },
22
+ default_entities = {},
23
+ }
24
+
25
+ local default_categories = {
26
+ {
27
+ category = config.categories.ammo,
28
+ entity = { config.entities.car, config.entities.tank, config.entities.gun_turret },
29
+ inv = { defines.inventory.car_ammo, defines.inventory.turret_ammo },
30
+ items = {
31
+ { name = "uranium-rounds-magazine", amount = 10, enabled = false },
32
+ { name = "piercing-rounds-magazine", amount = 10, enabled = false },
33
+ { name = "firearm-magazine", amount = 10, enabled = false },
34
+ },
35
+ },
36
+ {
37
+ category = config.categories.ammo,
38
+ entity = { config.entities.tank },
39
+ inv = { defines.inventory.car_ammo },
40
+ items = {
41
+ { name = "flamethrower-ammo", amount = 10, enabled = false },
42
+ },
43
+ },
44
+ {
45
+ category = config.categories.shell,
46
+ entity = { config.entities.tank },
47
+ inv = { defines.inventory.car_ammo },
48
+ items = {
49
+ { name = "cannon-shell", amount = 10, enabled = false },
50
+ { name = "explosive-cannon-shell", amount = 10, enabled = false },
51
+ { name = "uranium-cannon-shell", amount = 10, enabled = false },
52
+ { name = "explosive-uranium-cannon-shell", amount = 10, enabled = false },
53
+ },
54
+ },
55
+ {
56
+ category = config.categories.ammo,
57
+ entity = { config.entities.spidertron },
58
+ inv = { defines.inventory.car_ammo },
59
+ items = {
60
+ { name = "rocket", amount = 10, enabled = false },
61
+ { name = "explosive-rocket", amount = 10, enabled = false },
62
+ { name = "atomic-bomb", amount = 10, enabled = false },
63
+ },
64
+ },
65
+ {
66
+ category = config.categories.fuel,
67
+ entity = { config.entities.car, config.entities.tank, config.entities.locomotive, config.entities.burner_mining_drill, config.entities.stone_furnace, config.entities.steel_furnace },
68
+ inv = { defines.inventory.fuel },
69
+ items = {
70
+ { name = "nuclear-fuel", amount = 10, enabled = false },
71
+ { name = "rocket-fuel", amount = 10, enabled = false },
72
+ { name = "solid-fuel", amount = 10, enabled = false },
73
+ { name = "coal", amount = 10, enabled = false },
74
+ },
75
+ },
76
+ }
77
+
78
+ local function get_items_by_inv(entity, inv)
79
+ local items = entity.items
80
+ for _, category in pairs(default_categories) do
81
+ if table.contains(category.entity, entity.entity) then
82
+ if table.contains(category.inv, inv) then
83
+ for _, item in pairs(category.items) do
84
+ items[item.name] = {
85
+ entity = entity.entity,
86
+ category = category.category,
87
+ inv = inv,
88
+ name = item.name,
89
+ amount = item.amount,
90
+ enabled = item.enabled,
91
+ }
92
+ end
93
+ end
94
+ end
95
+ end
96
+
97
+ return items
98
+ end
99
+
100
+ local function generate_default_setting(entity_name, inv, enabled)
101
+ if not config.default_entities[entity_name] then
102
+ config.default_entities[entity_name] = {
103
+ entity = entity_name,
104
+ enabled = enabled,
105
+ items = {},
106
+ }
107
+ end
108
+ get_items_by_inv(config.default_entities[entity_name], inv)
109
+ end
110
+
111
+ generate_default_setting(config.entities.car, defines.inventory.fuel, true)
112
+ generate_default_setting(config.entities.car, defines.inventory.car_ammo, true)
113
+
114
+ generate_default_setting(config.entities.locomotive, defines.inventory.fuel, true)
115
+
116
+ generate_default_setting(config.entities.tank, defines.inventory.fuel, true)
117
+ generate_default_setting(config.entities.tank, defines.inventory.car_ammo, true)
118
+
119
+ generate_default_setting(config.entities.spidertron, defines.inventory.car_ammo, true)
120
+
121
+ generate_default_setting(config.entities.gun_turret, defines.inventory.turret_ammo, true)
122
+
123
+ generate_default_setting(config.entities.burner_mining_drill, defines.inventory.fuel, true)
124
+
125
+ generate_default_setting(config.entities.stone_furnace, defines.inventory.fuel, true)
126
+
127
+ generate_default_setting(config.entities.steel_furnace, defines.inventory.fuel, true)
128
+
129
+ return config
@@ -0,0 +1,201 @@
1
+ --- Config for the different action buttons that show on the player list;
2
+ -- each button has the button define(s) given along side an auth function, and optional reason callback;
3
+ -- if a reason callback is used then Store.set(action_name_store,player.name,'BUTTON_NAME') should be called during on_click;
4
+ -- buttons can be removed from the gui by commenting them out of the config at the bottom of this file;
5
+ -- the key used for the name of the button is the permission name used by the role system;
6
+ -- @config Player-List
7
+
8
+ local ExpUtil = require("modules/exp_util")
9
+ local Gui = require("modules/exp_gui")
10
+ local Roles = require("modules/exp_roles")
11
+ local Reports = require("modules.exp_legacy.modules.control.reports") --- @dep modules.control.reports
12
+ local Warnings = require("modules.exp_legacy.modules.control.warnings") --- @dep modules.control.warnings
13
+ local Jail = require("modules.exp_legacy.modules.control.jail") --- @dep modules.control.jail
14
+ local Colors = require("modules/exp_util/include/color")
15
+ local format_player_name = ExpUtil.format_player_name_locale
16
+
17
+ --- Accessors injected by the gui so the actions can read the selected player and set the selected action
18
+ local get_selected_player --- @type fun(player: LuaPlayer): LuaPlayer
19
+ local set_selected_action --- @type fun(player: LuaPlayer, action: string?)
20
+ local function set_accessors(player_getter, action_setter)
21
+ get_selected_player, set_selected_action = player_getter, action_setter
22
+ end
23
+
24
+ -- gets the action player and a coloured name for the action to be used on
25
+ local function get_action_player(player)
26
+ local selected_player = get_selected_player(player) --[[@as LuaPlayer]]
27
+ local selected_player_color = format_player_name(selected_player)
28
+ return selected_player, selected_player_color
29
+ end
30
+
31
+ -- teleports one player to another
32
+ local function teleport(from_player, to_player)
33
+ local surface = to_player.physical_surface
34
+ local position = surface.find_non_colliding_position("character", to_player.physical_position, 32, 1)
35
+ if not position then return false end -- return false if no new position
36
+ if from_player.driving then from_player.driving = false end -- kicks a player out a vehicle if in one
37
+ from_player.teleport(position, surface)
38
+ return true
39
+ end
40
+
41
+ local function new_button(sprite, tooltip)
42
+ return Gui.define(tooltip[1])
43
+ :draw{
44
+ type = "sprite-button",
45
+ style = "tool_button",
46
+ sprite = sprite,
47
+ tooltip = tooltip,
48
+ }
49
+ :style{
50
+ padding = -1,
51
+ height = 28,
52
+ width = 28,
53
+ }
54
+ end
55
+
56
+ --- Teleports the user to the action player
57
+ -- @element goto_player
58
+ local goto_player = new_button("utility/export", { "exp-gui_player-list.goto-player" })
59
+ :on_click(function(def, player, element)
60
+ local selected_player = get_action_player(player)
61
+ if not player.character or not selected_player.character then
62
+ player.print({ "exp-commands-parse.player-alive" }, Colors.orange_red)
63
+ else
64
+ teleport(player, selected_player)
65
+ end
66
+ end)
67
+
68
+ --- Teleports the action player to the user
69
+ -- @element bring_player
70
+ local bring_player = new_button("utility/import", { "exp-gui_player-list.bring-player" })
71
+ :on_click(function(def, player, element)
72
+ local selected_player = get_action_player(player)
73
+ if not player.character or not selected_player.character then
74
+ player.print({ "exp-commands-parse.player-alive" }, Colors.orange_red)
75
+ else
76
+ teleport(selected_player, player)
77
+ end
78
+ end)
79
+
80
+ --- Reports the action player, requires a reason to be given
81
+ -- @element report_player
82
+ local report_player = new_button("utility/spawn_flag", { "exp-gui_player-list.report-player" })
83
+ :on_click(function(def, player, element)
84
+ local selected_player = get_action_player(player)
85
+ if Reports.is_reported(selected_player.name, player.name) then
86
+ player.print({ "exp-commands_report.already-reported" }, Colors.orange_red)
87
+ else
88
+ set_selected_action(player, "exp_scenario.command.create_report")
89
+ end
90
+ end)
91
+
92
+ local function report_player_callback(player, reason)
93
+ local selected_player, selected_player_color = get_action_player(player)
94
+ local by_player_name_color = format_player_name(player)
95
+ game.print{ "exp-commands_reports.response", selected_player_color, reason }
96
+ local trainee = Roles.get_role_by_name("Trainee")
97
+ for _, role in ipairs(trainee and Roles.get_higher_roles(trainee) or {}) do
98
+ role:print{ "exp-commands_reports.response-admin", selected_player_color, by_player_name_color, reason }
99
+ end
100
+ Reports.report_player(selected_player.name, player.name, reason)
101
+ end
102
+
103
+ --- Gives the action player a warning, requires a reason
104
+ -- @element warn_player
105
+ local warn_player = new_button("utility/spawn_flag", { "exp-gui_player-list.warn-player" })
106
+ :on_click(function(def, player, element)
107
+ set_selected_action(player, "exp_scenario.command.create_warning")
108
+ end)
109
+
110
+ local function warn_player_callback(player, reason)
111
+ local selected_player, selected_player_color = get_action_player(player)
112
+ local by_player_name_color = format_player_name(player)
113
+ game.print{ "exp-commands_warnings.create", selected_player_color, by_player_name_color, reason }
114
+ Warnings.add_warning(selected_player.name, player.name, reason)
115
+ end
116
+
117
+ --- Jails the action player, requires a reason
118
+ -- @element jail_player
119
+ local jail_player = new_button("utility/multiplayer_waiting_icon", { "exp-gui_player-list.jail-player" })
120
+ :on_click(function(def, player, element)
121
+ local selected_player, selected_player_color = get_action_player(player)
122
+ if Jail.is_jailed(selected_player.name) then
123
+ player.print({ "exp-commands_jail.already-jailed", selected_player_color }, Colors.orange_red)
124
+ else
125
+ set_selected_action(player, "exp_scenario.command.jail")
126
+ end
127
+ end)
128
+
129
+ local function jail_player_callback(player, reason)
130
+ local selected_player, selected_player_color = get_action_player(player)
131
+ local by_player_name_color = format_player_name(player)
132
+ game.print{ "exp-commands_jail.jailed", selected_player_color, by_player_name_color, reason }
133
+ Jail.jail_player(selected_player.name, player.name, reason)
134
+ end
135
+
136
+ --- Kicks the action player, requires a reason
137
+ -- @element kick_player
138
+ local kick_player = new_button("utility/warning_icon", { "exp-gui_player-list.kick-player" })
139
+ :on_click(function(def, player, element)
140
+ set_selected_action(player, "exp_scenario.gui.player_list.kick")
141
+ end)
142
+
143
+ local function kick_player_callback(player, reason)
144
+ local selected_player = get_action_player(player)
145
+ game.kick_player(selected_player, reason)
146
+ end
147
+
148
+ --- Bans the action player, requires a reason
149
+ -- @element ban_player
150
+ local ban_player = new_button("utility/danger_icon", { "exp-gui_player-list.ban-player" })
151
+ :on_click(function(def, player, element)
152
+ set_selected_action(player, "exp_scenario.gui.player_list.ban")
153
+ end)
154
+
155
+ local function ban_player_callback(player, reason)
156
+ local selected_player = get_action_player(player)
157
+ game.ban_player(selected_player, reason)
158
+ end
159
+
160
+ return {
161
+ set_accessors = set_accessors,
162
+ buttons = {
163
+ ["exp_scenario.command.teleport"] = {
164
+ auth = function(player, selected_player)
165
+ return player.name ~= selected_player.name
166
+ end, -- cant teleport to your self
167
+ goto_player,
168
+ bring_player,
169
+ },
170
+ ["exp_scenario.command.create_report"] = {
171
+ auth = function(player, selected_player)
172
+ if player == selected_player then return false end
173
+ if not Roles.player_has_permission(player, "exp_scenario.command.create_warning") then
174
+ return not Roles.player_has_permission(selected_player, "exp_scenario.bypass.reports")
175
+ end
176
+ end, -- can report any player that isn't immune and you aren't able to give warnings
177
+ reason_callback = report_player_callback,
178
+ report_player,
179
+ },
180
+ ["exp_scenario.command.create_warning"] = {
181
+ auth = Roles.player_outranks, -- warn a lower user, replaces report
182
+ reason_callback = warn_player_callback,
183
+ warn_player,
184
+ },
185
+ ["exp_scenario.command.jail"] = {
186
+ auth = Roles.player_outranks,
187
+ reason_callback = jail_player_callback,
188
+ jail_player,
189
+ },
190
+ ["exp_scenario.gui.player_list.kick"] = {
191
+ auth = Roles.player_outranks,
192
+ reason_callback = kick_player_callback,
193
+ kick_player,
194
+ },
195
+ ["exp_scenario.gui.player_list.ban"] = {
196
+ auth = Roles.player_outranks,
197
+ reason_callback = ban_player_callback,
198
+ ban_player,
199
+ },
200
+ },
201
+ }
@@ -0,0 +1,47 @@
1
+ --- This file controls what will show in each section of the rocket info gui
2
+ -- @config Rockets
3
+
4
+ return {
5
+ stats = { --- @setting stats The data that will show in the stats section
6
+ show_stats = true, --- @setting show_stats false will hide this section all together
7
+ show_first_rocket = true, --- @setting show_first_rocket false will not show when the first rocket was launched
8
+ show_last_rocket = true, --- @setting show_last_rocket false will not show when the last rocket was launched
9
+ show_fastest_rocket = true, --- @setting show_fastest_rocket false will not show the time taken for the fastest rocket
10
+ show_total_rockets = true, --- @setting show_total_rockets false will not show the total number of rockets launched
11
+ show_game_avg = true, --- @setting show_game_avg false will hide the avg across the entire map time
12
+ rolling_avg = { --- @setting rolling_avg each number will be one statistic; 5 means the avg time taken for the last 5 rockets
13
+ 5, 10, 25,
14
+ },
15
+ },
16
+ milestones = { --- @setting milestones each number will be one statistic; 5 means the time that the 5th rocket was launched
17
+ show_milestones = true, --- @setting show_milestones false will hide this section all together
18
+ 1,
19
+ 2,
20
+ 5,
21
+ 10,
22
+ 20,
23
+ 50,
24
+ 100,
25
+ 200,
26
+ 500,
27
+ 1000,
28
+ 1500,
29
+ 2000,
30
+ 2500,
31
+ 3000,
32
+ 3500,
33
+ 4000,
34
+ 4500,
35
+ 5000,
36
+ },
37
+ progress = { --- @setting progress The data and buttons in the build progress section
38
+ show_progress = true, --- @setting show_progress false will hide this section altogether
39
+ allow_zoom_to_map = true, --- @setting allow_zoom_to_map false will disable the zoom to map feature
40
+ allow_remote_launch = true, --- @setting allow_remote_launch false removes the remote launch button for all players
41
+ remote_launch_admins_only = false, --- @setting remote_launch_admins_only true will remove the remote launch button for all non (game) admins
42
+ remote_launch_role_permission = "exp_scenario.gui.rocket_info.remote_launch", --- @setting remote_launch_role_permission value used by custom permission system to allow or disallow the button
43
+ allow_toggle_active = true, --- @setting allow_toggle_active false removes the remote toggle auto launch button for all players
44
+ toggle_active_admins_only = false, --- @setting toggle_active_admins_only true will remove the toggle auto launch button for all non (game) admins
45
+ toggle_active_role_permission = "exp_scenario.gui.rocket_info.toggle_active", --- @setting toggle_active_role_permission value used by custom permission system to allow or disallow the button
46
+ },
47
+ }
@@ -0,0 +1,21 @@
1
+ --- Config file for the science info gui
2
+ -- @config Science
3
+
4
+ return {
5
+ -- list of all science packs to be shown in the gui
6
+ show_eta = true, --- @setting show_eta when true the eta for research completion will be shown
7
+ color_cutoff = 0.8, --- @setting color_cutoff the amount that production can fall before the text changes color
8
+ color_flux = 0.1, --- @setting color_flux the amount of fluctuation allowed in production before the icon changes color
9
+ "automation-science-pack",
10
+ "logistic-science-pack",
11
+ "military-science-pack",
12
+ "chemical-science-pack",
13
+ "production-science-pack",
14
+ "utility-science-pack",
15
+ "space-science-pack",
16
+ "metallurgic-science-pack",
17
+ "agricultural-science-pack",
18
+ "electromagnetic-science-pack",
19
+ "cryogenic-science-pack",
20
+ "promethium-science-pack",
21
+ }
@@ -0,0 +1,13 @@
1
+ --- Config file for the tasks gui
2
+ -- @config Tasks
3
+
4
+ return {
5
+ -- Adding tasks
6
+ allow_add_task = "all", --- @setting allow_add_task dictates who is allowed to add new tasks; values: all, admin, exp_roles, none
7
+ exp_roles_allow_add_task = "exp_scenario.gui.task_list.add", --- @setting exp_roles_allow_add_task if exp_roles is used then this is the required permission
8
+
9
+ -- Editing tasks
10
+ allow_edit_task = "exp_roles", --- @setting allow_edit_task dictates who is allowed to edit existing tasks; values: all, admin, exp_roles, none
11
+ exp_roles_allow_edit_task = "exp_scenario.gui.task_list.edit", --- @setting exp_roles_allow_edit_task if exp_roles is used then this is the required permission
12
+ user_can_edit_own_tasks = true, --- @settings if true then the user who made the task can edit it regardless of the allow_edit_task setting
13
+ }
@@ -0,0 +1,52 @@
1
+ --- This file contains all the different settings for the warp system and gui
2
+ -- @config Warps
3
+
4
+ return {
5
+ -- General config
6
+ update_smoothing = 10, --- @setting update_smoothing the amount of smoothing applied to updates to the cooldown timer, higher is better, max is 60
7
+ minimum_distance = 100, --- @setting minimum_distance the minimum distance that is allowed between warps on the same force
8
+ default_icon = { type = "item", name = "discharge-defense-equipment" }, --- @setting default_icon the default icon that will be used for warps
9
+
10
+ -- Warp cooldowns
11
+ bypass_warp_cooldown = "exp_roles", --- @setting bypass_warp_cooldown dictates who the warp cooldown is applied to; values: all, admin, exp_roles, none
12
+ exp_roles_bypass_warp_cooldown = "exp_scenario.gui.warp_list.bypass_cooldown", --- @setting exp_roles_bypass_warp_cooldown if exp_roles is used then this is the required permission
13
+ cooldown_duration = 60, --- @setting cooldown_duration the duration of the warp cooldown in seconds
14
+
15
+ -- Warp proximity
16
+ bypass_warp_proximity = "exp_roles", --- @setting bypass_warp_proximity dictates who the warp proximity is applied to; values: all, admin, exp_roles, none
17
+ exp_roles_bypass_warp_proximity = "exp_scenario.gui.warp_list.bypass_proximity", --- @setting exp_roles_bypass_warp_proximity if exp_roles is used then this is the required permission
18
+ standard_proximity_radius = 4, --- @setting standard_proximity_radius the minimum distance a player is allowed to be to a warp in order to use it
19
+ spawn_proximity_radius = 20, --- @setting spawn_proximity_radius the minimum distance a player is allowed to be from they spawn point to use warps
20
+
21
+ -- Adding warps
22
+ allow_add_warp = "exp_roles", --- @setting allow_add_warp dictates who is allowed to add warps; values: all, admin, exp_roles, none
23
+ exp_roles_allow_add_warp = "exp_scenario.gui.warp_list.add", --- @setting exp_roles_allow_add_warp if exp_roles is used then this is the required permission
24
+
25
+ -- Editing warps
26
+ allow_edit_warp = "exp_roles", --- @setting allow_edit_warp dictates who is allowed to edit warps; values: all, admin, exp_roles, none
27
+ exp_roles_allow_edit_warp = "exp_scenario.gui.warp_list.edit", --- @setting exp_roles_allow_edit_warp if exp_roles is used then this is the required permission
28
+ user_can_edit_own_warps = false, --- @settings user_can_edit_own_warps if true then the user who made the warp can edit it regardless of the allow_edit_warp setting
29
+
30
+ -- Warp area generation
31
+ entities = { --- @setting entities The entities which are created for warp areas
32
+ { "small-lamp", -4, -2 }, { "small-lamp", -2, -4 }, { "medium-electric-pole", -3, -3 }, -- Top left corner
33
+ { "small-lamp", 3, -2 }, { "small-lamp", 1, -4 }, { "medium-electric-pole", 2, -3 }, -- Top right corner
34
+ { "small-lamp", 3, 1 }, { "small-lamp", 1, 3 }, { "medium-electric-pole", 2, 2 }, -- Bottom right corner
35
+ { "small-lamp", -4, 1 }, { "small-lamp", -2, 3 }, { "medium-electric-pole", -3, 2 }, -- Bottom left corner
36
+ },
37
+ tiles = { --- @setting tiles The tiles which are created for warp areas
38
+ { "black-refined-concrete", -4, -2 }, { "black-refined-concrete", -4, -1 }, { "black-refined-concrete", -4, 0 }, { "black-refined-concrete", -4, 1 },
39
+ { "black-refined-concrete", -3, -3 }, { "purple-refined-concrete", -3, -2 }, { "purple-refined-concrete", -3, -1 }, { "purple-refined-concrete", -3, 0 },
40
+ { "purple-refined-concrete", -3, 1 }, { "black-refined-concrete", -3, 2 }, { "black-refined-concrete", -2, -4 }, { "purple-refined-concrete", -2, -3 },
41
+ { "purple-refined-concrete", -2, -2 }, { "purple-refined-concrete", -2, -1 }, { "purple-refined-concrete", -2, 0 }, { "purple-refined-concrete", -2, 1 },
42
+ { "purple-refined-concrete", -2, 2 }, { "black-refined-concrete", -2, 3 }, { "black-refined-concrete", -1, -4 }, { "purple-refined-concrete", -1, -3 },
43
+ { "purple-refined-concrete", -1, -2 }, { "purple-refined-concrete", -1, -1 }, { "purple-refined-concrete", -1, 0 }, { "purple-refined-concrete", -1, 1 },
44
+ { "purple-refined-concrete", -1, 2 }, { "black-refined-concrete", -1, 3 }, { "black-refined-concrete", 0, -4 }, { "purple-refined-concrete", 0, -3 },
45
+ { "purple-refined-concrete", 0, -2 }, { "purple-refined-concrete", 0, -1 }, { "purple-refined-concrete", 0, 0 }, { "purple-refined-concrete", 0, 1 },
46
+ { "purple-refined-concrete", 0, 2 }, { "black-refined-concrete", 0, 3 }, { "black-refined-concrete", 1, -4 }, { "purple-refined-concrete", 1, -3 },
47
+ { "purple-refined-concrete", 1, -2 }, { "purple-refined-concrete", 1, -1 }, { "purple-refined-concrete", 1, 0 }, { "purple-refined-concrete", 1, 1 },
48
+ { "purple-refined-concrete", 1, 2 }, { "black-refined-concrete", 1, 3 }, { "black-refined-concrete", 2, -3 }, { "purple-refined-concrete", 2, -2 },
49
+ { "purple-refined-concrete", 2, -1 }, { "purple-refined-concrete", 2, 0 }, { "purple-refined-concrete", 2, 1 }, { "black-refined-concrete", 2, 2 },
50
+ { "black-refined-concrete", 3, -2 }, { "black-refined-concrete", 3, -1 }, { "black-refined-concrete", 3, 0 }, { "black-refined-concrete", 3, 1 },
51
+ },
52
+ }
@@ -0,0 +1,9 @@
1
+ --- Config to control when players items are removed, this is a list of event names that will trigger inventory clear
2
+ -- @config inventory_clear
3
+
4
+ local events = defines.events
5
+ return {
6
+ events.on_player_banned,
7
+ events.on_player_kicked,
8
+ -- events.on_player_left_game
9
+ }
@@ -0,0 +1,8 @@
1
+ return {
2
+ Cooldude2606 = "Lua lets you set metatables on numbers, did you know that? Cooldude2606 knows this.",
3
+ samy115 = "Tremble in fear as the banhammer is now here, its owner: samy115",
4
+ XenoCyber = '"Fire Fire Fire" oops wrong game, have no fear XenoCyber is here',
5
+ HunterOfGames = "Unable to support HunterOfGames. You must construct additional miners.",
6
+ ookl = 'ookl says: "Pineapples are amazing, hello everyone!"',
7
+ arty714 = "Arty\'s Potato made it!",
8
+ }
@@ -0,0 +1,6 @@
1
+ --- Settings for lawnmower
2
+ -- @config lawnmower
3
+
4
+ return {
5
+ destroy_decoratives = false,
6
+ }
@@ -0,0 +1,30 @@
1
+ --- Settings for logging
2
+ -- @config logging
3
+
4
+ return {
5
+ file_name = "log/logging.log",
6
+ rocket_launch_display = {
7
+ [1] = true,
8
+ [2] = true,
9
+ [5] = true,
10
+ [10] = true,
11
+ [20] = true,
12
+ [50] = true,
13
+ [100] = true,
14
+ [200] = true,
15
+ },
16
+ rocket_launch_display_rate = 500,
17
+ disconnect_reason = {
18
+ [defines.disconnect_reason.quit] = "left the game",
19
+ [defines.disconnect_reason.dropped] = "was dropped from the game",
20
+ [defines.disconnect_reason.reconnect] = "is reconnecting",
21
+ [defines.disconnect_reason.wrong_input] = "was having a wrong input",
22
+ [defines.disconnect_reason.desync_limit_reached] = "had desync limit reached",
23
+ [defines.disconnect_reason.cannot_keep_up] = "cannot keep up",
24
+ [defines.disconnect_reason.afk] = "was afk",
25
+ [defines.disconnect_reason.kicked] = "was kicked",
26
+ [defines.disconnect_reason.kicked_and_deleted] = "was kicked and deleted",
27
+ [defines.disconnect_reason.banned] = "was banned",
28
+ [defines.disconnect_reason.switching_servers] = "is switching servers",
29
+ },
30
+ }
@@ -0,0 +1,8 @@
1
+ --- Settings for miner
2
+ -- @config miner
3
+
4
+ return {
5
+ fluid = true, --- @setting fluid When true, checks for for fluid pipes when removing miners
6
+ chest = true, --- @setting chest When true, checks for for chest when removing miners
7
+ beacon = true, --- @setting beacon When true, checks for for beacon when removing miners
8
+ }
@@ -0,0 +1,86 @@
1
+ return {
2
+ module_slots_per_row = 4,
3
+ module_slot_max = 8,
4
+ copy_paste_module = true,
5
+ copy_paste_rotation = false,
6
+ machines = {
7
+ },
8
+ machine_sets = {
9
+ ["base"] = {
10
+ ["electric-mining-drill"] = {
11
+ ["module"] = "efficiency-module",
12
+ ["prod"] = true,
13
+ },
14
+ ["pumpjack"] = {
15
+ ["module"] = "efficiency-module",
16
+ ["prod"] = true,
17
+ },
18
+ ["assembling-machine-2"] = {
19
+ ["module"] = "productivity-module",
20
+ ["prod"] = true,
21
+ },
22
+ ["assembling-machine-3"] = {
23
+ ["module"] = "productivity-module-3",
24
+ ["prod"] = true,
25
+ },
26
+ ["electric-furnace"] = {
27
+ ["module"] = "productivity-module-3",
28
+ ["prod"] = true,
29
+ },
30
+ ["beacon"] = {
31
+ ["module"] = "speed-module-3",
32
+ ["prod"] = false,
33
+ },
34
+ ["oil-refinery"] = {
35
+ ["module"] = "productivity-module-3",
36
+ ["prod"] = true,
37
+ },
38
+ ["chemical-plant"] = {
39
+ ["module"] = "productivity-module-3",
40
+ ["prod"] = true,
41
+ },
42
+ ["centrifuge"] = {
43
+ ["module"] = "productivity-module-3",
44
+ ["prod"] = true,
45
+ },
46
+ ["lab"] = {
47
+ ["module"] = "productivity-module-3",
48
+ ["prod"] = true,
49
+ },
50
+ ["rocket-silo"] = {
51
+ ["module"] = "productivity-module-3",
52
+ ["prod"] = true,
53
+ }
54
+ },
55
+ ["space-age"] = {
56
+ ["big-mining-drill"] = {
57
+ ["module"] = "efficiency-module",
58
+ ["prod"] = true,
59
+ },
60
+ ["biochamber"] = {
61
+ ["module"] = "efficiency-module",
62
+ ["prod"] = true,
63
+ },
64
+ ["electromagnetic-plant"] = {
65
+ ["module"] = "productivity-module-3",
66
+ ["prod"] = true,
67
+ },
68
+ ["cryogenic-plant"] = {
69
+ ["module"] = "productivity-module-3",
70
+ ["prod"] = true,
71
+ },
72
+ ["biolab"] = {
73
+ ["module"] = "productivity-module-3",
74
+ ["prod"] = true,
75
+ },
76
+ ["foundry"] = {
77
+ ["module"] = "productivity-module-3",
78
+ ["prod"] = true,
79
+ },
80
+ ["recycler"] = {
81
+ ["module"] = "quality-module-3",
82
+ ["prod"] = true,
83
+ }
84
+ }
85
+ }
86
+ }
@@ -0,0 +1,30 @@
1
+ return {
2
+ inventories = {
3
+ {
4
+ inventory = defines.inventory.character_ammo,
5
+ event = defines.events.on_player_ammo_inventory_changed,
6
+ items = {
7
+ ["atomic-bomb"] = true,
8
+ },
9
+ },
10
+ {
11
+ inventory = defines.inventory.character_armor,
12
+ event = defines.events.on_player_armor_inventory_changed,
13
+ items = {},
14
+ },
15
+ {
16
+ inventory = defines.inventory.character_guns,
17
+ event = defines.events.on_player_gun_inventory_changed,
18
+ items = {},
19
+ },
20
+ {
21
+ inventory = defines.inventory.character_main,
22
+ event = defines.events.on_player_main_inventory_changed,
23
+ items = {
24
+ ["atomic-bomb"] = true,
25
+ },
26
+ },
27
+ },
28
+ ignore_permission = "exp_scenario.bypass.nuke_protection", -- @setting ignore_permission The permission that nukeprotect will ignore
29
+ ignore_admins = true, -- @setting ignore_admins Ignore admins, true by default. Allows usage outside of the roles module
30
+ }
@@ -0,0 +1,9 @@
1
+ --- This controls how pollution is viewed on the map
2
+ -- @config Pollution-Grading
3
+
4
+ return {
5
+ reference_point = { x = 0, y = 0 }, --- @setting reference_point where pollution is read from
6
+ max_scalar = 0.5, --- @setting max_scalar the scale between true max and max
7
+ min_scalar = 0.17, --- @setting min_scalar the scale between the lowest max and min
8
+ update_delay = 15, --- @setting update_delay time in minutes between view updates
9
+ }