├── .github └── FUNDING.yml ├── CHANGELOG.md ├── CHANGELOG.md.meta ├── Carter Games.meta ├── Carter Games ├── Save Manager.meta └── Save Manager │ ├── Art.meta │ ├── Art │ ├── Editor.meta │ └── Editor │ │ ├── File Icons.meta │ │ ├── File Icons │ │ ├── T_SaveManager_DataFileIcon.png │ │ ├── T_SaveManager_DataFileIcon.png.meta │ │ ├── T_SaveManager_IndexFileIcon.png │ │ ├── T_SaveManager_IndexFileIcon.png.meta │ │ ├── T_SaveManager_KeyFileIcon.png │ │ ├── T_SaveManager_KeyFileIcon.png.meta │ │ ├── T_SaveManager_ProfilesFileIcon.png │ │ ├── T_SaveManager_ProfilesFileIcon.png.meta │ │ ├── T_SaveManager_ScriptFileIcon.png │ │ ├── T_SaveManager_ScriptFileIcon.png.meta │ │ ├── T_SaveManager_SettingsFileIcon.png │ │ └── T_SaveManager_SettingsFileIcon.png.meta │ │ ├── Icons.meta │ │ ├── Icons │ │ ├── Inspectors.meta │ │ ├── Inspectors │ │ │ ├── T_SaveManager_BookIcon.png │ │ │ ├── T_SaveManager_BookIcon.png.meta │ │ │ ├── T_SaveManager_CogIcon.png │ │ │ ├── T_SaveManager_CogIcon.png.meta │ │ │ ├── T_SaveManager_DataIcon.png │ │ │ ├── T_SaveManager_DataIcon.png.meta │ │ │ ├── T_SaveManager_KeyIcon.png │ │ │ └── T_SaveManager_KeyIcon.png.meta │ │ ├── Windows.meta │ │ └── Windows │ │ │ ├── T_SaveManager_SaveWhite.png │ │ │ └── T_SaveManager_SaveWhite.png.meta │ │ ├── Titles.meta │ │ └── Titles │ │ ├── T_SaveManager_CarterGamesBanner.png │ │ ├── T_SaveManager_CarterGamesBanner.png.meta │ │ ├── T_SaveManager_EditorWindow_EditorTabTitle.png │ │ ├── T_SaveManager_EditorWindow_EditorTabTitle.png.meta │ │ ├── T_SaveManager_EditorWindow_ProfilesTabTitle.png │ │ ├── T_SaveManager_EditorWindow_ProfilesTabTitle.png.meta │ │ ├── T_SaveManager_LogoIcon.png │ │ └── T_SaveManager_LogoIcon.png.meta │ ├── Code.meta │ ├── Code │ ├── Editor.meta │ ├── Editor │ │ ├── CarterGames.SaveManager.Editor.asmdef │ │ ├── CarterGames.SaveManager.Editor.asmdef.meta │ │ ├── Custom Editors.meta │ │ ├── Custom Editors │ │ │ ├── Inspectors.meta │ │ │ ├── Inspectors │ │ │ │ ├── EncryptionKeyEditor.cs │ │ │ │ ├── EncryptionKeyEditor.cs.meta │ │ │ │ ├── SaveDataEditor.cs │ │ │ │ ├── SaveDataEditor.cs.meta │ │ │ │ ├── SaveManagerAssetIndexInspector.cs │ │ │ │ ├── SaveManagerAssetIndexInspector.cs.meta │ │ │ │ ├── SaveObjectEditor.cs │ │ │ │ ├── SaveObjectEditor.cs.meta │ │ │ │ ├── SaveProfilesStoreEditor.cs │ │ │ │ ├── SaveProfilesStoreEditor.cs.meta │ │ │ │ ├── SettingsAssetRuntimeEditor.cs │ │ │ │ └── SettingsAssetRuntimeEditor.cs.meta │ │ │ ├── Property Drawers.meta │ │ │ ├── Property Drawers │ │ │ │ ├── SaveValuePropertyDrawer.cs │ │ │ │ └── SaveValuePropertyDrawer.cs.meta │ │ │ ├── Windows.meta │ │ │ └── Windows │ │ │ │ ├── Defaults Window.meta │ │ │ │ ├── Defaults Window │ │ │ │ ├── SaveDefaultsWindow.cs │ │ │ │ └── SaveDefaultsWindow.cs.meta │ │ │ │ ├── Editor Window.meta │ │ │ │ └── Editor Window │ │ │ │ ├── SaveManagerEditorWindow.cs │ │ │ │ ├── SaveManagerEditorWindow.cs.meta │ │ │ │ ├── Sub Windows.meta │ │ │ │ └── Sub Windows │ │ │ │ ├── EditorTab.cs │ │ │ │ ├── EditorTab.cs.meta │ │ │ │ ├── Profile Tab.meta │ │ │ │ └── Profile Tab │ │ │ │ ├── ProfileTab.cs │ │ │ │ ├── ProfileTab.cs.meta │ │ │ │ ├── SaveProfileCreatorGUI.cs │ │ │ │ ├── SaveProfileCreatorGUI.cs.meta │ │ │ │ ├── SaveProfileListGUI.cs │ │ │ │ └── SaveProfileListGUI.cs.meta │ │ ├── Info.meta │ │ ├── Info │ │ │ ├── AssetVersionData.cs │ │ │ └── AssetVersionData.cs.meta │ │ ├── Menus & Shortcuts.meta │ │ ├── Menus & Shortcuts │ │ │ ├── SaveManagerMenuItems.cs │ │ │ └── SaveManagerMenuItems.cs.meta │ │ ├── Settings Provider.meta │ │ ├── Settings Provider │ │ │ ├── SaveManagerSettingsProvider.cs │ │ │ └── SaveManagerSettingsProvider.cs.meta │ │ ├── Systems.meta │ │ ├── Systems │ │ │ ├── Asset Change Detection.meta │ │ │ ├── Asset Change Detection │ │ │ │ ├── AssetChangeDetection.cs │ │ │ │ └── AssetChangeDetection.cs.meta │ │ │ ├── Asset Index.meta │ │ │ ├── Asset Index │ │ │ │ ├── AssetIndexHandler.cs │ │ │ │ └── AssetIndexHandler.cs.meta │ │ │ ├── Attributes.meta │ │ │ ├── Attributes │ │ │ │ ├── SaveCategoryAttributeData.cs │ │ │ │ ├── SaveCategoryAttributeData.cs.meta │ │ │ │ ├── SaveCategoryAttributeHelper.cs │ │ │ │ └── SaveCategoryAttributeHelper.cs.meta │ │ │ ├── Build Handlers.meta │ │ │ ├── Build Handlers │ │ │ │ ├── BuildHandlerResetSaveObjects.cs │ │ │ │ └── BuildHandlerResetSaveObjects.cs.meta │ │ │ ├── Editor Cache.meta │ │ │ ├── Editor Cache │ │ │ │ ├── SaveManagerEditorCache.cs │ │ │ │ └── SaveManagerEditorCache.cs.meta │ │ │ ├── Initialize.meta │ │ │ ├── Initialize │ │ │ │ ├── AssetInitializer.cs │ │ │ │ ├── AssetInitializer.cs.meta │ │ │ │ ├── AssetReloadHandler.cs │ │ │ │ ├── AssetReloadHandler.cs.meta │ │ │ │ ├── IAssetEditorInitialize.cs │ │ │ │ ├── IAssetEditorInitialize.cs.meta │ │ │ │ ├── IAssetEditorReload.cs │ │ │ │ └── IAssetEditorReload.cs.meta │ │ │ ├── Save Object Generator.meta │ │ │ ├── Save Object Generator │ │ │ │ ├── SaveObjectGenerator.cs │ │ │ │ ├── SaveObjectGenerator.cs.meta │ │ │ │ ├── SaveObjectTemplate.txt │ │ │ │ └── SaveObjectTemplate.txt.meta │ │ │ ├── Save Profiles.meta │ │ │ ├── Save Profiles │ │ │ │ ├── SaveProfileManager.cs │ │ │ │ ├── SaveProfileManager.cs.meta │ │ │ │ ├── SaveProfilesStore.cs │ │ │ │ └── SaveProfilesStore.cs.meta │ │ │ ├── Version Validator.meta │ │ │ └── Version Validator │ │ │ │ ├── InstallMethodChecker.cs │ │ │ │ ├── InstallMethodChecker.cs.meta │ │ │ │ ├── VersionAutoCheck.cs │ │ │ │ ├── VersionAutoCheck.cs.meta │ │ │ │ ├── VersionChecker.cs │ │ │ │ ├── VersionChecker.cs.meta │ │ │ │ ├── VersionData.cs │ │ │ │ ├── VersionData.cs.meta │ │ │ │ ├── VersionEditorGUI.cs │ │ │ │ ├── VersionEditorGUI.cs.meta │ │ │ │ ├── VersionInfo.cs │ │ │ │ ├── VersionInfo.cs.meta │ │ │ │ ├── VersionNumber.cs │ │ │ │ ├── VersionNumber.cs.meta │ │ │ │ ├── VersionPacket.cs │ │ │ │ └── VersionPacket.cs.meta │ │ ├── Utility.meta │ │ └── Utility │ │ │ ├── Editor Method Aid.meta │ │ │ ├── Editor Method Aid │ │ │ ├── AssetDatabaseHelper.cs │ │ │ ├── AssetDatabaseHelper.cs.meta │ │ │ ├── SerializedPropertyHelper.cs │ │ │ └── SerializedPropertyHelper.cs.meta │ │ │ ├── Per User Settings.meta │ │ │ ├── Per User Settings │ │ │ ├── PerUserSettings.cs │ │ │ ├── PerUserSettings.cs.meta │ │ │ ├── SettingType.cs │ │ │ └── SettingType.cs.meta │ │ │ ├── Porting.meta │ │ │ ├── Porting │ │ │ ├── SaveManagerAssetPort.cs │ │ │ └── SaveManagerAssetPort.cs.meta │ │ │ ├── Scriptable Assets.meta │ │ │ ├── Scriptable Assets │ │ │ ├── Defenitions.meta │ │ │ ├── Defenitions │ │ │ │ ├── ScriptableAssetDefAssetIndex.cs │ │ │ │ ├── ScriptableAssetDefAssetIndex.cs.meta │ │ │ │ ├── ScriptableAssetDefEncryptionAsset.cs │ │ │ │ ├── ScriptableAssetDefEncryptionAsset.cs.meta │ │ │ │ ├── ScriptableAssetDefSaveData.cs │ │ │ │ ├── ScriptableAssetDefSaveData.cs.meta │ │ │ │ ├── ScriptableAssetDefSaveProfilesAsset.cs │ │ │ │ ├── ScriptableAssetDefSaveProfilesAsset.cs.meta │ │ │ │ ├── ScriptableAssetDefSettingsAsset.cs │ │ │ │ └── ScriptableAssetDefSettingsAsset.cs.meta │ │ │ ├── FileEditorUtil.cs │ │ │ ├── FileEditorUtil.cs.meta │ │ │ ├── Interfaces.meta │ │ │ ├── Interfaces │ │ │ │ ├── ILegacyAssetPort.cs │ │ │ │ ├── ILegacyAssetPort.cs.meta │ │ │ │ ├── IScriptableAssetDef.cs │ │ │ │ └── IScriptableAssetDef.cs.meta │ │ │ ├── ScriptableObjectInitialize.cs │ │ │ ├── ScriptableObjectInitialize.cs.meta │ │ │ ├── ScriptableRef.cs │ │ │ └── ScriptableRef.cs.meta │ │ │ ├── UtilEditor.cs │ │ │ └── UtilEditor.cs.meta │ ├── Runtime.meta │ └── Runtime │ │ ├── CarterGames.SaveManager.Runtime.asmdef │ │ ├── CarterGames.SaveManager.Runtime.asmdef.meta │ │ ├── Common.meta │ │ ├── Common │ │ ├── AssemblyHelper.cs │ │ ├── AssemblyHelper.cs.meta │ │ ├── CarterGames.SaveManager.Common.asmdef │ │ ├── CarterGames.SaveManager.Common.asmdef.meta │ │ ├── Evt.cs │ │ ├── Evt.cs.meta │ │ ├── Ref.cs │ │ └── Ref.cs.meta │ │ ├── Data.meta │ │ ├── Data │ │ ├── AssetAccessor.cs │ │ ├── AssetAccessor.cs.meta │ │ ├── AssetGlobalRuntimeSettings.cs │ │ ├── AssetGlobalRuntimeSettings.cs.meta │ │ ├── AssetIndex.cs │ │ ├── AssetIndex.cs.meta │ │ ├── EncryptionKeyAsset.cs │ │ ├── EncryptionKeyAsset.cs.meta │ │ ├── SaveManagerAsset.cs │ │ └── SaveManagerAsset.cs.meta │ │ ├── Extensions.meta │ │ ├── Extensions │ │ ├── SaveManagerExtensions.cs │ │ └── SaveManagerExtensions.cs.meta │ │ ├── Logger.meta │ │ ├── Logger │ │ ├── SaveManagerLogger.cs │ │ └── SaveManagerLogger.cs.meta │ │ ├── Save Data.meta │ │ ├── Save Data │ │ ├── Objects.meta │ │ ├── Objects │ │ │ ├── SaveObject.cs │ │ │ └── SaveObject.cs.meta │ │ ├── SaveData.cs │ │ ├── SaveData.cs.meta │ │ ├── Values.meta │ │ └── Values │ │ │ ├── SaveValue.cs │ │ │ ├── SaveValue.cs.meta │ │ │ ├── SaveValueBase.cs │ │ │ └── SaveValueBase.cs.meta │ │ ├── Save Listeners.meta │ │ ├── Save Listeners │ │ ├── ILoadListener.cs │ │ ├── ILoadListener.cs.meta │ │ ├── ISaveListener.cs │ │ └── ISaveListener.cs.meta │ │ ├── SaveManager.cs │ │ ├── SaveManager.cs.meta │ │ ├── Saving.meta │ │ ├── Saving │ │ ├── Automation.meta │ │ ├── Automation │ │ │ ├── AutoSave.cs │ │ │ └── AutoSave.cs.meta │ │ ├── Encryption.meta │ │ ├── Encryption │ │ │ ├── Data.meta │ │ │ ├── Data │ │ │ │ ├── EncryptionOption.cs │ │ │ │ └── EncryptionOption.cs.meta │ │ │ ├── EncryptionHandler.cs │ │ │ ├── EncryptionHandler.cs.meta │ │ │ ├── Handlers.meta │ │ │ └── Handlers │ │ │ │ ├── AesEncryption.cs │ │ │ │ ├── AesEncryption.cs.meta │ │ │ │ ├── IEncryptionHandler.cs │ │ │ │ └── IEncryptionHandler.cs.meta │ │ ├── Handlers.meta │ │ ├── Handlers │ │ │ ├── ILoadHandler.cs │ │ │ ├── ILoadHandler.cs.meta │ │ │ ├── StandardSaveHandler.cs │ │ │ ├── StandardSaveHandler.cs.meta │ │ │ ├── WebSaveHandler.cs │ │ │ └── WebSaveHandler.cs.meta │ │ ├── Serialization.meta │ │ └── Serialization │ │ │ ├── Dictionary.meta │ │ │ └── Dictionary │ │ │ ├── SerializableDictionary.cs │ │ │ ├── SerializableDictionary.cs.meta │ │ │ ├── SerializableKeyValuePair.cs │ │ │ └── SerializableKeyValuePair.cs.meta │ │ ├── Utility.meta │ │ └── Utility │ │ ├── Per User Settings Runtime.meta │ │ ├── Per User Settings Runtime │ │ ├── PerUserSettingsRuntime.cs │ │ └── PerUserSettingsRuntime.cs.meta │ │ ├── Perf Settings.meta │ │ ├── Perf Settings │ │ ├── PrefSetting.cs │ │ ├── PrefSetting.cs.meta │ │ ├── PrefUseOption.cs │ │ └── PrefUseOption.cs.meta │ │ ├── UtilRuntime.cs │ │ └── UtilRuntime.cs.meta │ ├── Demo.meta │ ├── Demo │ ├── Art.meta │ ├── Art │ │ ├── T_Demo_Circle_Outline_Thick.png │ │ ├── T_Demo_Circle_Outline_Thick.png.meta │ │ ├── T_Demo_SaveManagerLogo.png │ │ ├── T_Demo_SaveManagerLogo.png.meta │ │ ├── T_Demo_SaveMansger_Gradient.jpg │ │ └── T_Demo_SaveMansger_Gradient.jpg.meta │ ├── CarterGames.SaveManager.Demo.asmdef │ ├── CarterGames.SaveManager.Demo.asmdef.meta │ ├── Code.meta │ ├── Code │ │ ├── Runtime.meta │ │ └── Runtime │ │ │ ├── ExampleSaveObject.cs │ │ │ ├── ExampleSaveObject.cs.meta │ │ │ ├── ExampleSceneHandler.cs │ │ │ └── ExampleSceneHandler.cs.meta │ ├── Data.meta │ ├── Data │ │ ├── Example Save Object.asset │ │ └── Example Save Object.asset.meta │ ├── Scene.meta │ └── Scene │ │ ├── SaveManagerExampleScene.unity │ │ └── SaveManagerExampleScene.unity.meta │ ├── ~Documentation.meta │ └── ~Documentation │ ├── Save Manager Offline Documentation.pdf │ └── Save Manager Offline Documentation.pdf.meta ├── LICENSE ├── LICENSE.meta ├── README.md ├── README.md.meta ├── package.json └── package.json.meta /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2] 4 | patreon: # Replace with a single Patreon username 5 | open_collective: # Replace with a single Open Collective username 6 | ko_fi: cartergames # Replace with a single Ko-fi username 7 | tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel 8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry 9 | liberapay: # Replace with a single Liberapay username 10 | issuehunt: # Replace with a single IssueHunt username 11 | otechie: # Replace with a single Otechie username 12 | lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry 13 | custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] 14 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # 2.3.0 2 | ## Asset changes 3 | 4 | - New editor only save so the build save is in the normal location. 5 | - New save defaults setup that lets users assign defaults outside of constructors when creating save values. 6 | - Save defaults now apply when making a build to all save objects so builds don't have persistent data from editor saves. 7 | - New setting to see save defaults in the editor tab like save keys 8 | - New editor GUI on save objects to see default values. 9 | - Removed some older 2.0.x legacy issue fixers. 10 | - Removed some now redundant API bits. 11 | 12 | 13 | # 2.2.0 14 | ## Asset changes 15 | 16 | - Added support for git URL importing of the asset over .unityPackage. This is considered the recommended install method going forward for ease of updates etc. 17 | - Added porting tool to transfer user asset settings to the new location required for the git URL update. 18 | - Updated scriptable asset flow with the latest from the cart library which is more modular and easy to use on the backend. 19 | - Some additional helper classes for more performant editor operations from within the asset. -------------------------------------------------------------------------------- /CHANGELOG.md.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 04fbb2653bde40d68dce25537e636b84 3 | timeCreated: 1726417832 -------------------------------------------------------------------------------- /Carter Games.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 095444ce400fc0343809991319c4cc7e 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Carter Games/Save Manager.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3a5fd1648a350914da17fdf40d29cc2e 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Art.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 40ff82a4c0a81b9498ad8a863ceecc45 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Art/Editor.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7cbbbbf6d494bc04b8fcad42c9928b3e 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Art/Editor/File Icons.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a60439b0150256749be95b35a8410652 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Art/Editor/File Icons/T_SaveManager_DataFileIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CarterGames/SaveManager/341e066ac080efeedd05161c4423a04044bd91ac/Carter Games/Save Manager/Art/Editor/File Icons/T_SaveManager_DataFileIcon.png -------------------------------------------------------------------------------- /Carter Games/Save Manager/Art/Editor/File Icons/T_SaveManager_DataFileIcon.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8e118cc7ba999be40a60c63df1be4221 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 11 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 0 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | vTOnly: 0 27 | grayScaleToAlpha: 0 28 | generateCubemap: 6 29 | cubemapConvolution: 0 30 | seamlessCubemap: 0 31 | textureFormat: 1 32 | maxTextureSize: 2048 33 | textureSettings: 34 | serializedVersion: 2 35 | filterMode: -1 36 | aniso: 1 37 | mipBias: -100 38 | wrapU: 1 39 | wrapV: 1 40 | wrapW: -1 41 | nPOTScale: 0 42 | lightmap: 0 43 | compressionQuality: 50 44 | spriteMode: 0 45 | spriteExtrude: 1 46 | spriteMeshType: 1 47 | alignment: 0 48 | spritePivot: {x: 0.5, y: 0.5} 49 | spritePixelsToUnits: 100 50 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 51 | spriteGenerateFallbackPhysicsShape: 1 52 | alphaUsage: 1 53 | alphaIsTransparency: 1 54 | spriteTessellationDetail: -1 55 | textureType: 2 56 | textureShape: 1 57 | singleChannelComponent: 0 58 | flipbookRows: 1 59 | flipbookColumns: 1 60 | maxTextureSizeSet: 0 61 | compressionQualitySet: 0 62 | textureFormatSet: 0 63 | ignorePngGamma: 0 64 | applyGammaDecoding: 0 65 | platformSettings: 66 | - serializedVersion: 3 67 | buildTarget: DefaultTexturePlatform 68 | maxTextureSize: 256 69 | resizeAlgorithm: 0 70 | textureFormat: -1 71 | textureCompression: 1 72 | compressionQuality: 50 73 | crunchedCompression: 1 74 | allowsAlphaSplitting: 0 75 | overridden: 0 76 | androidETC2FallbackOverride: 0 77 | forceMaximumCompressionQuality_BC6H_BC7: 0 78 | - serializedVersion: 3 79 | buildTarget: Standalone 80 | maxTextureSize: 256 81 | resizeAlgorithm: 0 82 | textureFormat: -1 83 | textureCompression: 1 84 | compressionQuality: 50 85 | crunchedCompression: 1 86 | allowsAlphaSplitting: 0 87 | overridden: 0 88 | androidETC2FallbackOverride: 0 89 | forceMaximumCompressionQuality_BC6H_BC7: 0 90 | - serializedVersion: 3 91 | buildTarget: Android 92 | maxTextureSize: 256 93 | resizeAlgorithm: 0 94 | textureFormat: -1 95 | textureCompression: 1 96 | compressionQuality: 50 97 | crunchedCompression: 1 98 | allowsAlphaSplitting: 0 99 | overridden: 0 100 | androidETC2FallbackOverride: 0 101 | forceMaximumCompressionQuality_BC6H_BC7: 0 102 | - serializedVersion: 3 103 | buildTarget: WebGL 104 | maxTextureSize: 256 105 | resizeAlgorithm: 0 106 | textureFormat: -1 107 | textureCompression: 1 108 | compressionQuality: 50 109 | crunchedCompression: 1 110 | allowsAlphaSplitting: 0 111 | overridden: 0 112 | androidETC2FallbackOverride: 0 113 | forceMaximumCompressionQuality_BC6H_BC7: 0 114 | spriteSheet: 115 | serializedVersion: 2 116 | sprites: [] 117 | outline: [] 118 | physicsShape: [] 119 | bones: [] 120 | spriteID: 121 | internalID: 0 122 | vertices: [] 123 | indices: 124 | edges: [] 125 | weights: [] 126 | secondaryTextures: [] 127 | spritePackingTag: 128 | pSDRemoveMatte: 0 129 | pSDShowRemoveMatteOption: 0 130 | userData: 131 | assetBundleName: 132 | assetBundleVariant: 133 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Art/Editor/File Icons/T_SaveManager_IndexFileIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CarterGames/SaveManager/341e066ac080efeedd05161c4423a04044bd91ac/Carter Games/Save Manager/Art/Editor/File Icons/T_SaveManager_IndexFileIcon.png -------------------------------------------------------------------------------- /Carter Games/Save Manager/Art/Editor/File Icons/T_SaveManager_KeyFileIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CarterGames/SaveManager/341e066ac080efeedd05161c4423a04044bd91ac/Carter Games/Save Manager/Art/Editor/File Icons/T_SaveManager_KeyFileIcon.png -------------------------------------------------------------------------------- /Carter Games/Save Manager/Art/Editor/File Icons/T_SaveManager_KeyFileIcon.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3af013d337e16964d8ef4276a3bf3e96 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 11 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 0 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | vTOnly: 0 27 | grayScaleToAlpha: 0 28 | generateCubemap: 6 29 | cubemapConvolution: 0 30 | seamlessCubemap: 0 31 | textureFormat: 1 32 | maxTextureSize: 2048 33 | textureSettings: 34 | serializedVersion: 2 35 | filterMode: -1 36 | aniso: 1 37 | mipBias: -100 38 | wrapU: 1 39 | wrapV: 1 40 | wrapW: -1 41 | nPOTScale: 0 42 | lightmap: 0 43 | compressionQuality: 50 44 | spriteMode: 0 45 | spriteExtrude: 1 46 | spriteMeshType: 1 47 | alignment: 0 48 | spritePivot: {x: 0.5, y: 0.5} 49 | spritePixelsToUnits: 100 50 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 51 | spriteGenerateFallbackPhysicsShape: 1 52 | alphaUsage: 1 53 | alphaIsTransparency: 1 54 | spriteTessellationDetail: -1 55 | textureType: 2 56 | textureShape: 1 57 | singleChannelComponent: 0 58 | flipbookRows: 1 59 | flipbookColumns: 1 60 | maxTextureSizeSet: 0 61 | compressionQualitySet: 0 62 | textureFormatSet: 0 63 | ignorePngGamma: 0 64 | applyGammaDecoding: 0 65 | platformSettings: 66 | - serializedVersion: 3 67 | buildTarget: DefaultTexturePlatform 68 | maxTextureSize: 256 69 | resizeAlgorithm: 0 70 | textureFormat: -1 71 | textureCompression: 1 72 | compressionQuality: 50 73 | crunchedCompression: 1 74 | allowsAlphaSplitting: 0 75 | overridden: 0 76 | androidETC2FallbackOverride: 0 77 | forceMaximumCompressionQuality_BC6H_BC7: 0 78 | - serializedVersion: 3 79 | buildTarget: Standalone 80 | maxTextureSize: 256 81 | resizeAlgorithm: 0 82 | textureFormat: -1 83 | textureCompression: 1 84 | compressionQuality: 50 85 | crunchedCompression: 1 86 | allowsAlphaSplitting: 0 87 | overridden: 0 88 | androidETC2FallbackOverride: 0 89 | forceMaximumCompressionQuality_BC6H_BC7: 0 90 | - serializedVersion: 3 91 | buildTarget: Android 92 | maxTextureSize: 256 93 | resizeAlgorithm: 0 94 | textureFormat: -1 95 | textureCompression: 1 96 | compressionQuality: 50 97 | crunchedCompression: 1 98 | allowsAlphaSplitting: 0 99 | overridden: 0 100 | androidETC2FallbackOverride: 0 101 | forceMaximumCompressionQuality_BC6H_BC7: 0 102 | - serializedVersion: 3 103 | buildTarget: WebGL 104 | maxTextureSize: 256 105 | resizeAlgorithm: 0 106 | textureFormat: -1 107 | textureCompression: 1 108 | compressionQuality: 50 109 | crunchedCompression: 1 110 | allowsAlphaSplitting: 0 111 | overridden: 0 112 | androidETC2FallbackOverride: 0 113 | forceMaximumCompressionQuality_BC6H_BC7: 0 114 | spriteSheet: 115 | serializedVersion: 2 116 | sprites: [] 117 | outline: [] 118 | physicsShape: [] 119 | bones: [] 120 | spriteID: 121 | internalID: 0 122 | vertices: [] 123 | indices: 124 | edges: [] 125 | weights: [] 126 | secondaryTextures: [] 127 | spritePackingTag: 128 | pSDRemoveMatte: 0 129 | pSDShowRemoveMatteOption: 0 130 | userData: 131 | assetBundleName: 132 | assetBundleVariant: 133 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Art/Editor/File Icons/T_SaveManager_ProfilesFileIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CarterGames/SaveManager/341e066ac080efeedd05161c4423a04044bd91ac/Carter Games/Save Manager/Art/Editor/File Icons/T_SaveManager_ProfilesFileIcon.png -------------------------------------------------------------------------------- /Carter Games/Save Manager/Art/Editor/File Icons/T_SaveManager_ScriptFileIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CarterGames/SaveManager/341e066ac080efeedd05161c4423a04044bd91ac/Carter Games/Save Manager/Art/Editor/File Icons/T_SaveManager_ScriptFileIcon.png -------------------------------------------------------------------------------- /Carter Games/Save Manager/Art/Editor/File Icons/T_SaveManager_SettingsFileIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CarterGames/SaveManager/341e066ac080efeedd05161c4423a04044bd91ac/Carter Games/Save Manager/Art/Editor/File Icons/T_SaveManager_SettingsFileIcon.png -------------------------------------------------------------------------------- /Carter Games/Save Manager/Art/Editor/Icons.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a6cdc41e123d27c44ab368aa9d795156 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Art/Editor/Icons/Inspectors.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b5449caf68ffdb849b16231e6c5b8ed6 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Art/Editor/Icons/Inspectors/T_SaveManager_BookIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CarterGames/SaveManager/341e066ac080efeedd05161c4423a04044bd91ac/Carter Games/Save Manager/Art/Editor/Icons/Inspectors/T_SaveManager_BookIcon.png -------------------------------------------------------------------------------- /Carter Games/Save Manager/Art/Editor/Icons/Inspectors/T_SaveManager_BookIcon.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: fd0f8d7a13e1c8346a57391eea6fdda9 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 11 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 0 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | vTOnly: 0 27 | grayScaleToAlpha: 0 28 | generateCubemap: 6 29 | cubemapConvolution: 0 30 | seamlessCubemap: 0 31 | textureFormat: 1 32 | maxTextureSize: 2048 33 | textureSettings: 34 | serializedVersion: 2 35 | filterMode: -1 36 | aniso: 1 37 | mipBias: -100 38 | wrapU: 1 39 | wrapV: 1 40 | wrapW: -1 41 | nPOTScale: 0 42 | lightmap: 0 43 | compressionQuality: 50 44 | spriteMode: 0 45 | spriteExtrude: 1 46 | spriteMeshType: 1 47 | alignment: 0 48 | spritePivot: {x: 0.5, y: 0.5} 49 | spritePixelsToUnits: 100 50 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 51 | spriteGenerateFallbackPhysicsShape: 1 52 | alphaUsage: 1 53 | alphaIsTransparency: 1 54 | spriteTessellationDetail: -1 55 | textureType: 2 56 | textureShape: 1 57 | singleChannelComponent: 0 58 | flipbookRows: 1 59 | flipbookColumns: 1 60 | maxTextureSizeSet: 0 61 | compressionQualitySet: 0 62 | textureFormatSet: 0 63 | ignorePngGamma: 0 64 | applyGammaDecoding: 0 65 | platformSettings: 66 | - serializedVersion: 3 67 | buildTarget: DefaultTexturePlatform 68 | maxTextureSize: 256 69 | resizeAlgorithm: 0 70 | textureFormat: -1 71 | textureCompression: 1 72 | compressionQuality: 50 73 | crunchedCompression: 1 74 | allowsAlphaSplitting: 0 75 | overridden: 0 76 | androidETC2FallbackOverride: 0 77 | forceMaximumCompressionQuality_BC6H_BC7: 0 78 | - serializedVersion: 3 79 | buildTarget: Standalone 80 | maxTextureSize: 256 81 | resizeAlgorithm: 0 82 | textureFormat: -1 83 | textureCompression: 1 84 | compressionQuality: 50 85 | crunchedCompression: 1 86 | allowsAlphaSplitting: 0 87 | overridden: 0 88 | androidETC2FallbackOverride: 0 89 | forceMaximumCompressionQuality_BC6H_BC7: 0 90 | - serializedVersion: 3 91 | buildTarget: WebGL 92 | maxTextureSize: 256 93 | resizeAlgorithm: 0 94 | textureFormat: -1 95 | textureCompression: 1 96 | compressionQuality: 50 97 | crunchedCompression: 1 98 | allowsAlphaSplitting: 0 99 | overridden: 0 100 | androidETC2FallbackOverride: 0 101 | forceMaximumCompressionQuality_BC6H_BC7: 0 102 | spriteSheet: 103 | serializedVersion: 2 104 | sprites: [] 105 | outline: [] 106 | physicsShape: [] 107 | bones: [] 108 | spriteID: 109 | internalID: 0 110 | vertices: [] 111 | indices: 112 | edges: [] 113 | weights: [] 114 | secondaryTextures: [] 115 | spritePackingTag: 116 | pSDRemoveMatte: 0 117 | pSDShowRemoveMatteOption: 0 118 | userData: 119 | assetBundleName: 120 | assetBundleVariant: 121 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Art/Editor/Icons/Inspectors/T_SaveManager_CogIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CarterGames/SaveManager/341e066ac080efeedd05161c4423a04044bd91ac/Carter Games/Save Manager/Art/Editor/Icons/Inspectors/T_SaveManager_CogIcon.png -------------------------------------------------------------------------------- /Carter Games/Save Manager/Art/Editor/Icons/Inspectors/T_SaveManager_CogIcon.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6dfe934ed638cfd43a3ae06924c35d3e 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 11 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 0 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | vTOnly: 0 27 | grayScaleToAlpha: 0 28 | generateCubemap: 6 29 | cubemapConvolution: 0 30 | seamlessCubemap: 0 31 | textureFormat: 1 32 | maxTextureSize: 2048 33 | textureSettings: 34 | serializedVersion: 2 35 | filterMode: -1 36 | aniso: 1 37 | mipBias: -100 38 | wrapU: 1 39 | wrapV: 1 40 | wrapW: -1 41 | nPOTScale: 0 42 | lightmap: 0 43 | compressionQuality: 50 44 | spriteMode: 0 45 | spriteExtrude: 1 46 | spriteMeshType: 1 47 | alignment: 0 48 | spritePivot: {x: 0.5, y: 0.5} 49 | spritePixelsToUnits: 100 50 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 51 | spriteGenerateFallbackPhysicsShape: 1 52 | alphaUsage: 1 53 | alphaIsTransparency: 1 54 | spriteTessellationDetail: -1 55 | textureType: 2 56 | textureShape: 1 57 | singleChannelComponent: 0 58 | flipbookRows: 1 59 | flipbookColumns: 1 60 | maxTextureSizeSet: 0 61 | compressionQualitySet: 0 62 | textureFormatSet: 0 63 | ignorePngGamma: 0 64 | applyGammaDecoding: 0 65 | platformSettings: 66 | - serializedVersion: 3 67 | buildTarget: DefaultTexturePlatform 68 | maxTextureSize: 512 69 | resizeAlgorithm: 0 70 | textureFormat: -1 71 | textureCompression: 1 72 | compressionQuality: 50 73 | crunchedCompression: 1 74 | allowsAlphaSplitting: 0 75 | overridden: 0 76 | androidETC2FallbackOverride: 0 77 | forceMaximumCompressionQuality_BC6H_BC7: 0 78 | - serializedVersion: 3 79 | buildTarget: Standalone 80 | maxTextureSize: 512 81 | resizeAlgorithm: 0 82 | textureFormat: -1 83 | textureCompression: 1 84 | compressionQuality: 50 85 | crunchedCompression: 1 86 | allowsAlphaSplitting: 0 87 | overridden: 0 88 | androidETC2FallbackOverride: 0 89 | forceMaximumCompressionQuality_BC6H_BC7: 0 90 | spriteSheet: 91 | serializedVersion: 2 92 | sprites: [] 93 | outline: [] 94 | physicsShape: [] 95 | bones: [] 96 | spriteID: 97 | internalID: 0 98 | vertices: [] 99 | indices: 100 | edges: [] 101 | weights: [] 102 | secondaryTextures: [] 103 | spritePackingTag: 104 | pSDRemoveMatte: 0 105 | pSDShowRemoveMatteOption: 0 106 | userData: 107 | assetBundleName: 108 | assetBundleVariant: 109 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Art/Editor/Icons/Inspectors/T_SaveManager_DataIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CarterGames/SaveManager/341e066ac080efeedd05161c4423a04044bd91ac/Carter Games/Save Manager/Art/Editor/Icons/Inspectors/T_SaveManager_DataIcon.png -------------------------------------------------------------------------------- /Carter Games/Save Manager/Art/Editor/Icons/Inspectors/T_SaveManager_DataIcon.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1f4d248749fddbb449f05c1c3e07b322 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 11 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 0 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | vTOnly: 0 27 | grayScaleToAlpha: 0 28 | generateCubemap: 6 29 | cubemapConvolution: 0 30 | seamlessCubemap: 0 31 | textureFormat: 1 32 | maxTextureSize: 2048 33 | textureSettings: 34 | serializedVersion: 2 35 | filterMode: -1 36 | aniso: 1 37 | mipBias: -100 38 | wrapU: 1 39 | wrapV: 1 40 | wrapW: -1 41 | nPOTScale: 0 42 | lightmap: 0 43 | compressionQuality: 50 44 | spriteMode: 0 45 | spriteExtrude: 1 46 | spriteMeshType: 1 47 | alignment: 0 48 | spritePivot: {x: 0.5, y: 0.5} 49 | spritePixelsToUnits: 100 50 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 51 | spriteGenerateFallbackPhysicsShape: 1 52 | alphaUsage: 1 53 | alphaIsTransparency: 1 54 | spriteTessellationDetail: -1 55 | textureType: 2 56 | textureShape: 1 57 | singleChannelComponent: 0 58 | flipbookRows: 1 59 | flipbookColumns: 1 60 | maxTextureSizeSet: 0 61 | compressionQualitySet: 0 62 | textureFormatSet: 0 63 | ignorePngGamma: 0 64 | applyGammaDecoding: 0 65 | platformSettings: 66 | - serializedVersion: 3 67 | buildTarget: DefaultTexturePlatform 68 | maxTextureSize: 256 69 | resizeAlgorithm: 0 70 | textureFormat: -1 71 | textureCompression: 1 72 | compressionQuality: 50 73 | crunchedCompression: 1 74 | allowsAlphaSplitting: 0 75 | overridden: 0 76 | androidETC2FallbackOverride: 0 77 | forceMaximumCompressionQuality_BC6H_BC7: 0 78 | - serializedVersion: 3 79 | buildTarget: Standalone 80 | maxTextureSize: 256 81 | resizeAlgorithm: 0 82 | textureFormat: -1 83 | textureCompression: 1 84 | compressionQuality: 50 85 | crunchedCompression: 1 86 | allowsAlphaSplitting: 0 87 | overridden: 0 88 | androidETC2FallbackOverride: 0 89 | forceMaximumCompressionQuality_BC6H_BC7: 0 90 | - serializedVersion: 3 91 | buildTarget: WebGL 92 | maxTextureSize: 256 93 | resizeAlgorithm: 0 94 | textureFormat: -1 95 | textureCompression: 1 96 | compressionQuality: 50 97 | crunchedCompression: 1 98 | allowsAlphaSplitting: 0 99 | overridden: 0 100 | androidETC2FallbackOverride: 0 101 | forceMaximumCompressionQuality_BC6H_BC7: 0 102 | spriteSheet: 103 | serializedVersion: 2 104 | sprites: [] 105 | outline: [] 106 | physicsShape: [] 107 | bones: [] 108 | spriteID: 109 | internalID: 0 110 | vertices: [] 111 | indices: 112 | edges: [] 113 | weights: [] 114 | secondaryTextures: [] 115 | spritePackingTag: 116 | pSDRemoveMatte: 0 117 | pSDShowRemoveMatteOption: 0 118 | userData: 119 | assetBundleName: 120 | assetBundleVariant: 121 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Art/Editor/Icons/Inspectors/T_SaveManager_KeyIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CarterGames/SaveManager/341e066ac080efeedd05161c4423a04044bd91ac/Carter Games/Save Manager/Art/Editor/Icons/Inspectors/T_SaveManager_KeyIcon.png -------------------------------------------------------------------------------- /Carter Games/Save Manager/Art/Editor/Icons/Inspectors/T_SaveManager_KeyIcon.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 71693c469f12aea4a8b153460665895d 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 11 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 0 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | vTOnly: 0 27 | grayScaleToAlpha: 0 28 | generateCubemap: 6 29 | cubemapConvolution: 0 30 | seamlessCubemap: 0 31 | textureFormat: 1 32 | maxTextureSize: 2048 33 | textureSettings: 34 | serializedVersion: 2 35 | filterMode: -1 36 | aniso: 1 37 | mipBias: -100 38 | wrapU: 1 39 | wrapV: 1 40 | wrapW: -1 41 | nPOTScale: 0 42 | lightmap: 0 43 | compressionQuality: 50 44 | spriteMode: 0 45 | spriteExtrude: 1 46 | spriteMeshType: 1 47 | alignment: 0 48 | spritePivot: {x: 0.5, y: 0.5} 49 | spritePixelsToUnits: 100 50 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 51 | spriteGenerateFallbackPhysicsShape: 1 52 | alphaUsage: 1 53 | alphaIsTransparency: 1 54 | spriteTessellationDetail: -1 55 | textureType: 2 56 | textureShape: 1 57 | singleChannelComponent: 0 58 | flipbookRows: 1 59 | flipbookColumns: 1 60 | maxTextureSizeSet: 0 61 | compressionQualitySet: 0 62 | textureFormatSet: 0 63 | ignorePngGamma: 0 64 | applyGammaDecoding: 0 65 | platformSettings: 66 | - serializedVersion: 3 67 | buildTarget: DefaultTexturePlatform 68 | maxTextureSize: 256 69 | resizeAlgorithm: 0 70 | textureFormat: -1 71 | textureCompression: 1 72 | compressionQuality: 50 73 | crunchedCompression: 1 74 | allowsAlphaSplitting: 0 75 | overridden: 0 76 | androidETC2FallbackOverride: 0 77 | forceMaximumCompressionQuality_BC6H_BC7: 0 78 | - serializedVersion: 3 79 | buildTarget: Standalone 80 | maxTextureSize: 256 81 | resizeAlgorithm: 0 82 | textureFormat: -1 83 | textureCompression: 1 84 | compressionQuality: 50 85 | crunchedCompression: 1 86 | allowsAlphaSplitting: 0 87 | overridden: 0 88 | androidETC2FallbackOverride: 0 89 | forceMaximumCompressionQuality_BC6H_BC7: 0 90 | - serializedVersion: 3 91 | buildTarget: WebGL 92 | maxTextureSize: 256 93 | resizeAlgorithm: 0 94 | textureFormat: -1 95 | textureCompression: 1 96 | compressionQuality: 50 97 | crunchedCompression: 1 98 | allowsAlphaSplitting: 0 99 | overridden: 0 100 | androidETC2FallbackOverride: 0 101 | forceMaximumCompressionQuality_BC6H_BC7: 0 102 | spriteSheet: 103 | serializedVersion: 2 104 | sprites: [] 105 | outline: [] 106 | physicsShape: [] 107 | bones: [] 108 | spriteID: 109 | internalID: 0 110 | vertices: [] 111 | indices: 112 | edges: [] 113 | weights: [] 114 | secondaryTextures: [] 115 | spritePackingTag: 116 | pSDRemoveMatte: 0 117 | pSDShowRemoveMatteOption: 0 118 | userData: 119 | assetBundleName: 120 | assetBundleVariant: 121 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Art/Editor/Icons/Windows.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 75b89c3d51844124db2f1cc9f2e2a7ce 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Art/Editor/Icons/Windows/T_SaveManager_SaveWhite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CarterGames/SaveManager/341e066ac080efeedd05161c4423a04044bd91ac/Carter Games/Save Manager/Art/Editor/Icons/Windows/T_SaveManager_SaveWhite.png -------------------------------------------------------------------------------- /Carter Games/Save Manager/Art/Editor/Icons/Windows/T_SaveManager_SaveWhite.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9089e7ad0583fa948b30eb8ef6b00ae3 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 11 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 0 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | vTOnly: 0 27 | grayScaleToAlpha: 0 28 | generateCubemap: 6 29 | cubemapConvolution: 0 30 | seamlessCubemap: 0 31 | textureFormat: 1 32 | maxTextureSize: 2048 33 | textureSettings: 34 | serializedVersion: 2 35 | filterMode: -1 36 | aniso: 1 37 | mipBias: -100 38 | wrapU: 1 39 | wrapV: 1 40 | wrapW: -1 41 | nPOTScale: 0 42 | lightmap: 0 43 | compressionQuality: 50 44 | spriteMode: 0 45 | spriteExtrude: 1 46 | spriteMeshType: 1 47 | alignment: 0 48 | spritePivot: {x: 0.5, y: 0.5} 49 | spritePixelsToUnits: 100 50 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 51 | spriteGenerateFallbackPhysicsShape: 1 52 | alphaUsage: 1 53 | alphaIsTransparency: 1 54 | spriteTessellationDetail: -1 55 | textureType: 2 56 | textureShape: 1 57 | singleChannelComponent: 0 58 | flipbookRows: 1 59 | flipbookColumns: 1 60 | maxTextureSizeSet: 0 61 | compressionQualitySet: 0 62 | textureFormatSet: 0 63 | ignorePngGamma: 0 64 | applyGammaDecoding: 0 65 | platformSettings: 66 | - serializedVersion: 3 67 | buildTarget: DefaultTexturePlatform 68 | maxTextureSize: 128 69 | resizeAlgorithm: 0 70 | textureFormat: -1 71 | textureCompression: 1 72 | compressionQuality: 50 73 | crunchedCompression: 1 74 | allowsAlphaSplitting: 0 75 | overridden: 0 76 | androidETC2FallbackOverride: 0 77 | forceMaximumCompressionQuality_BC6H_BC7: 0 78 | - serializedVersion: 3 79 | buildTarget: Standalone 80 | maxTextureSize: 128 81 | resizeAlgorithm: 0 82 | textureFormat: -1 83 | textureCompression: 1 84 | compressionQuality: 50 85 | crunchedCompression: 1 86 | allowsAlphaSplitting: 0 87 | overridden: 0 88 | androidETC2FallbackOverride: 0 89 | forceMaximumCompressionQuality_BC6H_BC7: 0 90 | spriteSheet: 91 | serializedVersion: 2 92 | sprites: [] 93 | outline: [] 94 | physicsShape: [] 95 | bones: [] 96 | spriteID: 97 | internalID: 0 98 | vertices: [] 99 | indices: 100 | edges: [] 101 | weights: [] 102 | secondaryTextures: [] 103 | spritePackingTag: 104 | pSDRemoveMatte: 0 105 | pSDShowRemoveMatteOption: 0 106 | userData: 107 | assetBundleName: 108 | assetBundleVariant: 109 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Art/Editor/Titles.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f783b5280eb38f2469750635428a5a1d 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Art/Editor/Titles/T_SaveManager_CarterGamesBanner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CarterGames/SaveManager/341e066ac080efeedd05161c4423a04044bd91ac/Carter Games/Save Manager/Art/Editor/Titles/T_SaveManager_CarterGamesBanner.png -------------------------------------------------------------------------------- /Carter Games/Save Manager/Art/Editor/Titles/T_SaveManager_CarterGamesBanner.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b31b96cfb11e65746892289cc96ce981 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 11 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 0 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | vTOnly: 0 27 | grayScaleToAlpha: 0 28 | generateCubemap: 6 29 | cubemapConvolution: 0 30 | seamlessCubemap: 0 31 | textureFormat: 1 32 | maxTextureSize: 2048 33 | textureSettings: 34 | serializedVersion: 2 35 | filterMode: -1 36 | aniso: 1 37 | mipBias: -100 38 | wrapU: 1 39 | wrapV: 1 40 | wrapW: -1 41 | nPOTScale: 0 42 | lightmap: 0 43 | compressionQuality: 50 44 | spriteMode: 0 45 | spriteExtrude: 1 46 | spriteMeshType: 1 47 | alignment: 0 48 | spritePivot: {x: 0.5, y: 0.5} 49 | spritePixelsToUnits: 100 50 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 51 | spriteGenerateFallbackPhysicsShape: 1 52 | alphaUsage: 1 53 | alphaIsTransparency: 1 54 | spriteTessellationDetail: -1 55 | textureType: 2 56 | textureShape: 1 57 | singleChannelComponent: 0 58 | flipbookRows: 1 59 | flipbookColumns: 1 60 | maxTextureSizeSet: 0 61 | compressionQualitySet: 0 62 | textureFormatSet: 0 63 | ignorePngGamma: 0 64 | applyGammaDecoding: 0 65 | platformSettings: 66 | - serializedVersion: 3 67 | buildTarget: DefaultTexturePlatform 68 | maxTextureSize: 512 69 | resizeAlgorithm: 0 70 | textureFormat: -1 71 | textureCompression: 1 72 | compressionQuality: 50 73 | crunchedCompression: 1 74 | allowsAlphaSplitting: 0 75 | overridden: 0 76 | androidETC2FallbackOverride: 0 77 | forceMaximumCompressionQuality_BC6H_BC7: 0 78 | - serializedVersion: 3 79 | buildTarget: Standalone 80 | maxTextureSize: 512 81 | resizeAlgorithm: 0 82 | textureFormat: -1 83 | textureCompression: 1 84 | compressionQuality: 50 85 | crunchedCompression: 1 86 | allowsAlphaSplitting: 0 87 | overridden: 0 88 | androidETC2FallbackOverride: 0 89 | forceMaximumCompressionQuality_BC6H_BC7: 0 90 | spriteSheet: 91 | serializedVersion: 2 92 | sprites: [] 93 | outline: [] 94 | physicsShape: [] 95 | bones: [] 96 | spriteID: 97 | internalID: 0 98 | vertices: [] 99 | indices: 100 | edges: [] 101 | weights: [] 102 | secondaryTextures: [] 103 | spritePackingTag: 104 | pSDRemoveMatte: 0 105 | pSDShowRemoveMatteOption: 0 106 | userData: 107 | assetBundleName: 108 | assetBundleVariant: 109 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Art/Editor/Titles/T_SaveManager_EditorWindow_EditorTabTitle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CarterGames/SaveManager/341e066ac080efeedd05161c4423a04044bd91ac/Carter Games/Save Manager/Art/Editor/Titles/T_SaveManager_EditorWindow_EditorTabTitle.png -------------------------------------------------------------------------------- /Carter Games/Save Manager/Art/Editor/Titles/T_SaveManager_EditorWindow_EditorTabTitle.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b6164ad59ba6bfa4bbaf7504a36dd62d 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 11 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 0 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | vTOnly: 0 27 | grayScaleToAlpha: 0 28 | generateCubemap: 6 29 | cubemapConvolution: 0 30 | seamlessCubemap: 0 31 | textureFormat: 1 32 | maxTextureSize: 2048 33 | textureSettings: 34 | serializedVersion: 2 35 | filterMode: -1 36 | aniso: 1 37 | mipBias: -100 38 | wrapU: 1 39 | wrapV: 1 40 | wrapW: -1 41 | nPOTScale: 0 42 | lightmap: 0 43 | compressionQuality: 50 44 | spriteMode: 0 45 | spriteExtrude: 1 46 | spriteMeshType: 1 47 | alignment: 0 48 | spritePivot: {x: 0.5, y: 0.5} 49 | spritePixelsToUnits: 100 50 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 51 | spriteGenerateFallbackPhysicsShape: 1 52 | alphaUsage: 1 53 | alphaIsTransparency: 1 54 | spriteTessellationDetail: -1 55 | textureType: 2 56 | textureShape: 1 57 | singleChannelComponent: 0 58 | flipbookRows: 1 59 | flipbookColumns: 1 60 | maxTextureSizeSet: 0 61 | compressionQualitySet: 0 62 | textureFormatSet: 0 63 | ignorePngGamma: 0 64 | applyGammaDecoding: 0 65 | platformSettings: 66 | - serializedVersion: 3 67 | buildTarget: DefaultTexturePlatform 68 | maxTextureSize: 128 69 | resizeAlgorithm: 0 70 | textureFormat: -1 71 | textureCompression: 1 72 | compressionQuality: 50 73 | crunchedCompression: 1 74 | allowsAlphaSplitting: 0 75 | overridden: 0 76 | androidETC2FallbackOverride: 0 77 | forceMaximumCompressionQuality_BC6H_BC7: 0 78 | - serializedVersion: 3 79 | buildTarget: Standalone 80 | maxTextureSize: 128 81 | resizeAlgorithm: 0 82 | textureFormat: -1 83 | textureCompression: 1 84 | compressionQuality: 50 85 | crunchedCompression: 1 86 | allowsAlphaSplitting: 0 87 | overridden: 0 88 | androidETC2FallbackOverride: 0 89 | forceMaximumCompressionQuality_BC6H_BC7: 0 90 | spriteSheet: 91 | serializedVersion: 2 92 | sprites: [] 93 | outline: [] 94 | physicsShape: [] 95 | bones: [] 96 | spriteID: 97 | internalID: 0 98 | vertices: [] 99 | indices: 100 | edges: [] 101 | weights: [] 102 | secondaryTextures: [] 103 | spritePackingTag: 104 | pSDRemoveMatte: 0 105 | pSDShowRemoveMatteOption: 0 106 | userData: 107 | assetBundleName: 108 | assetBundleVariant: 109 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Art/Editor/Titles/T_SaveManager_EditorWindow_ProfilesTabTitle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CarterGames/SaveManager/341e066ac080efeedd05161c4423a04044bd91ac/Carter Games/Save Manager/Art/Editor/Titles/T_SaveManager_EditorWindow_ProfilesTabTitle.png -------------------------------------------------------------------------------- /Carter Games/Save Manager/Art/Editor/Titles/T_SaveManager_EditorWindow_ProfilesTabTitle.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6b3d1dc790d5c84469c4faa046cfd5c8 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 11 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 0 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | vTOnly: 0 27 | grayScaleToAlpha: 0 28 | generateCubemap: 6 29 | cubemapConvolution: 0 30 | seamlessCubemap: 0 31 | textureFormat: 1 32 | maxTextureSize: 2048 33 | textureSettings: 34 | serializedVersion: 2 35 | filterMode: -1 36 | aniso: 1 37 | mipBias: -100 38 | wrapU: 1 39 | wrapV: 1 40 | wrapW: -1 41 | nPOTScale: 0 42 | lightmap: 0 43 | compressionQuality: 50 44 | spriteMode: 0 45 | spriteExtrude: 1 46 | spriteMeshType: 1 47 | alignment: 0 48 | spritePivot: {x: 0.5, y: 0.5} 49 | spritePixelsToUnits: 100 50 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 51 | spriteGenerateFallbackPhysicsShape: 1 52 | alphaUsage: 1 53 | alphaIsTransparency: 1 54 | spriteTessellationDetail: -1 55 | textureType: 2 56 | textureShape: 1 57 | singleChannelComponent: 0 58 | flipbookRows: 1 59 | flipbookColumns: 1 60 | maxTextureSizeSet: 0 61 | compressionQualitySet: 0 62 | textureFormatSet: 0 63 | ignorePngGamma: 0 64 | applyGammaDecoding: 0 65 | platformSettings: 66 | - serializedVersion: 3 67 | buildTarget: DefaultTexturePlatform 68 | maxTextureSize: 128 69 | resizeAlgorithm: 0 70 | textureFormat: -1 71 | textureCompression: 1 72 | compressionQuality: 50 73 | crunchedCompression: 1 74 | allowsAlphaSplitting: 0 75 | overridden: 0 76 | androidETC2FallbackOverride: 0 77 | forceMaximumCompressionQuality_BC6H_BC7: 0 78 | - serializedVersion: 3 79 | buildTarget: Standalone 80 | maxTextureSize: 128 81 | resizeAlgorithm: 0 82 | textureFormat: -1 83 | textureCompression: 1 84 | compressionQuality: 50 85 | crunchedCompression: 1 86 | allowsAlphaSplitting: 0 87 | overridden: 0 88 | androidETC2FallbackOverride: 0 89 | forceMaximumCompressionQuality_BC6H_BC7: 0 90 | spriteSheet: 91 | serializedVersion: 2 92 | sprites: [] 93 | outline: [] 94 | physicsShape: [] 95 | bones: [] 96 | spriteID: 97 | internalID: 0 98 | vertices: [] 99 | indices: 100 | edges: [] 101 | weights: [] 102 | secondaryTextures: [] 103 | spritePackingTag: 104 | pSDRemoveMatte: 0 105 | pSDShowRemoveMatteOption: 0 106 | userData: 107 | assetBundleName: 108 | assetBundleVariant: 109 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Art/Editor/Titles/T_SaveManager_LogoIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CarterGames/SaveManager/341e066ac080efeedd05161c4423a04044bd91ac/Carter Games/Save Manager/Art/Editor/Titles/T_SaveManager_LogoIcon.png -------------------------------------------------------------------------------- /Carter Games/Save Manager/Art/Editor/Titles/T_SaveManager_LogoIcon.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 14b0da9dbdbe54b4a805b858822bf3aa 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 11 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 0 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | vTOnly: 0 27 | grayScaleToAlpha: 0 28 | generateCubemap: 6 29 | cubemapConvolution: 0 30 | seamlessCubemap: 0 31 | textureFormat: 1 32 | maxTextureSize: 2048 33 | textureSettings: 34 | serializedVersion: 2 35 | filterMode: -1 36 | aniso: 1 37 | mipBias: -100 38 | wrapU: 1 39 | wrapV: 1 40 | wrapW: -1 41 | nPOTScale: 0 42 | lightmap: 0 43 | compressionQuality: 50 44 | spriteMode: 0 45 | spriteExtrude: 1 46 | spriteMeshType: 1 47 | alignment: 0 48 | spritePivot: {x: 0.5, y: 0.5} 49 | spritePixelsToUnits: 100 50 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 51 | spriteGenerateFallbackPhysicsShape: 1 52 | alphaUsage: 1 53 | alphaIsTransparency: 1 54 | spriteTessellationDetail: -1 55 | textureType: 2 56 | textureShape: 1 57 | singleChannelComponent: 0 58 | flipbookRows: 1 59 | flipbookColumns: 1 60 | maxTextureSizeSet: 0 61 | compressionQualitySet: 0 62 | textureFormatSet: 0 63 | ignorePngGamma: 0 64 | applyGammaDecoding: 0 65 | platformSettings: 66 | - serializedVersion: 3 67 | buildTarget: DefaultTexturePlatform 68 | maxTextureSize: 512 69 | resizeAlgorithm: 0 70 | textureFormat: -1 71 | textureCompression: 1 72 | compressionQuality: 50 73 | crunchedCompression: 1 74 | allowsAlphaSplitting: 0 75 | overridden: 0 76 | androidETC2FallbackOverride: 0 77 | forceMaximumCompressionQuality_BC6H_BC7: 0 78 | - serializedVersion: 3 79 | buildTarget: Standalone 80 | maxTextureSize: 512 81 | resizeAlgorithm: 0 82 | textureFormat: -1 83 | textureCompression: 1 84 | compressionQuality: 50 85 | crunchedCompression: 1 86 | allowsAlphaSplitting: 0 87 | overridden: 0 88 | androidETC2FallbackOverride: 0 89 | forceMaximumCompressionQuality_BC6H_BC7: 0 90 | - serializedVersion: 3 91 | buildTarget: Android 92 | maxTextureSize: 512 93 | resizeAlgorithm: 0 94 | textureFormat: -1 95 | textureCompression: 1 96 | compressionQuality: 50 97 | crunchedCompression: 1 98 | allowsAlphaSplitting: 0 99 | overridden: 0 100 | androidETC2FallbackOverride: 0 101 | forceMaximumCompressionQuality_BC6H_BC7: 0 102 | - serializedVersion: 3 103 | buildTarget: WebGL 104 | maxTextureSize: 512 105 | resizeAlgorithm: 0 106 | textureFormat: -1 107 | textureCompression: 1 108 | compressionQuality: 50 109 | crunchedCompression: 1 110 | allowsAlphaSplitting: 0 111 | overridden: 0 112 | androidETC2FallbackOverride: 0 113 | forceMaximumCompressionQuality_BC6H_BC7: 0 114 | spriteSheet: 115 | serializedVersion: 2 116 | sprites: [] 117 | outline: [] 118 | physicsShape: [] 119 | bones: [] 120 | spriteID: 121 | internalID: 0 122 | vertices: [] 123 | indices: 124 | edges: [] 125 | weights: [] 126 | secondaryTextures: [] 127 | spritePackingTag: 128 | pSDRemoveMatte: 0 129 | pSDShowRemoveMatteOption: 0 130 | userData: 131 | assetBundleName: 132 | assetBundleVariant: 133 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 56396c77984a3ac43ae4c0a52ec7ece9 3 | timeCreated: 1670346918 -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Editor.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ca0f34be2d6ccb9489449c6dd27cfe27 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Editor/CarterGames.SaveManager.Editor.asmdef: -------------------------------------------------------------------------------- 1 | { 2 | "name": "CarterGames.SaveManager.Editor", 3 | "rootNamespace": "CarterGames.Assets.SaveManager.Editor", 4 | "references": [ 5 | "GUID:5fed357a0eb29414bb1d1667107777c5", 6 | "GUID:0dd839a085d98c5478abb31237806e7c", 7 | "GUID:781de0e236e5d6743a1e1820ce72d73a" 8 | ], 9 | "includePlatforms": [ 10 | "Editor" 11 | ], 12 | "excludePlatforms": [], 13 | "allowUnsafeCode": false, 14 | "overrideReferences": false, 15 | "precompiledReferences": [], 16 | "autoReferenced": true, 17 | "defineConstraints": [], 18 | "versionDefines": [], 19 | "noEngineReferences": false 20 | } -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Editor/CarterGames.SaveManager.Editor.asmdef.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ca18d2642263eec4fbad82dd944c155a 3 | AssemblyDefinitionImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Editor/Custom Editors.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9b5a8aa7324565648993b21e2426cedd 3 | timeCreated: 1672500564 -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Editor/Custom Editors/Inspectors.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 25a59973266bb9b47a3b42e7643c8ba2 3 | timeCreated: 1672657379 -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Editor/Custom Editors/Inspectors/EncryptionKeyEditor.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3f032c04fd3044f4aae251c6aab6dd8e 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {fileID: 2800000, guid: 40ab1dfa65cdd6247bb1a3d4ea54901c, type: 3} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Editor/Custom Editors/Inspectors/SaveDataEditor.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9b28a8548d50dfb4c9633b9b44826622 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {fileID: 2800000, guid: 40ab1dfa65cdd6247bb1a3d4ea54901c, type: 3} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Editor/Custom Editors/Inspectors/SaveManagerAssetIndexInspector.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8c8d6a6476994b1293e98b9bc4d20cf0 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {fileID: 2800000, guid: 40ab1dfa65cdd6247bb1a3d4ea54901c, type: 3} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Editor/Custom Editors/Inspectors/SaveObjectEditor.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: fe6745affa2506642a76bbdcbcc3e892 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {fileID: 2800000, guid: 40ab1dfa65cdd6247bb1a3d4ea54901c, type: 3} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Editor/Custom Editors/Inspectors/SaveProfilesStoreEditor.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2024 Carter Games 3 | * 4 | * Permission is hereby granted, free of charge, to any person obtaining a copy 5 | * of this software and associated documentation files (the "Software"), to deal 6 | * in the Software without restriction, including without limitation the rights 7 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | * copies of the Software, and to permit persons to whom the Software is 9 | * furnished to do so, subject to the following conditions: 10 | * 11 | * The above copyright notice and this permission notice shall be included in 12 | * all copies or substantial portions of the Software. 13 | * 14 | * 15 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE 18 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | * THE SOFTWARE. 22 | */ 23 | 24 | using UnityEditor; 25 | using UnityEngine; 26 | 27 | namespace CarterGames.Assets.SaveManager.Editor 28 | { 29 | /// 30 | /// A custom inspector for the save profiles store asset. 31 | /// 32 | [CustomEditor(typeof(SaveProfilesStore))] 33 | public sealed class SaveProfilesStoreEditor : UnityEditor.Editor 34 | { 35 | /* ───────────────────────────────────────────────────────────────────────────────────────────────────────────── 36 | | Unity Methods 37 | ───────────────────────────────────────────────────────────────────────────────────────────────────────────── */ 38 | 39 | public override void OnInspectorGUI() 40 | { 41 | DrawHeaderSection(); 42 | 43 | GUILayout.Space(5f); 44 | 45 | EditorGUILayout.BeginVertical("HelpBox"); 46 | GUILayout.Space(2.5f); 47 | 48 | UtilEditor.DrawSoScriptSection(target); 49 | 50 | GUILayout.Space(2.5f); 51 | 52 | EditorGUI.BeginDisabledGroup(true); 53 | 54 | EditorGUI.indentLevel++; 55 | EditorGUILayout.PropertyField(serializedObject.Fp("profiles")); 56 | EditorGUI.indentLevel--; 57 | 58 | EditorGUI.EndDisabledGroup(); 59 | 60 | GUILayout.Space(2.5f); 61 | EditorGUILayout.EndVertical(); 62 | } 63 | 64 | /* ───────────────────────────────────────────────────────────────────────────────────────────────────────────── 65 | | Draw Methods 66 | ───────────────────────────────────────────────────────────────────────────────────────────────────────────── */ 67 | 68 | private static void DrawHeaderSection() 69 | { 70 | GUILayout.Space(5f); 71 | 72 | EditorGUILayout.BeginHorizontal(); 73 | GUILayout.FlexibleSpace(); 74 | 75 | if (UtilEditor.BookIcon != null) 76 | { 77 | if (GUILayout.Button(UtilEditor.BookIcon, GUIStyle.none, GUILayout.MaxHeight(75))) 78 | { 79 | GUI.FocusControl(null); 80 | } 81 | } 82 | 83 | GUILayout.FlexibleSpace(); 84 | EditorGUILayout.EndHorizontal(); 85 | 86 | GUILayout.Space(5f); 87 | } 88 | } 89 | } -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Editor/Custom Editors/Inspectors/SaveProfilesStoreEditor.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 263815c3f327e76418e56d4533181019 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {fileID: 2800000, guid: 40ab1dfa65cdd6247bb1a3d4ea54901c, type: 3} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Editor/Custom Editors/Inspectors/SettingsAssetRuntimeEditor.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c94660f01b6d4524596c32760a6dc456 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {fileID: 2800000, guid: 40ab1dfa65cdd6247bb1a3d4ea54901c, type: 3} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Editor/Custom Editors/Property Drawers.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ff30f00974134804c87593cd5d01c2ab 3 | timeCreated: 1674396831 -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Editor/Custom Editors/Property Drawers/SaveValuePropertyDrawer.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d8d28bc7996a29a43b6085a904a8b992 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {fileID: 2800000, guid: 40ab1dfa65cdd6247bb1a3d4ea54901c, type: 3} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Editor/Custom Editors/Windows.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 84cae39626afd4e42b3dda420cfed5e9 3 | timeCreated: 1672070188 -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Editor/Custom Editors/Windows/Defaults Window.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 55d5136f42a64fd19bad08ec3161478a 3 | timeCreated: 1727602184 -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Editor/Custom Editors/Windows/Defaults Window/SaveDefaultsWindow.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2e7d735c79654935be379bf9c1f965ae 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {fileID: 2800000, guid: 40ab1dfa65cdd6247bb1a3d4ea54901c, type: 3} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Editor/Custom Editors/Windows/Editor Window.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3e613bf79d4d03c4da5c3a0fb9176a6c 3 | timeCreated: 1681237673 -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Editor/Custom Editors/Windows/Editor Window/SaveManagerEditorWindow.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 147ae71324635d842a170b9a3f2c4480 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {fileID: 2800000, guid: 40ab1dfa65cdd6247bb1a3d4ea54901c, type: 3} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Editor/Custom Editors/Windows/Editor Window/Sub Windows.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 63d970c0fd428954d9eb8bcc6b07cf47 3 | timeCreated: 1674635385 -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Editor/Custom Editors/Windows/Editor Window/Sub Windows/EditorTab.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b33b824f4b5d32c4e967b5f6d4f909b2 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {fileID: 2800000, guid: 40ab1dfa65cdd6247bb1a3d4ea54901c, type: 3} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Editor/Custom Editors/Windows/Editor Window/Sub Windows/Profile Tab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e7e0e9646701d6748b38373b30c135ba 3 | timeCreated: 1675517161 -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Editor/Custom Editors/Windows/Editor Window/Sub Windows/Profile Tab/ProfileTab.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2024 Carter Games 3 | * 4 | * Permission is hereby granted, free of charge, to any person obtaining a copy 5 | * of this software and associated documentation files (the "Software"), to deal 6 | * in the Software without restriction, including without limitation the rights 7 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | * copies of the Software, and to permit persons to whom the Software is 9 | * furnished to do so, subject to the following conditions: 10 | * 11 | * The above copyright notice and this permission notice shall be included in 12 | * all copies or substantial portions of the Software. 13 | * 14 | * 15 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE 18 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | * THE SOFTWARE. 22 | */ 23 | 24 | using System.Collections.Generic; 25 | using UnityEditor; 26 | using UnityEngine; 27 | 28 | namespace CarterGames.Assets.SaveManager.Editor.SubWindows 29 | { 30 | /// 31 | /// Draws the profile tab of the save editor. 32 | /// 33 | public sealed class ProfileTab 34 | { 35 | /* ───────────────────────────────────────────────────────────────────────────────────────────────────────────── 36 | | Fields 37 | ───────────────────────────────────────────────────────────────────────────────────────────────────────────── */ 38 | 39 | // Help box dialogue. 40 | private const string NoSaveObjectsDialogue = 41 | "You don't have any save objects setup, so this tool is disabled. Create & add a save object implementation to use the save profiles tab."; 42 | 43 | // Fields 44 | private static Rect deselectRect; 45 | 46 | /* ───────────────────────────────────────────────────────────────────────────────────────────────────────────── 47 | | Draw Methods 48 | ───────────────────────────────────────────────────────────────────────────────────────────────────────────── */ 49 | 50 | public void DrawTab(List saveObjects) 51 | { 52 | if (saveObjects.Count <= 0) 53 | { 54 | // No save objects, so disable. 55 | EditorGUILayout.HelpBox(NoSaveObjectsDialogue, MessageType.Info); 56 | } 57 | else 58 | { 59 | PerUserSettings.SaveProfileTabScrollRectPos = EditorGUILayout.BeginScrollView(PerUserSettings.SaveProfileTabScrollRectPos); 60 | 61 | EditorGUILayout.BeginVertical("HelpBox"); 62 | SaveProfileCreatorGUI.DrawDisplay(); 63 | EditorGUILayout.EndVertical(); 64 | 65 | EditorGUILayout.BeginVertical("HelpBox"); 66 | SaveProfileListGUI.DrawDisplay(); 67 | EditorGUILayout.EndVertical(); 68 | 69 | EditorGUILayout.Space(10); 70 | EditorGUILayout.EndScrollView(); 71 | } 72 | 73 | 74 | // Draws a deselect box around the rest of the GUI. 75 | UtilEditor.CreateDeselectZone(ref deselectRect); 76 | } 77 | } 78 | } -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Editor/Custom Editors/Windows/Editor Window/Sub Windows/Profile Tab/ProfileTab.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e82b962f4cde75347becc55c7dffd329 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {fileID: 2800000, guid: 40ab1dfa65cdd6247bb1a3d4ea54901c, type: 3} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Editor/Custom Editors/Windows/Editor Window/Sub Windows/Profile Tab/SaveProfileCreatorGUI.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 828a48d564af3c1468c8356eb216ed71 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {fileID: 2800000, guid: 40ab1dfa65cdd6247bb1a3d4ea54901c, type: 3} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Editor/Custom Editors/Windows/Editor Window/Sub Windows/Profile Tab/SaveProfileListGUI.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9d3d75f01d4d62a49a36778861812f29 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {fileID: 2800000, guid: 40ab1dfa65cdd6247bb1a3d4ea54901c, type: 3} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Editor/Info.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5d002c8a1145412ca8d6350792f58f43 3 | timeCreated: 1726862174 -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Editor/Info/AssetVersionData.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2024 Carter Games 3 | * 4 | * Permission is hereby granted, free of charge, to any person obtaining a copy 5 | * of this software and associated documentation files (the "Software"), to deal 6 | * in the Software without restriction, including without limitation the rights 7 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | * copies of the Software, and to permit persons to whom the Software is 9 | * furnished to do so, subject to the following conditions: 10 | * 11 | * The above copyright notice and this permission notice shall be included in 12 | * all copies or substantial portions of the Software. 13 | * 14 | * 15 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE 18 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | * THE SOFTWARE. 22 | */ 23 | 24 | namespace CarterGames.Assets.SaveManager.Editor 25 | { 26 | /// 27 | /// Contains details for the asset. 28 | /// 29 | public static class AssetVersionData 30 | { 31 | /// 32 | /// The version number of the asset. 33 | /// 34 | public static string VersionNumber => "2.3.6"; 35 | 36 | 37 | /// 38 | /// The date this release of the asset was submitted for release. 39 | /// 40 | /// 41 | /// Asset owner is in the UK, so its Y/M/D format. 42 | /// 43 | public static string ReleaseDate => "2025/03/12"; 44 | } 45 | } -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Editor/Info/AssetVersionData.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f18b85b091206ac4897ac6666354a408 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {fileID: 2800000, guid: 40ab1dfa65cdd6247bb1a3d4ea54901c, type: 3} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Editor/Menus & Shortcuts.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c9af1e2e606cde24e977553373385686 3 | timeCreated: 1670342655 -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Editor/Menus & Shortcuts/SaveManagerMenuItems.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2024 Carter Games 3 | * 4 | * Permission is hereby granted, free of charge, to any person obtaining a copy 5 | * of this software and associated documentation files (the "Software"), to deal 6 | * in the Software without restriction, including without limitation the rights 7 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | * copies of the Software, and to permit persons to whom the Software is 9 | * furnished to do so, subject to the following conditions: 10 | * 11 | * The above copyright notice and this permission notice shall be included in 12 | * all copies or substantial portions of the Software. 13 | * 14 | * 15 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE 18 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | * THE SOFTWARE. 22 | */ 23 | 24 | using UnityEditor; 25 | 26 | namespace CarterGames.Assets.SaveManager.Editor 27 | { 28 | public static class SaveManagerMenuItems 29 | { 30 | [MenuItem("Tools/Carter Games/Save Manager/Load Save Data", priority = 30)] 31 | public static void ManualLoadGame() 32 | { 33 | SaveManager.Load(new StandardSaveHandler().LoadFromFile(UtilEditor.AssetGlobalRuntimeSettings.SavePath)); 34 | } 35 | 36 | 37 | [MenuItem("Tools/Carter Games/Save Manager/Save, Save Data", priority = 31)] 38 | public static void ManualSaveGame() 39 | { 40 | SaveManager.Save(); 41 | } 42 | 43 | 44 | [MenuItem("Tools/Carter Games/Save Manager/Reset All Save Data", priority = 33)] 45 | public static void ManualResetData() 46 | { 47 | SaveManager.Clear(); 48 | } 49 | } 50 | } -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Editor/Menus & Shortcuts/SaveManagerMenuItems.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: dd821fc70cc1ffb40bcb891cd3be702d 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {fileID: 2800000, guid: 40ab1dfa65cdd6247bb1a3d4ea54901c, type: 3} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Editor/Settings Provider.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5f3ffec4df631c34db0d7618dda70f3a 3 | timeCreated: 1672657516 -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Editor/Settings Provider/SaveManagerSettingsProvider.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: fd4d634b822c5904dbfb7feaadf225d0 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {fileID: 2800000, guid: 40ab1dfa65cdd6247bb1a3d4ea54901c, type: 3} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Editor/Systems.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 69c6822496a44144eaa5e008fae26337 3 | timeCreated: 1674808263 -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Editor/Systems/Asset Change Detection.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e7921ddbb2e446669ceaf7e9f5215c9e 3 | timeCreated: 1737891943 -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Editor/Systems/Asset Change Detection/AssetChangeDetection.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2024 Carter Games 3 | * 4 | * Permission is hereby granted, free of charge, to any person obtaining a copy 5 | * of this software and associated documentation files (the "Software"), to deal 6 | * in the Software without restriction, including without limitation the rights 7 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | * copies of the Software, and to permit persons to whom the Software is 9 | * furnished to do so, subject to the following conditions: 10 | * 11 | * The above copyright notice and this permission notice shall be included in 12 | * all copies or substantial portions of the Software. 13 | * 14 | * 15 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE 18 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | * THE SOFTWARE. 22 | */ 23 | 24 | using System.Linq; 25 | using UnityEditor; 26 | 27 | namespace CarterGames.Assets.SaveManager.Editor 28 | { 29 | public class AssetChangeDetection : AssetPostprocessor 30 | { 31 | private static void OnPostprocessAllAssets(string[] importedAssets, string[] deletedAssets, string[] movedAssets, 32 | string[] movedFromAssetPaths) 33 | { 34 | TryRefreshCacheOnDelete(deletedAssets); 35 | } 36 | 37 | 38 | private static void TryRefreshCacheOnDelete(string[] deletedAssets) 39 | { 40 | if (deletedAssets.Length <= 0) return; 41 | 42 | foreach (var deleted in deletedAssets) 43 | { 44 | if (SaveManagerEditorCache.SaveObjectAssetPaths == null) goto SkipPoint; 45 | if (!SaveManagerEditorCache.SaveObjectAssetPaths.Contains(deleted)) continue; 46 | SaveManagerEditorCache.RefreshCache(); 47 | } 48 | 49 | UtilEditor.SaveData.Data = SaveManagerEditorCache.SaveObjects.Where(t => t != null).ToList(); 50 | EditorUtility.SetDirty(UtilEditor.SaveData); 51 | 52 | SkipPoint: ; 53 | 54 | AssetDatabase.SaveAssets(); 55 | AssetDatabase.Refresh(); 56 | } 57 | } 58 | } -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Editor/Systems/Asset Change Detection/AssetChangeDetection.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e643ef8262ef462a86d33afb9b72501a 3 | timeCreated: 1737891955 -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Editor/Systems/Asset Index.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 44b7d63832a446949adea05030640878 3 | timeCreated: 1690704477 -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Editor/Systems/Asset Index/AssetIndexHandler.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8359a81b5bbb3eb41be9ec67e202176c 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {fileID: 2800000, guid: 40ab1dfa65cdd6247bb1a3d4ea54901c, type: 3} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Editor/Systems/Attributes.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b71418a5236241868e712607da0f9a0b 3 | timeCreated: 1704017867 -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Editor/Systems/Attributes/SaveCategoryAttributeData.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ca3ff55b06f741fe95c680e79c710fff 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {fileID: 2800000, guid: 40ab1dfa65cdd6247bb1a3d4ea54901c, type: 3} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Editor/Systems/Attributes/SaveCategoryAttributeHelper.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f7bb8b817b624202ad93acca6ee31a88 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {fileID: 2800000, guid: 40ab1dfa65cdd6247bb1a3d4ea54901c, type: 3} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Editor/Systems/Build Handlers.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 79a5d8e3a80d4fafb4cc267d036f70c2 3 | timeCreated: 1727550491 -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Editor/Systems/Build Handlers/BuildHandlerResetSaveObjects.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: af8146194adf45dea55a4b83b49fe63f 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {fileID: 2800000, guid: 40ab1dfa65cdd6247bb1a3d4ea54901c, type: 3} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Editor/Systems/Editor Cache.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9f86af9386864cf49e66c7e49b2ac694 3 | timeCreated: 1737893076 -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Editor/Systems/Editor Cache/SaveManagerEditorCache.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using System.Linq; 3 | using UnityEditor; 4 | using UnityEngine; 5 | 6 | namespace CarterGames.Assets.SaveManager.Editor 7 | { 8 | public class SaveManagerEditorCache : IAssetEditorInitialize 9 | { 10 | private static List saveObjects = new List(); 11 | private static List saveObjectPaths = new List(); 12 | 13 | private static Dictionary editorsLookup = new Dictionary(); 14 | private static Dictionary soLookup = new Dictionary(); 15 | 16 | 17 | public static bool HasCache { get; private set; } 18 | 19 | public static List SaveObjects => saveObjects; 20 | public static List SaveObjectAssetPaths => saveObjectPaths; 21 | public static Dictionary EditorsLookup => editorsLookup; 22 | public static Dictionary SoLookup => soLookup; 23 | 24 | 25 | public static void RefreshCache() 26 | { 27 | RefreshSaveObjectsCache(); 28 | RefreshSaveObjectAssetPathsCache(); 29 | RefreshSaveObjectSerializedObjectsCache(); 30 | RefreshSaveObjectEditorsCache(); 31 | 32 | if (HasCache) return; 33 | HasCache = true; 34 | } 35 | 36 | 37 | private static void RefreshSaveObjectsCache() 38 | { 39 | saveObjects = new List(); 40 | saveObjects = UtilEditor.SaveData.Data.Where(t => t != null).ToList(); 41 | 42 | if (!saveObjects.HasNullEntries()) return; 43 | 44 | saveObjects = (List) saveObjects.RemoveMissing().RemoveDuplicates(); 45 | UtilEditor.SaveData.Data = saveObjects; 46 | } 47 | 48 | 49 | private static void RefreshSaveObjectAssetPathsCache() 50 | { 51 | saveObjectPaths = new List(); 52 | 53 | foreach (var saveObj in SaveObjects) 54 | { 55 | saveObjectPaths.Add(AssetDatabase.GetAssetPath(saveObj)); 56 | } 57 | } 58 | 59 | 60 | private static void RefreshSaveObjectSerializedObjectsCache() 61 | { 62 | soLookup = new Dictionary(); 63 | 64 | foreach (var saveObj in SaveObjects) 65 | { 66 | soLookup.Add(saveObj, new SerializedObject(saveObj)); 67 | } 68 | } 69 | 70 | 71 | private static void RefreshSaveObjectEditorsCache() 72 | { 73 | editorsLookup = new Dictionary(); 74 | 75 | foreach (var saveObj in soLookup) 76 | { 77 | editorsLookup.Add(saveObj.Key, (SaveObjectEditor) UnityEditor.Editor.CreateEditor(saveObj.Value.targetObject)); 78 | } 79 | } 80 | 81 | public int InitializeOrder => -100; 82 | 83 | 84 | public void OnEditorInitialized() 85 | { 86 | RefreshCache(); 87 | } 88 | } 89 | } -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Editor/Systems/Editor Cache/SaveManagerEditorCache.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ea14be0b639942aca60e00f800eeb730 3 | timeCreated: 1737893082 -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Editor/Systems/Initialize.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b1f193564ab728a4c95494daf381d34c 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Editor/Systems/Initialize/AssetInitializer.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f14ebca0b0fc429393618523084297de 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {fileID: 2800000, guid: 40ab1dfa65cdd6247bb1a3d4ea54901c, type: 3} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Editor/Systems/Initialize/AssetReloadHandler.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2024 Carter Games 3 | * 4 | * Permission is hereby granted, free of charge, to any person obtaining a copy 5 | * of this software and associated documentation files (the "Software"), to deal 6 | * in the Software without restriction, including without limitation the rights 7 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | * copies of the Software, and to permit persons to whom the Software is 9 | * furnished to do so, subject to the following conditions: 10 | * 11 | * The above copyright notice and this permission notice shall be included in 12 | * all copies or substantial portions of the Software. 13 | * 14 | * 15 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE 18 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | * THE SOFTWARE. 22 | */ 23 | 24 | using System.Linq; 25 | using System.Threading.Tasks; 26 | using CarterGames.Common; 27 | using UnityEditor; 28 | using UnityEditor.Callbacks; 29 | 30 | namespace CarterGames.Assets.SaveManager.Editor 31 | { 32 | /// 33 | /// Handles any reload listeners in the project for the asset. 34 | /// 35 | public static class AssetReloadHandler 36 | { 37 | /* ───────────────────────────────────────────────────────────────────────────────────────────────────────────── 38 | | Events 39 | ───────────────────────────────────────────────────────────────────────────────────────────────────────────── */ 40 | 41 | /// 42 | /// Raises when the reload has occured. 43 | /// 44 | public static readonly Evt Reloaded = new Evt(); 45 | 46 | /* ───────────────────────────────────────────────────────────────────────────────────────────────────────────── 47 | | Methods 48 | ───────────────────────────────────────────────────────────────────────────────────────────────────────────── */ 49 | 50 | /// 51 | /// Add subscription to the delay call when scripts reload. 52 | /// 53 | [DidReloadScripts] 54 | private static void FireReloadCalls() 55 | { 56 | if (EditorApplication.isCompiling || EditorApplication.isUpdating) 57 | { 58 | EditorApplication.delayCall -= CallListeners; 59 | EditorApplication.delayCall += CallListeners; 60 | return; 61 | } 62 | 63 | EditorApplication.delayCall -= CallListeners; 64 | EditorApplication.delayCall += CallListeners; 65 | } 66 | 67 | 68 | /// 69 | /// Updates all the listeners when called. 70 | /// 71 | private static async void CallListeners() 72 | { 73 | var reloadClasses = AssemblyHelper.GetClassesOfType().ToArray(); 74 | 75 | if (reloadClasses.Length > 0) 76 | { 77 | foreach (var init in reloadClasses) 78 | { 79 | init.OnEditorReloaded(); 80 | await Task.Yield(); 81 | } 82 | } 83 | 84 | Reloaded.Raise(); 85 | } 86 | } 87 | } -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Editor/Systems/Initialize/AssetReloadHandler.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d685045b14f7442687bc280348cd382a 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {fileID: 2800000, guid: 40ab1dfa65cdd6247bb1a3d4ea54901c, type: 3} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Editor/Systems/Initialize/IAssetEditorInitialize.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2024 Carter Games 3 | * 4 | * Permission is hereby granted, free of charge, to any person obtaining a copy 5 | * of this software and associated documentation files (the "Software"), to deal 6 | * in the Software without restriction, including without limitation the rights 7 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | * copies of the Software, and to permit persons to whom the Software is 9 | * furnished to do so, subject to the following conditions: 10 | * 11 | * The above copyright notice and this permission notice shall be included in 12 | * all copies or substantial portions of the Software. 13 | * 14 | * 15 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE 18 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | * THE SOFTWARE. 22 | */ 23 | 24 | namespace CarterGames.Assets.SaveManager.Editor 25 | { 26 | public interface IAssetEditorInitialize 27 | { 28 | int InitializeOrder { get; } 29 | void OnEditorInitialized(); 30 | } 31 | } -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Editor/Systems/Initialize/IAssetEditorInitialize.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c43d7778b4104adabce50d37be88613b 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {fileID: 2800000, guid: 40ab1dfa65cdd6247bb1a3d4ea54901c, type: 3} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Editor/Systems/Initialize/IAssetEditorReload.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2024 Carter Games 3 | * 4 | * Permission is hereby granted, free of charge, to any person obtaining a copy 5 | * of this software and associated documentation files (the "Software"), to deal 6 | * in the Software without restriction, including without limitation the rights 7 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | * copies of the Software, and to permit persons to whom the Software is 9 | * furnished to do so, subject to the following conditions: 10 | * 11 | * The above copyright notice and this permission notice shall be included in 12 | * all copies or substantial portions of the Software. 13 | * 14 | * 15 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE 18 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | * THE SOFTWARE. 22 | */ 23 | 24 | namespace CarterGames.Assets.SaveManager.Editor 25 | { 26 | public interface IAssetEditorReload 27 | { 28 | void OnEditorReloaded(); 29 | } 30 | } -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Editor/Systems/Initialize/IAssetEditorReload.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7a70ec3f4a8d4507b41326b23b933626 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {fileID: 2800000, guid: 40ab1dfa65cdd6247bb1a3d4ea54901c, type: 3} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Editor/Systems/Save Object Generator.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bc299cc3d26da9045897fe5017a78e50 3 | timeCreated: 1681800769 -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Editor/Systems/Save Object Generator/SaveObjectGenerator.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6ffcd785dc8733246b3a64f3b2d9566c 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {fileID: 2800000, guid: 40ab1dfa65cdd6247bb1a3d4ea54901c, type: 3} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Editor/Systems/Save Object Generator/SaveObjectTemplate.txt: -------------------------------------------------------------------------------- 1 | using CarterGames.Assets.SaveManager; 2 | using UnityEngine; 3 | 4 | namespace Save 5 | { 6 | [CreateAssetMenu(fileName = "%SaveObjectName%")] 7 | public class %SaveObjectName% : SaveObject 8 | { 9 | // Enter your save values here... 10 | } 11 | } -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Editor/Systems/Save Object Generator/SaveObjectTemplate.txt.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 29b8311809e32bc4eb66189917c7187e 3 | timeCreated: 1681887255 -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Editor/Systems/Save Profiles.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b200a09abb4638043b5c65124883d429 3 | timeCreated: 1674808268 -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Editor/Systems/Save Profiles/SaveProfileManager.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2024 Carter Games 3 | * 4 | * Permission is hereby granted, free of charge, to any person obtaining a copy 5 | * of this software and associated documentation files (the "Software"), to deal 6 | * in the Software without restriction, including without limitation the rights 7 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | * copies of the Software, and to permit persons to whom the Software is 9 | * furnished to do so, subject to the following conditions: 10 | * 11 | * The above copyright notice and this permission notice shall be included in 12 | * all copies or substantial portions of the Software. 13 | * 14 | * 15 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE 18 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | * THE SOFTWARE. 22 | */ 23 | 24 | using System.IO; 25 | using UnityEditor; 26 | using UnityEngine; 27 | 28 | namespace CarterGames.Assets.SaveManager.Editor 29 | { 30 | public static class SaveProfileManager 31 | { 32 | /* ───────────────────────────────────────────────────────────────────────────────────────────────────────────── 33 | | Methods 34 | ───────────────────────────────────────────────────────────────────────────────────────────────────────────── */ 35 | 36 | public static void CaptureProfile(string savePath, string captureName) 37 | { 38 | var profileSavePath = $"{savePath}/{captureName}.json"; 39 | 40 | var json = JsonUtility.ToJson(UtilEditor.AssetGlobalRuntimeSettings.SaveData.SerializableData, true); 41 | 42 | FileEditorUtil.CreateToDirectory(profileSavePath); 43 | AssetDatabase.SaveAssets(); 44 | AssetDatabase.Refresh(); 45 | 46 | File.WriteAllText(profileSavePath, json); 47 | AssetDatabase.SaveAssets(); 48 | AssetDatabase.Refresh(); 49 | 50 | var asset = AssetDatabase.LoadAssetAtPath(profileSavePath); 51 | 52 | UtilEditor.SaveProfiles.AddProfile(asset); 53 | EditorUtility.SetDirty(UtilEditor.SaveProfiles); 54 | } 55 | } 56 | } -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Editor/Systems/Save Profiles/SaveProfileManager.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: afbcedf934de2f542a147e8d9f454ecd 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {fileID: 2800000, guid: 40ab1dfa65cdd6247bb1a3d4ea54901c, type: 3} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Editor/Systems/Save Profiles/SaveProfilesStore.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2024 Carter Games 3 | * 4 | * Permission is hereby granted, free of charge, to any person obtaining a copy 5 | * of this software and associated documentation files (the "Software"), to deal 6 | * in the Software without restriction, including without limitation the rights 7 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | * copies of the Software, and to permit persons to whom the Software is 9 | * furnished to do so, subject to the following conditions: 10 | * 11 | * The above copyright notice and this permission notice shall be included in 12 | * all copies or substantial portions of the Software. 13 | * 14 | * 15 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE 18 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | * THE SOFTWARE. 22 | */ 23 | 24 | using System; 25 | using System.Collections.Generic; 26 | using UnityEngine; 27 | 28 | namespace CarterGames.Assets.SaveManager.Editor 29 | { 30 | [Serializable] 31 | [CreateAssetMenu(fileName = "Save Profile Store", menuName = "Carter Games/Save Manager/Save Profile Store", order = 6)] 32 | public sealed class SaveProfilesStore : SaveManagerAsset 33 | { 34 | [SerializeField] private List profiles; 35 | 36 | 37 | public List Data 38 | { 39 | get => profiles; 40 | set => profiles = value; 41 | } 42 | 43 | 44 | public void AddProfile(TextAsset saveData) 45 | { 46 | profiles ??= new List(); 47 | profiles.Add(saveData); 48 | } 49 | 50 | 51 | public void RemoveProfile(TextAsset profile) 52 | { 53 | if (!profiles.Contains(profile)) return; 54 | profiles.Remove(profile); 55 | } 56 | } 57 | } -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Editor/Systems/Save Profiles/SaveProfilesStore.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1ae21e57b7f613a45b2a4f86d6799f23 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {fileID: 2800000, guid: ea5cc163c3bd22c439dcda5b38318a3d, type: 3} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Editor/Systems/Version Validator.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: fdf59e9bcecf36b49b69aa96a7b0a87e 3 | timeCreated: 1687858131 -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Editor/Systems/Version Validator/InstallMethodChecker.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 203a0cc55316276498f0e7eb5b2a778e 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {fileID: 2800000, guid: 40ab1dfa65cdd6247bb1a3d4ea54901c, type: 3} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Editor/Systems/Version Validator/VersionAutoCheck.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 654ff71c7b7f41eaad452263c73939d4 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {fileID: 2800000, guid: 40ab1dfa65cdd6247bb1a3d4ea54901c, type: 3} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Editor/Systems/Version Validator/VersionChecker.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 960ed5aaff707894f82d88731055d704 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {fileID: 2800000, guid: 40ab1dfa65cdd6247bb1a3d4ea54901c, type: 3} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Editor/Systems/Version Validator/VersionData.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 21ae0eb1106584247a6877893501d456 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {fileID: 2800000, guid: 40ab1dfa65cdd6247bb1a3d4ea54901c, type: 3} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Editor/Systems/Version Validator/VersionEditorGUI.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 58fa190e89ddff848908ceb2ccfa9105 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {fileID: 2800000, guid: 40ab1dfa65cdd6247bb1a3d4ea54901c, type: 3} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Editor/Systems/Version Validator/VersionInfo.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2024 Carter Games 3 | * 4 | * Permission is hereby granted, free of charge, to any person obtaining a copy 5 | * of this software and associated documentation files (the "Software"), to deal 6 | * in the Software without restriction, including without limitation the rights 7 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | * copies of the Software, and to permit persons to whom the Software is 9 | * furnished to do so, subject to the following conditions: 10 | * 11 | * The above copyright notice and this permission notice shall be included in 12 | * all copies or substantial portions of the Software. 13 | * 14 | * 15 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE 18 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | * THE SOFTWARE. 22 | */ 23 | 24 | namespace CarterGames.Assets.SaveManager.Editor 25 | { 26 | /// 27 | /// The info used in the version validation system. 28 | /// 29 | public static class VersionInfo 30 | { 31 | /* ───────────────────────────────────────────────────────────────────────────────────────────────────────────── 32 | | Fields 33 | ───────────────────────────────────────────────────────────────────────────────────────────────────────────── */ 34 | 35 | /// 36 | /// The Url to request the versions from. 37 | /// 38 | public const string ValidationUrl = "https://carter.games/validation/versions.json"; 39 | 40 | 41 | /// 42 | /// The download Url for the latest version of this package. 43 | /// 44 | public const string DownloadBaseUrl = "https://github.com/CarterGames/SaveManager/releases/tag/"; 45 | 46 | 47 | /// 48 | /// The key of the package to get from the JSON blob. 49 | /// 50 | public const string Key = "Save Manager"; 51 | 52 | 53 | /// 54 | /// The version string for the package. 55 | /// 56 | public static string ProjectVersionNumber => AssetVersionData.VersionNumber; 57 | } 58 | } -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Editor/Systems/Version Validator/VersionInfo.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6bb0bb5765216bf4c9dd2eb41e572ced 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {fileID: 2800000, guid: 40ab1dfa65cdd6247bb1a3d4ea54901c, type: 3} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Editor/Systems/Version Validator/VersionNumber.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2024 Carter Games 3 | * 4 | * Permission is hereby granted, free of charge, to any person obtaining a copy 5 | * of this software and associated documentation files (the "Software"), to deal 6 | * in the Software without restriction, including without limitation the rights 7 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | * copies of the Software, and to permit persons to whom the Software is 9 | * furnished to do so, subject to the following conditions: 10 | * 11 | * The above copyright notice and this permission notice shall be included in 12 | * all copies or substantial portions of the Software. 13 | * 14 | * 15 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | * THE SOFTWARE. 22 | */ 23 | 24 | using System; 25 | using UnityEngine; 26 | 27 | namespace CarterGames.Assets.SaveManager.Editor 28 | { 29 | /// 30 | /// A data class to hold a x.x.x version number for comparisons. 31 | /// 32 | [Serializable] 33 | public sealed class VersionNumber 34 | { 35 | /* ───────────────────────────────────────────────────────────────────────────────────────────────────────────── 36 | | Fields 37 | ───────────────────────────────────────────────────────────────────────────────────────────────────────────── */ 38 | 39 | [SerializeField] private int major; 40 | [SerializeField] private int minor; 41 | [SerializeField] private int patch; 42 | 43 | /* ───────────────────────────────────────────────────────────────────────────────────────────────────────────── 44 | | Properties 45 | ───────────────────────────────────────────────────────────────────────────────────────────────────────────── */ 46 | 47 | /// 48 | /// The major version number. 49 | /// 50 | public int Major => major; 51 | 52 | 53 | /// 54 | /// The minor version number. 55 | /// 56 | public int Minor => minor; 57 | 58 | 59 | /// 60 | /// The patch version number. 61 | /// 62 | public int Patch => patch; 63 | 64 | /* ───────────────────────────────────────────────────────────────────────────────────────────────────────────── 65 | | Constructors 66 | ───────────────────────────────────────────────────────────────────────────────────────────────────────────── */ 67 | 68 | /// 69 | /// The blank constructor. 70 | /// 71 | public VersionNumber() { } 72 | 73 | 74 | /// 75 | /// Makes a new version number with the string entered. 76 | /// 77 | /// The string to convert. 78 | public VersionNumber(string value) 79 | { 80 | var split = value.Split('.'); 81 | 82 | if (split.Length != 3) return; 83 | 84 | major = int.Parse(split[0]); 85 | minor = int.Parse(split[1]); 86 | patch = int.Parse(split[2]); 87 | } 88 | } 89 | } -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Editor/Systems/Version Validator/VersionNumber.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1bbd510613533ab4dbd2b1452e13b3f2 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {fileID: 2800000, guid: 40ab1dfa65cdd6247bb1a3d4ea54901c, type: 3} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Editor/Systems/Version Validator/VersionPacket.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2024 Carter Games 3 | * 4 | * Permission is hereby granted, free of charge, to any person obtaining a copy 5 | * of this software and associated documentation files (the "Software"), to deal 6 | * in the Software without restriction, including without limitation the rights 7 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | * copies of the Software, and to permit persons to whom the Software is 9 | * furnished to do so, subject to the following conditions: 10 | * 11 | * The above copyright notice and this permission notice shall be included in 12 | * all copies or substantial portions of the Software. 13 | * 14 | * 15 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | * THE SOFTWARE. 22 | */ 23 | 24 | using System; 25 | using System.Linq; 26 | using UnityEngine; 27 | 28 | namespace CarterGames.Assets.SaveManager.Editor 29 | { 30 | /// 31 | /// A data class to hold the data downloaded from the server when requested. 32 | /// 33 | [Serializable] 34 | public sealed class VersionPacket 35 | { 36 | /* ───────────────────────────────────────────────────────────────────────────────────────────────────────────── 37 | | Fields 38 | ───────────────────────────────────────────────────────────────────────────────────────────────────────────── */ 39 | 40 | [SerializeField] private VersionData[] data; 41 | 42 | /* ───────────────────────────────────────────────────────────────────────────────────────────────────────────── 43 | | Properties 44 | ───────────────────────────────────────────────────────────────────────────────────────────────────────────── */ 45 | 46 | /// 47 | /// The data received for this package. 48 | /// 49 | public VersionData Data => data.First(t => t.Key.Equals(VersionInfo.Key)); 50 | } 51 | } -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Editor/Systems/Version Validator/VersionPacket.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a82252531de1f86469d39a3a44885c9a 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {fileID: 2800000, guid: 40ab1dfa65cdd6247bb1a3d4ea54901c, type: 3} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Editor/Utility.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d356fbad2486feb49884f664dfb8c5b7 3 | timeCreated: 1672656939 -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Editor/Utility/Editor Method Aid.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 282301b84cb14926bac850091a6d0061 3 | timeCreated: 1702407283 -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Editor/Utility/Editor Method Aid/AssetDatabaseHelper.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: adfc469878234224ba5edd8c79398d63 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {fileID: 2800000, guid: 40ab1dfa65cdd6247bb1a3d4ea54901c, type: 3} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Editor/Utility/Editor Method Aid/SerializedPropertyHelper.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d99b240303cf43a78c44af1efb2ac035 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {fileID: 2800000, guid: 40ab1dfa65cdd6247bb1a3d4ea54901c, type: 3} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Editor/Utility/Per User Settings.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ef616351dbdc48b496167807a4c55d27 3 | timeCreated: 1694155289 -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Editor/Utility/Per User Settings/PerUserSettings.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3bac48e2f6a2485f9b17a7258ce9a2e3 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {fileID: 2800000, guid: 40ab1dfa65cdd6247bb1a3d4ea54901c, type: 3} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Editor/Utility/Per User Settings/SettingType.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2024 Carter Games 3 | * 4 | * Permission is hereby granted, free of charge, to any person obtaining a copy 5 | * of this software and associated documentation files (the "Software"), to deal 6 | * in the Software without restriction, including without limitation the rights 7 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | * copies of the Software, and to permit persons to whom the Software is 9 | * furnished to do so, subject to the following conditions: 10 | * 11 | * The above copyright notice and this permission notice shall be included in 12 | * all copies or substantial portions of the Software. 13 | * 14 | * 15 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE 18 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | * THE SOFTWARE. 22 | */ 23 | 24 | namespace CarterGames.Assets.SaveManager.Editor 25 | { 26 | public enum SettingType 27 | { 28 | EditorPref, 29 | PlayerPref, 30 | SessionState, 31 | } 32 | } -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Editor/Utility/Per User Settings/SettingType.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 76067e194a1f42a4b6e84d0e0242cdb7 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {fileID: 2800000, guid: 40ab1dfa65cdd6247bb1a3d4ea54901c, type: 3} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Editor/Utility/Porting.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 28234908f9cf44af98492645fe380c11 3 | timeCreated: 1726411760 -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Editor/Utility/Porting/SaveManagerAssetPort.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2024 Carter Games 3 | * 4 | * Permission is hereby granted, free of charge, to any person obtaining a copy 5 | * of this software and associated documentation files (the "Software"), to deal 6 | * in the Software without restriction, including without limitation the rights 7 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | * copies of the Software, and to permit persons to whom the Software is 9 | * furnished to do so, subject to the following conditions: 10 | * 11 | * The above copyright notice and this permission notice shall be included in 12 | * all copies or substantial portions of the Software. 13 | * 14 | * 15 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE 18 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | * THE SOFTWARE. 22 | */ 23 | 24 | using CarterGames.Common; 25 | 26 | namespace CarterGames.Assets.SaveManager.Editor.Porting 27 | { 28 | /// 29 | /// Handles porting the asset data assets from 2.1.8 -> plugin version 2.2.0+ 30 | /// 31 | public sealed class SaveManagerAssetPort : IAssetEditorInitialize, IAssetEditorReload 32 | { 33 | // IAssetEditorInitialize Implementation 34 | /* ────────────────────────────────────────────────────────────────────────────────────────────────────────── */ 35 | 36 | public int InitializeOrder => 2000; 37 | 38 | 39 | public void OnEditorInitialized() 40 | { 41 | TryPortAssets(); 42 | } 43 | 44 | // IAssetEditorReload Implementation 45 | /* ────────────────────────────────────────────────────────────────────────────────────────────────────────── */ 46 | 47 | public void OnEditorReloaded() 48 | { 49 | TryPortAssets(); 50 | } 51 | 52 | /* ───────────────────────────────────────────────────────────────────────────────────────────────────────────── 53 | | Methods 54 | ───────────────────────────────────────────────────────────────────────────────────────────────────────────── */ 55 | 56 | /// 57 | /// Tries to port the assets, if they are already ported nothing will happen. 58 | /// 59 | private void TryPortAssets() 60 | { 61 | foreach (var porting in AssemblyHelper.GetClassesOfType()) 62 | { 63 | if (!porting.CanPort) continue; 64 | porting.PortAsset(); 65 | } 66 | } 67 | } 68 | } -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Editor/Utility/Porting/SaveManagerAssetPort.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b1a7f0329ead46c691b17f3994432ab0 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {fileID: 2800000, guid: 40ab1dfa65cdd6247bb1a3d4ea54901c, type: 3} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Editor/Utility/Scriptable Assets.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: db404495c3a804947a3b70220e6bc26c 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Editor/Utility/Scriptable Assets/Defenitions.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 288fbb13a8914d85ba98dddb6850cf2e 3 | timeCreated: 1726407819 -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Editor/Utility/Scriptable Assets/Defenitions/ScriptableAssetDefAssetIndex.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2024 Carter Games 3 | * 4 | * Permission is hereby granted, free of charge, to any person obtaining a copy 5 | * of this software and associated documentation files (the "Software"), to deal 6 | * in the Software without restriction, including without limitation the rights 7 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | * copies of the Software, and to permit persons to whom the Software is 9 | * furnished to do so, subject to the following conditions: 10 | * 11 | * The above copyright notice and this permission notice shall be included in 12 | * all copies or substantial portions of the Software. 13 | * 14 | * 15 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE 18 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | * THE SOFTWARE. 22 | */ 23 | 24 | using System; 25 | using UnityEditor; 26 | 27 | namespace CarterGames.Assets.SaveManager.Editor 28 | { 29 | /// 30 | /// Handles the creation and referencing of the asset index file. 31 | /// 32 | public sealed class ScriptableAssetDefAssetIndex : IScriptableAssetDef, ILegacyAssetPort 33 | { 34 | // IScriptableAssetDef Implementation 35 | /* ────────────────────────────────────────────────────────────────────────────────────────────────────────── */ 36 | 37 | private static AssetIndex cache; 38 | private static SerializedObject objCache; 39 | 40 | public Type AssetType => typeof(AssetIndex); 41 | public string DataAssetFileName => "[Save Manager] Asset Index.asset"; 42 | public string DataAssetFilter => $"t:{typeof(AssetIndex).FullName}"; 43 | public string DataAssetPath => $"{ScriptableRef.FullPathResources}{DataAssetFileName}"; 44 | 45 | public AssetIndex AssetRef => ScriptableRef.GetOrCreateAsset(this, ref cache); 46 | public SerializedObject ObjectRef => ScriptableRef.GetOrCreateAssetObject(this, ref objCache); 47 | 48 | public void TryCreate() 49 | { 50 | ScriptableRef.GetOrCreateAsset(this, ref cache); 51 | } 52 | 53 | // ILegacyAssetPort Implementation 54 | /* ────────────────────────────────────────────────────────────────────────────────────────────────────────── */ 55 | 56 | public bool CanPort => AssetDatabaseHelper.TypeExistsElsewhere(DataAssetPath); 57 | 58 | 59 | public void PortAsset() 60 | { 61 | TryCreate(); 62 | 63 | var assets = AssetDatabaseHelper.GetAssetPathNotAtPath(DataAssetPath); 64 | 65 | if (assets != null) 66 | { 67 | foreach (var entry in assets) 68 | { 69 | AssetDatabase.DeleteAsset(entry); 70 | } 71 | } 72 | 73 | AssetDatabase.SaveAssets(); 74 | AssetIndexHandler.UpdateIndex(); 75 | } 76 | } 77 | } -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Editor/Utility/Scriptable Assets/Defenitions/ScriptableAssetDefAssetIndex.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ef4d4045d14246ec9fb2ee5bb035ecce 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {fileID: 2800000, guid: 40ab1dfa65cdd6247bb1a3d4ea54901c, type: 3} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Editor/Utility/Scriptable Assets/Defenitions/ScriptableAssetDefEncryptionAsset.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2024 Carter Games 3 | * 4 | * Permission is hereby granted, free of charge, to any person obtaining a copy 5 | * of this software and associated documentation files (the "Software"), to deal 6 | * in the Software without restriction, including without limitation the rights 7 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | * copies of the Software, and to permit persons to whom the Software is 9 | * furnished to do so, subject to the following conditions: 10 | * 11 | * The above copyright notice and this permission notice shall be included in 12 | * all copies or substantial portions of the Software. 13 | * 14 | * 15 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE 18 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | * THE SOFTWARE. 22 | */ 23 | 24 | using System; 25 | using System.Linq; 26 | using UnityEditor; 27 | 28 | namespace CarterGames.Assets.SaveManager.Editor 29 | { 30 | /// 31 | /// Handles the creation and referencing of the encryption asset file. 32 | /// 33 | public sealed class ScriptableAssetDefEncryptionAsset : IScriptableAssetDef, ILegacyAssetPort 34 | { 35 | // IScriptableAssetDef Implementation 36 | /* ────────────────────────────────────────────────────────────────────────────────────────────────────────── */ 37 | 38 | private static EncryptionKeyAsset cache; 39 | private static SerializedObject objCache; 40 | 41 | public Type AssetType => typeof(EncryptionKeyAsset); 42 | public string DataAssetFileName => "[Save Manager] Encryption Key Asset.asset"; 43 | public string DataAssetFilter => $"t:{typeof(EncryptionKeyAsset).FullName}"; 44 | public string DataAssetPath => $"{ScriptableRef.FullPathData}{DataAssetFileName}"; 45 | 46 | public EncryptionKeyAsset AssetRef => ScriptableRef.GetOrCreateAsset(this, ref cache); 47 | public SerializedObject ObjectRef => ScriptableRef.GetOrCreateAssetObject(this, ref objCache); 48 | 49 | public void TryCreate() 50 | { 51 | ScriptableRef.GetOrCreateAsset(this, ref cache); 52 | } 53 | 54 | // ILegacyAssetPort Implementation 55 | /* ────────────────────────────────────────────────────────────────────────────────────────────────────────── */ 56 | 57 | public bool CanPort => AssetDatabaseHelper.TypeExistsElsewhere(DataAssetPath); 58 | 59 | 60 | public void PortAsset() 61 | { 62 | TryCreate(); 63 | 64 | var assets = AssetDatabaseHelper.GetAssetPathNotAtPath(DataAssetPath).ToArray(); 65 | 66 | if (assets.Length <= 0) return; 67 | 68 | SerializedPropertyHelper.TransferProperties( 69 | new SerializedObject(AssetDatabase.LoadAssetAtPath(assets[0], typeof(EncryptionKeyAsset))), ObjectRef); 70 | 71 | ObjectRef.ApplyModifiedProperties(); 72 | ObjectRef.Update(); 73 | 74 | foreach (var entry in assets) 75 | { 76 | AssetDatabase.DeleteAsset(entry); 77 | } 78 | 79 | AssetDatabase.SaveAssets(); 80 | } 81 | } 82 | } -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Editor/Utility/Scriptable Assets/Defenitions/ScriptableAssetDefEncryptionAsset.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: cb81d13408944baa9eb7ab96f08a234d 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {fileID: 2800000, guid: 40ab1dfa65cdd6247bb1a3d4ea54901c, type: 3} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Editor/Utility/Scriptable Assets/Defenitions/ScriptableAssetDefSaveData.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2024 Carter Games 3 | * 4 | * Permission is hereby granted, free of charge, to any person obtaining a copy 5 | * of this software and associated documentation files (the "Software"), to deal 6 | * in the Software without restriction, including without limitation the rights 7 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | * copies of the Software, and to permit persons to whom the Software is 9 | * furnished to do so, subject to the following conditions: 10 | * 11 | * The above copyright notice and this permission notice shall be included in 12 | * all copies or substantial portions of the Software. 13 | * 14 | * 15 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE 18 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | * THE SOFTWARE. 22 | */ 23 | 24 | using System; 25 | using System.Linq; 26 | using UnityEditor; 27 | 28 | namespace CarterGames.Assets.SaveManager.Editor 29 | { 30 | /// 31 | /// Handles the creation and referencing of the save data asset file. 32 | /// 33 | public sealed class ScriptableAssetDefSaveData : IScriptableAssetDef, ILegacyAssetPort 34 | { 35 | // IScriptableAssetDef Implementation 36 | /* ────────────────────────────────────────────────────────────────────────────────────────────────────────── */ 37 | 38 | private static SaveData cache; 39 | private static SerializedObject objCache; 40 | 41 | public Type AssetType => typeof(SaveData); 42 | public string DataAssetFileName => "[Save Manager] Save Data Asset.asset"; 43 | public string DataAssetFilter => $"t:{typeof(SaveData).FullName}"; 44 | public string DataAssetPath => $"{ScriptableRef.FullPathData}{DataAssetFileName}"; 45 | 46 | public SaveData AssetRef => ScriptableRef.GetOrCreateAsset(this, ref cache); 47 | public SerializedObject ObjectRef => ScriptableRef.GetOrCreateAssetObject(this, ref objCache); 48 | 49 | public void TryCreate() 50 | { 51 | ScriptableRef.GetOrCreateAsset(this, ref cache); 52 | } 53 | 54 | // ILegacyAssetPort Implementation 55 | /* ────────────────────────────────────────────────────────────────────────────────────────────────────────── */ 56 | 57 | public bool CanPort => AssetDatabaseHelper.TypeExistsElsewhere(DataAssetPath); 58 | 59 | 60 | public void PortAsset() 61 | { 62 | TryCreate(); 63 | 64 | var assets = AssetDatabaseHelper.GetAssetPathNotAtPath(DataAssetPath).ToArray(); 65 | 66 | if (assets.Length <= 0) return; 67 | 68 | SerializedPropertyHelper.TransferProperties( 69 | new SerializedObject(AssetDatabase.LoadAssetAtPath(assets[0], typeof(SaveData))), ObjectRef); 70 | 71 | ObjectRef.ApplyModifiedProperties(); 72 | ObjectRef.Update(); 73 | 74 | foreach (var entry in assets) 75 | { 76 | AssetDatabase.DeleteAsset(entry); 77 | } 78 | 79 | AssetDatabase.SaveAssets(); 80 | } 81 | } 82 | } -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Editor/Utility/Scriptable Assets/Defenitions/ScriptableAssetDefSaveData.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 77fe941de555464fba5cbc72c7b486c1 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {fileID: 2800000, guid: 40ab1dfa65cdd6247bb1a3d4ea54901c, type: 3} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Editor/Utility/Scriptable Assets/Defenitions/ScriptableAssetDefSaveProfilesAsset.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2024 Carter Games 3 | * 4 | * Permission is hereby granted, free of charge, to any person obtaining a copy 5 | * of this software and associated documentation files (the "Software"), to deal 6 | * in the Software without restriction, including without limitation the rights 7 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | * copies of the Software, and to permit persons to whom the Software is 9 | * furnished to do so, subject to the following conditions: 10 | * 11 | * The above copyright notice and this permission notice shall be included in 12 | * all copies or substantial portions of the Software. 13 | * 14 | * 15 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE 18 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | * THE SOFTWARE. 22 | */ 23 | 24 | 25 | using System; 26 | using System.Linq; 27 | using UnityEditor; 28 | 29 | namespace CarterGames.Assets.SaveManager.Editor 30 | { 31 | /// 32 | /// Handles the creation and referencing of the save profiles asset file. 33 | /// 34 | public sealed class ScriptableAssetDefSaveProfilesAsset : IScriptableAssetDef, ILegacyAssetPort 35 | { 36 | // IScriptableAssetDef Implementation 37 | /* ────────────────────────────────────────────────────────────────────────────────────────────────────────── */ 38 | 39 | private static SaveProfilesStore cache; 40 | private static SerializedObject objCache; 41 | 42 | public Type AssetType => typeof(SaveProfilesStore); 43 | public string DataAssetFileName => "[Save Manager] Save Profile Asset.asset"; 44 | public string DataAssetFilter => $"t:{typeof(SaveProfilesStore).FullName}"; 45 | public string DataAssetPath => $"{ScriptableRef.FullPathData}{DataAssetFileName}"; 46 | 47 | public SaveProfilesStore AssetRef => ScriptableRef.GetOrCreateAsset(this, ref cache); 48 | public SerializedObject ObjectRef => ScriptableRef.GetOrCreateAssetObject(this, ref objCache); 49 | 50 | public void TryCreate() 51 | { 52 | ScriptableRef.GetOrCreateAsset(this, ref cache); 53 | } 54 | 55 | // ILegacyAssetPort Implementation 56 | /* ────────────────────────────────────────────────────────────────────────────────────────────────────────── */ 57 | 58 | public bool CanPort => AssetDatabaseHelper.TypeExistsElsewhere(DataAssetPath); 59 | 60 | public void PortAsset() 61 | { 62 | TryCreate(); 63 | 64 | var assets = AssetDatabaseHelper.GetAssetPathNotAtPath(DataAssetPath).ToArray(); 65 | 66 | if (assets.Length <= 0) return; 67 | 68 | SerializedPropertyHelper.TransferProperties( 69 | new SerializedObject(AssetDatabase.LoadAssetAtPath(assets[0], typeof(SaveProfilesStore))), ObjectRef); 70 | 71 | ObjectRef.ApplyModifiedProperties(); 72 | ObjectRef.Update(); 73 | 74 | foreach (var entry in assets) 75 | { 76 | AssetDatabase.DeleteAsset(entry); 77 | } 78 | 79 | AssetDatabase.SaveAssets(); 80 | } 81 | } 82 | } -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Editor/Utility/Scriptable Assets/Defenitions/ScriptableAssetDefSaveProfilesAsset.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5c113e7716c64f56b7559ceb33afb437 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {fileID: 2800000, guid: 40ab1dfa65cdd6247bb1a3d4ea54901c, type: 3} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Editor/Utility/Scriptable Assets/Defenitions/ScriptableAssetDefSettingsAsset.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2024 Carter Games 3 | * 4 | * Permission is hereby granted, free of charge, to any person obtaining a copy 5 | * of this software and associated documentation files (the "Software"), to deal 6 | * in the Software without restriction, including without limitation the rights 7 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | * copies of the Software, and to permit persons to whom the Software is 9 | * furnished to do so, subject to the following conditions: 10 | * 11 | * The above copyright notice and this permission notice shall be included in 12 | * all copies or substantial portions of the Software. 13 | * 14 | * 15 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE 18 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | * THE SOFTWARE. 22 | */ 23 | 24 | using System; 25 | using System.Linq; 26 | using UnityEditor; 27 | 28 | namespace CarterGames.Assets.SaveManager.Editor 29 | { 30 | /// 31 | /// Handles the creation and referencing of the settings asset file. 32 | /// 33 | public sealed class ScriptableAssetDefSettingsAsset : IScriptableAssetDef, ILegacyAssetPort 34 | { 35 | // IScriptableAssetDef Implementation 36 | /* ────────────────────────────────────────────────────────────────────────────────────────────────────────── */ 37 | 38 | private static AssetGlobalRuntimeSettings cache; 39 | private static SerializedObject objCache; 40 | 41 | public Type AssetType => typeof(AssetGlobalRuntimeSettings); 42 | public string DataAssetFileName => "[Save Manager] Runtime Settings Asset.asset"; 43 | public string DataAssetFilter => $"t:{typeof(AssetGlobalRuntimeSettings).FullName}"; 44 | public string DataAssetPath => $"{ScriptableRef.FullPathData}{DataAssetFileName}"; 45 | 46 | public AssetGlobalRuntimeSettings AssetRef => ScriptableRef.GetOrCreateAsset(this, ref cache); 47 | public SerializedObject ObjectRef => ScriptableRef.GetOrCreateAssetObject(this, ref objCache); 48 | 49 | public void TryCreate() 50 | { 51 | ScriptableRef.GetOrCreateAsset(this, ref cache); 52 | } 53 | 54 | // ILegacyAssetPort Implementation 55 | /* ────────────────────────────────────────────────────────────────────────────────────────────────────────── */ 56 | 57 | public bool CanPort => AssetDatabaseHelper.TypeExistsElsewhere(DataAssetPath); 58 | 59 | 60 | public void PortAsset() 61 | { 62 | TryCreate(); 63 | 64 | var assets = AssetDatabaseHelper.GetAssetPathNotAtPath(DataAssetPath).ToArray(); 65 | 66 | if (assets.Length <= 0) return; 67 | 68 | SerializedPropertyHelper.TransferProperties( 69 | new SerializedObject(AssetDatabase.LoadAssetAtPath(assets[0], typeof(AssetGlobalRuntimeSettings))), ObjectRef); 70 | 71 | ObjectRef.ApplyModifiedProperties(); 72 | ObjectRef.Update(); 73 | 74 | foreach (var entry in assets) 75 | { 76 | AssetDatabase.DeleteAsset(entry); 77 | } 78 | 79 | AssetDatabase.SaveAssets(); 80 | } 81 | } 82 | } -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Editor/Utility/Scriptable Assets/Defenitions/ScriptableAssetDefSettingsAsset.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d9cd5541b84d4efcba472748e54327fb 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {fileID: 2800000, guid: 40ab1dfa65cdd6247bb1a3d4ea54901c, type: 3} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Editor/Utility/Scriptable Assets/FileEditorUtil.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 009068de8f2e98a40803e15b859e0628 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {fileID: 2800000, guid: 40ab1dfa65cdd6247bb1a3d4ea54901c, type: 3} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Editor/Utility/Scriptable Assets/Interfaces.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3f22bacb9026482d9bc1ee2dfd16f474 3 | timeCreated: 1726863572 -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Editor/Utility/Scriptable Assets/Interfaces/ILegacyAssetPort.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2024 Carter Games 3 | * 4 | * Permission is hereby granted, free of charge, to any person obtaining a copy 5 | * of this software and associated documentation files (the "Software"), to deal 6 | * in the Software without restriction, including without limitation the rights 7 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | * copies of the Software, and to permit persons to whom the Software is 9 | * furnished to do so, subject to the following conditions: 10 | * 11 | * The above copyright notice and this permission notice shall be included in 12 | * all copies or substantial portions of the Software. 13 | * 14 | * 15 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE 18 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | * THE SOFTWARE. 22 | */ 23 | 24 | namespace CarterGames.Assets.SaveManager.Editor 25 | { 26 | /// 27 | /// Implement to port from an older asset setup to a newer one. 28 | /// 29 | public interface ILegacyAssetPort 30 | { 31 | bool CanPort { get; } 32 | void PortAsset(); 33 | } 34 | } -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Editor/Utility/Scriptable Assets/Interfaces/ILegacyAssetPort.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 342eb641ba33465a9dad1893343c9c8d 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {fileID: 2800000, guid: 40ab1dfa65cdd6247bb1a3d4ea54901c, type: 3} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Editor/Utility/Scriptable Assets/Interfaces/IScriptableAssetDef.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2024 Carter Games 3 | * 4 | * Permission is hereby granted, free of charge, to any person obtaining a copy 5 | * of this software and associated documentation files (the "Software"), to deal 6 | * in the Software without restriction, including without limitation the rights 7 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | * copies of the Software, and to permit persons to whom the Software is 9 | * furnished to do so, subject to the following conditions: 10 | * 11 | * The above copyright notice and this permission notice shall be included in 12 | * all copies or substantial portions of the Software. 13 | * 14 | * 15 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE 18 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | * THE SOFTWARE. 22 | */ 23 | 24 | using System; 25 | using UnityEditor; 26 | 27 | namespace CarterGames.Assets.SaveManager.Editor 28 | { 29 | /// 30 | /// Implement to define a scriptable asset in the asset. 31 | /// 32 | /// The type of the asset itself. 33 | public interface IScriptableAssetDef where T : SaveManagerAsset 34 | { 35 | Type AssetType { get; } 36 | string DataAssetFileName { get; } 37 | string DataAssetFilter { get; } 38 | string DataAssetPath { get; } 39 | T AssetRef { get; } 40 | SerializedObject ObjectRef { get; } 41 | void TryCreate(); 42 | } 43 | } -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Editor/Utility/Scriptable Assets/Interfaces/IScriptableAssetDef.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7b2c99e0319b490e88b316c13ad730ef 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {fileID: 2800000, guid: 40ab1dfa65cdd6247bb1a3d4ea54901c, type: 3} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Editor/Utility/Scriptable Assets/ScriptableObjectInitialize.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2024 Carter Games 3 | * 4 | * Permission is hereby granted, free of charge, to any person obtaining a copy 5 | * of this software and associated documentation files (the "Software"), to deal 6 | * in the Software without restriction, including without limitation the rights 7 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | * copies of the Software, and to permit persons to whom the Software is 9 | * furnished to do so, subject to the following conditions: 10 | * 11 | * The above copyright notice and this permission notice shall be included in 12 | * all copies or substantial portions of the Software. 13 | * 14 | * 15 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE 18 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | * THE SOFTWARE. 22 | */ 23 | 24 | namespace CarterGames.Assets.SaveManager.Editor 25 | { 26 | /// 27 | /// Handles any logic for generating/updating the scriptable objects for the asset where needed. 28 | /// 29 | public sealed class ScriptableObjectInitialize : IAssetEditorInitialize, IAssetEditorReload 30 | { 31 | /* ───────────────────────────────────────────────────────────────────────────────────────────────────────────── 32 | | IAssetEditorInitialize 33 | ───────────────────────────────────────────────────────────────────────────────────────────────────────────── */ 34 | 35 | /// 36 | /// Defines the order that this initializer run at. 37 | /// 38 | public int InitializeOrder => -1; 39 | 40 | 41 | /// 42 | /// Runs when the asset initialize flow is used. 43 | /// 44 | public void OnEditorInitialized() 45 | { 46 | if (ScriptableRef.HasAllAssets()) return; 47 | ScriptableRef.TryCreateAssets(); 48 | } 49 | 50 | /* ───────────────────────────────────────────────────────────────────────────────────────────────────────────── 51 | | IAssetEditorReload 52 | ───────────────────────────────────────────────────────────────────────────────────────────────────────────── */ 53 | 54 | /// 55 | /// Runs when the asset reload flow is used. 56 | /// 57 | public void OnEditorReloaded() 58 | { 59 | if (ScriptableRef.HasAllAssets()) return; 60 | ScriptableRef.TryCreateAssets(); 61 | } 62 | } 63 | } -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Editor/Utility/Scriptable Assets/ScriptableObjectInitialize.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 260a7583ac83448d89241a21c2e415f5 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {fileID: 2800000, guid: 40ab1dfa65cdd6247bb1a3d4ea54901c, type: 3} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Editor/Utility/Scriptable Assets/ScriptableRef.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 222a0fd147d06a14bbf8d2d7a5f6dabb 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {fileID: 2800000, guid: 40ab1dfa65cdd6247bb1a3d4ea54901c, type: 3} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Editor/Utility/UtilEditor.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 61ef255521bdd4a4484514f89d1cb627 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {fileID: 2800000, guid: 40ab1dfa65cdd6247bb1a3d4ea54901c, type: 3} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Runtime.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 61d2fa8a0e5938b40bee10a16e56e0a2 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Runtime/CarterGames.SaveManager.Runtime.asmdef: -------------------------------------------------------------------------------- 1 | { 2 | "name": "CarterGames.SaveManager.Runtime", 3 | "rootNamespace": "CarterGames.Assets.SaveManager", 4 | "references": [ 5 | "GUID:0dd839a085d98c5478abb31237806e7c" 6 | ], 7 | "includePlatforms": [], 8 | "excludePlatforms": [], 9 | "allowUnsafeCode": false, 10 | "overrideReferences": false, 11 | "precompiledReferences": [], 12 | "autoReferenced": true, 13 | "defineConstraints": [], 14 | "versionDefines": [], 15 | "noEngineReferences": false 16 | } -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Runtime/CarterGames.SaveManager.Runtime.asmdef.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5fed357a0eb29414bb1d1667107777c5 3 | AssemblyDefinitionImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Runtime/Common.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: db5db467e849c6c429a0319efe2aefa6 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Runtime/Common/AssemblyHelper.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 95dd3e583d064e96a0950749c0317c3e 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {fileID: 2800000, guid: 40ab1dfa65cdd6247bb1a3d4ea54901c, type: 3} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Runtime/Common/CarterGames.SaveManager.Common.asmdef: -------------------------------------------------------------------------------- 1 | { 2 | "name": "CarterGames.SaveManager.Common", 3 | "rootNamespace": "", 4 | "references": [], 5 | "includePlatforms": [], 6 | "excludePlatforms": [], 7 | "allowUnsafeCode": false, 8 | "overrideReferences": false, 9 | "precompiledReferences": [], 10 | "autoReferenced": true, 11 | "defineConstraints": [], 12 | "versionDefines": [], 13 | "noEngineReferences": false 14 | } -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Runtime/Common/CarterGames.SaveManager.Common.asmdef.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0dd839a085d98c5478abb31237806e7c 3 | AssemblyDefinitionImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Runtime/Common/Evt.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 520f71aa6f6658349bf94d602e59139f 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {fileID: 2800000, guid: 40ab1dfa65cdd6247bb1a3d4ea54901c, type: 3} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Runtime/Common/Ref.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c8330aa1f4b251240800045d90a83b88 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {fileID: 2800000, guid: 40ab1dfa65cdd6247bb1a3d4ea54901c, type: 3} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Runtime/Data.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 83fd9f082041ef94391dd5866e185609 3 | timeCreated: 1670341142 -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Runtime/Data/AssetAccessor.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 733e3a2ec46e6bd42a7dcbdc59048dfc 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {fileID: 2800000, guid: 40ab1dfa65cdd6247bb1a3d4ea54901c, type: 3} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Runtime/Data/AssetGlobalRuntimeSettings.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b39e476c6fdba234b8d9e92a8ec64922 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {fileID: 2800000, guid: 91abfb2332a55d549bc9f0507928393d, type: 3} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Runtime/Data/AssetIndex.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2024 Carter Games 3 | * 4 | * Permission is hereby granted, free of charge, to any person obtaining a copy 5 | * of this software and associated documentation files (the "Software"), to deal 6 | * in the Software without restriction, including without limitation the rights 7 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | * copies of the Software, and to permit persons to whom the Software is 9 | * furnished to do so, subject to the following conditions: 10 | * 11 | * The above copyright notice and this permission notice shall be included in 12 | * all copies or substantial portions of the Software. 13 | * 14 | * 15 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE 18 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | * THE SOFTWARE. 22 | */ 23 | 24 | using System.Collections.Generic; 25 | using CarterGames.Assets.SaveManager.Serializiation; 26 | using UnityEngine; 27 | 28 | namespace CarterGames.Assets.SaveManager 29 | { 30 | /// 31 | /// Handles a data store of all the scriptable objects for the asset that are used at runtime. 32 | /// 33 | [CreateAssetMenu(fileName = "Asset Index", menuName = "Carter Games/Save Manager/Asset Index Asset", order = 1)] 34 | public sealed class AssetIndex : SaveManagerAsset 35 | { 36 | /* ───────────────────────────────────────────────────────────────────────────────────────────────────────────── 37 | | Fields 38 | ───────────────────────────────────────────────────────────────────────────────────────────────────────────── */ 39 | 40 | [SerializeField] private SerializableDictionary> assets; 41 | 42 | /* ───────────────────────────────────────────────────────────────────────────────────────────────────────────── 43 | | Properties 44 | ───────────────────────────────────────────────────────────────────────────────────────────────────────────── */ 45 | 46 | /// 47 | /// A lookup of all the assets in the project that can be used at runtime. 48 | /// 49 | public SerializableDictionary> Lookup => assets; 50 | } 51 | } -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Runtime/Data/AssetIndex.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 333840ffd80a4c846a67450ce9700e91 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {fileID: 2800000, guid: db92c46a2a8805145b1f5fbb7e995302, type: 3} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Runtime/Data/EncryptionKeyAsset.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2024 Carter Games 3 | * 4 | * Permission is hereby granted, free of charge, to any person obtaining a copy 5 | * of this software and associated documentation files (the "Software"), to deal 6 | * in the Software without restriction, including without limitation the rights 7 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | * copies of the Software, and to permit persons to whom the Software is 9 | * furnished to do so, subject to the following conditions: 10 | * 11 | * The above copyright notice and this permission notice shall be included in 12 | * all copies or substantial portions of the Software. 13 | * 14 | * 15 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE 18 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | * THE SOFTWARE. 22 | */ 23 | 24 | using System.Security.Cryptography; 25 | using UnityEngine; 26 | 27 | namespace CarterGames.Assets.SaveManager 28 | { 29 | /// 30 | /// Holds the data for the save manager encryption key. 31 | /// 32 | [CreateAssetMenu(fileName = "Encryption Key Asset", menuName = "Carter Games/Save Manager/Encryption Key Asset", order = 5)] 33 | public sealed class EncryptionKeyAsset : SaveManagerAsset 34 | { 35 | /* ───────────────────────────────────────────────────────────────────────────────────────────────────────────── 36 | | Fields 37 | ───────────────────────────────────────────────────────────────────────────────────────────────────────────── */ 38 | 39 | [SerializeField] private byte[] saveEncryptionKey; 40 | [SerializeField] private int keySize = 256; 41 | 42 | /* ───────────────────────────────────────────────────────────────────────────────────────────────────────────── 43 | | Properties 44 | ───────────────────────────────────────────────────────────────────────────────────────────────────────────── */ 45 | 46 | /// 47 | /// Gets if there is a key setup. 48 | /// 49 | public bool HasKey => saveEncryptionKey != null && saveEncryptionKey.Length > 0; 50 | 51 | 52 | /// 53 | /// Gets the current key for the save data. 54 | /// 55 | public byte[] SaveEncryptionKey 56 | { 57 | get => saveEncryptionKey; 58 | set => saveEncryptionKey = value; 59 | } 60 | 61 | /* ───────────────────────────────────────────────────────────────────────────────────────────────────────────── 62 | | Methods 63 | ───────────────────────────────────────────────────────────────────────────────────────────────────────────── */ 64 | 65 | /// 66 | /// Generates a new encryption key when called. 67 | /// 68 | /// 69 | public byte[] GenerateKey() 70 | { 71 | var aes = Aes.Create(); 72 | aes.KeySize = keySize; 73 | return aes.Key; 74 | } 75 | } 76 | } -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Runtime/Data/EncryptionKeyAsset.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 491aaa4ed61e5904aacc7aeedbbbe6eb 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {fileID: 2800000, guid: 3af013d337e16964d8ef4276a3bf3e96, type: 3} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Runtime/Data/SaveManagerAsset.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2024 Carter Games 3 | * 4 | * Permission is hereby granted, free of charge, to any person obtaining a copy 5 | * of this software and associated documentation files (the "Software"), to deal 6 | * in the Software without restriction, including without limitation the rights 7 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | * copies of the Software, and to permit persons to whom the Software is 9 | * furnished to do so, subject to the following conditions: 10 | * 11 | * The above copyright notice and this permission notice shall be included in 12 | * all copies or substantial portions of the Software. 13 | * 14 | * 15 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE 18 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | * THE SOFTWARE. 22 | */ 23 | 24 | using System; 25 | using UnityEngine; 26 | 27 | namespace CarterGames.Assets.SaveManager 28 | { 29 | /// 30 | /// A base class that just defines a scriptable object type that can be looked up without getting non-asset scriptable objects. 31 | /// 32 | [Serializable] 33 | public abstract class SaveManagerAsset : ScriptableObject { } 34 | } -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Runtime/Data/SaveManagerAsset.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: decdd3176e7a15445ac90eb611dee343 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {fileID: 2800000, guid: 40ab1dfa65cdd6247bb1a3d4ea54901c, type: 3} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Runtime/Extensions.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: fae0ac251740a514fa1e104c9d7027a1 3 | timeCreated: 1679227402 -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Runtime/Extensions/SaveManagerExtensions.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8ca2aa63e440980439ebdb75be6d8a13 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {fileID: 2800000, guid: 40ab1dfa65cdd6247bb1a3d4ea54901c, type: 3} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Runtime/Logger.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 73e89a3abc8fae74cb0f2d80de2f056a 3 | timeCreated: 1670345361 -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Runtime/Logger/SaveManagerLogger.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9ca7e9830614b7d4787c3fc785bdfd74 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {fileID: 2800000, guid: 40ab1dfa65cdd6247bb1a3d4ea54901c, type: 3} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Runtime/Save Data.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 149855ef63893c44cb7c878cb48a8b2c 3 | timeCreated: 1675628414 -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Runtime/Save Data/Objects.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6402c6aeabb27d04d9cbe24ec6a21229 3 | timeCreated: 1675628437 -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Runtime/Save Data/Objects/SaveObject.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0cb7f499da2dd92459616bdf26236cb3 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {fileID: 2800000, guid: 40ab1dfa65cdd6247bb1a3d4ea54901c, type: 3} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Runtime/Save Data/SaveData.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6de7b04a9e0c4364a80d79cce049ad9e 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {fileID: 2800000, guid: 8e118cc7ba999be40a60c63df1be4221, type: 3} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Runtime/Save Data/Values.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b35f115b4c099e745bdc0bce54ca2a57 3 | timeCreated: 1672310304 -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Runtime/Save Data/Values/SaveValue.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 478de3a901961134f9adfbca26981056 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {fileID: 2800000, guid: 40ab1dfa65cdd6247bb1a3d4ea54901c, type: 3} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Runtime/Save Data/Values/SaveValueBase.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2024 Carter Games 3 | * 4 | * Permission is hereby granted, free of charge, to any person obtaining a copy 5 | * of this software and associated documentation files (the "Software"), to deal 6 | * in the Software without restriction, including without limitation the rights 7 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | * copies of the Software, and to permit persons to whom the Software is 9 | * furnished to do so, subject to the following conditions: 10 | * 11 | * The above copyright notice and this permission notice shall be included in 12 | * all copies or substantial portions of the Software. 13 | * 14 | * 15 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE 18 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | * THE SOFTWARE. 22 | */ 23 | 24 | using System; 25 | using UnityEngine; 26 | 27 | namespace CarterGames.Assets.SaveManager 28 | { 29 | /// 30 | /// A base class for a save value. 31 | /// 32 | [Serializable] 33 | public abstract class SaveValueBase 34 | { 35 | /* ───────────────────────────────────────────────────────────────────────────────────────────────────────────── 36 | | Fields 37 | ───────────────────────────────────────────────────────────────────────────────────────────────────────────── */ 38 | 39 | /// 40 | /// The key for the save value. 41 | /// 42 | [HideInInspector] public string key; 43 | 44 | /* ───────────────────────────────────────────────────────────────────────────────────────────────────────────── 45 | | Properties 46 | ───────────────────────────────────────────────────────────────────────────────────────────────────────────── */ 47 | 48 | /// 49 | /// The value of the save value as an object. 50 | /// 51 | public abstract object ValueObject { get; set; } 52 | 53 | /* ───────────────────────────────────────────────────────────────────────────────────────────────────────────── 54 | | Methods 55 | ───────────────────────────────────────────────────────────────────────────────────────────────────────────── */ 56 | 57 | /// 58 | /// Reset the value on call. 59 | /// 60 | public abstract void ResetValue(bool useDefault = true); 61 | 62 | 63 | /// 64 | /// Assign the save value from 65 | /// 66 | /// The value to assign from. 67 | public abstract void AssignFromObject(SaveValueBase value); 68 | } 69 | } -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Runtime/Save Data/Values/SaveValueBase.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1b4e01b3dcb46aa4d8250c2eac201606 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {fileID: 2800000, guid: 40ab1dfa65cdd6247bb1a3d4ea54901c, type: 3} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Runtime/Save Listeners.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1d253f9ccd5821647be832e0fbc4d718 3 | timeCreated: 1672659770 -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Runtime/Save Listeners/ILoadListener.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2024 Carter Games 3 | * 4 | * Permission is hereby granted, free of charge, to any person obtaining a copy 5 | * of this software and associated documentation files (the "Software"), to deal 6 | * in the Software without restriction, including without limitation the rights 7 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | * copies of the Software, and to permit persons to whom the Software is 9 | * furnished to do so, subject to the following conditions: 10 | * 11 | * The above copyright notice and this permission notice shall be included in 12 | * all copies or substantial portions of the Software. 13 | * 14 | * 15 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE 18 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | * THE SOFTWARE. 22 | */ 23 | 24 | namespace CarterGames.Assets.SaveManager 25 | { 26 | /// 27 | /// Defines an load listener implementation. 28 | /// 29 | public interface ILoadListener 30 | { 31 | /* ————————————————————————————————————————————————————————————————————————————————————————————————————————————— 32 | | Methods 33 | ————————————————————————————————————————————————————————————————————————————————————————————————————————————— */ 34 | 35 | /// 36 | /// Implement to run logic when the save is called to load at runtime. 37 | /// 38 | void OnGameLoadCalled(); 39 | 40 | 41 | /// 42 | /// Implement to run logic when the save has completed loading at runtime. 43 | /// 44 | void OnGameLoadCompleted(); 45 | } 46 | } -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Runtime/Save Listeners/ILoadListener.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 28a10bee69b2af042896ebd5fa7cb4ee 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {fileID: 2800000, guid: 40ab1dfa65cdd6247bb1a3d4ea54901c, type: 3} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Runtime/Save Listeners/ISaveListener.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2024 Carter Games 3 | * 4 | * Permission is hereby granted, free of charge, to any person obtaining a copy 5 | * of this software and associated documentation files (the "Software"), to deal 6 | * in the Software without restriction, including without limitation the rights 7 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | * copies of the Software, and to permit persons to whom the Software is 9 | * furnished to do so, subject to the following conditions: 10 | * 11 | * The above copyright notice and this permission notice shall be included in 12 | * all copies or substantial portions of the Software. 13 | * 14 | * 15 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE 18 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | * THE SOFTWARE. 22 | */ 23 | 24 | namespace CarterGames.Assets.SaveManager 25 | { 26 | /// 27 | /// Defines an save listener implementation. 28 | /// 29 | public interface ISaveListener 30 | { 31 | /* ————————————————————————————————————————————————————————————————————————————————————————————————————————————— 32 | | Methods 33 | ————————————————————————————————————————————————————————————————————————————————————————————————————————————— */ 34 | 35 | /// 36 | /// Implement to run logic when the save is called to save at runtime. 37 | /// 38 | void OnGameSaveCalled(); 39 | 40 | 41 | /// 42 | /// Implement to run logic when the save has completed saving at runtime. 43 | /// 44 | void OnGameSaveCompleted(); 45 | } 46 | } -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Runtime/Save Listeners/ISaveListener.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2bc4ed3f82e97d8478356f4d495e4714 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {fileID: 2800000, guid: 40ab1dfa65cdd6247bb1a3d4ea54901c, type: 3} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Runtime/SaveManager.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ee19c7635091ee244ac9d602115df25f 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {fileID: 2800000, guid: 40ab1dfa65cdd6247bb1a3d4ea54901c, type: 3} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Runtime/Saving.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b7b6c40353961a844910640358dd1fe4 3 | timeCreated: 1677785731 -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Runtime/Saving/Automation.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4c15c9e3646128b4ea68e59b1efe9514 3 | timeCreated: 1682059690 -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Runtime/Saving/Automation/AutoSave.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 01178ef7e8a9743468276adb9325418c 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {fileID: 2800000, guid: 40ab1dfa65cdd6247bb1a3d4ea54901c, type: 3} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Runtime/Saving/Encryption.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0fbfbef5328049e44a9b4521aa12fd3c 3 | timeCreated: 1677780898 -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Runtime/Saving/Encryption/Data.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ac833cc08e6b4cedbd83f6a26b26c5cf 3 | timeCreated: 1694241162 -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Runtime/Saving/Encryption/Data/EncryptionOption.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2024 Carter Games 3 | * 4 | * Permission is hereby granted, free of charge, to any person obtaining a copy 5 | * of this software and associated documentation files (the "Software"), to deal 6 | * in the Software without restriction, including without limitation the rights 7 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | * copies of the Software, and to permit persons to whom the Software is 9 | * furnished to do so, subject to the following conditions: 10 | * 11 | * The above copyright notice and this permission notice shall be included in 12 | * all copies or substantial portions of the Software. 13 | * 14 | * 15 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE 18 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | * THE SOFTWARE. 22 | */ 23 | 24 | using UnityEngine; 25 | 26 | namespace CarterGames.Assets.SaveManager.Encryption 27 | { 28 | /// 29 | /// Defines the encryption options that the save manager can use. 30 | /// 31 | public enum EncryptionOption 32 | { 33 | /// 34 | /// Doesn't use encryption & the save data will be saved in plain JSON text. 35 | /// 36 | [InspectorName("Disabled (Plain Text)")] Disabled, 37 | 38 | 39 | /// 40 | /// Uses AES encryption on the save data when saving. 41 | /// 42 | [InspectorName("Enabled (AES)")] Aes, 43 | } 44 | } -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Runtime/Saving/Encryption/Data/EncryptionOption.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 374cadb4203ba894e9b226c4f02e6a14 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {fileID: 2800000, guid: 40ab1dfa65cdd6247bb1a3d4ea54901c, type: 3} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Runtime/Saving/Encryption/EncryptionHandler.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: cae7171d6dd7b1b409f57ef65329b611 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {fileID: 2800000, guid: 40ab1dfa65cdd6247bb1a3d4ea54901c, type: 3} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Runtime/Saving/Encryption/Handlers.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 060e01feaffbb09469a8d0eb6f14f6ae 3 | timeCreated: 1687444887 -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Runtime/Saving/Encryption/Handlers/AesEncryption.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7fef7c5f6d37a464ba51705e4daab7b7 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {fileID: 2800000, guid: 40ab1dfa65cdd6247bb1a3d4ea54901c, type: 3} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Runtime/Saving/Encryption/Handlers/IEncryptionHandler.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2024 Carter Games 3 | * 4 | * Permission is hereby granted, free of charge, to any person obtaining a copy 5 | * of this software and associated documentation files (the "Software"), to deal 6 | * in the Software without restriction, including without limitation the rights 7 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | * copies of the Software, and to permit persons to whom the Software is 9 | * furnished to do so, subject to the following conditions: 10 | * 11 | * The above copyright notice and this permission notice shall be included in 12 | * all copies or substantial portions of the Software. 13 | * 14 | * 15 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE 18 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | * THE SOFTWARE. 22 | */ 23 | 24 | namespace CarterGames.Assets.SaveManager.Encryption 25 | { 26 | public interface IEncryptionHandler 27 | { 28 | public void Encrypt(string jsonData); 29 | public string Decrypt(); 30 | } 31 | } -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Runtime/Saving/Encryption/Handlers/IEncryptionHandler.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 176e6b032849ccf4f919409ab492b186 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {fileID: 2800000, guid: 40ab1dfa65cdd6247bb1a3d4ea54901c, type: 3} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Runtime/Saving/Handlers.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 71b5a4b66199496fb98e1fe851b20010 3 | timeCreated: 1694416820 -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Runtime/Saving/Handlers/ILoadHandler.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2024 Carter Games 3 | * 4 | * Permission is hereby granted, free of charge, to any person obtaining a copy 5 | * of this software and associated documentation files (the "Software"), to deal 6 | * in the Software without restriction, including without limitation the rights 7 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | * copies of the Software, and to permit persons to whom the Software is 9 | * furnished to do so, subject to the following conditions: 10 | * 11 | * The above copyright notice and this permission notice shall be included in 12 | * all copies or substantial portions of the Software. 13 | * 14 | * 15 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE 18 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | * THE SOFTWARE. 22 | */ 23 | 24 | using CarterGames.Assets.SaveManager.Serializiation; 25 | 26 | namespace CarterGames.Assets.SaveManager 27 | { 28 | /// 29 | /// Defines an interface for a game load handler to process the game save file data. 30 | /// 31 | public interface ILoadHandler 32 | { 33 | /* ————————————————————————————————————————————————————————————————————————————————————————————————————————————— 34 | | Methods 35 | ————————————————————————————————————————————————————————————————————————————————————————————————————————————— */ 36 | 37 | /// 38 | /// Implement to write logic for a game save file loader. 39 | /// 40 | /// The save path of the save file. 41 | /// The save data loaded into the nested dictionary setup. 42 | SerializableDictionary> LoadFromFile(string savePath); 43 | } 44 | } -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Runtime/Saving/Handlers/ILoadHandler.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2ec5b6667e24d5c45914e786b3aa9a76 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {fileID: 2800000, guid: 40ab1dfa65cdd6247bb1a3d4ea54901c, type: 3} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Runtime/Saving/Handlers/StandardSaveHandler.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 74c7cdc93f14c9e4a8423e975cd5e979 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {fileID: 2800000, guid: 40ab1dfa65cdd6247bb1a3d4ea54901c, type: 3} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Runtime/Saving/Handlers/WebSaveHandler.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d89850032ec57b74b8560b7b830a834e 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {fileID: 2800000, guid: 40ab1dfa65cdd6247bb1a3d4ea54901c, type: 3} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Runtime/Saving/Serialization.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a16c798db51dad94ca5fdfce5b67b1b6 3 | timeCreated: 1677744081 -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Runtime/Saving/Serialization/Dictionary.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1d50b97e4c763d84c85b5062333de594 3 | timeCreated: 1677744085 -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Runtime/Saving/Serialization/Dictionary/SerializableDictionary.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2ecabc83a587830469ba335fb91712ce 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {fileID: 2800000, guid: 40ab1dfa65cdd6247bb1a3d4ea54901c, type: 3} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Runtime/Saving/Serialization/Dictionary/SerializableKeyValuePair.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: fb6fb4e441e3a49449e8a466e3447982 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {fileID: 2800000, guid: 40ab1dfa65cdd6247bb1a3d4ea54901c, type: 3} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Runtime/Utility.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4ff085d4c0ed0f64d8654feeb20b7eea 3 | timeCreated: 1680969078 -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Runtime/Utility/Per User Settings Runtime.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 187bf7d525e74e6cb8ec8538bfa005dc 3 | timeCreated: 1704034711 -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Runtime/Utility/Per User Settings Runtime/PerUserSettingsRuntime.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 62b71687f98847d89873028acdf6193c 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {fileID: 2800000, guid: 40ab1dfa65cdd6247bb1a3d4ea54901c, type: 3} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Runtime/Utility/Perf Settings.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6981afd490294595904d2424885612fc 3 | timeCreated: 1704036270 -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Runtime/Utility/Perf Settings/PrefSetting.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2024 Carter Games 3 | * 4 | * Permission is hereby granted, free of charge, to any person obtaining a copy 5 | * of this software and associated documentation files (the "Software"), to deal 6 | * in the Software without restriction, including without limitation the rights 7 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | * copies of the Software, and to permit persons to whom the Software is 9 | * furnished to do so, subject to the following conditions: 10 | * 11 | * The above copyright notice and this permission notice shall be included in 12 | * all copies or substantial portions of the Software. 13 | * 14 | * 15 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE 18 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | * THE SOFTWARE. 22 | */ 23 | 24 | namespace CarterGames.Assets.SaveManager.Utility 25 | { 26 | /// 27 | /// Handles the pref setting to edit 28 | /// 29 | /// 30 | /// Is an enum as other settings were used before and may be used in the future. 31 | /// 32 | public enum PrefSetting 33 | { 34 | /// 35 | /// For editing the encryption setting saved as last used. 36 | /// 37 | Encryption, 38 | } 39 | } -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Runtime/Utility/Perf Settings/PrefSetting.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bd81b68aff77cb04c953dbfc56f5a9a6 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {fileID: 2800000, guid: 40ab1dfa65cdd6247bb1a3d4ea54901c, type: 3} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Runtime/Utility/Perf Settings/PrefUseOption.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2024 Carter Games 3 | * 4 | * Permission is hereby granted, free of charge, to any person obtaining a copy 5 | * of this software and associated documentation files (the "Software"), to deal 6 | * in the Software without restriction, including without limitation the rights 7 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | * copies of the Software, and to permit persons to whom the Software is 9 | * furnished to do so, subject to the following conditions: 10 | * 11 | * The above copyright notice and this permission notice shall be included in 12 | * all copies or substantial portions of the Software. 13 | * 14 | * 15 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE 18 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | * THE SOFTWARE. 22 | */ 23 | 24 | namespace CarterGames.Assets.SaveManager.Utility 25 | { 26 | /// 27 | /// Defines the use locations for a pref setting. 28 | /// 29 | public enum PrefUseOption 30 | { 31 | /// 32 | /// The current setting used by the game, is updated by build when changes between build of the game. 33 | /// 34 | Current, 35 | 36 | 37 | /// 38 | /// The current setting used in the build of the game, is set when a build is made. 39 | /// 40 | Build, 41 | 42 | 43 | /// 44 | /// Same as build but for editor space. 45 | /// 46 | Editor, 47 | 48 | 49 | /// 50 | /// Same as current but for editor space. 51 | /// 52 | EditorCurrent 53 | } 54 | } -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Runtime/Utility/Perf Settings/PrefUseOption.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 229639e37bb52224faa02e658ecf0913 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {fileID: 2800000, guid: 40ab1dfa65cdd6247bb1a3d4ea54901c, type: 3} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Code/Runtime/Utility/UtilRuntime.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 64b7f5e3a639771439c85e8cba2a1121 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {fileID: 2800000, guid: 40ab1dfa65cdd6247bb1a3d4ea54901c, type: 3} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Demo.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 082451c4019b84a4aa0d049115edc309 3 | timeCreated: 1672085173 -------------------------------------------------------------------------------- /Carter Games/Save Manager/Demo/Art.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6faeac80b8e47e342ab91190a7011cb6 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Demo/Art/T_Demo_Circle_Outline_Thick.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CarterGames/SaveManager/341e066ac080efeedd05161c4423a04044bd91ac/Carter Games/Save Manager/Demo/Art/T_Demo_Circle_Outline_Thick.png -------------------------------------------------------------------------------- /Carter Games/Save Manager/Demo/Art/T_Demo_Circle_Outline_Thick.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e903598b72fdd524b8babaa8d321cd93 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 11 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 0 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | vTOnly: 0 27 | grayScaleToAlpha: 0 28 | generateCubemap: 6 29 | cubemapConvolution: 0 30 | seamlessCubemap: 0 31 | textureFormat: 1 32 | maxTextureSize: 2048 33 | textureSettings: 34 | serializedVersion: 2 35 | filterMode: -1 36 | aniso: -1 37 | mipBias: -100 38 | wrapU: 1 39 | wrapV: 1 40 | wrapW: -1 41 | nPOTScale: 0 42 | lightmap: 0 43 | compressionQuality: 50 44 | spriteMode: 1 45 | spriteExtrude: 1 46 | spriteMeshType: 1 47 | alignment: 0 48 | spritePivot: {x: 0.5, y: 0.5} 49 | spritePixelsToUnits: 100 50 | spriteBorder: {x: 128, y: 128, z: 128, w: 128} 51 | spriteGenerateFallbackPhysicsShape: 1 52 | alphaUsage: 1 53 | alphaIsTransparency: 1 54 | spriteTessellationDetail: -1 55 | textureType: 8 56 | textureShape: 1 57 | singleChannelComponent: 0 58 | flipbookRows: 1 59 | flipbookColumns: 1 60 | maxTextureSizeSet: 0 61 | compressionQualitySet: 0 62 | textureFormatSet: 0 63 | ignorePngGamma: 0 64 | applyGammaDecoding: 0 65 | platformSettings: 66 | - serializedVersion: 3 67 | buildTarget: DefaultTexturePlatform 68 | maxTextureSize: 256 69 | resizeAlgorithm: 0 70 | textureFormat: -1 71 | textureCompression: 1 72 | compressionQuality: 50 73 | crunchedCompression: 0 74 | allowsAlphaSplitting: 0 75 | overridden: 0 76 | androidETC2FallbackOverride: 0 77 | forceMaximumCompressionQuality_BC6H_BC7: 0 78 | - serializedVersion: 3 79 | buildTarget: Standalone 80 | maxTextureSize: 256 81 | resizeAlgorithm: 0 82 | textureFormat: -1 83 | textureCompression: 1 84 | compressionQuality: 50 85 | crunchedCompression: 0 86 | allowsAlphaSplitting: 0 87 | overridden: 0 88 | androidETC2FallbackOverride: 0 89 | forceMaximumCompressionQuality_BC6H_BC7: 0 90 | spriteSheet: 91 | serializedVersion: 2 92 | sprites: [] 93 | outline: [] 94 | physicsShape: [] 95 | bones: [] 96 | spriteID: 5e97eb03825dee720800000000000000 97 | internalID: 0 98 | vertices: [] 99 | indices: 100 | edges: [] 101 | weights: [] 102 | secondaryTextures: [] 103 | spritePackingTag: 104 | pSDRemoveMatte: 0 105 | pSDShowRemoveMatteOption: 0 106 | userData: 107 | assetBundleName: 108 | assetBundleVariant: 109 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Demo/Art/T_Demo_SaveManagerLogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CarterGames/SaveManager/341e066ac080efeedd05161c4423a04044bd91ac/Carter Games/Save Manager/Demo/Art/T_Demo_SaveManagerLogo.png -------------------------------------------------------------------------------- /Carter Games/Save Manager/Demo/Art/T_Demo_SaveMansger_Gradient.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CarterGames/SaveManager/341e066ac080efeedd05161c4423a04044bd91ac/Carter Games/Save Manager/Demo/Art/T_Demo_SaveMansger_Gradient.jpg -------------------------------------------------------------------------------- /Carter Games/Save Manager/Demo/CarterGames.SaveManager.Demo.asmdef: -------------------------------------------------------------------------------- 1 | { 2 | "name": "CarterGames.SaveManager.Demo", 3 | "rootNamespace": "", 4 | "references": [ 5 | "GUID:5fed357a0eb29414bb1d1667107777c5" 6 | ], 7 | "includePlatforms": [], 8 | "excludePlatforms": [], 9 | "allowUnsafeCode": false, 10 | "overrideReferences": false, 11 | "precompiledReferences": [], 12 | "autoReferenced": true, 13 | "defineConstraints": [], 14 | "versionDefines": [], 15 | "noEngineReferences": false 16 | } -------------------------------------------------------------------------------- /Carter Games/Save Manager/Demo/CarterGames.SaveManager.Demo.asmdef.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 781de0e236e5d6743a1e1820ce72d73a 3 | AssemblyDefinitionImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Demo/Code.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: cf5d288755c0c454ca4edc290bdd48f8 3 | timeCreated: 1672085180 -------------------------------------------------------------------------------- /Carter Games/Save Manager/Demo/Code/Runtime.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2fc3947c2c8d7874482f280090223a74 3 | timeCreated: 1672085184 -------------------------------------------------------------------------------- /Carter Games/Save Manager/Demo/Code/Runtime/ExampleSaveObject.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2024 Carter Games 3 | * 4 | * Permission is hereby granted, free of charge, to any person obtaining a copy 5 | * of this software and associated documentation files (the "Software"), to deal 6 | * in the Software without restriction, including without limitation the rights 7 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | * copies of the Software, and to permit persons to whom the Software is 9 | * furnished to do so, subject to the following conditions: 10 | * 11 | * The above copyright notice and this permission notice shall be included in 12 | * all copies or substantial portions of the Software. 13 | * 14 | * 15 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE 18 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | * THE SOFTWARE. 22 | */ 23 | 24 | using UnityEngine; 25 | 26 | namespace CarterGames.Assets.SaveManager.Demo 27 | { 28 | [CreateAssetMenu(fileName = "Example Save Object", menuName = "Carter Games/Save Manager/Demo/Example Save Object Asset", order = 20)] 29 | public class ExampleSaveObject : SaveObject 30 | { 31 | public SaveValue playerName = new SaveValue("examplePlayerName"); 32 | public SaveValue playerHealth = new SaveValue("examplePlayerHealth"); 33 | public SaveValue playerPosition = new SaveValue("examplePlayerPosition"); 34 | public SaveValue playerShield = new SaveValue("examplePlayerShield"); 35 | } 36 | } -------------------------------------------------------------------------------- /Carter Games/Save Manager/Demo/Code/Runtime/ExampleSaveObject.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 11010672a3811f84e8d31964f42df820 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {fileID: 2800000, guid: 40ab1dfa65cdd6247bb1a3d4ea54901c, type: 3} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Demo/Code/Runtime/ExampleSceneHandler.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7c4f346c62c04fa47ba18e6b846c2592 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {fileID: 2800000, guid: 40ab1dfa65cdd6247bb1a3d4ea54901c, type: 3} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Demo/Data.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: da2f1527c68d4994893ce5148f7028ca 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Demo/Data/Example Save Object.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &11400000 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 11500000, guid: 11010672a3811f84e8d31964f42df820, type: 3} 13 | m_Name: Example Save Object 14 | m_EditorClassIdentifier: 15 | isExpanded: 0 16 | saveKey: Example 17 | playerName: 18 | key: examplePlayerName 19 | value: Emily 20 | defaultValue: Emily 21 | playerHealth: 22 | key: examplePlayerHealth 23 | value: 50 24 | defaultValue: 50 25 | playerPosition: 26 | key: examplePlayerPosition 27 | value: {x: 0, y: 0, z: 0} 28 | defaultValue: {x: 0, y: 0, z: 0} 29 | playerShield: 30 | key: examplePlayerShield 31 | value: 0 32 | defaultValue: 0 33 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Demo/Data/Example Save Object.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 82e2e69aec1bee748b7a19fdff4d4e9a 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 11400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Demo/Scene.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d753ee341727b1c44afdfcebf8a48167 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/Demo/Scene/SaveManagerExampleScene.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1ec10e81d7fae184183273b37397e72d 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/~Documentation.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a7f8ac5a6c5aac346a54c7097c1a8f60 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Carter Games/Save Manager/~Documentation/Save Manager Offline Documentation.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CarterGames/SaveManager/341e066ac080efeedd05161c4423a04044bd91ac/Carter Games/Save Manager/~Documentation/Save Manager Offline Documentation.pdf -------------------------------------------------------------------------------- /Carter Games/Save Manager/~Documentation/Save Manager Offline Documentation.pdf.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 18b649ac0c0d55d46bdd05d94ec3d206 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2021 Jonathan Carter 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /LICENSE.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ccd1c4498b9f279419970bfb99a8676f 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ![2022 1 SM Banner 1200x630](https://github.com/CarterGames/SaveManager/assets/33253710/6d3e56ed-feb9-441c-b107-eaee1d74202f) 2 | 3 | 4 | Save Manager is a FREE local save system for Unity games. 5 |

