Expand API classes exposed to modules #648
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
This pull request fixes some of the issues with code modules currently by exposing the new ECS classes as API classes, as well as the
GameOptions
class, which was omitted previously. It also fixes DestinationSol/warp#3 by wrapping theSaveManager
write methods withAccessController::doPrivileged
. The save read methods have not been wrapped, since having modules re-load the current world might be considered too destructive.Testing
warp
might start using theGameOptions
classWarp Endeavour
ship and ensure that the crash in Warp Endeavour ability causes game crash DestinationSol/warp#3 does not occur.Notes
ECS System classes have not been included as API classes, since I believe that the intention was for communication between systems to occur via components and events, rather than directly. I am open to changing this though.