Release 0.0.8
Restore PlayState-level loading for level-owned assets
Revert the previous attempts to load several level-owned assets through
Game.Content or GameScene.Content instead of PlayState.Content.
Loading these assets through Game.Content caused disposed asset instances to be
reused across levels. Some cached assets, such as character templates, are
cleared and disposed when a level ends. Since Game.Content still considered them
loaded, later levels could receive the same already-disposed instances again.
Loading them through GameScene.Content was also unsafe, because character
templates, items, and physics entity templates then only lived for the scene in
which they were first loaded. This could leave later scenes without valid asset
instances after a scene transition, especially for dropped or spawned items.
It may also have contributed to multiplayer join crashes when the joining player
first loaded the initial scene of a level, then switched to the host's current
scene after the first scene had already been unloaded.
These assets are now loaded through PlayState.Content again, so their lifetime
matches the whole level rather than the global game instance or a single scene.
This may keep more assets alive during a level, but the existing memory
optimisations should still keep overall memory usage under control while avoiding
disposed or prematurely unloaded asset instances.