6 | ## Badges 7 | ![CodeFactor](https://www.codefactor.io/repository/github/cartergames/SaveManager/badge?style=for-the-badge) 8 | ![GitHub all releases](https://img.shields.io/github/downloads/CarterGames/SaveManager/total?style=for-the-badge&color=8d6ca1) 9 | ![GitHub release (latest by date)](https://img.shields.io/github/v/release/CarterGames/SaveManager?style=for-the-badge) 10 | ![GitHub repo size](https://img.shields.io/github/repo-size/CarterGames/SaveManager?style=for-the-badge) 11 | ![Unity](https://img.shields.io/badge/Unity-2020.3.x_or_higher-critical?style=for-the-badge&color=8b8b8b) 12 | ![Static Badge](https://img.shields.io/badge/License-MIT-blue?style=for-the-badge) 13 |

14 | ## Key Features 15 | ✔️ Save editor window for editing the save data in edit mode
16 | ✔️ Save profiles to load save states in the editor
17 | ✔️ Modular save setup
18 | ✔️ Save Encryption available with AES Encryption
19 | ✔️ Auto Save & Load Options
20 | ✔️ WebGL support!
21 | ✔️ Custom savable dictionary type included.
22 | ✔️ Regularly updated and maintained with ❤️ 23 |

24 | ## How To Install 25 | 26 | ### Unity Package Manager (Git URL) [Recommended] 27 | Release: 28 |
29 | The most up-to-date version of the repo that is considered stable enough for public use. 30 | ``` 31 | https://github.com/CarterGames/SaveManager.git 32 | ``` 33 | 34 | Pre-release: 35 |
36 | Used to prepare future releases before releasing them, checking for bugs mainly. Will have the latest features but may not be stable just yet. Use at your own risk. 37 | ``` 38 | https://github.com/CarterGames/SaveManager.git#prerelease 39 | ``` 40 | 41 | Either download and import the package from the releases section or the Unity Asset Store and use the package manager. Alternatively, download this repo and copy all files into your project. 42 |

