diff --git a/.github/ISSUE_TEMPLATE/Bug_report.md b/.github/ISSUE_TEMPLATE/Bug_report.md
index 8d1d7915..885ebd8e 100644
--- a/.github/ISSUE_TEMPLATE/Bug_report.md
+++ b/.github/ISSUE_TEMPLATE/Bug_report.md
@@ -1,18 +1,24 @@
---
name: Bug report
-about: Create a report to help us improve
+about: Report a bug which does not crash the game, any bug from the latest major scenario version
---
-**Describe the bug**
+**Factorio version**
+Version number: X.Y.Z
+
+**Scenario version**
+Version number: X.Y.Z
+
+**Bug description**
A clear and concise description of what the bug is.
-**To Reproduce**
+**Reproduction method**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
-4. See error
+4. See error in log
**Expected behavior**
A clear and concise description of what you expected to happen.
@@ -20,9 +26,5 @@ A clear and concise description of what you expected to happen.
**Screenshots**
If applicable, add screenshots to help explain your problem.
-**Other information (please complete the following information):**
- - OS: [e.g. iOS, Windows, Linux]
- - Factorio Version: [e.g. 0.16.30]
-
**Additional context**
-Add any other context about the problem here.
+Add any other context about the problem here.
\ No newline at end of file
diff --git a/.github/ISSUE_TEMPLATE/Desync_report.md b/.github/ISSUE_TEMPLATE/Desync_report.md
new file mode 100644
index 00000000..5c7e81f9
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/Desync_report.md
@@ -0,0 +1,24 @@
+---
+name: Desync report
+about: Report a desync, latest version of scenario only including patches
+
+---
+
+**Factorio version**
+Version number: X.Y.Z
+
+**Scenario version**
+Version number: X.Y.Z
+
+**Desync description**
+A clear and concise description of what you believe causes the desync.
+
+**Reproduction method**
+Steps to reproduce the behavior:
+1. Go to '...'
+2. Click on '....'
+3. Scroll down to '....'
+4. See error in log
+
+**Additional context**
+Add any other context about the problem here.
\ No newline at end of file
diff --git a/.github/ISSUE_TEMPLATE/Error_report.md b/.github/ISSUE_TEMPLATE/Error_report.md
index 85f5a32f..d9ca9b28 100644
--- a/.github/ISSUE_TEMPLATE/Error_report.md
+++ b/.github/ISSUE_TEMPLATE/Error_report.md
@@ -1,33 +1,35 @@
---
-name: Error/Desync Report
-about: Create a report on a bug which gives an error or desync
+name: Error report
+about: Report a bug which cases the game to crash, any bug from the latest major scenario version
---
-**Error Message**
-Error: insert error message
+**Factorio version**
+Version number: X.Y.Z
-**Known Causes**
-Know causes that will result in error:
- - Cause 1
- - Cause 2
+**Scenario version**
+Version number: X.Y.Z
-**To Reproduce (please give for each cause outlined above)**
+**Error message**
+```
+error message and stacktrace back
+```
+
+**Error description**
+A clear and concise description of what you believe causes the crash.
+
+**Reproduction method**
Steps to reproduce the behavior:
- - Cause 1
- 1. Go to '...'
- 2. Click on '....'
- 3. Scroll down to '....'
- 4. See error
- - Cause 2
- 1. Go to '...'
- 2. Click on '....'
- 3. Scroll down to '....'
- 4. See error
+1. Go to '...'
+2. Click on '....'
+3. Scroll down to '....'
+4. See error in log
-**Other information (please complete the following information):**
- - OS: [e.g. iOS, Windows, Linux]
- - Factorio Version: [e.g. 0.16.30]
+**Expected behavior**
+A clear and concise description of what you expected to happen.
+
+**Screenshots**
+If applicable, add screenshots to help explain your problem.
**Additional context**
Add any other context about the problem here.
\ No newline at end of file
diff --git a/.github/ISSUE_TEMPLATE/Feature_request.md b/.github/ISSUE_TEMPLATE/Feature_request.md
index 066b2d92..6bdc2252 100644
--- a/.github/ISSUE_TEMPLATE/Feature_request.md
+++ b/.github/ISSUE_TEMPLATE/Feature_request.md
@@ -1,17 +1,18 @@
---
name: Feature request
-about: Suggest an idea for this project
+about: Suggest a new idea to be worked on
---
-**Is your feature request related to a problem? Please describe.**
-A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
+**Feature overview**
+Name: name-here
+TL;DR: a few words about what the feature is
-**Describe the solution you'd like**
-A clear and concise description of what you want to happen.
+**Details**
+A detailed description of what the new feature is.
-**Describe alternatives you've considered**
-A clear and concise description of any alternative solutions or features you've considered.
+**Possible methods**
+Any ideas you have had about how to implement the feature or any problems that may arise.
**Additional context**
-Add any other context or screenshots about the feature request here.
+Add any other context or screenshots about the feature request here.
\ No newline at end of file
diff --git a/README.md b/README.md
index c7509c63..7f54976d 100644
--- a/README.md
+++ b/README.md
@@ -56,7 +56,8 @@ All are welcome to make pull requests and issues for this scenario, if you are i
| Scenario Version* | Version Name | Factorio Version** |
|---|---|---|
-| [v5.5](s5.5) | Gui System | [v0.17.35](f0.17.35) |
+| [v5.6](s5.6) | Information Guis | [v0.17.44](f0.17.44) |
+| [v5.5](s5.5) | Gui System | [v0.17.43](f0.17.43) |
| [v5.4](s5.4) | Admin Controls | [v0.17.32](f0.17.32) |
| [v5.3](s5.3) | Custom Roles | [v0.17.28](f0.17.28) |
| [v5.2](s5.2) | Quality of life | [v0.17.22](f0.17.22) |
@@ -71,6 +72,7 @@ All are welcome to make pull requests and issues for this scenario, if you are i
\** Factorio versions show the version they were made for, often the minimum requirement.
+[s5.6]: https://github.com/explosivegaming/scenario/releases/tag/5.6.0
[s5.5]: https://github.com/explosivegaming/scenario/releases/tag/5.5.0
[s5.4]: https://github.com/explosivegaming/scenario/releases/tag/5.4.0
[s5.3]: https://github.com/explosivegaming/scenario/releases/tag/5.3.0
@@ -83,7 +85,7 @@ All are welcome to make pull requests and issues for this scenario, if you are i
[s1.0]: https://github.com/explosivegaming/scenario/releases/tag/v1.0
[s0.1]: https://github.com/explosivegaming/scenario/releases/tag/v0.1
-[f0.17.35]: https://wiki.factorio.com/Version_history/0.17.0#0.17.35
+[f0.17.44]: https://wiki.factorio.com/Version_history/0.17.0#0.17.44
[f0.17.32]: https://wiki.factorio.com/Version_history/0.17.0#0.17.32
[f0.17.28]: https://wiki.factorio.com/Version_history/0.17.0#0.17.28
[f0.17.22]: https://wiki.factorio.com/Version_history/0.17.0#0.17.22
diff --git a/config/action_buttons.lua b/config/action_buttons.lua
index cd48100d..71ec2ee2 100644
--- a/config/action_buttons.lua
+++ b/config/action_buttons.lua
@@ -1,3 +1,8 @@
+--- Config for the different action buttons that show on the player list
+-- each button has the button define(s) given along side an auth function, and optional reason callback
+-- if a reason callback is used then Store.set_child(action_name_store,player.name,'BUTTON_NAME') should be called during on_click
+-- buttons can be removed from the gui by commenting them out of the config at the bottom of this file
+-- the key used for the name of the button is the permision name used by the role system
local Gui = require 'expcore.gui'
local Roles = require 'expcore.roles'
local Store = require 'expcore.store'
@@ -5,17 +10,20 @@ local Game = require 'utils.game'
local Reports = require 'modules.addons.reports-control'
local Warnings = require 'modules.addons.warnings-control'
local Jail = require 'modules.addons.jail-control'
+local Colors = require 'resources.color_presets'
local format_chat_player_name = ext_require('expcore.common','format_chat_player_name')
local action_player_store = 'gui.left.player-list.action-player'
local action_name_store = 'gui.left.player-list.action-name'
+-- common style used by all action buttons
local function tool_button_style(style)
Gui.set_padding_style(style,-1,-1,-1,-1)
style.height = 28
style.width = 28
end
+-- auth that will only allow when on player's of lower roles
local function auth_lower_role(player,action_player_name)
local player_highest = Roles.get_player_highest_role(player)
local action_player_highest = Roles.get_player_highest_role(action_player_name)
@@ -24,13 +32,15 @@ local function auth_lower_role(player,action_player_name)
end
end
-local function get_action_player(player)
+-- gets the action player and a coloured name for the action to be used on
+local function get_action_player_name(player)
local action_player_name = Store.get_child(action_player_store,player.name)
local action_player = Game.get_player_from_any(action_player_name)
local action_player_name_color = format_chat_player_name(action_player)
return action_player,action_player_name_color
end
+-- telports one player to another
local function teleport(from_player,to_player)
local surface = to_player.surface
local position = surface.find_non_colliding_position('character',to_player.position,32,1)
@@ -40,55 +50,78 @@ local function teleport(from_player,to_player)
return true
end
+-- teleports the user to the action player
local goto_player =
Gui.new_button()
:set_sprites('utility/export')
:set_tooltip{'player-list.goto-player'}
:set_style('tool_button',tool_button_style)
:on_click(function(player,element)
- local action_player = get_action_player(player)
- teleport(player,action_player)
+ local action_player_name = get_action_player_name(player)
+ local action_player = Game.get_player_from_any(action_player_name)
+ if not player.character or not action_player.character then
+ player.print({'expcore-commands.reject-player-alive'},Colors.orange_red)
+ else
+ teleport(player,action_player)
+ end
end)
+-- teleports the action player to the user
local bring_player =
Gui.new_button()
:set_sprites('utility/import')
:set_tooltip{'player-list.bring-player'}
:set_style('tool_button',tool_button_style)
:on_click(function(player,element)
- local action_player = get_action_player(player)
- teleport(action_player,player)
+ local action_player_name = get_action_player_name(player)
+ local action_player = Game.get_player_from_any(action_player_name)
+ if not player.character or not action_player.character then
+ player.print({'expcore-commands.reject-player-alive'},Colors.orange_red)
+ else
+ teleport(action_player,player)
+ end
end)
+-- kills the action player, if there are alive
local kill_player =
Gui.new_button()
:set_sprites('utility/too_far')
:set_tooltip{'player-list.kill-player'}
:set_style('tool_button',tool_button_style)
:on_click(function(player,element)
- local action_player = get_action_player(player)
+ local action_player_name = get_action_player_name(player)
+ local action_player = Game.get_player_from_any(action_player_name)
if action_player.character then
action_player.character.die()
+ else
+ player.print({'expcom-kill.already-dead'},Colors.orange_red)
end
end)
+-- reports the action player, requires a reason to be given
local report_player =
Gui.new_button()
:set_sprites('utility/spawn_flag')
:set_tooltip{'player-list.report-player'}
:set_style('tool_button',tool_button_style)
:on_click(function(player,element)
- Store.set_child(action_name_store,player.name,'command/report')
+ local action_player_name = get_action_player_name(player)
+ if Reports.player_is_reported_by(action_player_name,player.name) then
+ player.print({'expcom-report.already-reported'},Colors.orange_red)
+ else
+ Store.set_child(action_name_store,player.name,'command/report')
+ end
end)
local function report_player_callback(player,reason)
- local action_player,action_player_name_color = get_action_player(player)
+ local action_player_name,action_player_name_color = get_action_player_name(player)
local by_player_name_color = format_chat_player_name(player)
game.print{'expcom-report.non-admin',action_player_name_color,reason}
Roles.print_to_roles_higher('Trainee',{'expcom-report.admin',action_player_name_color,by_player_name_color,reason})
- Reports.report_player(action_player,reason,player.name)
+ Reports.report_player(action_player_name,reason,player.name)
end
+-- gives the action player a warning, requires a reason
local warn_player =
Gui.new_button()
:set_sprites('utility/spawn_flag')
@@ -99,42 +132,57 @@ Gui.new_button()
end)
local function warn_player_callback(player,reason)
- local action_player,action_player_name_color = get_action_player(player)
+ local action_player_name,action_player_name_color = get_action_player_name(player)
local by_player_name_color = format_chat_player_name(player)
game.print{'expcom-warnings.received',action_player_name_color,by_player_name_color,reason}
- Warnings.add_warnings(action_player,player.name)
+ Warnings.add_warnings(action_player_name,player.name)
end
+-- jails the action player, requires a reason
local jail_player =
Gui.new_button()
:set_sprites('utility/item_editor_icon')
:set_tooltip{'player-list.jail-player'}
:set_style('tool_button',tool_button_style)
:on_click(function(player,element)
- Store.set_child(action_name_store,player.name,'command/jail')
+ local action_player_name,action_player_name_color = get_action_player_name(player)
+ if Roles.player_has_role(action_player_name,'Jail') then
+ player.print({'expcom-jail.already-jailed',action_player_name_color},Colors.orange_red)
+ else
+ Store.set_child(action_name_store,player.name,'command/jail')
+ end
end)
local function jail_player_callback(player,reason)
- local action_player,action_player_name_color = get_action_player(player)
+ local action_player_name,action_player_name_color = get_action_player_name(player)
local by_player_name_color = format_chat_player_name(player)
game.print{'expcom-jail.give',action_player_name_color,by_player_name_color,reason}
- Jail.jail_player(action_player,player.name)
+ Jail.jail_player(action_player_name,player.name)
end
+-- temp bans the action player, requires a reason
local temp_ban_player =
Gui.new_button()
:set_sprites('utility/clock')
:set_tooltip{'player-list.temp-ban-player'}
:set_style('tool_button',tool_button_style)
:on_click(function(player,element)
- Store.set_child(action_name_store,player.name,'command/temp-ban')
+ local action_player_name,action_player_name_color = get_action_player_name(player)
+ if Roles.player_has_role(action_player_name,'Jail') then
+ player.print({'expcom-jail.already-banned',action_player_name_color},Colors.orange_red)
+ else
+ Store.set_child(action_name_store,player.name,'command/temp-ban')
+ end
end)
local function temp_ban_player_callback(player,reason)
- local action_player = get_action_player(player)
+ local action_player,action_player_name_color = get_action_player_name(player)
+ local by_player_name_color = format_chat_player_name(player)
+ game.print{'expcom-jail.temp-ban',action_player_name_color,by_player_name_color,reason}
Jail.temp_ban_player(action_player,player.name,reason)
end
+-- kicks the action player, requires a reason
local kick_player =
Gui.new_button()
:set_sprites('utility/warning_icon')
@@ -145,10 +193,11 @@ Gui.new_button()
end)
local function kick_player_callback(player,reason)
- local action_player = get_action_player(player)
+ local action_player = get_action_player_name(player)
game.kick_player(action_player,reason)
end
+-- bans the action player, requires a reason
local ban_player =
Gui.new_button()
:set_sprites('utility/danger_icon')
@@ -159,39 +208,39 @@ Gui.new_button()
end)
local function ban_player_callback(player,reason)
- local action_player = get_action_player(player)
+ local action_player = get_action_player_name(player)
game.ban_player(action_player,reason)
end
return {
['command/teleport'] = {
- auth=function(player,action_player_name)
- return player.name ~= action_player_name
- end,
+ auth=function(player,action_player)
+ return player.name ~= action_player.name
+ end, -- cant teleport to your self
goto_player,
bring_player
},
['command/kill'] = {
- auth=function(player,action_player_name)
- if player.name == action_player_name then
+ auth=function(player,action_player)
+ if player.name == action_player.name then
return true
elseif Roles.player_allowed(player,'command/kill/always') then
- return auth_lower_role(player,action_player_name)
+ return auth_lower_role(player,action_player)
end
- end,
+ end, -- player must be lower role, or your self
kill_player
},
['command/report'] = {
- auth=function(player,action_player_name)
+ auth=function(player,action_player)
if not Roles.player_allowed(player,'command/give-warning') then
- return not Roles.player_has_flag(action_player_name,'report-immune')
+ return not Roles.player_has_flag(action_player,'report-immune')
end
- end,
+ end, -- can report any player that isnt immune and you arnt able to give warnings
reason_callback=report_player_callback,
report_player
},
['command/give-warning'] = {
- auth=auth_lower_role,
+ auth=auth_lower_role, -- warn a lower user, replaces report
reason_callback=warn_player_callback,
warn_player
},
diff --git a/config/compilatron.lua b/config/compilatron.lua
index a4980f92..47ffccb3 100644
--- a/config/compilatron.lua
+++ b/config/compilatron.lua
@@ -1,3 +1,4 @@
+-- config file for the compliatrons including where they spawn and what messages they show
return {
message_cycle=60*15, -- 15 seconds default, how often (in ticks) the messages will cycle
locations={ -- defines the spawn locations for all compilatrons
diff --git a/config/preset_player_colours.lua b/config/preset_player_colours.lua
index 527ad065..d10fd64a 100644
--- a/config/preset_player_colours.lua
+++ b/config/preset_player_colours.lua
@@ -1,3 +1,4 @@
+-- preset colours that players get when they join the server, if not in the list then will be given a random colour (which isnt disallowed)
return {
players={
BADgamerNL={r=255,g=20,b=147},
diff --git a/config/repair.lua b/config/repair.lua
index dd58d8be..5980c8c2 100644
--- a/config/repair.lua
+++ b/config/repair.lua
@@ -1,13 +1,14 @@
+-- config file for the repair command
return {
- disallow = {
+ disallow = { -- items in this list will never be repaired
['loader']=true,
['fast-loader']=true,
['express-loader']=true,
['electric-energy-interface']=true,
['infinity-chest']=true
},
- max_range=50,
- allow_blueprint_repair=false,
- allow_ghost_revive=true,
- allow_heal_entities=true
+ max_range=50, -- the max range that can be used with the repair command
+ allow_blueprint_repair=false, -- when true will allow blueprints (things not destroied by biters) to be build instently using the repair command
+ allow_ghost_revive=true, -- when true will allow ghosts (things destoried by biters) to be build instently using the repair command
+ allow_heal_entities=true -- when true will heal entities to full health that are within range
}
\ No newline at end of file
diff --git a/config/science.lua b/config/science.lua
index 9fd7334a..3cd3ce5f 100644
--- a/config/science.lua
+++ b/config/science.lua
@@ -1,5 +1,8 @@
-return {
- show_eta=true,
+-- config file for the science info gui
+return { -- list of all science packs to be shown in the gui
+ show_eta=true, -- when true the eta for research completion will be shown
+ required_for_green=5, -- the amount required for the text to show as green
+ required_for_red=-5, -- the amount required for the text to show as red
'automation-science-pack',
'logistic-science-pack',
'military-science-pack',
diff --git a/config/scorched_earth.lua b/config/scorched_earth.lua
index bf683d45..1a46e20d 100644
--- a/config/scorched_earth.lua
+++ b/config/scorched_earth.lua
@@ -108,6 +108,7 @@ return {
['rocket-silo']=true,
['pumpjack']=true,
['electric-mining-drill']=true,
- ['roboport']=true
+ ['roboport']=true,
+ ['accumulator']=true
}
}
\ No newline at end of file
diff --git a/config/tasks.lua b/config/tasks.lua
index 7b1502e5..4c6bd54a 100644
--- a/config/tasks.lua
+++ b/config/tasks.lua
@@ -1,3 +1,4 @@
+-- config file for the tasks gui
return {
only_admins_can_edit = false, -- true will hide the edit and delete buttons from non (game) admins
edit_tasks_role_permision = 'gui/task-list/edit' -- value used with custom permision system
diff --git a/doc/index.html b/doc/index.html
index f5d24cda..45c80e3f 100644
--- a/doc/index.html
+++ b/doc/index.html
@@ -30,25 +30,62 @@
Modules
-
- - FSM
- - ExpGamingCore.Command
- - ExpGamingCore.Gui
- - ExpGamingCore.Gui.Center
- - ExpGamingCore.Gui.Inputs
- - ExpGamingCore.Gui.Left
- - ExpGamingCore.Gui.Popup
- - ExpGamingCore.Gui.Test
- - ExpGamingCore.Gui.Toolbar
- - ExpGamingCore.Role
- - ExpGamingCore.Server
- - ExpGamingCore.Sync
- - ExpGamingLib
- - StdLib.Color
- - StdLib.Game
- - StdLib.String
- - StdLib.Table
- - StdLib.Time
+
@@ -60,84 +97,279 @@
Modules
- | FSM |
- Factorio Softmod Manager |
+ config._file_loader |
+ This contains a list of all files that will be loaded and the order they are loaded in
+ to stop a file from loading add "--" in front of it, remove the "--" to have the file be loaded
+ config files should be loaded after all modules are loaded
+ core files should be required by modules and not be present in this list |
- | ExpGamingCore.Command |
- A full ranking system for factorio. |
+ config.action_buttons |
+ Config for the different action buttons that show on the player list
+ each button has the button define(s) given along side an auth function, and optional reason callback
+ if a reason callback is used then Store.set_child(action_name_store,player.name,'BUTTON_NAME') should be called during on_click
+ buttons can be removed from the gui by commenting them out of the config at the bottom of this file
+ the key used for the name of the button is the permision name used by the role system |
- | ExpGamingCore.Gui |
- Adds a objective version to custom guis. |
+ config.advanced_start |
+ This file is used to setup the map starting settings and the items players will start with |
- | ExpGamingCore.Gui.Center |
- Adds a uniform preset for guis in the center of the screen which allow for different tabs to be opened |
+ config.death_logger |
+ This config controls what happens when a player dies mostly about map markers and item collection
+ allow_teleport_to_body_command and allow_collect_bodies_command can be over ridden if command_auth_runtime_disable is present
+ if not present then the commands will not be loaded into the game |
- | ExpGamingCore.Gui.Inputs |
- Adds a clean way of making new inputs for a gui allowing for sliders and text inputs to be hanndleded with custom events |
+ config.expcore-commands.auth_admin |
+ This is a very simple config file which adds a admin only auth function
+ not much to change here its more so it can be enabled and disabled from ./config/file_loader.lua
+ either way you can change the requirements to be "admin" if you wanted to |
- | ExpGamingCore.Gui.Left |
- Adds a organiser for left gui ellements which will automaticaly update there information and have open requirements |
+ config.expcore-commands.auth_roles |
+ This will make commands only work if the role has been allowed it in the role config |
- | ExpGamingCore.Gui.Popup |
- Adds a location for popups which can be dismissed by a player and created from other scripts |
+ config.expcore-commands.auth_runtime_disable |
+ This config for command auth allows commands to be globally enabled and disabled during runtime
+ this config adds Commands.disable and Commands.enable to enable and disable commands for all users |
- | ExpGamingCore.Gui.Test |
- Used to test all gui elements and parts can be used in game via Gui.test() |
+ config.expcore-commands.parse_general |
+ This file contains some common command param parse functions
+ this file is less of a config and more of a requirement but you may wish to change how some behave
+ as such you need to be confident with lua but you edit this config file
+ use Commands.add_parse('name',function(input,player,reject) end) to add a parse
+ see ./expcore/commands.lua for more details |
- | ExpGamingCore.Gui.Toolbar |
- Adds a toolbar to the top left of the screen |
+ config.expcore-commands.parse_roles |
+ Adds some parse functions that can be used with the role system |
- | ExpGamingCore.Role |
- A full ranking system for factorio. |
+ config.permission_groups |
+ Use this file to add new permission groups to the game
+ start with Permission_Groups.new_group('name')
+ then use either :allow_all() or :disallow_all() to set the default for non specified actions
+ then use :allow{} and :disallow{} to specify certain actions to allow/disallow |
- | ExpGamingCore.Server |
- Adds a thread system and event listening and a admin bypass (recommend to disable /c and use optional /interface) |
+ config.popup_messages |
+ A combination of config settings for different popup values like chat and damage |
- | ExpGamingCore.Sync |
- Allows syncing with an outside server and info panle. |
+ config.rockets |
+ This file controls what will show in each section of the rocket info gui |
- | ExpGamingLib |
- Adds some common functions used though out all ExpGaming modules |
+ config.roles |
+ This is the main config file for the role system; file includes defines for roles and role flags and default values |
- | StdLib.Color |
- A defines module for retrieving colors by name. |
+ config.scorched_earth |
+ This file controls the placement/degrading of tiles as players build and walk |
- | StdLib.Game |
- The game module. |
+ config.spawn_area |
+ Used to config the spawn generation settings yes there is alot here i know just ignore the long tables at the end (they were generated with a command) |
- | StdLib.String |
- Extends Lua 5.2 string. |
+ config.warnings |
+ Config file for the warning system, this is very similar to reports but is for the use of moderators rather than normal users. |
- | StdLib.Table |
- Extends Lua 5.2 table. |
+ control |
+ Please go to ./config if you want to change settings, each file is commented with what it does
+ if it is not in ./config then you should not attempt to change it unless you know what you are doing
+ all files which are loaded (including the config files) are present in ./config/file_loader.lua
+ this file is the landing point for all scenarios please DO NOT edit directly, further comments are to aid development |
- | StdLib.Time |
- A defines module for retrieving the number of ticks in 1 unit of time. |
+ expcore.commands |
+ Factorio command making module that makes commands with better parse and more modularity |
+
+
+ | expcore.common |
+ Adds some commonly used functions used in many modules |
+
+
+ | expcore.gui |
+ This file is used to require all the different elements of the gui module
+ each module has an outline here but for more details see their seperate files in ./gui |
+
+
+ | expcore.gui.buttons |
+ Gui class define for buttons and sprite buttons
+[[ |
+
+
+ | expcore.gui.center |
+ Gui structure define for center gui frames
+[[ |
+
+
+ | expcore.gui.checkboxs |
+ Gui class define for checkboxs and radiobuttons
+[[ |
+
+
+ | expcore.gui.core |
+ Core gui file for making element defines and element classes (use require 'expcore.gui')
+ see utils.gui for event handlering
+ see expcore.gui.test for examples for element defines
+[[ |
+
+
+ | expcore.gui.dropdown |
+ Gui class define for dropdowns and list boxs
+[[ |
+
+
+ | expcore.gui.elem-button |
+ Gui class defines for elem buttons
+[[ |
+
+
+ | expcore.gui.instances |
+ This file is a breakout from core which forcues on instance management of defines
+[[ |
+
+
+ | expcore.gui.left |
+ Gui structure define for left frames
+[[ |
+
+
+ | expcore.gui.popups |
+ Gui structure define for popup gui
+[[ |
+
+
+ | expcore.gui.progress-bar |
+ Gui element define for progess bars
+[[ |
+
+
+ | expcore.gui.slider |
+ Gui class define for silders
+[[ |
+
+
+ | expcore.gui.test |
+ This file creates a teste gui that is used to test every input method
+ note that this does not cover every permutation only features in indepentance
+ for example store in most cases is just by player name, but other store methods are tested with checkbox |
+
+
+ | expcore.gui.text |
+ Gui class define for text fields and text boxs
+[[ |
+
+
+ | expcore.gui.toolbar |
+ Gui structure for the toolbar (top left)
+[[ |
+
+
+ | expcore.permission_groups |
+ Permission group making for factorio so you never have to make one by hand again |
+
+
+ | expcore.roles |
+ Factorio role system to manage custom permissions |
+
+
+ | expcore.store |
+ Adds an easy way to store and watch for updates to a value
+[[ |
+
+
+ | modules.addons.advanced-start |
+ Adds a better method of player starting items based on production levels. |
+
+
+ | modules.addons.chat-popups |
+ Creates flying text entities when a player sends a message in chat
+ also displays a ping above users who are named in the message |
+
+
+ | modules.addons.damage-popups |
+ Displays the amount of dmg that is done by players to entities
+ also shows player health when a player is attacked |
+
+
+ | modules.gui.player-list |
+ Gui left frame define for a player list |
+
+
+ | modules.gui.rocket-info |
+ Adds a rocket infomation gui which shows general stats, milestones and build progress of rockets |
+
+
+ | modules.gui.science-info |
+ Adds a science info gui that shows production usage and net for the different science packs as well as an eta |
+
+
+ | modules.gui.task-list |
+ Adds a task list to the game which players can add remove and edit items on |
+
+
+ | utils.alien_evolution_progress |
+ info
+ Original (javascript) version: https://hastebin.com/udakacavap.js
+ Can be tested against: https://wiki.factorio.com/Enemies#Spawn_chances_by_evolution_factor |
+
+
+ | utils.core |
+ Measures distance between pos1 and pos2 |
+
+
+ | utils.debug |
+ |
+
+
+ | utils.event |
+ This Module allows for registering multiple handlers to the same event, overcoming the limitation of script.register. |
+
+
+ | utils.event_core |
+ Do not use this function, use Event.add instead as it has safety checks. |
+
+
+ | utils.math |
+ Takes two points and calculates the slope of a line |
+
+
+ | utils.recipe_locker |
+ Locks recipes, preventing them from being enabled by research. |
+
+
+ | utils.state_machine |
+ This module provides a classical mealy/moore state machine. |
+
+
+ | utils.table |
+ Searches a table to remove a specific element without an index |
+
+
+ | utils.task |
+ 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 |
+
+
+ | utils.timestamp |
+ source https://github.com/daurnimator/luatz/blob/master/luatz/timetable.lua
+ edited down to just what is needed. |
-
generated by LDoc 1.4.6
-
Last updated 2018-06-07 12:58:23
+
generated by LDoc 1.4.3
+
Last updated 2019-05-29 22:30:49
-
-
-
-
-
-
-
-
-
-
-
-
-
-
ldoc
-
-
-
-
Contents
-
-
-
-
Modules
-
-
-
-
-
-
-
Module ExpGamingCore.Command
-
A full ranking system for factorio.
-
-
Info:
-
- - License: https://github.com/explosivegaming/scenario/blob/master/LICENSE
- - Author: Cooldude2606
-
-
-
-
-
-
-
-
- | validate |
- Collection of funcations that can be used to validate inputs |
-
-
-
-
-
- | error |
- Used as an error constant for validation |
-
-
- | data |
- Index of all command data |
-
-
-
-
-
-
-
-
-
-
- -
-
- format_inputs (command)
-
- -
- Returns the inputs of this command as a formated string
-
-
-
Parameters:
-
- - command
- string, table or event
- the command to get the inputs of
-
-
-
- Returns:
-
-
- string
- the formated string for the inputs
-
-
-
-
- Usage:
- commands.format_inputs('interface')
-
-
-
- -
-
- validate_args (event)
-
- -
- Used to validate the arguments of a command, will understand strings with "" as a single param else spaces divede the params
-
-
-
Parameters:
-
- - event
- table
- this is the event created by add_command not on_console_command
-
-
-
- Returns:
-
-
- string
- the error that happend while parsing the args
-
- Or
-
-
- table
- the args for this command
-
- Or
-
-
- command.error
-
-
-
-
- Usage:
- commands.validate_args(event)
-
-
-
- -
-
- get_commands (player)
-
- -
- Used to return all the commands a player can use
-
-
-
Parameters:
-
- - player
- index, name or player
- the player to test as
-
-
-
- Returns:
-
-
- table
- a table containg all the commands the player can use
-
-
-
-
- Usage:
- get_commands(1)
-
-
-
- -
-
- add_command (name[, description='No Description'][, inputs=an infite string], callback)
-
- -
- Used to define commands
-
-
-
Parameters:
-
- - name
- string
- the name of the command
-
- - description
- string
- the description of the command
- (default 'No Description')
-
- - inputs
- table
- a table of the inputs to be used, last index being true makes the last parameter open ended (longer than one word)
- (default an infite string)
-
- - callback
- function
- the function to call on the event
-
-
-
-
-
-
- Usage:
-
-
-
-
-
-
-
-
- -
-
- validate
-
- -
- Collection of funcations that can be used to validate inputs
-
-
-
Fields:
-
- - __comment
- replace _ with - the ldoc did not like me using - in the names
-
- - string
- basicly does nothing but a type filed is required
-
- - string_inf
- same as string but is infite in length, must be last arg
-
- - string_len
- same as string but can define a max lengh
-
- - number
- converts the input into a number
-
- - number_int
- conerts the input to a number and floors it
-
- - number_range
- allows a number in a range after it has been floored min < math.floor(X) <= max
-
- - number_range
- allows a number in a range after it has been floored min < math.floor(X) <= max
-
- - player
- converts the input into a valid player
-
- - player_online
- converts the input to a player if the player is online
-
- - player_alive
- converts the input to a player if the player is online and alive
-
- - player_rank
- -online converts the input to a player if the player is a lower rank than the user and online
-
- - player_rank
- -online converts the input to a player if the player is a lower rank than the user and online
-
- - player_rank_alive
- converts the input to a player if the player is a lower rank than the user and online and alive
-
- - type
- string
- the type that the value should be
-
- - value
- the value that will be tested
-
- - ...
- any other data that can be passed to the function
-
-
-
-
-
-
- Usage:
- commands.validate[type](value,event,...)
-
-
-
-
-
-
-
- -
-
- error
-
- -
- Used as an error constant for validation
-
-
-
-
-
-
-
Usage:
-
-
-
- -
-
- data
-
- -
- Index of all command data
-
-
-
- - key
- string, table or event
- the command that will be returned: string is the name, table is the command data, event is event from add_command
-
-
-
-
-
-
- Usage:
-
- commands.command_name
- commands.data
-
-
-
-
-
-
-
-
-
-
generated by LDoc 1.4.6
-
Last updated 2018-06-07 12:58:23
-
-
-
diff --git a/doc/ldoc.css b/doc/ldoc.css
index 52c4ad2b..7d74ca23 100644
--- a/doc/ldoc.css
+++ b/doc/ldoc.css
@@ -28,6 +28,7 @@ del,ins {
text-decoration: none;
}
li {
+ list-style: disc;
margin-left: 20px;
}
caption,th {
@@ -87,7 +88,7 @@ em { font-style: italic;}
h1 {
font-size: 1.5em;
- margin: 20px 0 20px 0;
+ margin: 0 0 20px 0;
}
h2, h3, h4 { margin: 15px 0 10px 0; }
h2 { font-size: 1.25em; }
@@ -113,18 +114,24 @@ p.name {
padding-top: 1em;
}
+pre.example {
+ background-color: rgb(245, 245, 245);
+ border: 1px solid silver;
+ padding: 10px;
+ margin: 10px 0 10px 0;
+ font-family: "Andale Mono", monospace;
+ font-size: .85em;
+}
+
pre {
background-color: rgb(245, 245, 245);
- border: 1px solid #C0C0C0; /* silver */
+ border: 1px solid silver;
padding: 10px;
margin: 10px 0 10px 0;
overflow: auto;
font-family: "Andale Mono", monospace;
}
-pre.example {
- font-size: .85em;
-}
table.index { border: 1px #00007f; }
table.index td { text-align: left; vertical-align: top; }
@@ -284,7 +291,6 @@ a:target + * {
background-color: #FF9;
}
-
/* styles for prettification of source */
pre .comment { color: #558817; }
pre .constant { color: #a8660d; }
@@ -297,7 +303,5 @@ pre .number { color: #f8660d; }
pre .operator { color: #2239a8; font-weight: bold; }
pre .preprocessor, pre .prepro { color: #a33243; }
pre .global { color: #800080; }
-pre .user-keyword { color: #800080; }
pre .prompt { color: #558817; }
pre .url { color: #272fc2; text-decoration: underline; }
-
diff --git a/doc/modules/ExpGamingCore.Commands.html b/doc/modules/ExpGamingCore.Commands.html
deleted file mode 100644
index 14672de7..00000000
--- a/doc/modules/ExpGamingCore.Commands.html
+++ /dev/null
@@ -1,401 +0,0 @@
-
-
-
-