[Savestates] Store EntityAI in savestates - #298
Merged
ScribbleTAS merged 28 commits intoOct 6, 2026
Merged
Conversation
ScribbleTAS
force-pushed
the
savestates/entity-ai
branch
from
July 12, 2026 19:25
ddae918 to
959c0fa
Compare
…tions ...rather than create new action objects entirely. This has the benefit of circumnavigating unserializable fields such as Predicates and Lambdas.
ScribbleTAS
force-pushed
the
savestates/entity-ai
branch
from
August 26, 2026 21:30
bee75b8 to
5947139
Compare
ScribbleTAS
force-pushed
the
savestates/entity-ai
branch
from
August 26, 2026 21:33
5947139 to
7a1d5f5
Compare
- Rename package entitysubstorage to just entity - Remove unnecessary accesswideners
- Add ability to register type adapters with an annotation - Generate superclasses seperately - Add tests
ScribbleTAS
force-pushed
the
savestates/entity-ai
branch
from
September 21, 2026 13:28
9389ed3 to
ef4bed3
Compare
ScribbleTAS
force-pushed
the
savestates/entity-ai
branch
from
September 28, 2026 19:57
be98710 to
0553709
Compare
- Add duplicate strategy to TypeAdapterGenerator for duplicate class names
ScribbleTAS
force-pushed
the
savestates/entity-ai
branch
from
October 5, 2026 20:49
7a72315 to
25bf7b4
Compare
ScribbleTAS
marked this pull request as ready for review
October 5, 2026 20:50
ScribbleTAS
force-pushed
the
savestates/entity-ai
branch
from
October 5, 2026 20:52
25bf7b4 to
730f626
Compare
Member
Author
|
Alright, I really tried, this is the best solution I could come up with... Custom Gson wrapper with a type adapter generator, so I don't have to type out each classes separately... RNG is still desyncing on savestates and I will probably have to fix this in the Entity itself, but right now most of the AI tasks should be serialised correctly. However the Ender Dragon is another can of worms. Let's not talk about the Ender dragon... |
Member
Author
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.

A big problem for TASing in general is the fact that entity AI is not stored in the world files... All entities will reset once a world is loaded, which makes savestates around entities very inaccurate. So much so, that the EntityRNG will desync between savestates.
To fix this, I would need to write custom serialisation for ~60 different classes, each doing something slightly different...
Not fancying that, so instead I employed the help of everyones least favourite json library gson!