Name: Modding Arc
Summary: Complete Modding support
Scope: Engine
Current Goal: Block Support Improvements
Phase: Implementation
Curator: Immortius
Related: Game Mode Config
The modding arc covers a range of improvements aimed at providing basic mod support without having to change the engine itself:
Block Support Improvements
Summary: Complete Modding support
Scope: Engine
Current Goal: Block Support Improvements
Phase: Implementation
Curator: Immortius
Related: Game Mode Config
The modding arc covers a range of improvements aimed at providing basic mod support without having to change the engine itself:
Block Support Improvements
Clean up the block format, reviewing and consolidating the existing optionsChange blocks and block families to be identified by a uri that includes source modMove block setup code out of groovy (maintainability)Remove the caching of the world tileset on disk, regenerate each time.Move block manifest into world manifest (fix the need to wipe save games on change)Move blocks to use a JSON formatChange block URIs to incorporate shapeAdd block categoriesImplement lazy initialisation of blocks- Add support for inlining prefabs (which can be used for extension information)
Add block definition inheritance- Move common information from Block to BlockFamily if sensible
Move some blocks into mods- Add HD block tile support?
- Documentation
Fix bootstrap process so that blocks and all other assets can be read from mod packagesAdd mod selection menu + configuration- Add mod dependency specification to modinfo.txt, use during build/check at runtime
Improve handling of type changes by entity persistence (auto conversion of similar types where possible e.g. int <-> float <-> double)Add some more types to be handled by entity persistence (e.g. sets)- Improve error reporting on mod load - in game prompt/logging
Add java code support to mods, specifically use of reflection to add component systems and the likeUpdate gradle build script to create subprojects for mods, and to compile mod code- Add sandboxing of mod code
- Some initial work on the mod api
- Move some code out of the engine and into mods.
- Could add support for a modified JSON format with some simplified syntax (commas optional, identifier not requiring quotes) and extra features (array size specification) - probably not worth it in the short term.