0.6.0
It wasn’t as simple as expected… But it works now!
You can load a normal world, and on the first save it will be converted into a .msa archive. From then on, whenever you try to load a world that has an archived version, that version will be loaded instead of the other one.
What’s changed:
- Fixed
VirtualFSincorrectly normalizing the root save path, which caused it to no longer match the paths built by the game itself, breaking file lookups everywhere. - Fixed
QueryEntriesnot sanitizing multi-level directory paths, which causedDirectory.GetFiles/GetDirectoriesto return nothing for nested folders (welds, anchors, etc.). - Fixed reconstructed paths mixing
/and\separators, which broke the game’s own string comparisons (e.g.RemoveOldFilesdeleting everything instead of only orphaned files). - Added patches for
DirectoryInfo/FileInfoinstance methods (GetFiles,GetDirectories,CreateSubdirectory,Exists), which weren’t covered by the staticFile/Directorypatches. - Simplified
VirtualFS‘s internal mode from three states (Idle/Capturing/Playback) down to two (Idle/Intercepting), since capture and playback behaved identically from the interception logic’s point of view. - Wrote the
Save()/LoadSave()coroutine wrappers that trigger the capture/playback cycle and commit/load the.msaarchive.
Progress so far:
- ✅ VFS (Virtual File System).
- ✅ Write the fake
System.IOfunctions. - ✅ Write/Read the
.msa(Mechanica Save Archive) file. - ✅ Intercepting the system functions.
- ✅ Write the triggers that will fire the capture/emission of virtual files.
- ❌ Add display/support for the new save format in the world selection menu.
- ❌ Add a config file, deinitialize the VFS on world exit, and other minor details/improvements (new)
- ❌ [Optional] Fix non-blocking base-game load/save errors that clutter the console. (new)
Comments 0
No comments yet. Be the first!
Sign in to join the conversation.