IsaacSaveManager - v2.1.0
IsaacSaveManager - v2.1.0
Some additions and tweaks after having some time to test out many of the manager's features myself to be more flexible.
Additions:
- Add SaveManager.TryGetRun/Floor/RoomFloor/RoomSave(), where data will not be automatically created if it does not exist. Good for checking if data exists without unnecessarily creating data for everything.
- Add POST_DATA_SAVE and PRE_DATA_LOAD custom callbacks.
- If REPENTOGON is enabled, data can now be loaded when selecting a save file on the main menu. It's recommended to use the POST_DATA_LOAD callback for loading arbitrary save data so that your data is properly loaded per-save file.
- Added region comments inside the manager so that sections are collapsible.
Changes
- Change NoRerollSave to be the save that is reset instead of RerollSave for pickups when a pickup is rerolled. Think of it as RerollSave is the "Reroll persistent save" and NoRerollSave as "Not Reroll persistent save"
- All internal callbacks now use AddPriorityCallback instead of AddCallback. Loading data has an earlier priority while saving data has a later priority.
- The manager's PRE_GAME_EXIT callback now takes advantage of the "ShouldSave" argument. If exiting a game should not create a continuable save (such as when ending a run), all game data will be cleared out as if you were starting a new game. This of course does not affect arbitrary file data.
Fixes
- Fix slot data not initializing if REPENTOGON isn't enabled.
- Removed any loose print statements.
- roomFloor save data created within rooms from the goto command are treated like room saves, appropriately being removed when exiting the room.