1 Year Ago
Saves Games MVP (#722) * Initial commit * Add support for SavedGames package meta using SavedGameSettings class * Start trying to show saved games in lobbies. Add simple project settings page * Add Metadata class (extend dictionary, add some methods so don't have to deal with JsonElement bs). * Add SavedGameCard, SavedGameRow and update SavedGames. Display them all. Move GetSavedGames to package(?) * Fixed paths * Simply page in project settings. Add map dependent option. * Automatically clear current saved game if selecting a different map * Update current map to one dictated by the current saved game * Add CachedSavedGame and GetSavedGame( string title ) * Invalidate cached saved games for a package when a game is saved * Some cleanup - don't cache (for now) * Use a file watcher and only update saved game file cache when a new one is added or removed * Remove unnecessary selection border * Clear current saved game selection when changing target gamemode * Auto update map lobby to saved game map if map dependent - alter SavedGames buildhash to rebuild if any saved game metadata changes * Rename * Early out of metadata is null (dont render) * Add MapPackage to condition * Auto update map when selecting Saved Game card regardless of if project is map dependent * Set correct map dependency value in saved games page at start * Automatically clear selected saved game if it is now invalid (version difference, doesnt exist) * Casing consistency * Some refactoring and allow lobby owner to specify a Target Saved Game Name in the Server Settings. Games can choose to use this hint when saving to decide on a save name * Fixed name * Auto format saved game file names * Use StringComparer.OrdinalIgnoreCase for Metadata class * Further refactor * Fix casing * SavedGame class. Merge .meta & .save. Remove option to set name of saved game in lobby. Other stuff. * Internal deserialize * Rename some methods to avoid confusion with the byte[] data * SetData methods that make sense * Throw an exception if trying to save a game with no data * Added SavedGame.Read and SavedGame.Write utility methods * Added SavedGame.GetFileName * Added SavedGame.Time (returns DateTime when it was last saved) * Remove unused using statements * Some PR changes