Open BenCheung0422 opened 7 months ago
There should be no big problem when the codes are not in a mess.
Also, can you sure it can 100% work while it is not changed? It needs to be tidied up.
Now when more problems fix, it is now working. Revisions for initial worlds tested: 9a09f539, 862a2e58, 585fef3
HistoricLoad should now be completed.
I am still sceptical about changing this. LegacyLoad is fine as is all functions in it uses the old save format, and the current load file uses the new save format.
Actually no, there were bugs with the old LegacyLoad class after tests. One of them is the IndexOutOfBoundsException
with the rare corrupted worlds. Also, the current design of world loading classes and methods is not really safe and can easily crash. My version performs strict tests so that corrupted would not be loaded.
This depends on #610. It is well-known and obvious that both
Save
andLoad
, evenLegacyLoad
are messy and chaotic. I separate the part of version loading that is not indicated by versioning. With my investigation, world save versioning is added in 1.9.1, but save system is implemented earlier, which means there are certain versions that there are no version indicators. Then, I reorganize to check the history and to clearly write a new loading mechanism for it. Ideally, this method could be beneficial for all loading behaviour, but it is a kind of more works to do, and I do this is just for the part of #581. A on-demand auto data fixer is included.