43 | ## Setup & Basic Usage 44 | The asset is now installed, just make your save objects and save values to start saving elements of your game. You can see how to do this here. You can manually save the game by calling SaveManager.Save() & SaveManager.Load() respectively. 45 |

46 | ## Documentation 47 | You can access a online of the documentation here: Online Documentation. An offline copy is provided with the package and asset if needed. 48 |

49 | ## Unity Supported Versions 50 | The asset is developed and maintained in 2020.3.x and make use of available .Net updates in the version. Older versions of Unity are not supported for this asset. The asset has been tested pre-release in its development version: 2020.3.0f1. 51 |

52 | ## Authors 53 | - Jonathan Carter 54 |

55 | ## Licence 56 | MIT Licence 57 | -------------------------------------------------------------------------------- /README.md.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 68a7949d8abd3ad4983a1d660d0c7356 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "games.carter.savemanager", 3 | "version": "2.3.6", 4 | "displayName": "Save Manager", 5 | "description": "A free, scriptable object based, local save system for Unity. Works on all platforms using standard JSON Utility.", 6 | "unity": "2020.3", 7 | "unityRelease": "0f1", 8 | "documentationUrl": "https://carter.games/savemanager", 9 | "licensesUrl": "https://github.com/CarterGames/SaveManager/blob/main/LICENSE", 10 | "author": { 11 | "name": "Carter Games", 12 | "email": "hello@carter.games", 13 | "url": "https://carter.games/savemanager" 14 | } 15 | } -------------------------------------------------------------------------------- /package.json.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 940447b4d9ed4853b1cfbb0e30fdc104 3 | timeCreated: 1726416751 --------------------------------------------------------------------------------