Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Savestate fixes #214

Draft
wants to merge 24 commits into
base: develop
Choose a base branch
from
Draft

Conversation

@ScribbleTAS
Copy link
Member Author

ScribbleTAS commented Jul 17, 2024

Writing this down so I don't forget:

  • The savestate applies the camera angle correctly, but the next tick resets it to the view before the savestate...
    -> set the camera values after a savestate...

The camera angle was omitted, when the previous tick or subtick was the same.
However, this creates huge problems with savestates.
Now, full ticks will always contain the camera angle, while subticks may be ommitted

- Added scheduling to savestate client packet handler
…estate

This happens when you load a savestate during playback.
To fix this, a new parameter was introduced to the serialiser called `processExtensions`.
Setting this to true will prevent loading metadata and filecommands
and only get the TickContainers out of the TASfile.
- Swapped yaw and pitch in InfoHud
- Trying to fix errors with the future task queue during loadstate
- Trying to fix a crash with a tickList being out of sync
@ScribbleTAS
Copy link
Member Author

ScribbleTAS commented Jul 27, 2024

More weirdness where savestates come from...

  • The server seems to store yaw and pitch the wrong way around?
  • The world is not loaded instantly after a savestate was loaded,
    causing the player to hang in the air for a moment which desyncs the savestate

@ScribbleTAS
Copy link
Member Author

ScribbleTAS commented Jul 28, 2024

Alright, timing issues seem mostly fixed and I did get the savestates to sync again...
I feel like I'm back at the point of Alpha9 again with the savestates...
Next up is the lovely task of fixing even more savestate bugs

  • Savestates crash when switching dimensions
    • Store ticklist entries when savestating
  • Motion is sometimes not correctly applied after loadstate

- [Events] Added EventWorldRead and EventWorldWrite
- Renamed ChunkHandler to SavestateWorldHandler
- Renamed PlayerHandler to SavestatePlayerHandler
- Renamed package "modules" to "handlers"
- Commented out KTRNG functionality
- Moved level saving methods to SavestateWorldHandler
- Added documentation
- Split Configuration into ConfigurationRegistry and the Configuration file,
which extends AbstractDataFile
- Made the ConfigurationRegistry private, so extension modders use their own config file
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment