From b1771425ebd77ed479c40e250043657028d36970 Mon Sep 17 00:00:00 2001 From: alexiscatnip Date: Thu, 6 May 2021 11:53:12 +0800 Subject: [PATCH] Moved LMV into unity, Created dummy namespace Catnip.Drawing to handle references to the namespace System.Drawing --- .vsconfig | 6 + Assets/Editor.meta | 8 + Assets/Editor/UnityWeld_Editor.dll | Bin 0 -> 41984 bytes Assets/Editor/UnityWeld_Editor.dll.meta | 33 + Assets/Globals.cs | 107 + Assets/Globals.cs.meta | 11 + Assets/Graphy - Ultimate Stats Monitor.meta | 8 + .../Changelog.txt | 161 + .../Changelog.txt.meta | 13 + .../Editor.meta | 8 + .../Editor/GraphyDebuggerEditor.cs | 577 + .../Editor/GraphyDebuggerEditor.cs.meta | 12 + .../Editor/GraphyEditorStyle.cs | 118 + .../Editor/GraphyEditorStyle.cs.meta | 11 + .../Editor/GraphyManagerEditor.cs | 839 + .../Editor/GraphyManagerEditor.cs.meta | 11 + .../Editor/GraphyMenuItem.cs | 61 + .../Editor/GraphyMenuItem.cs.meta | 11 + .../Editor/Tayx.Graphy.Editor.asmdef | 23 + .../Editor/Tayx.Graphy.Editor.asmdef.meta | 7 + .../Graphy - Ultimate Stats Monitor/Font.meta | 9 + .../Font/Northwest-Bold.meta | 9 + .../ERIC-TIRADO-NORTHWEST-LICENSE.txt | 18 + .../ERIC-TIRADO-NORTHWEST-LICENSE.txt.meta | 10 + .../Font/Northwest-Bold/NORTHWEST-B.otf | Bin 0 -> 6040 bytes .../Font/Northwest-Bold/NORTHWEST-B.otf.meta | 22 + .../Font/Roboto.meta | 9 + .../Font/Roboto/LICENSE.txt | 202 + .../Font/Roboto/LICENSE.txt.meta | 10 + .../Font/Roboto/Roboto-Bold.ttf | Bin 0 -> 170760 bytes .../Font/Roboto/Roboto-Bold.ttf.meta | 23 + .../Font/Roboto/Roboto-Regular.ttf | Bin 0 -> 171676 bytes .../Font/Roboto/Roboto-Regular.ttf.meta | 23 + .../Graphy - Ultimate Stats Monitor/GUI.meta | 9 + .../GUI/GraphyGUISkin.guiskin | 1494 + .../GUI/GraphyGUISkin.guiskin.meta | 10 + ...raphy_CustomizationScene.unitypackage.meta | 7 + .../Graphy - Ultimate Stats Monitor/LICENSE | 21 + .../LICENSE.meta | 7 + .../Materials.meta | 9 + .../Materials/Audio_Spectrum_Graph.mat | 90 + .../Materials/Audio_Spectrum_Graph.mat.meta | 15 + .../Audio_Spectrum_Highest_Values_Graph.mat | 90 + ...dio_Spectrum_Highest_Values_Graph.mat.meta | 15 + .../Materials/FPS_Graph.mat | 90 + .../Materials/FPS_Graph.mat.meta | 16 + .../Materials/RAM_Allocated_Graph.mat | 90 + .../Materials/RAM_Allocated_Graph.mat.meta | 16 + .../Materials/RAM_Mono_Graph.mat | 90 + .../Materials/RAM_Mono_Graph.mat.meta | 16 + .../Materials/RAM_Reserved_Graph.mat | 90 + .../Materials/RAM_Reserved_Graph.mat.meta | 16 + .../Prefab.meta | 9 + .../Prefab/Internal.meta | 8 + .../Prefab/Internal/ADVANCED - Module.prefab | 887 + .../Internal/ADVANCED - Module.prefab.meta | 7 + .../Prefab/Internal/AUDIO - Module.prefab | 662 + .../Internal/AUDIO - Module.prefab.meta | 7 + .../Prefab/Internal/FPS - Module.prefab | 1426 + .../Prefab/Internal/FPS - Module.prefab.meta | 7 + .../Prefab/Internal/RAM - Module.prefab | 1396 + .../Prefab/Internal/RAM - Module.prefab.meta | 7 + .../Prefab/[Graphy].prefab | 668 + .../Prefab/[Graphy].prefab.meta | 22 + .../Graphy - Ultimate Stats Monitor/README.md | 112 + .../README.md.meta | 7 + .../Readme! - Graphy - Documentation.pdf | Bin 0 -> 2512948 bytes .../Readme! - Graphy - Documentation.pdf.meta | 14 + .../Runtime.meta | 8 + .../Runtime/Advanced.meta | 9 + .../Runtime/Advanced/G_AdvancedData.cs | 363 + .../Runtime/Advanced/G_AdvancedData.cs.meta | 12 + .../Runtime/Audio.meta | 9 + .../Runtime/Audio/G_AudioGraph.cs | 290 + .../Runtime/Audio/G_AudioGraph.cs.meta | 12 + .../Runtime/Audio/G_AudioManager.cs | 235 + .../Runtime/Audio/G_AudioManager.cs.meta | 12 + .../Runtime/Audio/G_AudioMonitor.cs | 210 + .../Runtime/Audio/G_AudioMonitor.cs.meta | 12 + .../Runtime/Audio/G_AudioText.cs | 90 + .../Runtime/Audio/G_AudioText.cs.meta | 12 + .../Runtime/Fps.meta | 9 + .../Runtime/Fps/G_FpsGraph.cs | 197 + .../Runtime/Fps/G_FpsGraph.cs.meta | 12 + .../Runtime/Fps/G_FpsManager.cs | 249 + .../Runtime/Fps/G_FpsManager.cs.meta | 12 + .../Runtime/Fps/G_FpsMonitor.cs | 145 + .../Runtime/Fps/G_FpsMonitor.cs.meta | 12 + .../Runtime/Fps/G_FpsText.cs | 154 + .../Runtime/Fps/G_FpsText.cs.meta | 12 + .../Runtime/Graph.meta | 9 + .../Runtime/Graph/G_Graph.cs | 35 + .../Runtime/Graph/G_Graph.cs.meta | 12 + .../Runtime/GraphyDebugger.cs | 570 + .../Runtime/GraphyDebugger.cs.meta | 12 + .../Runtime/GraphyManager.cs | 848 + .../Runtime/GraphyManager.cs.meta | 12 + .../Runtime/Ram.meta | 9 + .../Runtime/Ram/G_RamGraph.cs | 271 + .../Runtime/Ram/G_RamGraph.cs.meta | 12 + .../Runtime/Ram/G_RamManager.cs | 237 + .../Runtime/Ram/G_RamManager.cs.meta | 12 + .../Runtime/Ram/G_RamMonitor.cs | 43 + .../Runtime/Ram/G_RamMonitor.cs.meta | 12 + .../Runtime/Ram/G_RamText.cs | 96 + .../Runtime/Ram/G_RamText.cs.meta | 12 + .../Runtime/Shader.meta | 9 + .../Runtime/Shader/G_GraphShader.cs | 137 + .../Runtime/Shader/G_GraphShader.cs.meta | 12 + .../Runtime/Tayx.Graphy.asmdef | 21 + .../Runtime/Tayx.Graphy.asmdef.meta | 7 + .../Runtime/UI.meta | 9 + .../Runtime/UI/IModifiableState.cs | 26 + .../Runtime/UI/IModifiableState.cs.meta | 12 + .../Runtime/UI/IMovable.cs | 26 + .../Runtime/UI/IMovable.cs.meta | 12 + .../Runtime/Util.meta | 9 + .../Runtime/Util/G_ExtensionMethods.cs | 65 + .../Runtime/Util/G_ExtensionMethods.cs.meta | 12 + .../Runtime/Util/G_FloatString.cs | 196 + .../Runtime/Util/G_FloatString.cs.meta | 12 + .../Runtime/Util/G_Intstring.cs | 117 + .../Runtime/Util/G_Intstring.cs.meta | 12 + .../Runtime/Util/G_Singleton.cs | 84 + .../Runtime/Util/G_Singleton.cs.meta | 12 + .../Shaders.meta | 9 + .../Shaders/GraphMobile.shader | 182 + .../Shaders/GraphMobile.shader.meta | 9 + .../Shaders/GraphStandard.shader | 190 + .../Shaders/GraphStandard.shader.meta | 9 + .../Textures.meta | 9 + .../Textures/2x2_Texture.png | Bin 0 -> 17251 bytes .../Textures/2x2_Texture.png.meta | 105 + .../Textures/Debugger_Logo_Dark.png | Bin 0 -> 2158 bytes .../Textures/Debugger_Logo_Dark.png.meta | 94 + .../Textures/Debugger_Logo_White.png | Bin 0 -> 2315 bytes .../Textures/Debugger_Logo_White.png.meta | 94 + .../Textures/Manager_Logo_Dark.png | Bin 0 -> 2153 bytes .../Textures/Manager_Logo_Dark.png.meta | 94 + .../Textures/Manager_Logo_White.png | Bin 0 -> 2297 bytes .../Textures/Manager_Logo_White.png.meta | 94 + .../Textures/Rounded_Rect_10px.png | Bin 0 -> 1766 bytes .../Textures/Rounded_Rect_10px.png.meta | 103 + .../package.json | 20 + .../package.json.meta | 7 + Assets/LoginVM.cs | 87 + Assets/LoginVM.cs.meta | 11 + Assets/Plugins.meta | 8 + Assets/Plugins/Catnip.meta | 8 + Assets/Plugins/Catnip/Drawing.meta | 8 + Assets/Plugins/Catnip/Drawing/Bitmap.cs | 42 + Assets/Plugins/Catnip/Drawing/Bitmap.cs.meta | 11 + Assets/Plugins/Catnip/Drawing/Drawing2D.cs | 17 + .../Plugins/Catnip/Drawing/Drawing2D.cs.meta | 11 + Assets/Plugins/Catnip/Drawing/Graphics.cs | 33 + .../Plugins/Catnip/Drawing/Graphics.cs.meta | 11 + Assets/Plugins/Catnip/Drawing/Image.cs | 23 + Assets/Plugins/Catnip/Drawing/Image.cs.meta | 11 + Assets/Plugins/Catnip/Drawing/Imaging.cs | 42 + Assets/Plugins/Catnip/Drawing/Imaging.cs.meta | 11 + Assets/Plugins/Catnip/Drawing/Rectangle.cs | 26 + .../Plugins/Catnip/Drawing/Rectangle.cs.meta | 11 + Assets/Plugins/Catnip/Drawing/Size.cs | 20 + Assets/Plugins/Catnip/Drawing/Size.cs.meta | 11 + Assets/Plugins/IngameDebugConsole.meta | 8 + .../Plugins/IngameDebugConsole/Android.meta | 9 + .../Android/DebugLogLogcatListener.cs | 54 + .../Android/DebugLogLogcatListener.cs.meta | 12 + .../Android/IngameDebugConsole.aar | Bin 0 -> 3387 bytes .../Android/IngameDebugConsole.aar.meta | 33 + Assets/Plugins/IngameDebugConsole/Editor.meta | 9 + .../Editor/DebugLogManagerEditor.cs | 98 + .../Editor/DebugLogManagerEditor.cs.meta | 12 + .../Editor/IngameDebugConsole.Editor.asmdef | 17 + .../IngameDebugConsole.Editor.asmdef.meta | 7 + .../IngameDebugConsole.Runtime.asmdef | 3 + .../IngameDebugConsole.Runtime.asmdef.meta | 7 + .../IngameDebugConsole.prefab | 4013 + .../IngameDebugConsole.prefab.meta | 8 + .../Plugins/IngameDebugConsole/Prefabs.meta | 9 + .../Prefabs/CommandSuggestion.prefab | 87 + .../Prefabs/CommandSuggestion.prefab.meta | 9 + .../Prefabs/DebugLogItem.prefab | 640 + .../Prefabs/DebugLogItem.prefab.meta | 8 + Assets/Plugins/IngameDebugConsole/README.txt | 20 + .../IngameDebugConsole/README.txt.meta | 8 + .../Plugins/IngameDebugConsole/Scripts.meta | 9 + .../Scripts/CircularBuffer.cs | 116 + .../Scripts/CircularBuffer.cs.meta | 12 + .../IngameDebugConsole/Scripts/Commands.meta | 8 + .../Scripts/Commands/PlayerPrefsCommands.cs | 58 + .../Commands/PlayerPrefsCommands.cs.meta | 11 + .../Scripts/Commands/SceneCommands.cs | 58 + .../Scripts/Commands/SceneCommands.cs.meta | 11 + .../Scripts/Commands/TimeCommands.cs | 19 + .../Scripts/Commands/TimeCommands.cs.meta | 11 + .../Scripts/ConsoleMethodAttribute.cs | 23 + .../Scripts/ConsoleMethodAttribute.cs.meta | 12 + .../Scripts/DebugLogConsole.cs | 1507 + .../Scripts/DebugLogConsole.cs.meta | 12 + .../Scripts/DebugLogEntry.cs | 92 + .../Scripts/DebugLogEntry.cs.meta | 12 + .../Scripts/DebugLogIndexList.cs | 35 + .../Scripts/DebugLogIndexList.cs.meta | 12 + .../Scripts/DebugLogItem.cs | 217 + .../Scripts/DebugLogItem.cs.meta | 12 + .../Scripts/DebugLogManager.cs | 1467 + .../Scripts/DebugLogManager.cs.meta | 12 + .../Scripts/DebugLogPopup.cs | 245 + .../Scripts/DebugLogPopup.cs.meta | 12 + .../Scripts/DebugLogRecycledListView.cs | 388 + .../Scripts/DebugLogRecycledListView.cs.meta | 12 + .../Scripts/DebugLogResizeListener.cs | 24 + .../Scripts/DebugLogResizeListener.cs.meta | 12 + .../Scripts/DebugsOnScrollListener.cs | 60 + .../Scripts/DebugsOnScrollListener.cs.meta | 12 + .../Plugins/IngameDebugConsole/Sprites.meta | 9 + .../IngameDebugConsole/Sprites/IconClear.psd | Bin 0 -> 44641 bytes .../Sprites/IconClear.psd.meta | 132 + .../Sprites/IconCollapse.psd | Bin 0 -> 40403 bytes .../Sprites/IconCollapse.psd.meta | 96 + .../IngameDebugConsole/Sprites/IconError.psd | Bin 0 -> 49243 bytes .../Sprites/IconError.psd.meta | 96 + .../IngameDebugConsole/Sprites/IconHide.psd | Bin 0 -> 36589 bytes .../Sprites/IconHide.psd.meta | 96 + .../IngameDebugConsole/Sprites/IconInfo.psd | Bin 0 -> 53469 bytes .../Sprites/IconInfo.psd.meta | 96 + .../Sprites/IconResizeAllDirections.psd | Bin 0 -> 38406 bytes .../Sprites/IconResizeAllDirections.psd.meta | 96 + .../Sprites/IconResizeVertialOnly.psd | Bin 0 -> 31569 bytes .../Sprites/IconResizeVertialOnly.psd.meta | 96 + .../Sprites/IconSnapToBottom.psd | Bin 0 -> 30022 bytes .../Sprites/IconSnapToBottom.psd.meta | 96 + .../Sprites/IconSnapToBottomBg.psd | Bin 0 -> 34684 bytes .../Sprites/IconSnapToBottomBg.psd.meta | 96 + .../Sprites/IconWarning.psd | Bin 0 -> 48956 bytes .../Sprites/IconWarning.psd.meta | 96 + .../IngameDebugConsole/Sprites/SearchIcon.psd | Bin 0 -> 34138 bytes .../Sprites/SearchIcon.psd.meta | 132 + .../Sprites/SlicedBackground.psd | Bin 0 -> 32750 bytes .../Sprites/SlicedBackground.psd.meta | 132 + .../Sprites/SlicedBackground2.psd | Bin 0 -> 30518 bytes .../Sprites/SlicedBackground2.psd.meta | 96 + .../Sprites/SlicedBackground3.psd | Bin 0 -> 34920 bytes .../Sprites/SlicedBackground3.psd.meta | 96 + .../IngameDebugConsole/Sprites/Unused.meta | 9 + .../Sprites/Unused/IconErrorHighRes.psd | Bin 0 -> 54471 bytes .../Sprites/Unused/IconErrorHighRes.psd.meta | 96 + .../Sprites/Unused/IconInfoHighRes.psd | Bin 0 -> 61819 bytes .../Sprites/Unused/IconInfoHighRes.psd.meta | 96 + .../Sprites/Unused/IconWarningHighRes.psd | Bin 0 -> 54256 bytes .../Unused/IconWarningHighRes.psd.meta | 96 + Assets/Plugins/IngameDebugConsole/iOS.meta | 9 + .../iOS/IngameDebugConsole.mm | 4 + .../iOS/IngameDebugConsole.mm.meta | 33 + .../LibreMetaverse.StructuredData.meta | 8 + .../LibreMetaverse.StructuredData/JSON.meta | 8 + .../JSON/IJsonWrapper.cs | 60 + .../JSON/IJsonWrapper.cs.meta | 11 + .../JSON/JsonData.cs | 908 + .../JSON/JsonData.cs.meta | 11 + .../JSON/JsonException.cs | 57 + .../JSON/JsonException.cs.meta | 11 + .../JSON/JsonMapper.cs | 873 + .../JSON/JsonMapper.cs.meta | 11 + .../JSON/JsonReader.cs | 446 + .../JSON/JsonReader.cs.meta | 11 + .../JSON/JsonWriter.cs | 437 + .../JSON/JsonWriter.cs.meta | 11 + .../JSON/Lexer.cs | 884 + .../JSON/Lexer.cs.meta | 11 + .../JSON/OSDJson.cs | 184 + .../JSON/OSDJson.cs.meta | 11 + .../JSON/ParserToken.cs | 44 + .../JSON/ParserToken.cs.meta | 11 + .../LibreMetaverse.StructuredData/LLSD.meta | 8 + .../LLSD/BinaryLLSD.cs | 502 + .../LLSD/BinaryLLSD.cs.meta | 11 + .../LLSD/NotationLLSD.cs | 774 + .../LLSD/NotationLLSD.cs.meta | 11 + .../LLSD/XmlLLSD.cs | 670 + .../LLSD/XmlLLSD.cs.meta | 11 + .../StructuredData.cs | 1263 + .../StructuredData.cs.meta | 11 + Assets/Plugins/LibreMetaverse.Types.meta | 8 + Assets/Plugins/LibreMetaverse.Types/CRC32.cs | 101 + .../LibreMetaverse.Types/CRC32.cs.meta | 11 + Assets/Plugins/LibreMetaverse.Types/Color4.cs | 496 + .../LibreMetaverse.Types/Color4.cs.meta | 11 + .../LibreMetaverse.Types/DoubleDictionary.cs | 299 + .../DoubleDictionary.cs.meta | 11 + Assets/Plugins/LibreMetaverse.Types/Enums.cs | 339 + .../LibreMetaverse.Types/Enums.cs.meta | 11 + .../LibreMetaverse.Types/EnumsPrimitive.cs | 605 + .../EnumsPrimitive.cs.meta | 11 + .../LibreMetaverse.Types/ExpiringCache.cs | 430 + .../ExpiringCache.cs.meta | 11 + .../Plugins/LibreMetaverse.Types/Matrix4.cs | 1265 + .../LibreMetaverse.Types/Matrix4.cs.meta | 11 + .../LibreMetaverse.Types/Quaternion.cs | 761 + .../LibreMetaverse.Types/Quaternion.cs.meta | 11 + .../ThreadSafeDictionary.cs | 158 + .../ThreadSafeDictionary.cs.meta | 11 + .../LibreMetaverse.Types/TokenBucket.cs | 203 + .../LibreMetaverse.Types/TokenBucket.cs.meta | 11 + Assets/Plugins/LibreMetaverse.Types/UUID.cs | 392 + .../Plugins/LibreMetaverse.Types/UUID.cs.meta | 11 + Assets/Plugins/LibreMetaverse.Types/Utils.cs | 450 + .../LibreMetaverse.Types/Utils.cs.meta | 11 + .../LibreMetaverse.Types/UtilsConversions.cs | 1285 + .../UtilsConversions.cs.meta | 11 + .../Plugins/LibreMetaverse.Types/Vector2.cs | 461 + .../LibreMetaverse.Types/Vector2.cs.meta | 11 + .../Plugins/LibreMetaverse.Types/Vector3.cs | 598 + .../LibreMetaverse.Types/Vector3.cs.meta | 11 + .../Plugins/LibreMetaverse.Types/Vector3d.cs | 523 + .../LibreMetaverse.Types/Vector3d.cs.meta | 11 + .../Plugins/LibreMetaverse.Types/Vector4.cs | 554 + .../LibreMetaverse.Types/Vector4.cs.meta | 11 + Assets/Plugins/LibreMetaverse.meta | 8 + Assets/Plugins/LibreMetaverse/AgentManager.cs | 5535 ++ .../LibreMetaverse/AgentManager.cs.meta | 11 + .../LibreMetaverse/AgentManagerCamera.cs | 134 + .../LibreMetaverse/AgentManagerCamera.cs.meta | 11 + .../LibreMetaverse/AgentManagerMovement.cs | 759 + .../AgentManagerMovement.cs.meta | 11 + .../Plugins/LibreMetaverse/AgentThrottle.cs | 236 + .../LibreMetaverse/AgentThrottle.cs.meta | 11 + Assets/Plugins/LibreMetaverse/Animations.cs | 326 + .../Plugins/LibreMetaverse/Animations.cs.meta | 11 + .../LibreMetaverse/AppearanceManager.cs | 2787 + .../LibreMetaverse/AppearanceManager.cs.meta | 11 + Assets/Plugins/LibreMetaverse/AssetCache.cs | 436 + .../Plugins/LibreMetaverse/AssetCache.cs.meta | 11 + Assets/Plugins/LibreMetaverse/AssetManager.cs | 2141 + .../LibreMetaverse/AssetManager.cs.meta | 11 + Assets/Plugins/LibreMetaverse/Assets.meta | 8 + .../LibreMetaverse/Assets/Archiving.meta | 8 + .../Assets/Archiving/ArchiveConstants.cs | 119 + .../Assets/Archiving/ArchiveConstants.cs.meta | 11 + .../Assets/Archiving/AssetsArchiver.cs | 149 + .../Assets/Archiving/AssetsArchiver.cs.meta | 11 + .../Assets/Archiving/OarFile.cs | 879 + .../Assets/Archiving/OarFile.cs.meta | 11 + .../Assets/Archiving/RegionSettings.cs | 233 + .../Assets/Archiving/RegionSettings.cs.meta | 11 + .../Assets/Archiving/TarArchiveReader.cs | 224 + .../Assets/Archiving/TarArchiveReader.cs.meta | 11 + .../Assets/Archiving/TarArchiveWriter.cs | 212 + .../Assets/Archiving/TarArchiveWriter.cs.meta | 11 + Assets/Plugins/LibreMetaverse/Assets/Asset.cs | 87 + .../LibreMetaverse/Assets/Asset.cs.meta | 11 + .../LibreMetaverse/Assets/AssetTypes.meta | 8 + .../Assets/AssetTypes/AssetAnimation.cs | 56 + .../Assets/AssetTypes/AssetAnimation.cs.meta | 11 + .../Assets/AssetTypes/AssetBodypart.cs | 48 + .../Assets/AssetTypes/AssetBodypart.cs.meta | 11 + .../Assets/AssetTypes/AssetCallingCard.cs | 92 + .../AssetTypes/AssetCallingCard.cs.meta | 11 + .../Assets/AssetTypes/AssetClothing.cs | 49 + .../Assets/AssetTypes/AssetClothing.cs.meta | 11 + .../Assets/AssetTypes/AssetGesture.cs | 465 + .../Assets/AssetTypes/AssetGesture.cs.meta | 11 + .../Assets/AssetTypes/AssetLandmark.cs | 90 + .../Assets/AssetTypes/AssetLandmark.cs.meta | 11 + .../Assets/AssetTypes/AssetMesh.cs | 107 + .../Assets/AssetTypes/AssetMesh.cs.meta | 11 + .../Assets/AssetTypes/AssetMutable.cs | 63 + .../Assets/AssetTypes/AssetMutable.cs.meta | 11 + .../Assets/AssetTypes/AssetNotecard.cs | 401 + .../Assets/AssetTypes/AssetNotecard.cs.meta | 11 + .../Assets/AssetTypes/AssetPrim.cs | 1304 + .../Assets/AssetTypes/AssetPrim.cs.meta | 11 + .../Assets/AssetTypes/AssetScriptBinary.cs | 63 + .../AssetTypes/AssetScriptBinary.cs.meta | 11 + .../Assets/AssetTypes/AssetScriptText.cs | 71 + .../Assets/AssetTypes/AssetScriptText.cs.meta | 11 + .../Assets/AssetTypes/AssetSound.cs | 62 + .../Assets/AssetTypes/AssetSound.cs.meta | 11 + .../Assets/AssetTypes/AssetTexture.cs | 126 + .../Assets/AssetTypes/AssetTexture.cs.meta | 11 + .../Assets/AssetTypes/AssetWearable.cs | 278 + .../Assets/AssetTypes/AssetWearable.cs.meta | 11 + Assets/Plugins/LibreMetaverse/Avatar.cs | 559 + Assets/Plugins/LibreMetaverse/Avatar.cs.meta | 11 + .../Plugins/LibreMetaverse/AvatarManager.cs | 1676 + .../LibreMetaverse/AvatarManager.cs.meta | 11 + Assets/Plugins/LibreMetaverse/BVHDecoder.cs | 560 + .../Plugins/LibreMetaverse/BVHDecoder.cs.meta | 11 + Assets/Plugins/LibreMetaverse/BitPack.cs | 414 + Assets/Plugins/LibreMetaverse/BitPack.cs.meta | 11 + .../Plugins/LibreMetaverse/Capabilities.meta | 8 + .../LibreMetaverse/Capabilities/CapsBase.cs | 260 + .../Capabilities/CapsBase.cs.meta | 11 + .../LibreMetaverse/Capabilities/CapsClient.cs | 201 + .../Capabilities/CapsClient.cs.meta | 11 + .../Capabilities/EventQueueClient.cs | 245 + .../Capabilities/EventQueueClient.cs.meta | 11 + Assets/Plugins/LibreMetaverse/Caps.cs | 390 + Assets/Plugins/LibreMetaverse/Caps.cs.meta | 11 + Assets/Plugins/LibreMetaverse/CapsToPacket.cs | 292 + .../LibreMetaverse/CapsToPacket.cs.meta | 11 + .../Plugins/LibreMetaverse/CoordinateFrame.cs | 283 + .../LibreMetaverse/CoordinateFrame.cs.meta | 11 + .../LibreMetaverse/DirectoryManager.cs | 1610 + .../LibreMetaverse/DirectoryManager.cs.meta | 11 + .../Plugins/LibreMetaverse/DownloadManager.cs | 251 + .../LibreMetaverse/DownloadManager.cs.meta | 11 + Assets/Plugins/LibreMetaverse/EstateTools.cs | 1241 + .../LibreMetaverse/EstateTools.cs.meta | 11 + .../Plugins/LibreMetaverse/EventDictionary.cs | 320 + .../LibreMetaverse/EventDictionary.cs.meta | 11 + .../Plugins/LibreMetaverse/FriendsManager.cs | 1113 + .../LibreMetaverse/FriendsManager.cs.meta | 11 + Assets/Plugins/LibreMetaverse/GridClient.cs | 144 + .../Plugins/LibreMetaverse/GridClient.cs.meta | 11 + Assets/Plugins/LibreMetaverse/GridManager.cs | 930 + .../LibreMetaverse/GridManager.cs.meta | 11 + Assets/Plugins/LibreMetaverse/GroupManager.cs | 2532 + .../LibreMetaverse/GroupManager.cs.meta | 11 + Assets/Plugins/LibreMetaverse/Helpers.cs | 656 + Assets/Plugins/LibreMetaverse/Helpers.cs.meta | 11 + Assets/Plugins/LibreMetaverse/Imaging.meta | 8 + .../LibreMetaverse/Imaging/BakeLayer.cs | 691 + .../LibreMetaverse/Imaging/BakeLayer.cs.meta | 11 + .../LibreMetaverse/Imaging/ManagedImage.cs | 539 + .../Imaging/ManagedImage.cs.meta | 11 + .../LibreMetaverse/Imaging/OpenJPEG.cs | 592 + .../LibreMetaverse/Imaging/OpenJPEG.cs.meta | 11 + .../LibreMetaverse/Imaging/TGALoader.cs | 648 + .../LibreMetaverse/Imaging/TGALoader.cs.meta | 11 + .../Plugins/LibreMetaverse/ImportExport.meta | 8 + .../LibreMetaverse/ImportExport/Collada.cs | 38315 ++++++++ .../ImportExport/Collada.cs.meta | 11 + .../ImportExport/ColladalLoader.cs | 720 + .../ImportExport/ColladalLoader.cs.meta | 11 + .../LibreMetaverse/ImportExport/Model.cs | 194 + .../LibreMetaverse/ImportExport/Model.cs.meta | 11 + .../ImportExport/ModelUploader.cs | 299 + .../ImportExport/ModelUploader.cs.meta | 11 + Assets/Plugins/LibreMetaverse/Interfaces.meta | 8 + .../Interfaces/IByteBufferPool.cs | 26 + .../Interfaces/IByteBufferPool.cs.meta | 11 + .../LibreMetaverse/Interfaces/IMessage.cs | 43 + .../Interfaces/IMessage.cs.meta | 11 + .../LibreMetaverse/Interfaces/IRendering.cs | 101 + .../Interfaces/IRendering.cs.meta | 11 + .../LibreMetaverse/InternalDictionary.cs | 336 + .../LibreMetaverse/InternalDictionary.cs.meta | 11 + Assets/Plugins/LibreMetaverse/Inventory.cs | 562 + .../Plugins/LibreMetaverse/Inventory.cs.meta | 11 + .../LibreMetaverse/InventoryAISClient.cs | 507 + .../LibreMetaverse/InventoryAISClient.cs.meta | 11 + .../Plugins/LibreMetaverse/InventoryBase.cs | 880 + .../LibreMetaverse/InventoryBase.cs.meta | 11 + .../LibreMetaverse/InventoryManager.cs | 4575 + .../LibreMetaverse/InventoryManager.cs.meta | 11 + .../Plugins/LibreMetaverse/InventoryNode.cs | 163 + .../LibreMetaverse/InventoryNode.cs.meta | 11 + .../LibreMetaverse/InventoryNodeDictionary.cs | 161 + .../InventoryNodeDictionary.cs.meta | 11 + Assets/Plugins/LibreMetaverse/Logger.cs | 188 + Assets/Plugins/LibreMetaverse/Logger.cs.meta | 11 + Assets/Plugins/LibreMetaverse/Login.cs | 1746 + Assets/Plugins/LibreMetaverse/Login.cs.meta | 11 + Assets/Plugins/LibreMetaverse/Messages.meta | 8 + .../LibreMetaverse/Messages/LindenMessages.cs | 5476 ++ .../Messages/LindenMessages.cs.meta | 11 + .../Messages/MessageEventDecoder.cs | 140 + .../Messages/MessageEventDecoder.cs.meta | 11 + .../LibreMetaverse/Messages/Messages.cs | 107 + .../LibreMetaverse/Messages/Messages.cs.meta | 11 + Assets/Plugins/LibreMetaverse/NameValue.cs | 339 + .../Plugins/LibreMetaverse/NameValue.cs.meta | 11 + .../Plugins/LibreMetaverse/NetworkManager.cs | 1421 + .../LibreMetaverse/NetworkManager.cs.meta | 11 + .../Plugins/LibreMetaverse/ObjectManager.cs | 3804 + .../LibreMetaverse/ObjectManager.cs.meta | 11 + .../LibreMetaverse/ObservableDictionary.cs | 337 + .../ObservableDictionary.cs.meta | 11 + .../Plugins/LibreMetaverse/PacketDecoder.cs | 1762 + .../LibreMetaverse/PacketDecoder.cs.meta | 11 + .../Plugins/LibreMetaverse/ParcelManager.cs | 2402 + .../LibreMetaverse/ParcelManager.cs.meta | 11 + Assets/Plugins/LibreMetaverse/Permissions.cs | 177 + .../LibreMetaverse/Permissions.cs.meta | 11 + Assets/Plugins/LibreMetaverse/Primitives.meta | 8 + .../LibreMetaverse/Primitives/ObjectMedia.cs | 199 + .../Primitives/ObjectMedia.cs.meta | 11 + .../Primitives/ParticleSystem.cs | 522 + .../Primitives/ParticleSystem.cs.meta | 11 + .../LibreMetaverse/Primitives/Primitive.cs | 1512 + .../Primitives/Primitive.cs.meta | 11 + .../LibreMetaverse/Primitives/TextureEntry.cs | 1402 + .../Primitives/TextureEntry.cs.meta | 11 + .../Plugins/LibreMetaverse/ProtocolManager.cs | 681 + .../LibreMetaverse/ProtocolManager.cs.meta | 11 + Assets/Plugins/LibreMetaverse/Rendering.meta | 8 + .../Rendering/EndianAwareBinaryReader.cs | 171 + .../Rendering/EndianAwareBinaryReader.cs.meta | 11 + .../LibreMetaverse/Rendering/LindenMesh.cs | 556 + .../Rendering/LindenMesh.cs.meta | 11 + .../Rendering/LindenSkeleton.Ext.cs | 140 + .../Rendering/LindenSkeleton.Ext.cs.meta | 11 + .../Rendering/LindenSkeleton.Xsd.cs | 244 + .../Rendering/LindenSkeleton.Xsd.cs.meta | 11 + .../LibreMetaverse/Rendering/Rendering.cs | 531 + .../Rendering/Rendering.cs.meta | 11 + Assets/Plugins/LibreMetaverse/Settings.cs | 391 + .../Plugins/LibreMetaverse/Settings.cs.meta | 11 + Assets/Plugins/LibreMetaverse/Simulator.cs | 1498 + .../Plugins/LibreMetaverse/Simulator.cs.meta | 11 + Assets/Plugins/LibreMetaverse/SoundManager.cs | 510 + .../LibreMetaverse/SoundManager.cs.meta | 11 + Assets/Plugins/LibreMetaverse/Sounds.cs | 165 + Assets/Plugins/LibreMetaverse/Sounds.cs.meta | 11 + .../LibreMetaverse/TerrainCompressor.cs | 842 + .../LibreMetaverse/TerrainCompressor.cs.meta | 11 + .../Plugins/LibreMetaverse/TerrainManager.cs | 226 + .../LibreMetaverse/TerrainManager.cs.meta | 11 + .../Plugins/LibreMetaverse/TexturePipeline.cs | 800 + .../LibreMetaverse/TexturePipeline.cs.meta | 11 + Assets/Plugins/LibreMetaverse/ThreadUtil.cs | 65 + .../Plugins/LibreMetaverse/ThreadUtil.cs.meta | 11 + Assets/Plugins/LibreMetaverse/UDPBase.cs | 268 + Assets/Plugins/LibreMetaverse/UDPBase.cs.meta | 11 + .../Plugins/LibreMetaverse/UDPPacketBuffer.cs | 92 + .../LibreMetaverse/UDPPacketBuffer.cs.meta | 11 + .../LibreMetaverse/UtilizationStatistics.cs | 106 + .../UtilizationStatistics.cs.meta | 11 + Assets/Plugins/LibreMetaverse/Voice.meta | 8 + .../Plugins/LibreMetaverse/Voice/TCPPipe.cs | 181 + .../LibreMetaverse/Voice/TCPPipe.cs.meta | 11 + .../LibreMetaverse/Voice/VoiceAccount.cs | 81 + .../LibreMetaverse/Voice/VoiceAccount.cs.meta | 11 + .../Plugins/LibreMetaverse/Voice/VoiceAux.cs | 123 + .../LibreMetaverse/Voice/VoiceAux.cs.meta | 11 + .../LibreMetaverse/Voice/VoiceConnector.cs | 130 + .../Voice/VoiceConnector.cs.meta | 11 + .../LibreMetaverse/Voice/VoiceControl.cs | 1020 + .../LibreMetaverse/Voice/VoiceControl.cs.meta | 11 + .../LibreMetaverse/Voice/VoiceDefinitions.cs | 706 + .../Voice/VoiceDefinitions.cs.meta | 11 + .../LibreMetaverse/Voice/VoiceGateway.cs | 693 + .../LibreMetaverse/Voice/VoiceGateway.cs.meta | 11 + .../LibreMetaverse/Voice/VoiceParticipant.cs | 159 + .../Voice/VoiceParticipant.cs.meta | 11 + .../LibreMetaverse/Voice/VoiceSession.cs | 337 + .../LibreMetaverse/Voice/VoiceSession.cs.meta | 11 + Assets/Plugins/LibreMetaverse/_Packets_.cs | 82006 ++++++++++++++++ .../Plugins/LibreMetaverse/_Packets_.cs.meta | 11 + .../Plugins/LibreMetaverse/_VisualParam_.cs | 625 + .../LibreMetaverse/_VisualParam_.cs.meta | 11 + .../Microsoft.Experimental.Collections.dll | Bin 0 -> 51792 bytes ...icrosoft.Experimental.Collections.dll.meta | 33 + .../Microsoft.Extensions.ObjectPool.dll | Bin 0 -> 22920 bytes .../Microsoft.Extensions.ObjectPool.dll.meta | 33 + Assets/Plugins/SimpleFileBrowser.meta | 8 + Assets/Plugins/SimpleFileBrowser/Android.meta | 9 + .../Android/FBCallbackHelper.cs | 31 + .../Android/FBCallbackHelper.cs.meta | 12 + .../FBDirectoryReceiveCallbackAndroid.cs | 36 + .../FBDirectoryReceiveCallbackAndroid.cs.meta | 12 + .../Android/FBPermissionCallbackAndroid.cs | 29 + .../FBPermissionCallbackAndroid.cs.meta | 12 + .../Android/SimpleFileBrowser.aar | Bin 0 -> 17636 bytes .../Android/SimpleFileBrowser.aar.meta | 33 + Assets/Plugins/SimpleFileBrowser/Prefabs.meta | 9 + .../Prefabs/SimpleFileBrowserItem.prefab | 310 + .../Prefabs/SimpleFileBrowserItem.prefab.meta | 8 + .../Prefabs/SimpleFileBrowserQuickLink.prefab | 241 + .../SimpleFileBrowserQuickLink.prefab.meta | 8 + Assets/Plugins/SimpleFileBrowser/README.txt | 103 + .../Plugins/SimpleFileBrowser/README.txt.meta | 8 + .../Plugins/SimpleFileBrowser/Resources.meta | 9 + .../Resources/SimpleFileBrowserCanvas.prefab | 9372 ++ .../SimpleFileBrowserCanvas.prefab.meta | 8 + Assets/Plugins/SimpleFileBrowser/Scripts.meta | 9 + .../SimpleFileBrowser/Scripts/FileBrowser.cs | 2621 + .../Scripts/FileBrowser.cs.meta | 12 + .../Scripts/FileBrowserContextMenu.cs | 118 + .../Scripts/FileBrowserContextMenu.cs.meta | 12 + .../Scripts/FileBrowserCursorHandler.cs | 61 + .../Scripts/FileBrowserCursorHandler.cs.meta | 12 + .../FileBrowserDeleteConfirmationPanel.cs | 121 + ...FileBrowserDeleteConfirmationPanel.cs.meta | 12 + .../Scripts/FileBrowserHelpers.cs | 506 + .../Scripts/FileBrowserHelpers.cs.meta | 12 + .../Scripts/FileBrowserItem.cs | 212 + .../Scripts/FileBrowserItem.cs.meta | 12 + .../Scripts/FileBrowserMovement.cs | 105 + .../Scripts/FileBrowserMovement.cs.meta | 12 + .../Scripts/FileBrowserQuickLink.cs | 21 + .../Scripts/FileBrowserQuickLink.cs.meta | 12 + .../Scripts/FileBrowserRenamedItem.cs | 66 + .../Scripts/FileBrowserRenamedItem.cs.meta | 12 + .../Scripts/NonDrawingGraphic.cs | 19 + .../Scripts/NonDrawingGraphic.cs.meta | 12 + .../Scripts/SimpleRecycledListView.meta | 9 + .../IListViewAdapter.cs | 16 + .../IListViewAdapter.cs.meta | 12 + .../SimpleRecycledListView/ListItem.cs | 24 + .../SimpleRecycledListView/ListItem.cs.meta | 12 + .../RecycledListView.cs | 238 + .../RecycledListView.cs.meta | 12 + .../SimpleFileBrowser.Runtime.asmdef | 3 + .../SimpleFileBrowser.Runtime.asmdef.meta | 7 + Assets/Plugins/SimpleFileBrowser/Sprites.meta | 9 + .../SimpleFileBrowser/Sprites/Checkmark.psd | Bin 0 -> 26940 bytes .../Sprites/Checkmark.psd.meta | 96 + .../Sprites/DefaultFileIcon.png | Bin 0 -> 826 bytes .../Sprites/DefaultFileIcon.png.meta | 96 + .../SimpleFileBrowser/Sprites/DriveIcon.png | Bin 0 -> 1485 bytes .../Sprites/DriveIcon.png.meta | 96 + .../Sprites/DropdownArrow.psd | Bin 0 -> 26204 bytes .../Sprites/DropdownArrow.psd.meta | 96 + .../SimpleFileBrowser/Sprites/FolderIcon.png | Bin 0 -> 2222 bytes .../Sprites/FolderIcon.png.meta | 96 + .../Sprites/ForwardArrow.psd | Bin 0 -> 30812 bytes .../Sprites/ForwardArrow.psd.meta | 96 + .../Sprites/ImageFileIcon.png | Bin 0 -> 1488 bytes .../Sprites/ImageFileIcon.png.meta | 96 + .../Sprites/MultiSelectionToggleOff.psd | Bin 0 -> 31094 bytes .../Sprites/MultiSelectionToggleOff.psd.meta | 96 + .../Sprites/MultiSelectionToggleOn.psd | Bin 0 -> 34440 bytes .../Sprites/MultiSelectionToggleOn.psd.meta | 96 + .../Sprites/ResizeCursor.psd | Bin 0 -> 39212 bytes .../Sprites/ResizeCursor.psd.meta | 92 + .../Sprites/SimpleFileBrowserDrag.psd | Bin 0 -> 23863 bytes .../Sprites/SimpleFileBrowserDrag.psd.meta | 96 + .../Sprites/SimpleFileBrowserMoreOptions.psd | Bin 0 -> 47652 bytes .../SimpleFileBrowserMoreOptions.psd.meta | 96 + .../SimpleFileBrowserSlicedBackground1.psd | Bin 0 -> 27012 bytes ...impleFileBrowserSlicedBackground1.psd.meta | 96 + .../SimpleFileBrowserSlicedBackground2.psd | Bin 0 -> 22308 bytes ...impleFileBrowserSlicedBackground2.psd.meta | 96 + .../SimpleFileBrowserSlicedBackground3.psd | Bin 0 -> 25310 bytes ...impleFileBrowserSlicedBackground3.psd.meta | 96 + .../SimpleFileBrowserSlicedBackground4.psd | Bin 0 -> 25304 bytes ...impleFileBrowserSlicedBackground4.psd.meta | 96 + .../SimpleFileBrowserSlicedBackground5.psd | Bin 0 -> 26938 bytes ...impleFileBrowserSlicedBackground5.psd.meta | 96 + .../Sprites/TextFileIcon.png | Bin 0 -> 1301 bytes .../Sprites/TextFileIcon.png.meta | 96 + Assets/Plugins/SixLabors.ImageSharp.dll | Bin 0 -> 1211904 bytes Assets/Plugins/SixLabors.ImageSharp.dll.meta | 33 + Assets/Plugins/SixLabors.ImageSharp.xml | 53972 ++++++++++ Assets/Plugins/SixLabors.ImageSharp.xml.meta | 7 + Assets/Plugins/System.Buffers.dll | Bin 0 -> 21376 bytes Assets/Plugins/System.Buffers.dll.meta | 33 + ...tem.Configuration.ConfigurationManager.dll | Bin 0 -> 381832 bytes ...onfiguration.ConfigurationManager.dll.meta | 33 + Assets/Plugins/System.Drawing.Common.dll | Bin 0 -> 143408 bytes Assets/Plugins/System.Drawing.Common.dll.meta | 33 + Assets/Plugins/System.Memory.dll | Bin 0 -> 141688 bytes Assets/Plugins/System.Memory.dll.meta | 33 + Assets/Plugins/System.Numerics.Vectors.dll | Bin 0 -> 163464 bytes .../Plugins/System.Numerics.Vectors.dll.meta | 33 + ...System.Runtime.CompilerServices.Unsafe.dll | Bin 0 -> 16776 bytes ...m.Runtime.CompilerServices.Unsafe.dll.meta | 33 + ...em.Security.Cryptography.ProtectedData.dll | Bin 0 -> 21384 bytes ...curity.Cryptography.ProtectedData.dll.meta | 33 + .../Plugins/System.Security.Permissions.dll | Bin 0 -> 97672 bytes .../System.Security.Permissions.dll.meta | 33 + .../System.Security.Principal.Windows.dll | Bin 0 -> 37768 bytes ...System.Security.Principal.Windows.dll.meta | 33 + Assets/Plugins/System.Threading.Channels.dll | Bin 0 -> 50048 bytes .../System.Threading.Channels.dll.meta | 33 + .../System.Threading.Tasks.Extensions.dll | Bin 0 -> 25984 bytes ...System.Threading.Tasks.Extensions.dll.meta | 33 + Assets/Plugins/XmlRpcCore.dll | Bin 0 -> 17920 bytes Assets/Plugins/XmlRpcCore.dll.meta | 33 + Assets/Plugins/log4net.dll | Bin 0 -> 258048 bytes Assets/Plugins/log4net.dll.meta | 33 + Assets/Plugins/zlib.net.dll | Bin 0 -> 55296 bytes Assets/Plugins/zlib.net.dll.meta | 33 + Assets/ReadWrite.cs | 76 + Assets/ReadWrite.cs.meta | 11 + Assets/Scenes.meta | 8 + Assets/Scenes/SampleScene.unity | 2279 + Assets/Scenes/SampleScene.unity.meta | 7 + Assets/TextMesh Pro.meta | 8 + Assets/TextMesh Pro/Documentation.meta | 8 + .../TextMesh Pro User Guide 2016.pdf | Bin 0 -> 694398 bytes .../TextMesh Pro User Guide 2016.pdf.meta | 7 + Assets/TextMesh Pro/Fonts.meta | 8 + .../Fonts/LiberationSans - OFL.txt | 46 + .../Fonts/LiberationSans - OFL.txt.meta | 8 + Assets/TextMesh Pro/Fonts/LiberationSans.ttf | Bin 0 -> 350200 bytes .../Fonts/LiberationSans.ttf.meta | 19 + Assets/TextMesh Pro/Resources.meta | 8 + .../Resources/Fonts & Materials.meta | 9 + .../LiberationSans SDF - Drop Shadow.mat | 106 + .../LiberationSans SDF - Drop Shadow.mat.meta | 8 + .../LiberationSans SDF - Fallback.asset | 343 + .../LiberationSans SDF - Fallback.asset.meta | 8 + .../LiberationSans SDF - Outline.mat | 104 + .../LiberationSans SDF - Outline.mat.meta | 8 + .../LiberationSans SDF.asset | 7821 ++ .../LiberationSans SDF.asset.meta | 8 + .../LineBreaking Following Characters.txt | 1 + ...LineBreaking Following Characters.txt.meta | 8 + .../LineBreaking Leading Characters.txt | 1 + .../LineBreaking Leading Characters.txt.meta | 8 + .../TextMesh Pro/Resources/Sprite Assets.meta | 9 + .../Resources/Sprite Assets/EmojiOne.asset | 659 + .../Sprite Assets/EmojiOne.asset.meta | 8 + .../TextMesh Pro/Resources/Style Sheets.meta | 9 + .../Style Sheets/Default Style Sheet.asset | 68 + .../Default Style Sheet.asset.meta | 8 + .../TextMesh Pro/Resources/TMP Settings.asset | 46 + .../Resources/TMP Settings.asset.meta | 8 + Assets/TextMesh Pro/Shaders.meta | 8 + .../Shaders/TMP_Bitmap-Custom-Atlas.shader | 143 + .../TMP_Bitmap-Custom-Atlas.shader.meta | 9 + .../Shaders/TMP_Bitmap-Mobile.shader | 145 + .../Shaders/TMP_Bitmap-Mobile.shader.meta | 9 + Assets/TextMesh Pro/Shaders/TMP_Bitmap.shader | 143 + .../Shaders/TMP_Bitmap.shader.meta | 9 + .../Shaders/TMP_SDF Overlay.shader | 317 + .../Shaders/TMP_SDF Overlay.shader.meta | 9 + .../TextMesh Pro/Shaders/TMP_SDF SSD.shader | 310 + .../Shaders/TMP_SDF SSD.shader.meta | 9 + .../Shaders/TMP_SDF-Mobile Masking.shader | 247 + .../TMP_SDF-Mobile Masking.shader.meta | 9 + .../Shaders/TMP_SDF-Mobile Overlay.shader | 240 + .../TMP_SDF-Mobile Overlay.shader.meta | 9 + .../Shaders/TMP_SDF-Mobile SSD.shader | 106 + .../Shaders/TMP_SDF-Mobile SSD.shader.meta | 9 + .../Shaders/TMP_SDF-Mobile.shader | 240 + .../Shaders/TMP_SDF-Mobile.shader.meta | 9 + .../Shaders/TMP_SDF-Surface-Mobile.shader | 138 + .../TMP_SDF-Surface-Mobile.shader.meta | 9 + .../Shaders/TMP_SDF-Surface.shader | 158 + .../Shaders/TMP_SDF-Surface.shader.meta | 9 + Assets/TextMesh Pro/Shaders/TMP_SDF.shader | 317 + .../TextMesh Pro/Shaders/TMP_SDF.shader.meta | 9 + Assets/TextMesh Pro/Shaders/TMP_Sprite.shader | 116 + .../Shaders/TMP_Sprite.shader.meta | 9 + Assets/TextMesh Pro/Shaders/TMPro.cginc | 84 + Assets/TextMesh Pro/Shaders/TMPro.cginc.meta | 9 + .../TextMesh Pro/Shaders/TMPro_Mobile.cginc | 157 + .../Shaders/TMPro_Mobile.cginc.meta | 9 + .../Shaders/TMPro_Properties.cginc | 85 + .../Shaders/TMPro_Properties.cginc.meta | 9 + .../TextMesh Pro/Shaders/TMPro_Surface.cginc | 101 + .../Shaders/TMPro_Surface.cginc.meta | 9 + Assets/TextMesh Pro/Sprites.meta | 8 + .../Sprites/EmojiOne Attribution.txt | 3 + .../Sprites/EmojiOne Attribution.txt.meta | 7 + Assets/TextMesh Pro/Sprites/EmojiOne.json | 156 + .../TextMesh Pro/Sprites/EmojiOne.json.meta | 8 + Assets/TextMesh Pro/Sprites/EmojiOne.png | Bin 0 -> 112319 bytes Assets/TextMesh Pro/Sprites/EmojiOne.png.meta | 431 + Assets/Types.cs | 28 + Assets/Types.cs.meta | 11 + Assets/UnityWeld.dll | Bin 0 -> 67072 bytes Assets/UnityWeld.dll.meta | 33 + .../LibreMetaverse.StructuredData.dll | Bin 0 -> 106496 bytes .../LibreMetaverse.Types.dll | Bin 0 -> 106496 bytes .../com.LibreMetaverse/LibreMetaverse.dll | Bin 0 -> 2306048 bytes Packages/manifest.json | 43 + Packages/packages-lock.json | 338 + ProjectSettings/AudioManager.asset | 19 + ProjectSettings/ClusterInputManager.asset | 6 + ProjectSettings/DynamicsManager.asset | 34 + ProjectSettings/EditorBuildSettings.asset | 11 + ProjectSettings/EditorSettings.asset | 30 + ProjectSettings/GraphicsSettings.asset | 63 + ProjectSettings/InputManager.asset | 295 + ProjectSettings/NavMeshAreas.asset | 91 + ProjectSettings/PackageManagerSettings.asset | 43 + ProjectSettings/Physics2DSettings.asset | 56 + ProjectSettings/PresetManager.asset | 7 + ProjectSettings/ProjectSettings.asset | 775 + ProjectSettings/ProjectVersion.txt | 2 + ProjectSettings/QualitySettings.asset | 232 + ProjectSettings/TagManager.asset | 43 + ProjectSettings/TimeManager.asset | 9 + ProjectSettings/TimelineSettings.asset | 15 + ProjectSettings/UnityConnectSettings.asset | 35 + ProjectSettings/VFXManager.asset | 12 + ProjectSettings/VersionControlSettings.asset | 8 + ProjectSettings/XRSettings.asset | 10 + UpgradeLog.htm | Bin 0 -> 32032 bytes 785 files changed, 329442 insertions(+) create mode 100644 .vsconfig create mode 100644 Assets/Editor.meta create mode 100644 Assets/Editor/UnityWeld_Editor.dll create mode 100644 Assets/Editor/UnityWeld_Editor.dll.meta create mode 100644 Assets/Globals.cs create mode 100644 Assets/Globals.cs.meta create mode 100644 Assets/Graphy - Ultimate Stats Monitor.meta create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Changelog.txt create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Changelog.txt.meta create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Editor.meta create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Editor/GraphyDebuggerEditor.cs create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Editor/GraphyDebuggerEditor.cs.meta create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Editor/GraphyEditorStyle.cs create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Editor/GraphyEditorStyle.cs.meta create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Editor/GraphyManagerEditor.cs create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Editor/GraphyManagerEditor.cs.meta create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Editor/GraphyMenuItem.cs create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Editor/GraphyMenuItem.cs.meta create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Editor/Tayx.Graphy.Editor.asmdef create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Editor/Tayx.Graphy.Editor.asmdef.meta create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Font.meta create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Font/Northwest-Bold.meta create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Font/Northwest-Bold/ERIC-TIRADO-NORTHWEST-LICENSE.txt create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Font/Northwest-Bold/ERIC-TIRADO-NORTHWEST-LICENSE.txt.meta create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Font/Northwest-Bold/NORTHWEST-B.otf create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Font/Northwest-Bold/NORTHWEST-B.otf.meta create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Font/Roboto.meta create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Font/Roboto/LICENSE.txt create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Font/Roboto/LICENSE.txt.meta create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Font/Roboto/Roboto-Bold.ttf create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Font/Roboto/Roboto-Bold.ttf.meta create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Font/Roboto/Roboto-Regular.ttf create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Font/Roboto/Roboto-Regular.ttf.meta create mode 100644 Assets/Graphy - Ultimate Stats Monitor/GUI.meta create mode 100644 Assets/Graphy - Ultimate Stats Monitor/GUI/GraphyGUISkin.guiskin create mode 100644 Assets/Graphy - Ultimate Stats Monitor/GUI/GraphyGUISkin.guiskin.meta create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Graphy_CustomizationScene.unitypackage.meta create mode 100644 Assets/Graphy - Ultimate Stats Monitor/LICENSE create mode 100644 Assets/Graphy - Ultimate Stats Monitor/LICENSE.meta create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Materials.meta create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Materials/Audio_Spectrum_Graph.mat create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Materials/Audio_Spectrum_Graph.mat.meta create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Materials/Audio_Spectrum_Highest_Values_Graph.mat create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Materials/Audio_Spectrum_Highest_Values_Graph.mat.meta create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Materials/FPS_Graph.mat create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Materials/FPS_Graph.mat.meta create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Materials/RAM_Allocated_Graph.mat create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Materials/RAM_Allocated_Graph.mat.meta create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Materials/RAM_Mono_Graph.mat create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Materials/RAM_Mono_Graph.mat.meta create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Materials/RAM_Reserved_Graph.mat create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Materials/RAM_Reserved_Graph.mat.meta create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Prefab.meta create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Prefab/Internal.meta create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Prefab/Internal/ADVANCED - Module.prefab create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Prefab/Internal/ADVANCED - Module.prefab.meta create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Prefab/Internal/AUDIO - Module.prefab create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Prefab/Internal/AUDIO - Module.prefab.meta create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Prefab/Internal/FPS - Module.prefab create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Prefab/Internal/FPS - Module.prefab.meta create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Prefab/Internal/RAM - Module.prefab create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Prefab/Internal/RAM - Module.prefab.meta create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Prefab/[Graphy].prefab create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Prefab/[Graphy].prefab.meta create mode 100644 Assets/Graphy - Ultimate Stats Monitor/README.md create mode 100644 Assets/Graphy - Ultimate Stats Monitor/README.md.meta create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Readme! - Graphy - Documentation.pdf create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Readme! - Graphy - Documentation.pdf.meta create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Runtime.meta create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Runtime/Advanced.meta create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Runtime/Advanced/G_AdvancedData.cs create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Runtime/Advanced/G_AdvancedData.cs.meta create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Runtime/Audio.meta create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Runtime/Audio/G_AudioGraph.cs create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Runtime/Audio/G_AudioGraph.cs.meta create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Runtime/Audio/G_AudioManager.cs create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Runtime/Audio/G_AudioManager.cs.meta create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Runtime/Audio/G_AudioMonitor.cs create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Runtime/Audio/G_AudioMonitor.cs.meta create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Runtime/Audio/G_AudioText.cs create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Runtime/Audio/G_AudioText.cs.meta create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Runtime/Fps.meta create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Runtime/Fps/G_FpsGraph.cs create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Runtime/Fps/G_FpsGraph.cs.meta create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Runtime/Fps/G_FpsManager.cs create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Runtime/Fps/G_FpsManager.cs.meta create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Runtime/Fps/G_FpsMonitor.cs create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Runtime/Fps/G_FpsMonitor.cs.meta create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Runtime/Fps/G_FpsText.cs create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Runtime/Fps/G_FpsText.cs.meta create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Runtime/Graph.meta create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Runtime/Graph/G_Graph.cs create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Runtime/Graph/G_Graph.cs.meta create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Runtime/GraphyDebugger.cs create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Runtime/GraphyDebugger.cs.meta create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Runtime/GraphyManager.cs create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Runtime/GraphyManager.cs.meta create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Runtime/Ram.meta create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Runtime/Ram/G_RamGraph.cs create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Runtime/Ram/G_RamGraph.cs.meta create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Runtime/Ram/G_RamManager.cs create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Runtime/Ram/G_RamManager.cs.meta create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Runtime/Ram/G_RamMonitor.cs create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Runtime/Ram/G_RamMonitor.cs.meta create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Runtime/Ram/G_RamText.cs create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Runtime/Ram/G_RamText.cs.meta create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Runtime/Shader.meta create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Runtime/Shader/G_GraphShader.cs create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Runtime/Shader/G_GraphShader.cs.meta create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Runtime/Tayx.Graphy.asmdef create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Runtime/Tayx.Graphy.asmdef.meta create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Runtime/UI.meta create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Runtime/UI/IModifiableState.cs create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Runtime/UI/IModifiableState.cs.meta create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Runtime/UI/IMovable.cs create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Runtime/UI/IMovable.cs.meta create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Runtime/Util.meta create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Runtime/Util/G_ExtensionMethods.cs create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Runtime/Util/G_ExtensionMethods.cs.meta create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Runtime/Util/G_FloatString.cs create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Runtime/Util/G_FloatString.cs.meta create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Runtime/Util/G_Intstring.cs create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Runtime/Util/G_Intstring.cs.meta create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Runtime/Util/G_Singleton.cs create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Runtime/Util/G_Singleton.cs.meta create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Shaders.meta create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Shaders/GraphMobile.shader create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Shaders/GraphMobile.shader.meta create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Shaders/GraphStandard.shader create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Shaders/GraphStandard.shader.meta create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Textures.meta create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Textures/2x2_Texture.png create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Textures/2x2_Texture.png.meta create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Textures/Debugger_Logo_Dark.png create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Textures/Debugger_Logo_Dark.png.meta create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Textures/Debugger_Logo_White.png create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Textures/Debugger_Logo_White.png.meta create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Textures/Manager_Logo_Dark.png create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Textures/Manager_Logo_Dark.png.meta create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Textures/Manager_Logo_White.png create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Textures/Manager_Logo_White.png.meta create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Textures/Rounded_Rect_10px.png create mode 100644 Assets/Graphy - Ultimate Stats Monitor/Textures/Rounded_Rect_10px.png.meta create mode 100644 Assets/Graphy - Ultimate Stats Monitor/package.json create mode 100644 Assets/Graphy - Ultimate Stats Monitor/package.json.meta create mode 100644 Assets/LoginVM.cs create mode 100644 Assets/LoginVM.cs.meta create mode 100644 Assets/Plugins.meta create mode 100644 Assets/Plugins/Catnip.meta create mode 100644 Assets/Plugins/Catnip/Drawing.meta create mode 100644 Assets/Plugins/Catnip/Drawing/Bitmap.cs create mode 100644 Assets/Plugins/Catnip/Drawing/Bitmap.cs.meta create mode 100644 Assets/Plugins/Catnip/Drawing/Drawing2D.cs create mode 100644 Assets/Plugins/Catnip/Drawing/Drawing2D.cs.meta create mode 100644 Assets/Plugins/Catnip/Drawing/Graphics.cs create mode 100644 Assets/Plugins/Catnip/Drawing/Graphics.cs.meta create mode 100644 Assets/Plugins/Catnip/Drawing/Image.cs create mode 100644 Assets/Plugins/Catnip/Drawing/Image.cs.meta create mode 100644 Assets/Plugins/Catnip/Drawing/Imaging.cs create mode 100644 Assets/Plugins/Catnip/Drawing/Imaging.cs.meta create mode 100644 Assets/Plugins/Catnip/Drawing/Rectangle.cs create mode 100644 Assets/Plugins/Catnip/Drawing/Rectangle.cs.meta create mode 100644 Assets/Plugins/Catnip/Drawing/Size.cs create mode 100644 Assets/Plugins/Catnip/Drawing/Size.cs.meta create mode 100644 Assets/Plugins/IngameDebugConsole.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Android.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Android/DebugLogLogcatListener.cs create mode 100644 Assets/Plugins/IngameDebugConsole/Android/DebugLogLogcatListener.cs.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Android/IngameDebugConsole.aar create mode 100644 Assets/Plugins/IngameDebugConsole/Android/IngameDebugConsole.aar.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Editor.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Editor/DebugLogManagerEditor.cs create mode 100644 Assets/Plugins/IngameDebugConsole/Editor/DebugLogManagerEditor.cs.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Editor/IngameDebugConsole.Editor.asmdef create mode 100644 Assets/Plugins/IngameDebugConsole/Editor/IngameDebugConsole.Editor.asmdef.meta create mode 100644 Assets/Plugins/IngameDebugConsole/IngameDebugConsole.Runtime.asmdef create mode 100644 Assets/Plugins/IngameDebugConsole/IngameDebugConsole.Runtime.asmdef.meta create mode 100644 Assets/Plugins/IngameDebugConsole/IngameDebugConsole.prefab create mode 100644 Assets/Plugins/IngameDebugConsole/IngameDebugConsole.prefab.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Prefabs.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Prefabs/CommandSuggestion.prefab create mode 100644 Assets/Plugins/IngameDebugConsole/Prefabs/CommandSuggestion.prefab.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Prefabs/DebugLogItem.prefab create mode 100644 Assets/Plugins/IngameDebugConsole/Prefabs/DebugLogItem.prefab.meta create mode 100644 Assets/Plugins/IngameDebugConsole/README.txt create mode 100644 Assets/Plugins/IngameDebugConsole/README.txt.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Scripts.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Scripts/CircularBuffer.cs create mode 100644 Assets/Plugins/IngameDebugConsole/Scripts/CircularBuffer.cs.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Scripts/Commands.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Scripts/Commands/PlayerPrefsCommands.cs create mode 100644 Assets/Plugins/IngameDebugConsole/Scripts/Commands/PlayerPrefsCommands.cs.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Scripts/Commands/SceneCommands.cs create mode 100644 Assets/Plugins/IngameDebugConsole/Scripts/Commands/SceneCommands.cs.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Scripts/Commands/TimeCommands.cs create mode 100644 Assets/Plugins/IngameDebugConsole/Scripts/Commands/TimeCommands.cs.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Scripts/ConsoleMethodAttribute.cs create mode 100644 Assets/Plugins/IngameDebugConsole/Scripts/ConsoleMethodAttribute.cs.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Scripts/DebugLogConsole.cs create mode 100644 Assets/Plugins/IngameDebugConsole/Scripts/DebugLogConsole.cs.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Scripts/DebugLogEntry.cs create mode 100644 Assets/Plugins/IngameDebugConsole/Scripts/DebugLogEntry.cs.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Scripts/DebugLogIndexList.cs create mode 100644 Assets/Plugins/IngameDebugConsole/Scripts/DebugLogIndexList.cs.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Scripts/DebugLogItem.cs create mode 100644 Assets/Plugins/IngameDebugConsole/Scripts/DebugLogItem.cs.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Scripts/DebugLogManager.cs create mode 100644 Assets/Plugins/IngameDebugConsole/Scripts/DebugLogManager.cs.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Scripts/DebugLogPopup.cs create mode 100644 Assets/Plugins/IngameDebugConsole/Scripts/DebugLogPopup.cs.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Scripts/DebugLogRecycledListView.cs create mode 100644 Assets/Plugins/IngameDebugConsole/Scripts/DebugLogRecycledListView.cs.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Scripts/DebugLogResizeListener.cs create mode 100644 Assets/Plugins/IngameDebugConsole/Scripts/DebugLogResizeListener.cs.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Scripts/DebugsOnScrollListener.cs create mode 100644 Assets/Plugins/IngameDebugConsole/Scripts/DebugsOnScrollListener.cs.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Sprites.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Sprites/IconClear.psd create mode 100644 Assets/Plugins/IngameDebugConsole/Sprites/IconClear.psd.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Sprites/IconCollapse.psd create mode 100644 Assets/Plugins/IngameDebugConsole/Sprites/IconCollapse.psd.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Sprites/IconError.psd create mode 100644 Assets/Plugins/IngameDebugConsole/Sprites/IconError.psd.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Sprites/IconHide.psd create mode 100644 Assets/Plugins/IngameDebugConsole/Sprites/IconHide.psd.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Sprites/IconInfo.psd create mode 100644 Assets/Plugins/IngameDebugConsole/Sprites/IconInfo.psd.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Sprites/IconResizeAllDirections.psd create mode 100644 Assets/Plugins/IngameDebugConsole/Sprites/IconResizeAllDirections.psd.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Sprites/IconResizeVertialOnly.psd create mode 100644 Assets/Plugins/IngameDebugConsole/Sprites/IconResizeVertialOnly.psd.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Sprites/IconSnapToBottom.psd create mode 100644 Assets/Plugins/IngameDebugConsole/Sprites/IconSnapToBottom.psd.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Sprites/IconSnapToBottomBg.psd create mode 100644 Assets/Plugins/IngameDebugConsole/Sprites/IconSnapToBottomBg.psd.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Sprites/IconWarning.psd create mode 100644 Assets/Plugins/IngameDebugConsole/Sprites/IconWarning.psd.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Sprites/SearchIcon.psd create mode 100644 Assets/Plugins/IngameDebugConsole/Sprites/SearchIcon.psd.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Sprites/SlicedBackground.psd create mode 100644 Assets/Plugins/IngameDebugConsole/Sprites/SlicedBackground.psd.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Sprites/SlicedBackground2.psd create mode 100644 Assets/Plugins/IngameDebugConsole/Sprites/SlicedBackground2.psd.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Sprites/SlicedBackground3.psd create mode 100644 Assets/Plugins/IngameDebugConsole/Sprites/SlicedBackground3.psd.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Sprites/Unused.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Sprites/Unused/IconErrorHighRes.psd create mode 100644 Assets/Plugins/IngameDebugConsole/Sprites/Unused/IconErrorHighRes.psd.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Sprites/Unused/IconInfoHighRes.psd create mode 100644 Assets/Plugins/IngameDebugConsole/Sprites/Unused/IconInfoHighRes.psd.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Sprites/Unused/IconWarningHighRes.psd create mode 100644 Assets/Plugins/IngameDebugConsole/Sprites/Unused/IconWarningHighRes.psd.meta create mode 100644 Assets/Plugins/IngameDebugConsole/iOS.meta create mode 100644 Assets/Plugins/IngameDebugConsole/iOS/IngameDebugConsole.mm create mode 100644 Assets/Plugins/IngameDebugConsole/iOS/IngameDebugConsole.mm.meta create mode 100644 Assets/Plugins/LibreMetaverse.StructuredData.meta create mode 100644 Assets/Plugins/LibreMetaverse.StructuredData/JSON.meta create mode 100644 Assets/Plugins/LibreMetaverse.StructuredData/JSON/IJsonWrapper.cs create mode 100644 Assets/Plugins/LibreMetaverse.StructuredData/JSON/IJsonWrapper.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse.StructuredData/JSON/JsonData.cs create mode 100644 Assets/Plugins/LibreMetaverse.StructuredData/JSON/JsonData.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse.StructuredData/JSON/JsonException.cs create mode 100644 Assets/Plugins/LibreMetaverse.StructuredData/JSON/JsonException.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse.StructuredData/JSON/JsonMapper.cs create mode 100644 Assets/Plugins/LibreMetaverse.StructuredData/JSON/JsonMapper.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse.StructuredData/JSON/JsonReader.cs create mode 100644 Assets/Plugins/LibreMetaverse.StructuredData/JSON/JsonReader.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse.StructuredData/JSON/JsonWriter.cs create mode 100644 Assets/Plugins/LibreMetaverse.StructuredData/JSON/JsonWriter.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse.StructuredData/JSON/Lexer.cs create mode 100644 Assets/Plugins/LibreMetaverse.StructuredData/JSON/Lexer.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse.StructuredData/JSON/OSDJson.cs create mode 100644 Assets/Plugins/LibreMetaverse.StructuredData/JSON/OSDJson.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse.StructuredData/JSON/ParserToken.cs create mode 100644 Assets/Plugins/LibreMetaverse.StructuredData/JSON/ParserToken.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse.StructuredData/LLSD.meta create mode 100644 Assets/Plugins/LibreMetaverse.StructuredData/LLSD/BinaryLLSD.cs create mode 100644 Assets/Plugins/LibreMetaverse.StructuredData/LLSD/BinaryLLSD.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse.StructuredData/LLSD/NotationLLSD.cs create mode 100644 Assets/Plugins/LibreMetaverse.StructuredData/LLSD/NotationLLSD.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse.StructuredData/LLSD/XmlLLSD.cs create mode 100644 Assets/Plugins/LibreMetaverse.StructuredData/LLSD/XmlLLSD.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse.StructuredData/StructuredData.cs create mode 100644 Assets/Plugins/LibreMetaverse.StructuredData/StructuredData.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse.Types.meta create mode 100644 Assets/Plugins/LibreMetaverse.Types/CRC32.cs create mode 100644 Assets/Plugins/LibreMetaverse.Types/CRC32.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse.Types/Color4.cs create mode 100644 Assets/Plugins/LibreMetaverse.Types/Color4.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse.Types/DoubleDictionary.cs create mode 100644 Assets/Plugins/LibreMetaverse.Types/DoubleDictionary.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse.Types/Enums.cs create mode 100644 Assets/Plugins/LibreMetaverse.Types/Enums.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse.Types/EnumsPrimitive.cs create mode 100644 Assets/Plugins/LibreMetaverse.Types/EnumsPrimitive.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse.Types/ExpiringCache.cs create mode 100644 Assets/Plugins/LibreMetaverse.Types/ExpiringCache.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse.Types/Matrix4.cs create mode 100644 Assets/Plugins/LibreMetaverse.Types/Matrix4.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse.Types/Quaternion.cs create mode 100644 Assets/Plugins/LibreMetaverse.Types/Quaternion.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse.Types/ThreadSafeDictionary.cs create mode 100644 Assets/Plugins/LibreMetaverse.Types/ThreadSafeDictionary.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse.Types/TokenBucket.cs create mode 100644 Assets/Plugins/LibreMetaverse.Types/TokenBucket.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse.Types/UUID.cs create mode 100644 Assets/Plugins/LibreMetaverse.Types/UUID.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse.Types/Utils.cs create mode 100644 Assets/Plugins/LibreMetaverse.Types/Utils.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse.Types/UtilsConversions.cs create mode 100644 Assets/Plugins/LibreMetaverse.Types/UtilsConversions.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse.Types/Vector2.cs create mode 100644 Assets/Plugins/LibreMetaverse.Types/Vector2.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse.Types/Vector3.cs create mode 100644 Assets/Plugins/LibreMetaverse.Types/Vector3.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse.Types/Vector3d.cs create mode 100644 Assets/Plugins/LibreMetaverse.Types/Vector3d.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse.Types/Vector4.cs create mode 100644 Assets/Plugins/LibreMetaverse.Types/Vector4.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse.meta create mode 100644 Assets/Plugins/LibreMetaverse/AgentManager.cs create mode 100644 Assets/Plugins/LibreMetaverse/AgentManager.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse/AgentManagerCamera.cs create mode 100644 Assets/Plugins/LibreMetaverse/AgentManagerCamera.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse/AgentManagerMovement.cs create mode 100644 Assets/Plugins/LibreMetaverse/AgentManagerMovement.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse/AgentThrottle.cs create mode 100644 Assets/Plugins/LibreMetaverse/AgentThrottle.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse/Animations.cs create mode 100644 Assets/Plugins/LibreMetaverse/Animations.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse/AppearanceManager.cs create mode 100644 Assets/Plugins/LibreMetaverse/AppearanceManager.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse/AssetCache.cs create mode 100644 Assets/Plugins/LibreMetaverse/AssetCache.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse/AssetManager.cs create mode 100644 Assets/Plugins/LibreMetaverse/AssetManager.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse/Assets.meta create mode 100644 Assets/Plugins/LibreMetaverse/Assets/Archiving.meta create mode 100644 Assets/Plugins/LibreMetaverse/Assets/Archiving/ArchiveConstants.cs create mode 100644 Assets/Plugins/LibreMetaverse/Assets/Archiving/ArchiveConstants.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse/Assets/Archiving/AssetsArchiver.cs create mode 100644 Assets/Plugins/LibreMetaverse/Assets/Archiving/AssetsArchiver.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse/Assets/Archiving/OarFile.cs create mode 100644 Assets/Plugins/LibreMetaverse/Assets/Archiving/OarFile.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse/Assets/Archiving/RegionSettings.cs create mode 100644 Assets/Plugins/LibreMetaverse/Assets/Archiving/RegionSettings.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse/Assets/Archiving/TarArchiveReader.cs create mode 100644 Assets/Plugins/LibreMetaverse/Assets/Archiving/TarArchiveReader.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse/Assets/Archiving/TarArchiveWriter.cs create mode 100644 Assets/Plugins/LibreMetaverse/Assets/Archiving/TarArchiveWriter.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse/Assets/Asset.cs create mode 100644 Assets/Plugins/LibreMetaverse/Assets/Asset.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse/Assets/AssetTypes.meta create mode 100644 Assets/Plugins/LibreMetaverse/Assets/AssetTypes/AssetAnimation.cs create mode 100644 Assets/Plugins/LibreMetaverse/Assets/AssetTypes/AssetAnimation.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse/Assets/AssetTypes/AssetBodypart.cs create mode 100644 Assets/Plugins/LibreMetaverse/Assets/AssetTypes/AssetBodypart.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse/Assets/AssetTypes/AssetCallingCard.cs create mode 100644 Assets/Plugins/LibreMetaverse/Assets/AssetTypes/AssetCallingCard.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse/Assets/AssetTypes/AssetClothing.cs create mode 100644 Assets/Plugins/LibreMetaverse/Assets/AssetTypes/AssetClothing.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse/Assets/AssetTypes/AssetGesture.cs create mode 100644 Assets/Plugins/LibreMetaverse/Assets/AssetTypes/AssetGesture.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse/Assets/AssetTypes/AssetLandmark.cs create mode 100644 Assets/Plugins/LibreMetaverse/Assets/AssetTypes/AssetLandmark.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse/Assets/AssetTypes/AssetMesh.cs create mode 100644 Assets/Plugins/LibreMetaverse/Assets/AssetTypes/AssetMesh.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse/Assets/AssetTypes/AssetMutable.cs create mode 100644 Assets/Plugins/LibreMetaverse/Assets/AssetTypes/AssetMutable.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse/Assets/AssetTypes/AssetNotecard.cs create mode 100644 Assets/Plugins/LibreMetaverse/Assets/AssetTypes/AssetNotecard.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse/Assets/AssetTypes/AssetPrim.cs create mode 100644 Assets/Plugins/LibreMetaverse/Assets/AssetTypes/AssetPrim.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse/Assets/AssetTypes/AssetScriptBinary.cs create mode 100644 Assets/Plugins/LibreMetaverse/Assets/AssetTypes/AssetScriptBinary.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse/Assets/AssetTypes/AssetScriptText.cs create mode 100644 Assets/Plugins/LibreMetaverse/Assets/AssetTypes/AssetScriptText.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse/Assets/AssetTypes/AssetSound.cs create mode 100644 Assets/Plugins/LibreMetaverse/Assets/AssetTypes/AssetSound.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse/Assets/AssetTypes/AssetTexture.cs create mode 100644 Assets/Plugins/LibreMetaverse/Assets/AssetTypes/AssetTexture.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse/Assets/AssetTypes/AssetWearable.cs create mode 100644 Assets/Plugins/LibreMetaverse/Assets/AssetTypes/AssetWearable.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse/Avatar.cs create mode 100644 Assets/Plugins/LibreMetaverse/Avatar.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse/AvatarManager.cs create mode 100644 Assets/Plugins/LibreMetaverse/AvatarManager.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse/BVHDecoder.cs create mode 100644 Assets/Plugins/LibreMetaverse/BVHDecoder.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse/BitPack.cs create mode 100644 Assets/Plugins/LibreMetaverse/BitPack.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse/Capabilities.meta create mode 100644 Assets/Plugins/LibreMetaverse/Capabilities/CapsBase.cs create mode 100644 Assets/Plugins/LibreMetaverse/Capabilities/CapsBase.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse/Capabilities/CapsClient.cs create mode 100644 Assets/Plugins/LibreMetaverse/Capabilities/CapsClient.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse/Capabilities/EventQueueClient.cs create mode 100644 Assets/Plugins/LibreMetaverse/Capabilities/EventQueueClient.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse/Caps.cs create mode 100644 Assets/Plugins/LibreMetaverse/Caps.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse/CapsToPacket.cs create mode 100644 Assets/Plugins/LibreMetaverse/CapsToPacket.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse/CoordinateFrame.cs create mode 100644 Assets/Plugins/LibreMetaverse/CoordinateFrame.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse/DirectoryManager.cs create mode 100644 Assets/Plugins/LibreMetaverse/DirectoryManager.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse/DownloadManager.cs create mode 100644 Assets/Plugins/LibreMetaverse/DownloadManager.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse/EstateTools.cs create mode 100644 Assets/Plugins/LibreMetaverse/EstateTools.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse/EventDictionary.cs create mode 100644 Assets/Plugins/LibreMetaverse/EventDictionary.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse/FriendsManager.cs create mode 100644 Assets/Plugins/LibreMetaverse/FriendsManager.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse/GridClient.cs create mode 100644 Assets/Plugins/LibreMetaverse/GridClient.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse/GridManager.cs create mode 100644 Assets/Plugins/LibreMetaverse/GridManager.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse/GroupManager.cs create mode 100644 Assets/Plugins/LibreMetaverse/GroupManager.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse/Helpers.cs create mode 100644 Assets/Plugins/LibreMetaverse/Helpers.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse/Imaging.meta create mode 100644 Assets/Plugins/LibreMetaverse/Imaging/BakeLayer.cs create mode 100644 Assets/Plugins/LibreMetaverse/Imaging/BakeLayer.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse/Imaging/ManagedImage.cs create mode 100644 Assets/Plugins/LibreMetaverse/Imaging/ManagedImage.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse/Imaging/OpenJPEG.cs create mode 100644 Assets/Plugins/LibreMetaverse/Imaging/OpenJPEG.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse/Imaging/TGALoader.cs create mode 100644 Assets/Plugins/LibreMetaverse/Imaging/TGALoader.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse/ImportExport.meta create mode 100644 Assets/Plugins/LibreMetaverse/ImportExport/Collada.cs create mode 100644 Assets/Plugins/LibreMetaverse/ImportExport/Collada.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse/ImportExport/ColladalLoader.cs create mode 100644 Assets/Plugins/LibreMetaverse/ImportExport/ColladalLoader.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse/ImportExport/Model.cs create mode 100644 Assets/Plugins/LibreMetaverse/ImportExport/Model.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse/ImportExport/ModelUploader.cs create mode 100644 Assets/Plugins/LibreMetaverse/ImportExport/ModelUploader.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse/Interfaces.meta create mode 100644 Assets/Plugins/LibreMetaverse/Interfaces/IByteBufferPool.cs create mode 100644 Assets/Plugins/LibreMetaverse/Interfaces/IByteBufferPool.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse/Interfaces/IMessage.cs create mode 100644 Assets/Plugins/LibreMetaverse/Interfaces/IMessage.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse/Interfaces/IRendering.cs create mode 100644 Assets/Plugins/LibreMetaverse/Interfaces/IRendering.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse/InternalDictionary.cs create mode 100644 Assets/Plugins/LibreMetaverse/InternalDictionary.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse/Inventory.cs create mode 100644 Assets/Plugins/LibreMetaverse/Inventory.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse/InventoryAISClient.cs create mode 100644 Assets/Plugins/LibreMetaverse/InventoryAISClient.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse/InventoryBase.cs create mode 100644 Assets/Plugins/LibreMetaverse/InventoryBase.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse/InventoryManager.cs create mode 100644 Assets/Plugins/LibreMetaverse/InventoryManager.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse/InventoryNode.cs create mode 100644 Assets/Plugins/LibreMetaverse/InventoryNode.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse/InventoryNodeDictionary.cs create mode 100644 Assets/Plugins/LibreMetaverse/InventoryNodeDictionary.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse/Logger.cs create mode 100644 Assets/Plugins/LibreMetaverse/Logger.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse/Login.cs create mode 100644 Assets/Plugins/LibreMetaverse/Login.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse/Messages.meta create mode 100644 Assets/Plugins/LibreMetaverse/Messages/LindenMessages.cs create mode 100644 Assets/Plugins/LibreMetaverse/Messages/LindenMessages.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse/Messages/MessageEventDecoder.cs create mode 100644 Assets/Plugins/LibreMetaverse/Messages/MessageEventDecoder.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse/Messages/Messages.cs create mode 100644 Assets/Plugins/LibreMetaverse/Messages/Messages.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse/NameValue.cs create mode 100644 Assets/Plugins/LibreMetaverse/NameValue.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse/NetworkManager.cs create mode 100644 Assets/Plugins/LibreMetaverse/NetworkManager.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse/ObjectManager.cs create mode 100644 Assets/Plugins/LibreMetaverse/ObjectManager.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse/ObservableDictionary.cs create mode 100644 Assets/Plugins/LibreMetaverse/ObservableDictionary.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse/PacketDecoder.cs create mode 100644 Assets/Plugins/LibreMetaverse/PacketDecoder.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse/ParcelManager.cs create mode 100644 Assets/Plugins/LibreMetaverse/ParcelManager.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse/Permissions.cs create mode 100644 Assets/Plugins/LibreMetaverse/Permissions.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse/Primitives.meta create mode 100644 Assets/Plugins/LibreMetaverse/Primitives/ObjectMedia.cs create mode 100644 Assets/Plugins/LibreMetaverse/Primitives/ObjectMedia.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse/Primitives/ParticleSystem.cs create mode 100644 Assets/Plugins/LibreMetaverse/Primitives/ParticleSystem.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse/Primitives/Primitive.cs create mode 100644 Assets/Plugins/LibreMetaverse/Primitives/Primitive.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse/Primitives/TextureEntry.cs create mode 100644 Assets/Plugins/LibreMetaverse/Primitives/TextureEntry.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse/ProtocolManager.cs create mode 100644 Assets/Plugins/LibreMetaverse/ProtocolManager.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse/Rendering.meta create mode 100644 Assets/Plugins/LibreMetaverse/Rendering/EndianAwareBinaryReader.cs create mode 100644 Assets/Plugins/LibreMetaverse/Rendering/EndianAwareBinaryReader.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse/Rendering/LindenMesh.cs create mode 100644 Assets/Plugins/LibreMetaverse/Rendering/LindenMesh.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse/Rendering/LindenSkeleton.Ext.cs create mode 100644 Assets/Plugins/LibreMetaverse/Rendering/LindenSkeleton.Ext.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse/Rendering/LindenSkeleton.Xsd.cs create mode 100644 Assets/Plugins/LibreMetaverse/Rendering/LindenSkeleton.Xsd.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse/Rendering/Rendering.cs create mode 100644 Assets/Plugins/LibreMetaverse/Rendering/Rendering.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse/Settings.cs create mode 100644 Assets/Plugins/LibreMetaverse/Settings.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse/Simulator.cs create mode 100644 Assets/Plugins/LibreMetaverse/Simulator.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse/SoundManager.cs create mode 100644 Assets/Plugins/LibreMetaverse/SoundManager.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse/Sounds.cs create mode 100644 Assets/Plugins/LibreMetaverse/Sounds.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse/TerrainCompressor.cs create mode 100644 Assets/Plugins/LibreMetaverse/TerrainCompressor.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse/TerrainManager.cs create mode 100644 Assets/Plugins/LibreMetaverse/TerrainManager.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse/TexturePipeline.cs create mode 100644 Assets/Plugins/LibreMetaverse/TexturePipeline.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse/ThreadUtil.cs create mode 100644 Assets/Plugins/LibreMetaverse/ThreadUtil.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse/UDPBase.cs create mode 100644 Assets/Plugins/LibreMetaverse/UDPBase.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse/UDPPacketBuffer.cs create mode 100644 Assets/Plugins/LibreMetaverse/UDPPacketBuffer.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse/UtilizationStatistics.cs create mode 100644 Assets/Plugins/LibreMetaverse/UtilizationStatistics.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse/Voice.meta create mode 100644 Assets/Plugins/LibreMetaverse/Voice/TCPPipe.cs create mode 100644 Assets/Plugins/LibreMetaverse/Voice/TCPPipe.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse/Voice/VoiceAccount.cs create mode 100644 Assets/Plugins/LibreMetaverse/Voice/VoiceAccount.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse/Voice/VoiceAux.cs create mode 100644 Assets/Plugins/LibreMetaverse/Voice/VoiceAux.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse/Voice/VoiceConnector.cs create mode 100644 Assets/Plugins/LibreMetaverse/Voice/VoiceConnector.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse/Voice/VoiceControl.cs create mode 100644 Assets/Plugins/LibreMetaverse/Voice/VoiceControl.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse/Voice/VoiceDefinitions.cs create mode 100644 Assets/Plugins/LibreMetaverse/Voice/VoiceDefinitions.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse/Voice/VoiceGateway.cs create mode 100644 Assets/Plugins/LibreMetaverse/Voice/VoiceGateway.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse/Voice/VoiceParticipant.cs create mode 100644 Assets/Plugins/LibreMetaverse/Voice/VoiceParticipant.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse/Voice/VoiceSession.cs create mode 100644 Assets/Plugins/LibreMetaverse/Voice/VoiceSession.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse/_Packets_.cs create mode 100644 Assets/Plugins/LibreMetaverse/_Packets_.cs.meta create mode 100644 Assets/Plugins/LibreMetaverse/_VisualParam_.cs create mode 100644 Assets/Plugins/LibreMetaverse/_VisualParam_.cs.meta create mode 100644 Assets/Plugins/Microsoft.Experimental.Collections.dll create mode 100644 Assets/Plugins/Microsoft.Experimental.Collections.dll.meta create mode 100644 Assets/Plugins/Microsoft.Extensions.ObjectPool.dll create mode 100644 Assets/Plugins/Microsoft.Extensions.ObjectPool.dll.meta create mode 100644 Assets/Plugins/SimpleFileBrowser.meta create mode 100644 Assets/Plugins/SimpleFileBrowser/Android.meta create mode 100644 Assets/Plugins/SimpleFileBrowser/Android/FBCallbackHelper.cs create mode 100644 Assets/Plugins/SimpleFileBrowser/Android/FBCallbackHelper.cs.meta create mode 100644 Assets/Plugins/SimpleFileBrowser/Android/FBDirectoryReceiveCallbackAndroid.cs create mode 100644 Assets/Plugins/SimpleFileBrowser/Android/FBDirectoryReceiveCallbackAndroid.cs.meta create mode 100644 Assets/Plugins/SimpleFileBrowser/Android/FBPermissionCallbackAndroid.cs create mode 100644 Assets/Plugins/SimpleFileBrowser/Android/FBPermissionCallbackAndroid.cs.meta create mode 100644 Assets/Plugins/SimpleFileBrowser/Android/SimpleFileBrowser.aar create mode 100644 Assets/Plugins/SimpleFileBrowser/Android/SimpleFileBrowser.aar.meta create mode 100644 Assets/Plugins/SimpleFileBrowser/Prefabs.meta create mode 100644 Assets/Plugins/SimpleFileBrowser/Prefabs/SimpleFileBrowserItem.prefab create mode 100644 Assets/Plugins/SimpleFileBrowser/Prefabs/SimpleFileBrowserItem.prefab.meta create mode 100644 Assets/Plugins/SimpleFileBrowser/Prefabs/SimpleFileBrowserQuickLink.prefab create mode 100644 Assets/Plugins/SimpleFileBrowser/Prefabs/SimpleFileBrowserQuickLink.prefab.meta create mode 100644 Assets/Plugins/SimpleFileBrowser/README.txt create mode 100644 Assets/Plugins/SimpleFileBrowser/README.txt.meta create mode 100644 Assets/Plugins/SimpleFileBrowser/Resources.meta create mode 100644 Assets/Plugins/SimpleFileBrowser/Resources/SimpleFileBrowserCanvas.prefab create mode 100644 Assets/Plugins/SimpleFileBrowser/Resources/SimpleFileBrowserCanvas.prefab.meta create mode 100644 Assets/Plugins/SimpleFileBrowser/Scripts.meta create mode 100644 Assets/Plugins/SimpleFileBrowser/Scripts/FileBrowser.cs create mode 100644 Assets/Plugins/SimpleFileBrowser/Scripts/FileBrowser.cs.meta create mode 100644 Assets/Plugins/SimpleFileBrowser/Scripts/FileBrowserContextMenu.cs create mode 100644 Assets/Plugins/SimpleFileBrowser/Scripts/FileBrowserContextMenu.cs.meta create mode 100644 Assets/Plugins/SimpleFileBrowser/Scripts/FileBrowserCursorHandler.cs create mode 100644 Assets/Plugins/SimpleFileBrowser/Scripts/FileBrowserCursorHandler.cs.meta create mode 100644 Assets/Plugins/SimpleFileBrowser/Scripts/FileBrowserDeleteConfirmationPanel.cs create mode 100644 Assets/Plugins/SimpleFileBrowser/Scripts/FileBrowserDeleteConfirmationPanel.cs.meta create mode 100644 Assets/Plugins/SimpleFileBrowser/Scripts/FileBrowserHelpers.cs create mode 100644 Assets/Plugins/SimpleFileBrowser/Scripts/FileBrowserHelpers.cs.meta create mode 100644 Assets/Plugins/SimpleFileBrowser/Scripts/FileBrowserItem.cs create mode 100644 Assets/Plugins/SimpleFileBrowser/Scripts/FileBrowserItem.cs.meta create mode 100644 Assets/Plugins/SimpleFileBrowser/Scripts/FileBrowserMovement.cs create mode 100644 Assets/Plugins/SimpleFileBrowser/Scripts/FileBrowserMovement.cs.meta create mode 100644 Assets/Plugins/SimpleFileBrowser/Scripts/FileBrowserQuickLink.cs create mode 100644 Assets/Plugins/SimpleFileBrowser/Scripts/FileBrowserQuickLink.cs.meta create mode 100644 Assets/Plugins/SimpleFileBrowser/Scripts/FileBrowserRenamedItem.cs create mode 100644 Assets/Plugins/SimpleFileBrowser/Scripts/FileBrowserRenamedItem.cs.meta create mode 100644 Assets/Plugins/SimpleFileBrowser/Scripts/NonDrawingGraphic.cs create mode 100644 Assets/Plugins/SimpleFileBrowser/Scripts/NonDrawingGraphic.cs.meta create mode 100644 Assets/Plugins/SimpleFileBrowser/Scripts/SimpleRecycledListView.meta create mode 100644 Assets/Plugins/SimpleFileBrowser/Scripts/SimpleRecycledListView/IListViewAdapter.cs create mode 100644 Assets/Plugins/SimpleFileBrowser/Scripts/SimpleRecycledListView/IListViewAdapter.cs.meta create mode 100644 Assets/Plugins/SimpleFileBrowser/Scripts/SimpleRecycledListView/ListItem.cs create mode 100644 Assets/Plugins/SimpleFileBrowser/Scripts/SimpleRecycledListView/ListItem.cs.meta create mode 100644 Assets/Plugins/SimpleFileBrowser/Scripts/SimpleRecycledListView/RecycledListView.cs create mode 100644 Assets/Plugins/SimpleFileBrowser/Scripts/SimpleRecycledListView/RecycledListView.cs.meta create mode 100644 Assets/Plugins/SimpleFileBrowser/SimpleFileBrowser.Runtime.asmdef create mode 100644 Assets/Plugins/SimpleFileBrowser/SimpleFileBrowser.Runtime.asmdef.meta create mode 100644 Assets/Plugins/SimpleFileBrowser/Sprites.meta create mode 100644 Assets/Plugins/SimpleFileBrowser/Sprites/Checkmark.psd create mode 100644 Assets/Plugins/SimpleFileBrowser/Sprites/Checkmark.psd.meta create mode 100644 Assets/Plugins/SimpleFileBrowser/Sprites/DefaultFileIcon.png create mode 100644 Assets/Plugins/SimpleFileBrowser/Sprites/DefaultFileIcon.png.meta create mode 100644 Assets/Plugins/SimpleFileBrowser/Sprites/DriveIcon.png create mode 100644 Assets/Plugins/SimpleFileBrowser/Sprites/DriveIcon.png.meta create mode 100644 Assets/Plugins/SimpleFileBrowser/Sprites/DropdownArrow.psd create mode 100644 Assets/Plugins/SimpleFileBrowser/Sprites/DropdownArrow.psd.meta create mode 100644 Assets/Plugins/SimpleFileBrowser/Sprites/FolderIcon.png create mode 100644 Assets/Plugins/SimpleFileBrowser/Sprites/FolderIcon.png.meta create mode 100644 Assets/Plugins/SimpleFileBrowser/Sprites/ForwardArrow.psd create mode 100644 Assets/Plugins/SimpleFileBrowser/Sprites/ForwardArrow.psd.meta create mode 100644 Assets/Plugins/SimpleFileBrowser/Sprites/ImageFileIcon.png create mode 100644 Assets/Plugins/SimpleFileBrowser/Sprites/ImageFileIcon.png.meta create mode 100644 Assets/Plugins/SimpleFileBrowser/Sprites/MultiSelectionToggleOff.psd create mode 100644 Assets/Plugins/SimpleFileBrowser/Sprites/MultiSelectionToggleOff.psd.meta create mode 100644 Assets/Plugins/SimpleFileBrowser/Sprites/MultiSelectionToggleOn.psd create mode 100644 Assets/Plugins/SimpleFileBrowser/Sprites/MultiSelectionToggleOn.psd.meta create mode 100644 Assets/Plugins/SimpleFileBrowser/Sprites/ResizeCursor.psd create mode 100644 Assets/Plugins/SimpleFileBrowser/Sprites/ResizeCursor.psd.meta create mode 100644 Assets/Plugins/SimpleFileBrowser/Sprites/SimpleFileBrowserDrag.psd create mode 100644 Assets/Plugins/SimpleFileBrowser/Sprites/SimpleFileBrowserDrag.psd.meta create mode 100644 Assets/Plugins/SimpleFileBrowser/Sprites/SimpleFileBrowserMoreOptions.psd create mode 100644 Assets/Plugins/SimpleFileBrowser/Sprites/SimpleFileBrowserMoreOptions.psd.meta create mode 100644 Assets/Plugins/SimpleFileBrowser/Sprites/SimpleFileBrowserSlicedBackground1.psd create mode 100644 Assets/Plugins/SimpleFileBrowser/Sprites/SimpleFileBrowserSlicedBackground1.psd.meta create mode 100644 Assets/Plugins/SimpleFileBrowser/Sprites/SimpleFileBrowserSlicedBackground2.psd create mode 100644 Assets/Plugins/SimpleFileBrowser/Sprites/SimpleFileBrowserSlicedBackground2.psd.meta create mode 100644 Assets/Plugins/SimpleFileBrowser/Sprites/SimpleFileBrowserSlicedBackground3.psd create mode 100644 Assets/Plugins/SimpleFileBrowser/Sprites/SimpleFileBrowserSlicedBackground3.psd.meta create mode 100644 Assets/Plugins/SimpleFileBrowser/Sprites/SimpleFileBrowserSlicedBackground4.psd create mode 100644 Assets/Plugins/SimpleFileBrowser/Sprites/SimpleFileBrowserSlicedBackground4.psd.meta create mode 100644 Assets/Plugins/SimpleFileBrowser/Sprites/SimpleFileBrowserSlicedBackground5.psd create mode 100644 Assets/Plugins/SimpleFileBrowser/Sprites/SimpleFileBrowserSlicedBackground5.psd.meta create mode 100644 Assets/Plugins/SimpleFileBrowser/Sprites/TextFileIcon.png create mode 100644 Assets/Plugins/SimpleFileBrowser/Sprites/TextFileIcon.png.meta create mode 100644 Assets/Plugins/SixLabors.ImageSharp.dll create mode 100644 Assets/Plugins/SixLabors.ImageSharp.dll.meta create mode 100644 Assets/Plugins/SixLabors.ImageSharp.xml create mode 100644 Assets/Plugins/SixLabors.ImageSharp.xml.meta create mode 100644 Assets/Plugins/System.Buffers.dll create mode 100644 Assets/Plugins/System.Buffers.dll.meta create mode 100644 Assets/Plugins/System.Configuration.ConfigurationManager.dll create mode 100644 Assets/Plugins/System.Configuration.ConfigurationManager.dll.meta create mode 100644 Assets/Plugins/System.Drawing.Common.dll create mode 100644 Assets/Plugins/System.Drawing.Common.dll.meta create mode 100644 Assets/Plugins/System.Memory.dll create mode 100644 Assets/Plugins/System.Memory.dll.meta create mode 100644 Assets/Plugins/System.Numerics.Vectors.dll create mode 100644 Assets/Plugins/System.Numerics.Vectors.dll.meta create mode 100644 Assets/Plugins/System.Runtime.CompilerServices.Unsafe.dll create mode 100644 Assets/Plugins/System.Runtime.CompilerServices.Unsafe.dll.meta create mode 100644 Assets/Plugins/System.Security.Cryptography.ProtectedData.dll create mode 100644 Assets/Plugins/System.Security.Cryptography.ProtectedData.dll.meta create mode 100644 Assets/Plugins/System.Security.Permissions.dll create mode 100644 Assets/Plugins/System.Security.Permissions.dll.meta create mode 100644 Assets/Plugins/System.Security.Principal.Windows.dll create mode 100644 Assets/Plugins/System.Security.Principal.Windows.dll.meta create mode 100644 Assets/Plugins/System.Threading.Channels.dll create mode 100644 Assets/Plugins/System.Threading.Channels.dll.meta create mode 100644 Assets/Plugins/System.Threading.Tasks.Extensions.dll create mode 100644 Assets/Plugins/System.Threading.Tasks.Extensions.dll.meta create mode 100644 Assets/Plugins/XmlRpcCore.dll create mode 100644 Assets/Plugins/XmlRpcCore.dll.meta create mode 100644 Assets/Plugins/log4net.dll create mode 100644 Assets/Plugins/log4net.dll.meta create mode 100644 Assets/Plugins/zlib.net.dll create mode 100644 Assets/Plugins/zlib.net.dll.meta create mode 100644 Assets/ReadWrite.cs create mode 100644 Assets/ReadWrite.cs.meta create mode 100644 Assets/Scenes.meta create mode 100644 Assets/Scenes/SampleScene.unity create mode 100644 Assets/Scenes/SampleScene.unity.meta create mode 100644 Assets/TextMesh Pro.meta create mode 100644 Assets/TextMesh Pro/Documentation.meta create mode 100644 Assets/TextMesh Pro/Documentation/TextMesh Pro User Guide 2016.pdf create mode 100644 Assets/TextMesh Pro/Documentation/TextMesh Pro User Guide 2016.pdf.meta create mode 100644 Assets/TextMesh Pro/Fonts.meta create mode 100644 Assets/TextMesh Pro/Fonts/LiberationSans - OFL.txt create mode 100644 Assets/TextMesh Pro/Fonts/LiberationSans - OFL.txt.meta create mode 100644 Assets/TextMesh Pro/Fonts/LiberationSans.ttf create mode 100644 Assets/TextMesh Pro/Fonts/LiberationSans.ttf.meta create mode 100644 Assets/TextMesh Pro/Resources.meta create mode 100644 Assets/TextMesh Pro/Resources/Fonts & Materials.meta create mode 100644 Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Drop Shadow.mat create mode 100644 Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Drop Shadow.mat.meta create mode 100644 Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Fallback.asset create mode 100644 Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Fallback.asset.meta create mode 100644 Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Outline.mat create mode 100644 Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Outline.mat.meta create mode 100644 Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF.asset create mode 100644 Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF.asset.meta create mode 100644 Assets/TextMesh Pro/Resources/LineBreaking Following Characters.txt create mode 100644 Assets/TextMesh Pro/Resources/LineBreaking Following Characters.txt.meta create mode 100644 Assets/TextMesh Pro/Resources/LineBreaking Leading Characters.txt create mode 100644 Assets/TextMesh Pro/Resources/LineBreaking Leading Characters.txt.meta create mode 100644 Assets/TextMesh Pro/Resources/Sprite Assets.meta create mode 100644 Assets/TextMesh Pro/Resources/Sprite Assets/EmojiOne.asset create mode 100644 Assets/TextMesh Pro/Resources/Sprite Assets/EmojiOne.asset.meta create mode 100644 Assets/TextMesh Pro/Resources/Style Sheets.meta create mode 100644 Assets/TextMesh Pro/Resources/Style Sheets/Default Style Sheet.asset create mode 100644 Assets/TextMesh Pro/Resources/Style Sheets/Default Style Sheet.asset.meta create mode 100644 Assets/TextMesh Pro/Resources/TMP Settings.asset create mode 100644 Assets/TextMesh Pro/Resources/TMP Settings.asset.meta create mode 100644 Assets/TextMesh Pro/Shaders.meta create mode 100644 Assets/TextMesh Pro/Shaders/TMP_Bitmap-Custom-Atlas.shader create mode 100644 Assets/TextMesh Pro/Shaders/TMP_Bitmap-Custom-Atlas.shader.meta create mode 100644 Assets/TextMesh Pro/Shaders/TMP_Bitmap-Mobile.shader create mode 100644 Assets/TextMesh Pro/Shaders/TMP_Bitmap-Mobile.shader.meta create mode 100644 Assets/TextMesh Pro/Shaders/TMP_Bitmap.shader create mode 100644 Assets/TextMesh Pro/Shaders/TMP_Bitmap.shader.meta create mode 100644 Assets/TextMesh Pro/Shaders/TMP_SDF Overlay.shader create mode 100644 Assets/TextMesh Pro/Shaders/TMP_SDF Overlay.shader.meta create mode 100644 Assets/TextMesh Pro/Shaders/TMP_SDF SSD.shader create mode 100644 Assets/TextMesh Pro/Shaders/TMP_SDF SSD.shader.meta create mode 100644 Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile Masking.shader create mode 100644 Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile Masking.shader.meta create mode 100644 Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile Overlay.shader create mode 100644 Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile Overlay.shader.meta create mode 100644 Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile SSD.shader create mode 100644 Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile SSD.shader.meta create mode 100644 Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile.shader create mode 100644 Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile.shader.meta create mode 100644 Assets/TextMesh Pro/Shaders/TMP_SDF-Surface-Mobile.shader create mode 100644 Assets/TextMesh Pro/Shaders/TMP_SDF-Surface-Mobile.shader.meta create mode 100644 Assets/TextMesh Pro/Shaders/TMP_SDF-Surface.shader create mode 100644 Assets/TextMesh Pro/Shaders/TMP_SDF-Surface.shader.meta create mode 100644 Assets/TextMesh Pro/Shaders/TMP_SDF.shader create mode 100644 Assets/TextMesh Pro/Shaders/TMP_SDF.shader.meta create mode 100644 Assets/TextMesh Pro/Shaders/TMP_Sprite.shader create mode 100644 Assets/TextMesh Pro/Shaders/TMP_Sprite.shader.meta create mode 100644 Assets/TextMesh Pro/Shaders/TMPro.cginc create mode 100644 Assets/TextMesh Pro/Shaders/TMPro.cginc.meta create mode 100644 Assets/TextMesh Pro/Shaders/TMPro_Mobile.cginc create mode 100644 Assets/TextMesh Pro/Shaders/TMPro_Mobile.cginc.meta create mode 100644 Assets/TextMesh Pro/Shaders/TMPro_Properties.cginc create mode 100644 Assets/TextMesh Pro/Shaders/TMPro_Properties.cginc.meta create mode 100644 Assets/TextMesh Pro/Shaders/TMPro_Surface.cginc create mode 100644 Assets/TextMesh Pro/Shaders/TMPro_Surface.cginc.meta create mode 100644 Assets/TextMesh Pro/Sprites.meta create mode 100644 Assets/TextMesh Pro/Sprites/EmojiOne Attribution.txt create mode 100644 Assets/TextMesh Pro/Sprites/EmojiOne Attribution.txt.meta create mode 100644 Assets/TextMesh Pro/Sprites/EmojiOne.json create mode 100644 Assets/TextMesh Pro/Sprites/EmojiOne.json.meta create mode 100644 Assets/TextMesh Pro/Sprites/EmojiOne.png create mode 100644 Assets/TextMesh Pro/Sprites/EmojiOne.png.meta create mode 100644 Assets/Types.cs create mode 100644 Assets/Types.cs.meta create mode 100644 Assets/UnityWeld.dll create mode 100644 Assets/UnityWeld.dll.meta create mode 100644 Packages/com.LibreMetaverse/LibreMetaverse.StructuredData.dll create mode 100644 Packages/com.LibreMetaverse/LibreMetaverse.Types.dll create mode 100644 Packages/com.LibreMetaverse/LibreMetaverse.dll create mode 100644 Packages/manifest.json create mode 100644 Packages/packages-lock.json create mode 100644 ProjectSettings/AudioManager.asset create mode 100644 ProjectSettings/ClusterInputManager.asset create mode 100644 ProjectSettings/DynamicsManager.asset create mode 100644 ProjectSettings/EditorBuildSettings.asset create mode 100644 ProjectSettings/EditorSettings.asset create mode 100644 ProjectSettings/GraphicsSettings.asset create mode 100644 ProjectSettings/InputManager.asset create mode 100644 ProjectSettings/NavMeshAreas.asset create mode 100644 ProjectSettings/PackageManagerSettings.asset create mode 100644 ProjectSettings/Physics2DSettings.asset create mode 100644 ProjectSettings/PresetManager.asset create mode 100644 ProjectSettings/ProjectSettings.asset create mode 100644 ProjectSettings/ProjectVersion.txt create mode 100644 ProjectSettings/QualitySettings.asset create mode 100644 ProjectSettings/TagManager.asset create mode 100644 ProjectSettings/TimeManager.asset create mode 100644 ProjectSettings/TimelineSettings.asset create mode 100644 ProjectSettings/UnityConnectSettings.asset create mode 100644 ProjectSettings/VFXManager.asset create mode 100644 ProjectSettings/VersionControlSettings.asset create mode 100644 ProjectSettings/XRSettings.asset create mode 100644 UpgradeLog.htm diff --git a/.vsconfig b/.vsconfig new file mode 100644 index 0000000..aade28f --- /dev/null +++ b/.vsconfig @@ -0,0 +1,6 @@ +{ + "version": "1.0", + "components": [ + "Microsoft.VisualStudio.Workload.ManagedGame" + ] +} diff --git a/Assets/Editor.meta b/Assets/Editor.meta new file mode 100644 index 0000000..3351051 --- /dev/null +++ b/Assets/Editor.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e5844026486024f49935e99934937a10 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Editor/UnityWeld_Editor.dll b/Assets/Editor/UnityWeld_Editor.dll new file mode 100644 index 0000000000000000000000000000000000000000..b77313fdc80824146ee1f8ff5b8ff2726d406a0e GIT binary patch literal 41984 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 KuaN~F_ Private + + private GraphyDebugger m_target; + + private int m_newDebugPacketListSize = 0; + + private int m_previouslySelectedDebugPacketIndex = 0; + private int m_currentlySelectedDebugPacketIndex = 0; + + private int m_selectedDebugPacketCondition = 0; + + #endregion + + #region Methods -> Unity Callbacks + + private void OnEnable() + { + m_target = (GraphyDebugger) target; + } + + #endregion + + #region Methods -> Public Override + + public override void OnInspectorGUI() + { + if (m_target == null && target == null) + { + base.OnInspectorGUI(); + + return; + } + + float defaultLabelWidth = EditorGUIUtility.labelWidth; + float defaultFieldWidth = EditorGUIUtility.fieldWidth; + + //===== CONTENT REGION ======================================================================== + + GUILayout.Space(20); + + #region Section -> Logo + + if (GraphyEditorStyle.DebuggerLogoTexture != null) + { + GUILayout.Label + ( + image: GraphyEditorStyle.DebuggerLogoTexture, + style: new GUIStyle(GUI.skin.GetStyle("Label")) + { + alignment = TextAnchor.UpperCenter + } + ); + + GUILayout.Space(10); + } + else + { + EditorGUILayout.LabelField + ( + label: "[ GRAPHY - DEBUGGER ]", + style: GraphyEditorStyle.HeaderStyle1 + ); + } + + #endregion + + GUILayout.Space(5); //Extra pixels added when the logo is used. + + #region Section -> Settings + + SerializedObject serObj = serializedObject; + + SerializedProperty debugPacketList = serObj.FindProperty("m_debugPackets"); // Find the List in our script and create a refrence of it + + //Update our list + serObj.Update(); + + EditorGUILayout.LabelField("Current [Debug Packets] list size: " + debugPacketList.arraySize); + + EditorGUIUtility.fieldWidth = 32; + EditorGUILayout.BeginHorizontal(); + + + + m_newDebugPacketListSize = EditorGUILayout.IntField + ( + label: "Define a new list size", + value: m_newDebugPacketListSize + ); + + if (GUILayout.Button("Resize List")) + { + if (EditorUtility.DisplayDialog + ( + title: + "Resize List", + + message: + "Are you sure you want to resize the entire List?\n\n" + + "Current List Size -> " + + debugPacketList.arraySize + + "\n" + + "New List Size -> " + + m_newDebugPacketListSize + + "\n" + + "This will add default entries if the value is greater than the list size, or erase the bottom values until the new size specified.", + + ok: + "Resize", + + cancel: + "Cancel") + ) + { + m_currentlySelectedDebugPacketIndex = 0; + + if (m_newDebugPacketListSize != debugPacketList.arraySize) + { + while (m_newDebugPacketListSize > debugPacketList.arraySize) + { + debugPacketList.InsertArrayElementAtIndex(debugPacketList.arraySize); + SetDefaultDebugPacketValues(debugPacketList); + } + while (m_newDebugPacketListSize < debugPacketList.arraySize) + { + debugPacketList.DeleteArrayElementAtIndex(debugPacketList.arraySize - 1); + } + } + } + } + + EditorGUILayout.EndHorizontal(); + + EditorGUILayout.LabelField("NOT RECOMMENDED (Only use for first initialization)", EditorStyles.centeredGreyMiniLabel); + + EditorGUILayout.Space(); + EditorGUILayout.Space(); + + if (debugPacketList.arraySize < 1) + { + m_previouslySelectedDebugPacketIndex = 0; + m_currentlySelectedDebugPacketIndex = 0; + m_selectedDebugPacketCondition = 0; + + serializedObject.ApplyModifiedProperties(); + return; + } + + GraphyEditorStyle.HeaderStyle2.contentOffset = Vector2.down * 3f; + + EditorGUILayout.LabelField("Selected debug packet:"); + + EditorGUILayout.BeginHorizontal(); + + List debugPacketNames = new List(); + for (int i = 0; i < debugPacketList.arraySize; i++) + { + SerializedProperty listItem = debugPacketList.GetArrayElementAtIndex(i); + // NOTE: If the Popup detects two equal strings, it just paints 1, that's why I always add the "i" + char checkMark = listItem.FindPropertyRelative("Active").boolValue ? '\u2714' : '\u2718'; + debugPacketNames.Add + ( + (i + 1) + + " (" + + checkMark + + ") " + + " - ID: " + + listItem.FindPropertyRelative("Id").intValue + + " (Conditions: " + + listItem.FindPropertyRelative("DebugConditions").arraySize + + ")" + ); + } + + m_currentlySelectedDebugPacketIndex = EditorGUILayout.Popup(m_currentlySelectedDebugPacketIndex, debugPacketNames.ToArray()); + + if (m_currentlySelectedDebugPacketIndex != m_previouslySelectedDebugPacketIndex) + { + m_selectedDebugPacketCondition = 0; + + m_previouslySelectedDebugPacketIndex = m_currentlySelectedDebugPacketIndex; + } + + Color defaultGUIColor = GUI.color; + + GUI.color = new Color(0.7f, 1f, 0.0f, 1f); + + //Or add a new item to the List<> with a button + + if (GUILayout.Button("Add", GUILayout.Width(60))) + { + debugPacketList.InsertArrayElementAtIndex(debugPacketList.arraySize); + SetDefaultDebugPacketValues(debugPacketList); + } + + GUI.color = new Color(1f, 0.7f, 0.0f, 1f); + + //Remove this index from the List + + if (GUILayout.Button("Remove", GUILayout.Width(60))) + { + debugPacketList.DeleteArrayElementAtIndex(m_currentlySelectedDebugPacketIndex); + if (m_currentlySelectedDebugPacketIndex > 0) + { + m_currentlySelectedDebugPacketIndex--; + } + + if (debugPacketList.arraySize < 1) + { + serializedObject.ApplyModifiedProperties(); + return; + } + } + + GUI.color = defaultGUIColor; + + EditorGUILayout.EndHorizontal(); + + EditorGUILayout.Space(); + EditorGUILayout.Space(); + EditorGUILayout.Space(); + + //Display our list to the inspector window + + SerializedProperty listItemSelected = debugPacketList.GetArrayElementAtIndex(m_currentlySelectedDebugPacketIndex); + + SerializedProperty Active = listItemSelected.FindPropertyRelative("Active"); + SerializedProperty Id = listItemSelected.FindPropertyRelative("Id"); + SerializedProperty ExecuteOnce = listItemSelected.FindPropertyRelative("ExecuteOnce"); + SerializedProperty InitSleepTime = listItemSelected.FindPropertyRelative("InitSleepTime"); + SerializedProperty ExecuteSleepTime = listItemSelected.FindPropertyRelative("ExecuteSleepTime"); + SerializedProperty ConditionEvaluation = listItemSelected.FindPropertyRelative("ConditionEvaluation"); + SerializedProperty DebugConditions = listItemSelected.FindPropertyRelative("DebugConditions"); + SerializedProperty MessageType = listItemSelected.FindPropertyRelative("MessageType"); + SerializedProperty Message = listItemSelected.FindPropertyRelative("Message"); + SerializedProperty TakeScreenshot = listItemSelected.FindPropertyRelative("TakeScreenshot"); + SerializedProperty ScreenshotFileName = listItemSelected.FindPropertyRelative("ScreenshotFileName"); + SerializedProperty DebugBreak = listItemSelected.FindPropertyRelative("DebugBreak"); + SerializedProperty UnityEvents = listItemSelected.FindPropertyRelative("UnityEvents"); + + #endregion + + EditorGUILayout.LabelField + ( + label: + "[ PACKET ] - ID: " + + Id.intValue + + " (Conditions: " + + DebugConditions.arraySize + + ")", + + style: GraphyEditorStyle.HeaderStyle2 + ); + + EditorGUIUtility.labelWidth = 150; + EditorGUIUtility.fieldWidth = 35; + + Active.boolValue = EditorGUILayout.Toggle + ( + new GUIContent + ( + text: "Active", + tooltip: "If false, it will not be checked" + ), + value: Active.boolValue + ); + + Id.intValue = EditorGUILayout.IntField + ( + new GUIContent + ( + text: "ID", + tooltip: "Optional Id. It's used to get or remove DebugPackets in runtime" + ), + value: Id.intValue + ); + + ExecuteOnce.boolValue = EditorGUILayout.Toggle + ( + new GUIContent + ( + text: "Execute once", + tooltip: "If true, once the actions are executed, this DebugPacket will delete itself" + ), + value: ExecuteOnce.boolValue + ); + + InitSleepTime.floatValue = EditorGUILayout.FloatField + ( + new GUIContent + ( + text: "Init sleep time", + tooltip: "Time to wait before checking if conditions are met (use this to avoid low fps drops triggering the conditions when loading the game)" + ), + value: InitSleepTime.floatValue + ); + + ExecuteSleepTime.floatValue = EditorGUILayout.FloatField + ( + new GUIContent + ( + text: "Sleep time after execute", + tooltip: "Time to wait before checking if conditions are met again (once they have already been met and if ExecuteOnce is false)" + ), + value: ExecuteSleepTime.floatValue + ); + + + + EditorGUIUtility.labelWidth = defaultLabelWidth; + EditorGUIUtility.fieldWidth = defaultFieldWidth; + + EditorGUILayout.Space(); + EditorGUILayout.Space(); + + EditorGUILayout.LabelField("[ CONDITIONS ] (" + DebugConditions.arraySize + ")", GraphyEditorStyle.HeaderStyle2); + + EditorGUILayout.PropertyField + ( + ConditionEvaluation, + new GUIContent("Condition evaluation") + ); + + EditorGUILayout.Space(); + + if (DebugConditions.arraySize < 1) + { + DebugConditions.InsertArrayElementAtIndex(DebugConditions.arraySize); + m_selectedDebugPacketCondition = 0; + } + + EditorGUILayout.BeginHorizontal(); + + List debugPacketConditionNames = new List(); + for (int i = 0; i < DebugConditions.arraySize; i++) + { + SerializedProperty listItem = DebugConditions.GetArrayElementAtIndex(i); + // NOTE: If the Popup detects two equal strings, it just paints 1, that's why I always add the "i" + + string conditionName = (i + 1).ToString() + " - "; + conditionName += GetComparerStringFromDebugVariable((GraphyDebugger.DebugVariable)listItem.FindPropertyRelative("Variable").intValue) + " "; + conditionName += GetComparerStringFromDebugComparer((GraphyDebugger.DebugComparer)listItem.FindPropertyRelative("Comparer").intValue) + " "; + conditionName += listItem.FindPropertyRelative("Value").floatValue.ToString(); + + debugPacketConditionNames.Add(conditionName); + } + + m_selectedDebugPacketCondition = EditorGUILayout.Popup(m_selectedDebugPacketCondition, debugPacketConditionNames.ToArray()); + + GUI.color = new Color(0.7f, 1f, 0.0f, 1f); + + if (GUILayout.Button("Add", GUILayout.Width(60))) + { + DebugConditions.InsertArrayElementAtIndex(DebugConditions.arraySize); + } + + if (DebugConditions.arraySize > 1) + { + GUI.color = new Color(1f, 0.7f, 0.0f, 1f); + } + else + { + GUI.color = new Color(1f, 0.7f, 0.0f, 0.5f); + } + + //Remove this index from the List + if (GUILayout.Button("Remove", GUILayout.Width(60))) + { + if (DebugConditions.arraySize > 1) + { + DebugConditions.DeleteArrayElementAtIndex(m_selectedDebugPacketCondition); + if (m_selectedDebugPacketCondition > 0) + { + m_selectedDebugPacketCondition--; + } + } + } + + GUI.color = defaultGUIColor; + + EditorGUILayout.EndHorizontal(); + + SerializedProperty conditionListItemSelected = DebugConditions.GetArrayElementAtIndex(m_selectedDebugPacketCondition); + + SerializedProperty Variable = conditionListItemSelected.FindPropertyRelative("Variable"); + SerializedProperty Comparer = conditionListItemSelected.FindPropertyRelative("Comparer"); + SerializedProperty Value = conditionListItemSelected.FindPropertyRelative("Value"); + + EditorGUILayout.PropertyField + ( + Variable, + new GUIContent("Variable") + ); + + EditorGUILayout.PropertyField + ( + Comparer, + new GUIContent("Comparer") + ); + + EditorGUILayout.PropertyField + ( + Value, + new GUIContent("Value") + ); + + EditorGUILayout.Space(); + EditorGUILayout.Space(); + + EditorGUILayout.LabelField("[ ACTIONS ]", GraphyEditorStyle.HeaderStyle2); + + EditorGUIUtility.labelWidth = 140; + EditorGUIUtility.fieldWidth = 35; + + EditorGUILayout.PropertyField + ( + MessageType, + new GUIContent("Message type") + ); + + EditorGUILayout.PropertyField(Message); + + TakeScreenshot.boolValue = EditorGUILayout.Toggle + ( + new GUIContent + ( + text: "Take screenshot", + tooltip: "If true, it takes a screenshot and stores it. The location where the image is written to can include a directory/folder list. With no directory/folder list the image will be written into the Project folder. On mobile platforms the filename is appended to the persistent data path." + ), + value: TakeScreenshot.boolValue + ); + + if (TakeScreenshot.boolValue) + { + EditorGUILayout.PropertyField + ( + ScreenshotFileName, + new GUIContent + ( + text: "Screenshot file name", + tooltip: "Avoid this characters: * . \" / \\ [ ] : ; | = , \n\nIt will have the date appended at the end to avoid overwriting." + ) + ); + } + + DebugBreak.boolValue = EditorGUILayout.Toggle + ( + new GUIContent + ( + text: "Debug Break", + tooltip: "If true, it pauses the editor" + ), + DebugBreak.boolValue + ); + + EditorGUILayout.PropertyField(UnityEvents); + + EditorGUIUtility.labelWidth = defaultLabelWidth; + EditorGUIUtility.fieldWidth = defaultFieldWidth; + + serializedObject.ApplyModifiedProperties(); + + } + + #endregion + + #region Methods -> Private + + private void SetDefaultDebugPacketValues(SerializedProperty debugPacketSerializedProperty) + { + GraphyDebugger.DebugPacket debugPacket = new GraphyDebugger.DebugPacket(); + + debugPacketSerializedProperty.GetArrayElementAtIndex(debugPacketSerializedProperty.arraySize - 1) + .FindPropertyRelative("Active") + .boolValue = debugPacket.Active; + + debugPacketSerializedProperty.GetArrayElementAtIndex(debugPacketSerializedProperty.arraySize - 1) + .FindPropertyRelative("Id") + .intValue = debugPacketSerializedProperty.arraySize; + + debugPacketSerializedProperty.GetArrayElementAtIndex(debugPacketSerializedProperty.arraySize - 1) + .FindPropertyRelative("ExecuteOnce") + .boolValue = debugPacket.ExecuteOnce; + + debugPacketSerializedProperty.GetArrayElementAtIndex(debugPacketSerializedProperty.arraySize - 1) + .FindPropertyRelative("InitSleepTime") + .floatValue = debugPacket.InitSleepTime; + + debugPacketSerializedProperty.GetArrayElementAtIndex(debugPacketSerializedProperty.arraySize - 1) + .FindPropertyRelative("ExecuteSleepTime") + .floatValue = debugPacket.ExecuteSleepTime; + } + + private string GetComparerStringFromDebugVariable(GraphyDebugger.DebugVariable debugVariable) + { + switch (debugVariable) + { + case GraphyDebugger.DebugVariable.Fps: + return "FPS Current"; + case GraphyDebugger.DebugVariable.Fps_Min: + return "FPS Min"; + case GraphyDebugger.DebugVariable.Fps_Max: + return "FPS Max"; + case GraphyDebugger.DebugVariable.Fps_Avg: + return "FPS Avg"; + + case GraphyDebugger.DebugVariable.Ram_Allocated: + return "Ram Allocated"; + case GraphyDebugger.DebugVariable.Ram_Reserved: + return "Ram Reserved"; + case GraphyDebugger.DebugVariable.Ram_Mono: + return "Ram Mono"; + + case GraphyDebugger.DebugVariable.Audio_DB: + return "Audio DB"; + + default: + return null; + + } + } + + private string GetComparerStringFromDebugComparer(GraphyDebugger.DebugComparer debugComparer) + { + switch (debugComparer) + { + case GraphyDebugger.DebugComparer.Less_than: + return "<"; + case GraphyDebugger.DebugComparer.Equals_or_less_than: + return "<="; + case GraphyDebugger.DebugComparer.Equals: + return "=="; + case GraphyDebugger.DebugComparer.Equals_or_greater_than: + return ">="; + case GraphyDebugger.DebugComparer.Greater_than: + return ">"; + + default: + return null; + } + } + + #endregion + } +} \ No newline at end of file diff --git a/Assets/Graphy - Ultimate Stats Monitor/Editor/GraphyDebuggerEditor.cs.meta b/Assets/Graphy - Ultimate Stats Monitor/Editor/GraphyDebuggerEditor.cs.meta new file mode 100644 index 0000000..576169a --- /dev/null +++ b/Assets/Graphy - Ultimate Stats Monitor/Editor/GraphyDebuggerEditor.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 4a96825e094d61441b5247d0c32652b3 +timeCreated: 1514907656 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Graphy - Ultimate Stats Monitor/Editor/GraphyEditorStyle.cs b/Assets/Graphy - Ultimate Stats Monitor/Editor/GraphyEditorStyle.cs new file mode 100644 index 0000000..61d9295 --- /dev/null +++ b/Assets/Graphy - Ultimate Stats Monitor/Editor/GraphyEditorStyle.cs @@ -0,0 +1,118 @@ +/* --------------------------------------- + * Author: Martin Pane (martintayx@gmail.com) (@tayx94) + * Contributors: https://github.com/Tayx94/graphy/graphs/contributors + * Project: Graphy - Ultimate Stats Monitor + * Date: 02-Jan-18 + * Studio: Tayx + * + * Git repo: https://github.com/Tayx94/graphy + * + * This project is released under the MIT license. + * Attribution is not required, but it is always welcomed! + * -------------------------------------*/ + +using System; +using System.IO; +using UnityEditor; +using UnityEngine; + +namespace Tayx.Graphy +{ + internal static class GraphyEditorStyle + { + #region Variables -> Private + + private static Texture2D _managerLogoTexture = null; + private static Texture2D _debuggerLogoTexture = null; + private static GUISkin m_skin = null; + private static GUIStyle m_headerStyle1 = null; + private static GUIStyle m_headerStyle2 = null; + private static GUIStyle m_foldoutStyle = null; + private static string path; + + #endregion + + #region Properties -> Public + + public static Texture2D ManagerLogoTexture => _managerLogoTexture; + public static Texture2D DebuggerLogoTexture => _debuggerLogoTexture; + public static GUISkin Skin => m_skin; + public static GUIStyle HeaderStyle1 => m_headerStyle1; + public static GUIStyle HeaderStyle2 => m_headerStyle2; + public static GUIStyle FoldoutStyle => m_foldoutStyle; + + #endregion + + #region Static Constructor + + static GraphyEditorStyle() + { + string managerLogoGuid = AssetDatabase.FindAssets( $"Manager_Logo_{(EditorGUIUtility.isProSkin ? "White" : "Dark")}" )[0]; + string debuggerLogoGuid = AssetDatabase.FindAssets( $"Debugger_Logo_{(EditorGUIUtility.isProSkin ? "White" : "Dark")}" )[0]; + string guiSkinGuid = AssetDatabase.FindAssets( "GraphyGUISkin" )[ 0 ]; + + _managerLogoTexture = AssetDatabase.LoadAssetAtPath + ( + AssetDatabase.GUIDToAssetPath( managerLogoGuid ) + ); + + _debuggerLogoTexture = AssetDatabase.LoadAssetAtPath + ( + AssetDatabase.GUIDToAssetPath( debuggerLogoGuid ) + ); + + m_skin = AssetDatabase.LoadAssetAtPath + ( + AssetDatabase.GUIDToAssetPath( guiSkinGuid ) + ); + + if (m_skin != null) + { + m_headerStyle1 = m_skin.GetStyle("Header1"); + m_headerStyle2 = m_skin.GetStyle("Header2"); + + SetGuiStyleFontColor + ( + guiStyle: m_headerStyle2, + color: EditorGUIUtility.isProSkin ? Color.white : Color.black + ); + } + else + { + m_headerStyle1 = EditorStyles.boldLabel; + m_headerStyle2 = EditorStyles.boldLabel; + } + + m_foldoutStyle = new GUIStyle(EditorStyles.foldout) + { + font = m_headerStyle2.font, + fontStyle = m_headerStyle2.fontStyle, + contentOffset = Vector2.down * 3f + }; + + SetGuiStyleFontColor + ( + guiStyle: m_foldoutStyle, + color: EditorGUIUtility.isProSkin ? Color.white : Color.black + ); + } + + #endregion + + #region Methods -> Private + + private static void SetGuiStyleFontColor(GUIStyle guiStyle, Color color) + { + guiStyle.normal.textColor = color; + guiStyle.hover.textColor = color; + guiStyle.active.textColor = color; + guiStyle.focused.textColor = color; + guiStyle.onNormal.textColor = color; + guiStyle.onHover.textColor = color; + guiStyle.onActive.textColor = color; + guiStyle.onFocused.textColor = color; + } + + #endregion + } +} \ No newline at end of file diff --git a/Assets/Graphy - Ultimate Stats Monitor/Editor/GraphyEditorStyle.cs.meta b/Assets/Graphy - Ultimate Stats Monitor/Editor/GraphyEditorStyle.cs.meta new file mode 100644 index 0000000..b2cd77c --- /dev/null +++ b/Assets/Graphy - Ultimate Stats Monitor/Editor/GraphyEditorStyle.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 1bb06e7c222a60f47a476e2648224330 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Graphy - Ultimate Stats Monitor/Editor/GraphyManagerEditor.cs b/Assets/Graphy - Ultimate Stats Monitor/Editor/GraphyManagerEditor.cs new file mode 100644 index 0000000..e4c9122 --- /dev/null +++ b/Assets/Graphy - Ultimate Stats Monitor/Editor/GraphyManagerEditor.cs @@ -0,0 +1,839 @@ +/* --------------------------------------- + * Author: Martin Pane (martintayx@gmail.com) (@tayx94) + * Contributors: https://github.com/Tayx94/graphy/graphs/contributors + * Project: Graphy - Ultimate Stats Monitor + * Date: 20-Dec-17 + * Studio: Tayx + * + * Git repo: https://github.com/Tayx94/graphy + * + * This project is released under the MIT license. + * Attribution is not required, but it is always welcomed! + * -------------------------------------*/ + +using System; +using UnityEngine; +using System.IO; +using UnityEditor; + +namespace Tayx.Graphy +{ + [CustomEditor(typeof(GraphyManager))] + internal class GraphyManagerEditor : Editor + { + /* ----- TODO: ---------------------------- + * Add summaries to the variables. + * Add summaries to the functions. + * --------------------------------------*/ + + #region Variables -> Private + + private GraphyManager m_target; + + private int[] m_spectrumSizeValues = + { + 128, + 256, + 512, + 1024, + 2048, + 4096, + 8192 + }; + + #region Section -> Settings + + private SerializedProperty m_graphyMode; + + private SerializedProperty m_enableOnStartup; + + private SerializedProperty m_keepAlive; + + private SerializedProperty m_background; + private SerializedProperty m_backgroundColor; + + private SerializedProperty m_enableHotkeys; + + private SerializedProperty m_toggleModeKeyCode; + private SerializedProperty m_toggleModeCtrl; + private SerializedProperty m_toggleModeAlt; + + private SerializedProperty m_toggleActiveKeyCode; + private SerializedProperty m_toggleActiveCtrl; + private SerializedProperty m_toggleActiveAlt; + + + private SerializedProperty m_graphModulePosition; + + #endregion + + #region Section -> FPS + + private bool m_fpsModuleInspectorToggle = true; + + private SerializedProperty m_fpsModuleState; + + private SerializedProperty m_goodFpsColor; + private SerializedProperty m_goodFpsThreshold; + + private SerializedProperty m_cautionFpsColor; + private SerializedProperty m_cautionFpsThreshold; + + private SerializedProperty m_criticalFpsColor; + + private SerializedProperty m_fpsGraphResolution; + + private SerializedProperty m_fpsTextUpdateRate; + + #endregion + + #region Section -> RAM + + private bool m_ramModuleInspectorToggle = true; + + private SerializedProperty m_ramModuleState; + + private SerializedProperty m_allocatedRamColor; + private SerializedProperty m_reservedRamColor; + private SerializedProperty m_monoRamColor; + + private SerializedProperty m_ramGraphResolution; + + private SerializedProperty m_ramTextUpdateRate; + + #endregion + + #region Section -> Audio + + private bool m_audioModuleInspectorToggle = true; + + private SerializedProperty m_findAudioListenerInCameraIfNull; + + private SerializedProperty m_audioListener; + + private SerializedProperty m_audioModuleState; + + private SerializedProperty m_audioGraphColor; + + private SerializedProperty m_audioGraphResolution; + + private SerializedProperty m_audioTextUpdateRate; + + private SerializedProperty m_FFTWindow; + + private SerializedProperty m_spectrumSize; + + #endregion + + #region Section -> Advanced Settings + + private bool m_advancedModuleInspectorToggle = true; + + private SerializedProperty m_advancedModulePosition; + + private SerializedProperty m_advancedModuleState; + + #endregion + + #endregion + + #region Methods -> Unity Callbacks + + private void OnEnable() + { + m_target = (GraphyManager)target; + + SerializedObject serObj = serializedObject; + + #region Section -> Settings + + m_graphyMode = serObj.FindProperty("m_graphyMode"); + + m_enableOnStartup = serObj.FindProperty("m_enableOnStartup"); + + m_keepAlive = serObj.FindProperty("m_keepAlive"); + + m_background = serObj.FindProperty("m_background"); + m_backgroundColor = serObj.FindProperty("m_backgroundColor"); + + m_enableHotkeys = serObj.FindProperty("m_enableHotkeys"); + + m_toggleModeKeyCode = serObj.FindProperty("m_toggleModeKeyCode"); + + m_toggleModeCtrl = serObj.FindProperty("m_toggleModeCtrl"); + m_toggleModeAlt = serObj.FindProperty("m_toggleModeAlt"); + + m_toggleActiveKeyCode = serObj.FindProperty("m_toggleActiveKeyCode"); + + m_toggleActiveCtrl = serObj.FindProperty("m_toggleActiveCtrl"); + m_toggleActiveAlt = serObj.FindProperty("m_toggleActiveAlt"); + + m_graphModulePosition = serObj.FindProperty("m_graphModulePosition"); + + #endregion + + #region Section -> FPS + + m_fpsModuleState = serObj.FindProperty("m_fpsModuleState"); + + m_goodFpsColor = serObj.FindProperty("m_goodFpsColor"); + m_goodFpsThreshold = serObj.FindProperty("m_goodFpsThreshold"); + + m_cautionFpsColor = serObj.FindProperty("m_cautionFpsColor"); + m_cautionFpsThreshold = serObj.FindProperty("m_cautionFpsThreshold"); + + m_criticalFpsColor = serObj.FindProperty("m_criticalFpsColor"); + + m_fpsGraphResolution = serObj.FindProperty("m_fpsGraphResolution"); + + m_fpsTextUpdateRate = serObj.FindProperty("m_fpsTextUpdateRate"); + + #endregion + + #region Section -> RAM + + m_ramModuleState = serObj.FindProperty("m_ramModuleState"); + + m_allocatedRamColor = serObj.FindProperty("m_allocatedRamColor"); + m_reservedRamColor = serObj.FindProperty("m_reservedRamColor"); + m_monoRamColor = serObj.FindProperty("m_monoRamColor"); + + m_ramGraphResolution = serObj.FindProperty("m_ramGraphResolution"); + + m_ramTextUpdateRate = serObj.FindProperty("m_ramTextUpdateRate"); + + #endregion + + #region Section -> Audio + + m_findAudioListenerInCameraIfNull = serObj.FindProperty("m_findAudioListenerInCameraIfNull"); + + m_audioListener = serObj.FindProperty("m_audioListener"); + + m_audioModuleState = serObj.FindProperty("m_audioModuleState"); + + m_audioGraphColor = serObj.FindProperty("m_audioGraphColor"); + + m_audioGraphResolution = serObj.FindProperty("m_audioGraphResolution"); + + m_audioTextUpdateRate = serObj.FindProperty("m_audioTextUpdateRate"); + + m_FFTWindow = serObj.FindProperty("m_FFTWindow"); + + m_spectrumSize = serObj.FindProperty("m_spectrumSize"); + + #endregion + + #region Section -> Advanced Settings + + m_advancedModulePosition = serObj.FindProperty("m_advancedModulePosition"); + + m_advancedModuleState = serObj.FindProperty("m_advancedModuleState"); + + #endregion + + } + + #endregion + + #region Methods -> Public Override + + public override void OnInspectorGUI() + { + if (m_target == null && target == null) + { + base.OnInspectorGUI(); + return; + } + + float defaultLabelWidth = EditorGUIUtility.labelWidth; + float defaultFieldWidth = EditorGUIUtility.fieldWidth; + + //===== CONTENT REGION ======================================================================== + + GUILayout.Space(20); + + #region Section -> Logo + + if (GraphyEditorStyle.ManagerLogoTexture != null) + { + GUILayout.Label + ( + image: GraphyEditorStyle.ManagerLogoTexture, + style: new GUIStyle(GUI.skin.GetStyle("Label")) + { + alignment = TextAnchor.UpperCenter + } + ); + + GUILayout.Space(10); + } + else + { + EditorGUILayout.LabelField + ( + label: "[ GRAPHY - MANAGER ]", + style: GraphyEditorStyle.HeaderStyle1 + ); + } + + #endregion + + GUILayout.Space(5); //Extra pixels added when the logo is used. + + #region Section -> Settings + + EditorGUIUtility.labelWidth = 130; + EditorGUIUtility.fieldWidth = 35; + + EditorGUILayout.PropertyField + ( + m_graphyMode, + new GUIContent + ( + text: "Graphy Mode", + tooltip: "LIGHT mode increases compatibility with mobile and older, less powerful GPUs, but reduces the maximum graph resolutions to 128." + ) + ); + + GUILayout.Space(10); + + m_enableOnStartup.boolValue = EditorGUILayout.Toggle + ( + new GUIContent + ( + text: "Enable On Startup", + tooltip: "If ticked, Graphy will be displayed by default on startup, otherwise it will initiate and hide." + ), + value: m_enableOnStartup.boolValue + ); + + // This is a neat trick to hide Graphy in the Scene if it's going to be deactivated in play mode so that it doesn't use screen space. + if (!Application.isPlaying) + { + m_target.GetComponent().enabled = m_enableOnStartup.boolValue; + } + + m_keepAlive.boolValue = EditorGUILayout.Toggle + ( + new GUIContent + ( + text: "Keep Alive", + tooltip: "If ticked, it will survive scene changes.\n\nCAREFUL, if you set Graphy as a child of another GameObject, the root GameObject will also survive scene changes. If you want to avoid that put Graphy in the root of the Scene as its own entity." + ), + value: m_keepAlive.boolValue + ); + + GUILayout.Space(10); + + EditorGUILayout.BeginHorizontal(); + + m_background.boolValue = EditorGUILayout.Toggle + ( + new GUIContent + ( + text: "Background", + tooltip: "If ticked, it will show a background overlay to improve readability in cluttered scenes." + ), + value: m_background.boolValue + ); + + m_backgroundColor.colorValue = EditorGUILayout.ColorField(m_backgroundColor.colorValue); + + EditorGUILayout.EndHorizontal(); + + GUILayout.Space(10); + + m_enableHotkeys.boolValue = EditorGUILayout.Toggle + ( + new GUIContent + ( + text: "Enable Hotkeys", + tooltip: "If ticked, it will enable the hotkeys to be able to modify Graphy in runtime with custom keyboard shortcuts." + ), + value: m_enableHotkeys.boolValue + ); + + if (m_enableHotkeys.boolValue) + { + EditorGUILayout.BeginHorizontal(); + + EditorGUIUtility.labelWidth = 130; + EditorGUIUtility.fieldWidth = 35; + + EditorGUILayout.PropertyField + ( + m_toggleModeKeyCode, + new GUIContent + ( + text: "Toggle Mode Key", + tooltip: "If ticked, it will require clicking this key and the other ones you have set up." + ) + ); + + EditorGUIUtility.labelWidth = 30; + EditorGUIUtility.fieldWidth = 35; + + m_toggleModeCtrl.boolValue = EditorGUILayout.Toggle + ( + new GUIContent + ( + text: "Ctrl", + tooltip: "If ticked, it will require clicking Ctrl and the other keys you have set up." + ), + value: m_toggleModeCtrl.boolValue + ); + + m_toggleModeAlt.boolValue = EditorGUILayout.Toggle + ( + new GUIContent + ( + text: "Alt", + tooltip: "If ticked, it will require clicking Alt and the other keys you have set up." + ), + value: m_toggleModeAlt.boolValue + ); + + EditorGUILayout.EndHorizontal(); + + EditorGUILayout.BeginHorizontal(); + + EditorGUIUtility.labelWidth = 130; + EditorGUIUtility.fieldWidth = 35; + + EditorGUILayout.PropertyField + ( + m_toggleActiveKeyCode, + new GUIContent + ( + text: "Toggle Active Key", + tooltip: "If ticked, it will require clicking this key and the other ones you have set up." + ) + ); + + EditorGUIUtility.labelWidth = 30; + EditorGUIUtility.fieldWidth = 35; + + m_toggleActiveCtrl.boolValue = EditorGUILayout.Toggle + ( + new GUIContent + ( + text: "Ctrl", + tooltip: "If ticked, it will require clicking Ctrl and the other kesy you have set up." + ), + value: m_toggleActiveCtrl.boolValue + ); + + m_toggleActiveAlt.boolValue = EditorGUILayout.Toggle + ( + new GUIContent + ( + text: "Alt", + tooltip: "If ticked, it will require clicking Alt and the other keys you have set up." + ), + value: m_toggleActiveAlt.boolValue + ); + + EditorGUILayout.EndHorizontal(); + } + + GUILayout.Space(15); + + EditorGUIUtility.labelWidth = 155; + EditorGUIUtility.fieldWidth = 35; + + EditorGUILayout.PropertyField + ( + m_graphModulePosition, + new GUIContent + ( + text: "Graph modules position", + tooltip: "Defines in which corner the modules will be located." + ) + ); + + #endregion + + GUILayout.Space(20); + + #region Section -> FPS + + m_fpsModuleInspectorToggle = EditorGUILayout.Foldout + ( + m_fpsModuleInspectorToggle, + content: " [ FPS ]", + style: GraphyEditorStyle.FoldoutStyle + ); + + GUILayout.Space(5); + + if (m_fpsModuleInspectorToggle) + { + EditorGUILayout.PropertyField + ( + m_fpsModuleState, + new GUIContent + ( + text: "Module state", + tooltip: "FULL -> Text + Graph \nTEXT -> Just text \nOFF -> Turned off" + ) + ); + + GUILayout.Space(5); + + EditorGUILayout.LabelField("Fps thresholds and colors:"); + + EditorGUI.indentLevel++; + + EditorGUILayout.BeginHorizontal(); + + m_goodFpsThreshold.intValue = EditorGUILayout.IntField + ( + new GUIContent + ( + text: "- Good", + tooltip: "When FPS rise above this value, this color will be used." + ), + value: m_goodFpsThreshold.intValue + ); + + m_goodFpsColor.colorValue = EditorGUILayout.ColorField(m_goodFpsColor.colorValue); + + EditorGUILayout.EndHorizontal(); + + if (m_goodFpsThreshold.intValue <= m_cautionFpsThreshold.intValue && m_goodFpsThreshold.intValue > 1) + { + m_cautionFpsThreshold.intValue = m_goodFpsThreshold.intValue - 1; + } + else if (m_goodFpsThreshold.intValue <= 1) + { + m_goodFpsThreshold.intValue = 2; + } + + EditorGUILayout.BeginHorizontal(); + + m_cautionFpsThreshold.intValue = EditorGUILayout.IntField + ( + new GUIContent + ( + text: "- Caution", + tooltip: "When FPS falls between this and the Good value, this color will be used." + ), + value: m_cautionFpsThreshold.intValue + ); + + m_cautionFpsColor.colorValue = EditorGUILayout.ColorField(m_cautionFpsColor.colorValue); + + EditorGUILayout.EndHorizontal(); + + if (m_cautionFpsThreshold.intValue >= m_goodFpsThreshold.intValue) + { + m_cautionFpsThreshold.intValue = m_goodFpsThreshold.intValue - 1; + } + else if (m_cautionFpsThreshold.intValue <= 0) + { + m_cautionFpsThreshold.intValue = 1; + } + + EditorGUILayout.BeginHorizontal(); + + EditorGUILayout.IntField + ( + new GUIContent + ( + text: "- Critical", + tooltip: "When FPS falls below the Caution value, this color will be used. (You can't have negative FPS, so this value is just for reference, it can't be changed)." + ), + value: 0 + ); + + m_criticalFpsColor.colorValue = EditorGUILayout.ColorField(m_criticalFpsColor.colorValue); + + EditorGUILayout.EndHorizontal(); + + EditorGUI.indentLevel--; + + if (m_fpsModuleState.intValue == 0) + { + m_fpsGraphResolution.intValue = EditorGUILayout.IntSlider + ( + new GUIContent + ( + text: "Graph resolution", + tooltip: "Defines the amount of points in the graph" + ), + m_fpsGraphResolution.intValue, + leftValue: 20, + rightValue: m_graphyMode.intValue == 0 ? 300 : 128 + ); + } + + m_fpsTextUpdateRate.intValue = EditorGUILayout.IntSlider + ( + new GUIContent + ( + text: "Text update rate", + tooltip: "Defines the amount times the text is updated in 1 second." + ), + m_fpsTextUpdateRate.intValue, + leftValue: 1, + rightValue: 60 + ); + } + + #endregion + + GUILayout.Space(20); + + #region Section -> RAM + + m_ramModuleInspectorToggle = EditorGUILayout.Foldout + ( + m_ramModuleInspectorToggle, + content: " [ RAM ]", + style: GraphyEditorStyle.FoldoutStyle + ); + + GUILayout.Space(5); + + if (m_ramModuleInspectorToggle) + { + EditorGUILayout.PropertyField + ( + m_ramModuleState, + new GUIContent + ( + text: "Module state", + tooltip: "FULL -> Text + Graph \nTEXT -> Just text \nOFF -> Turned off" + ) + ); + + GUILayout.Space(5); + + EditorGUILayout.LabelField("Graph colors:"); + + EditorGUI.indentLevel++; + + m_allocatedRamColor.colorValue = EditorGUILayout.ColorField + ( + label: "- Allocated", + value: m_allocatedRamColor.colorValue + ); + + m_reservedRamColor.colorValue = EditorGUILayout.ColorField + ( + label: "- Reserved", + value: m_reservedRamColor.colorValue + ); + + m_monoRamColor.colorValue = EditorGUILayout.ColorField + ( + label: "- Mono", + value: m_monoRamColor.colorValue + ); + + EditorGUI.indentLevel--; + + if (m_ramModuleState.intValue == 0) + { + m_ramGraphResolution.intValue = EditorGUILayout.IntSlider( + new GUIContent + ( + text: "Graph resolution", + tooltip: "Defines the amount of points are in the graph" + ), + m_ramGraphResolution.intValue, + leftValue: 20, + rightValue: m_graphyMode.intValue == 0 ? 300 : 128 + ); + } + + m_ramTextUpdateRate.intValue = EditorGUILayout.IntSlider + ( + new GUIContent + ( + text: "Text update rate", + tooltip: "Defines the amount times the text is updated in 1 second." + ), + m_ramTextUpdateRate.intValue, + leftValue: 1, + rightValue: 60 + ); + } + + #endregion + + GUILayout.Space(20); + + #region Section -> Audio + + m_audioModuleInspectorToggle = EditorGUILayout.Foldout + ( + m_audioModuleInspectorToggle, + content: " [ AUDIO ]", + style: GraphyEditorStyle.FoldoutStyle + ); + + GUILayout.Space(5); + + if (m_audioModuleInspectorToggle) + { + EditorGUILayout.PropertyField + ( + m_audioModuleState, + new GUIContent + ( + text: "Module state", + tooltip: "FULL -> Text + Graph \nTEXT -> Just text \nOFF -> Turned off" + ) + ); + + GUILayout.Space(5); + + EditorGUILayout.PropertyField + ( + m_findAudioListenerInCameraIfNull, + new GUIContent + ( + text: "Find audio listener", + tooltip: "Tries to find the AudioListener in the Main camera in the scene. (if AudioListener is null)" + ) + ); + + EditorGUILayout.PropertyField + ( + m_audioListener, + new GUIContent + ( + text: "Audio Listener", + tooltip: "Graphy will take the data from this Listener. If none are specified, it will try to get it from the Main Camera in the scene." + ) + ); + + if (m_audioModuleState.intValue == 0) + { + m_audioGraphColor.colorValue = EditorGUILayout.ColorField + ( + label: "Graph color", + value: m_audioGraphColor.colorValue + ); + + m_audioGraphResolution.intValue = EditorGUILayout.IntSlider + ( + new GUIContent + ( + text: "Graph resolution", + tooltip: "Defines the amount of points that are in the graph." + ), + m_audioGraphResolution.intValue, + leftValue: 20, + rightValue: m_graphyMode.intValue == 0 ? 300 : 128 + ); + + // Forces the value to be a multiple of 3, this way the audio graph is painted correctly + if (m_audioGraphResolution.intValue % 3 != 0 && m_audioGraphResolution.intValue < 300) + { + m_audioGraphResolution.intValue += 3 - m_audioGraphResolution.intValue % 3; + } + //TODO: Figure out why a static version of the ForceMultipleOf3 isnt used. + } + + EditorGUILayout.PropertyField + ( + m_FFTWindow, + new GUIContent + ( + text: "FFT Window", + tooltip: "Used to reduce leakage between frequency bins/bands. Note, the more complex window type, the better the quality, but reduced speed. \n\nSimplest is rectangular. Most complex is BlackmanHarris" + ) + ); + + m_spectrumSize.intValue = EditorGUILayout.IntSlider + ( + new GUIContent + ( + text: "Spectrum size", + tooltip: "Has to be a power of 2 between 128-8192. The higher sample rate, the less precision but also more impact on performance. Careful with mobile devices" + ), + m_spectrumSize.intValue, + leftValue: 128, + rightValue: 8192 + ); + + int closestSpectrumIndex = 0; + int minDistanceToSpectrumValue = 100000; + + for (int i = 0; i < m_spectrumSizeValues.Length; i++) + { + int newDistance = Mathf.Abs + ( + value: m_spectrumSize.intValue - m_spectrumSizeValues[i] + ); + + if (newDistance < minDistanceToSpectrumValue) + { + minDistanceToSpectrumValue = newDistance; + closestSpectrumIndex = i; + } + } + + m_spectrumSize.intValue = m_spectrumSizeValues[closestSpectrumIndex]; + + m_audioTextUpdateRate.intValue = EditorGUILayout.IntSlider + ( + new GUIContent + ( + text: "Text update rate", + tooltip: "Defines the amount times the text is updated in 1 second" + ), + m_audioTextUpdateRate.intValue, + leftValue: 1, + rightValue: 60 + ); + } + + #endregion + + GUILayout.Space(20); + + #region Section -> Advanced Settings + + m_advancedModuleInspectorToggle = EditorGUILayout.Foldout + ( + m_advancedModuleInspectorToggle, + content: " [ ADVANCED DATA ]", + style: GraphyEditorStyle.FoldoutStyle + ); + + GUILayout.Space(5); + + if (m_advancedModuleInspectorToggle) + { + EditorGUILayout.PropertyField(m_advancedModulePosition); + + EditorGUILayout.PropertyField + ( + m_advancedModuleState, + new GUIContent + ( + text: "Module state", + tooltip: "FULL -> Text \nOFF -> Turned off" + ) + ); + } + + #endregion; + + EditorGUIUtility.labelWidth = defaultLabelWidth; + EditorGUIUtility.fieldWidth = defaultFieldWidth; + + serializedObject.ApplyModifiedProperties(); + } + + #endregion + + #region Methods -> Private + + #endregion + } +} \ No newline at end of file diff --git a/Assets/Graphy - Ultimate Stats Monitor/Editor/GraphyManagerEditor.cs.meta b/Assets/Graphy - Ultimate Stats Monitor/Editor/GraphyManagerEditor.cs.meta new file mode 100644 index 0000000..9296df9 --- /dev/null +++ b/Assets/Graphy - Ultimate Stats Monitor/Editor/GraphyManagerEditor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f01a5c28e5127404da343db2a7409c10 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Graphy - Ultimate Stats Monitor/Editor/GraphyMenuItem.cs b/Assets/Graphy - Ultimate Stats Monitor/Editor/GraphyMenuItem.cs new file mode 100644 index 0000000..11a4907 --- /dev/null +++ b/Assets/Graphy - Ultimate Stats Monitor/Editor/GraphyMenuItem.cs @@ -0,0 +1,61 @@ +/* --------------------------------------- + * Author: Martin Pane (martintayx@gmail.com) (@tayx94) + * Contributors: https://github.com/Tayx94/graphy/graphs/contributors + * Project: Graphy - Ultimate Stats Monitor + * Date: 20-Dec-17 + * Studio: Tayx + * + * Git repo: https://github.com/Tayx94/graphy + * + * This project is released under the MIT license. + * Attribution is not required, but it is always welcomed! + * -------------------------------------*/ + +using UnityEditor; +using UnityEngine; + +namespace Tayx.Graphy +{ + public class GraphyMenuItem + { + [MenuItem("Tools/Graphy/Create Prefab Variant")] + static void CreatePrefabVariant() + { + // Directory checking + if (!AssetDatabase.IsValidFolder("Assets/Graphy - Ultimate Stats Monitor")) + { + AssetDatabase.CreateFolder("Assets", "Graphy - Ultimate Stats Monitor"); + } + + if (!AssetDatabase.IsValidFolder( "Assets/Graphy - Ultimate Stats Monitor/Prefab Variants" ) ) + { + AssetDatabase.CreateFolder("Assets/Graphy - Ultimate Stats Monitor", "Prefab Variants" ); + } + + string graphyPrefabGuid = AssetDatabase.FindAssets( "[Graphy]" )[ 0 ]; + + Object originalPrefab = (GameObject)AssetDatabase.LoadAssetAtPath( AssetDatabase.GUIDToAssetPath( graphyPrefabGuid ), typeof(GameObject)); + GameObject objectSource = PrefabUtility.InstantiatePrefab(originalPrefab) as GameObject; + + int prefabVariantCount = + AssetDatabase.FindAssets( "Graphy_Variant", new []{ "Assets/Graphy - Ultimate Stats Monitor/Prefab Variants" } ).Length; + + GameObject prefabVariant = PrefabUtility.SaveAsPrefabAsset(objectSource, $"Assets/Graphy - Ultimate Stats Monitor/Prefab Variants/Graphy_Variant_{prefabVariantCount}.prefab" ); + + Object.DestroyImmediate(objectSource); + + foreach(SceneView scene in SceneView.sceneViews) + { + scene.ShowNotification(new GUIContent( "Prefab Variant Created at \"Assets/Graphy - Ultimate Stats Monitor/Prefab\"!" ) ); + } + } + + [MenuItem( "Tools/Graphy/Import Graphy Customization Scene" )] + static void ImportGraphyCustomizationScene() + { + string customizationSceneGuid = AssetDatabase.FindAssets( "Graphy_CustomizationScene" )[ 0 ]; + + AssetDatabase.ImportPackage( AssetDatabase.GUIDToAssetPath( customizationSceneGuid ), true ); + } + } +} \ No newline at end of file diff --git a/Assets/Graphy - Ultimate Stats Monitor/Editor/GraphyMenuItem.cs.meta b/Assets/Graphy - Ultimate Stats Monitor/Editor/GraphyMenuItem.cs.meta new file mode 100644 index 0000000..6955599 --- /dev/null +++ b/Assets/Graphy - Ultimate Stats Monitor/Editor/GraphyMenuItem.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 68962e071a0ce0549a853f10c6af3f54 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Graphy - Ultimate Stats Monitor/Editor/Tayx.Graphy.Editor.asmdef b/Assets/Graphy - Ultimate Stats Monitor/Editor/Tayx.Graphy.Editor.asmdef new file mode 100644 index 0000000..e37133d --- /dev/null +++ b/Assets/Graphy - Ultimate Stats Monitor/Editor/Tayx.Graphy.Editor.asmdef @@ -0,0 +1,23 @@ +{ + "name": "Tayx.Graphy.Editor", + "references": [ + "GUID:18e5109d897e1b244ab2dfeaf5482c7b" + ], + "includePlatforms": [ + "Editor" + ], + "excludePlatforms": [], + "allowUnsafeCode": false, + "overrideReferences": false, + "precompiledReferences": [], + "autoReferenced": true, + "defineConstraints": [], + "versionDefines": [ + { + "name": "com.unity.inputsystem", + "expression": "", + "define": "GRAPHY_NEW_INPUT" + } + ], + "noEngineReferences": false +} \ No newline at end of file diff --git a/Assets/Graphy - Ultimate Stats Monitor/Editor/Tayx.Graphy.Editor.asmdef.meta b/Assets/Graphy - Ultimate Stats Monitor/Editor/Tayx.Graphy.Editor.asmdef.meta new file mode 100644 index 0000000..ee66473 --- /dev/null +++ b/Assets/Graphy - Ultimate Stats Monitor/Editor/Tayx.Graphy.Editor.asmdef.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 9c59a049deefdf64bbbaa730a340bb3f +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Graphy - Ultimate Stats Monitor/Font.meta b/Assets/Graphy - Ultimate Stats Monitor/Font.meta new file mode 100644 index 0000000..170a66a --- /dev/null +++ b/Assets/Graphy - Ultimate Stats Monitor/Font.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 3ac48df14c942a247a9e31f953e82768 +folderAsset: yes +timeCreated: 1511635919 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Graphy - Ultimate Stats Monitor/Font/Northwest-Bold.meta b/Assets/Graphy - Ultimate Stats Monitor/Font/Northwest-Bold.meta new file mode 100644 index 0000000..8f54d4c --- /dev/null +++ b/Assets/Graphy - Ultimate Stats Monitor/Font/Northwest-Bold.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 2b891f35198da7642a30fd430ae0d619 +folderAsset: yes +timeCreated: 1516718193 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Graphy - Ultimate Stats Monitor/Font/Northwest-Bold/ERIC-TIRADO-NORTHWEST-LICENSE.txt b/Assets/Graphy - Ultimate Stats Monitor/Font/Northwest-Bold/ERIC-TIRADO-NORTHWEST-LICENSE.txt new file mode 100644 index 0000000..cb1565a --- /dev/null +++ b/Assets/Graphy - Ultimate Stats Monitor/Font/Northwest-Bold/ERIC-TIRADO-NORTHWEST-LICENSE.txt @@ -0,0 +1,18 @@ +Eric Tirado - NORTHWEST - BOLD, ROUGH - BETA + +Version 0.6 2016 +________________________________________________________________________________________ + +This font demo is free for personal and commercial use. + +DonÕt resell, donÕt rename, share it with this txt file. Easy. + +Sign up at tira.do/nw to get a good deal on our final release (coming soon) and be in the loop for more awesomeness! + +________________________________________________________________________________________ + +fonts@erictirado.com + +Eric Tirado © 2016 - All Rights Reserved +_______________________________________________________________________________________ +_______________________________________________________________________________________ \ No newline at end of file diff --git a/Assets/Graphy - Ultimate Stats Monitor/Font/Northwest-Bold/ERIC-TIRADO-NORTHWEST-LICENSE.txt.meta b/Assets/Graphy - Ultimate Stats Monitor/Font/Northwest-Bold/ERIC-TIRADO-NORTHWEST-LICENSE.txt.meta new file mode 100644 index 0000000..f294d18 --- /dev/null +++ b/Assets/Graphy - Ultimate Stats Monitor/Font/Northwest-Bold/ERIC-TIRADO-NORTHWEST-LICENSE.txt.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 67bbd8c5103323b4688fcfa3abe68927 +labels: +- font +timeCreated: 1516718196 +licenseType: Store +TextScriptImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Graphy - Ultimate Stats Monitor/Font/Northwest-Bold/NORTHWEST-B.otf b/Assets/Graphy - Ultimate Stats Monitor/Font/Northwest-Bold/NORTHWEST-B.otf new file mode 100644 index 0000000000000000000000000000000000000000..53182195d30522a4cfcdeb22548535323c5e1006 GIT binary patch literal 6040 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 literal 0 HcmV?d00001 diff --git a/Assets/Graphy - Ultimate Stats Monitor/Font/Northwest-Bold/NORTHWEST-B.otf.meta b/Assets/Graphy - Ultimate Stats Monitor/Font/Northwest-Bold/NORTHWEST-B.otf.meta new file mode 100644 index 0000000..555b5ce --- /dev/null +++ b/Assets/Graphy - Ultimate Stats Monitor/Font/Northwest-Bold/NORTHWEST-B.otf.meta @@ -0,0 +1,22 @@ +fileFormatVersion: 2 +guid: d523cde1d178d7c4ca6bb724b9d5213e +labels: +- font +timeCreated: 1516718196 +licenseType: Store +TrueTypeFontImporter: + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontNames: + - NORTHWEST + fallbackFontReferences: [] + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Graphy - Ultimate Stats Monitor/Font/Roboto.meta b/Assets/Graphy - Ultimate Stats Monitor/Font/Roboto.meta new file mode 100644 index 0000000..06681c7 --- /dev/null +++ b/Assets/Graphy - Ultimate Stats Monitor/Font/Roboto.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 37f53a7f00580aa4fa7797d9308063e7 +folderAsset: yes +timeCreated: 1515073036 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Graphy - Ultimate Stats Monitor/Font/Roboto/LICENSE.txt b/Assets/Graphy - Ultimate Stats Monitor/Font/Roboto/LICENSE.txt new file mode 100644 index 0000000..d645695 --- /dev/null +++ b/Assets/Graphy - Ultimate Stats Monitor/Font/Roboto/LICENSE.txt @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/Assets/Graphy - Ultimate Stats Monitor/Font/Roboto/LICENSE.txt.meta b/Assets/Graphy - Ultimate Stats Monitor/Font/Roboto/LICENSE.txt.meta new file mode 100644 index 0000000..6903b6e --- /dev/null +++ b/Assets/Graphy - Ultimate Stats Monitor/Font/Roboto/LICENSE.txt.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: eb908df110bf2314d94d245f8a338830 +labels: +- font +timeCreated: 1515073036 +licenseType: Store +TextScriptImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Graphy - Ultimate Stats Monitor/Font/Roboto/Roboto-Bold.ttf b/Assets/Graphy - Ultimate Stats Monitor/Font/Roboto/Roboto-Bold.ttf new file mode 100644 index 0000000000000000000000000000000000000000..d3f01ad245b628f386ac95786f53167038720eb2 GIT binary patch literal 170760 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�!3r53e9=KAt@g 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