From 477aa2e58da10439c4351fbcbad2ac8624026a30 Mon Sep 17 00:00:00 2001 From: Estarriol Date: Wed, 26 Oct 2022 10:25:16 +0200 Subject: [PATCH 01/10] ignoring log on saving Undo state, added an Undo notice when it player Undoes an action, fixes #1583, fixes #1484 --- unity/Assets/Scripts/Quest/Quest.cs | 107 +++++++++++--------- unity/Assets/Scripts/Quest/QuestLog.cs | 28 +++++ unity/Assets/Scripts/Quest/QuestLog.cs.meta | 3 + 3 files changed, 90 insertions(+), 48 deletions(-) create mode 100644 unity/Assets/Scripts/Quest/QuestLog.cs create mode 100644 unity/Assets/Scripts/Quest/QuestLog.cs.meta diff --git a/unity/Assets/Scripts/Quest/Quest.cs b/unity/Assets/Scripts/Quest/Quest.cs index a322cb069..382b60930 100644 --- a/unity/Assets/Scripts/Quest/Quest.cs +++ b/unity/Assets/Scripts/Quest/Quest.cs @@ -1,14 +1,13 @@ using System; -using UnityEngine; using System.Collections.Generic; -using Assets.Scripts.Content; -using Assets.Scripts.UI; -using ValkyrieTools; using System.IO; using System.Linq; +using Assets.Scripts.Content; +using Assets.Scripts.UI; using TMPro; -using UnityEngine.Experimental.UIElements; +using UnityEngine; using UnityEngine.UI; +using ValkyrieTools; using Object = UnityEngine.Object; using Random = UnityEngine.Random; using TextAlignment = Assets.Scripts.Content.TextAlignment; @@ -63,7 +62,7 @@ public class Quest public Dictionary itemInspect; // A dictionary of heros that have been selected in events - public Dictionary> heroSelection; + public Dictionary> heroSelection; // A dictionary of puzzle state public Dictionary puzzle; @@ -88,7 +87,7 @@ public class Quest public Stack undo; // Event Log - public List log; + public QuestLog log; // Event list public List eventList; @@ -115,7 +114,7 @@ public class Quest public bool fromSavegame = false; // Quest start time (or load time) - public System.DateTime start_time; + public DateTime start_time; // Quest gameplay duration public int duration; @@ -171,15 +170,15 @@ public Quest(QuestData.Quest q) itemSelect = new Dictionary(); itemInspect = new Dictionary(); monsters = new List(); - heroSelection = new Dictionary>(); + heroSelection = new Dictionary>(); puzzle = new Dictionary(); eventQuota = new Dictionary(); undo = new Stack(); - log = new List(); + log = new QuestLog(); eventList = new List(); monsterSelect = new Dictionary(); - start_time = System.DateTime.UtcNow; + start_time = DateTime.UtcNow; duration = 0; defaultMusicOn = q.defaultMusicOn; @@ -379,7 +378,7 @@ public bool AttemptItemMatch(QuestData.QItem qItem, int fame, bool force = true) if (list.Count == 0) { - game.CurrentQuest.log.Add(new Quest.LogEntry("Warning: Unable to find an item for QItem: " + qItem.sectionName, + game.CurrentQuest.log.Add(new LogEntry("Warning: Unable to find an item for QItem: " + qItem.sectionName, true)); return false; } @@ -581,7 +580,7 @@ public bool AttemptMonsterMatch(QuestData.Spawn spawn, bool force = true) if (list.Count == 0) { ValkyrieDebug.Log("Error: Unable to find monster of traits specified in event: " + spawn.sectionName); - game.CurrentQuest.log.Add(new Quest.LogEntry( + game.CurrentQuest.log.Add(new LogEntry( "Error: Unable to find monster of traits specified in spawn event: " + spawn.sectionName, true)); return false; } @@ -662,7 +661,7 @@ public void ChangeQuest(string path) boardItems = new Dictionary(); ordered_boardItems = new List(); monsters = new List(); - heroSelection = new Dictionary>(); + heroSelection = new Dictionary>(); puzzle = new Dictionary(); eventQuota = new Dictionary(); undo = new Stack(); @@ -688,7 +687,7 @@ public void ChangeQuest(string path) // Set quest flag based on hero count int heroCount = 0; - foreach (Quest.Hero h in heroes) + foreach (Hero h in heroes) { h.activated = false; h.defeated = false; @@ -781,7 +780,7 @@ public void LoadQuest(IniData saveData) foreach (KeyValuePair kv in saveData.Get("Shops")) { List shopList = new List(); - foreach (string s in kv.Value.Split(" ".ToCharArray(), System.StringSplitOptions.RemoveEmptyEntries)) + foreach (string s in kv.Value.Split(" ".ToCharArray(), StringSplitOptions.RemoveEmptyEntries)) { shopList.Add(s); } @@ -800,7 +799,7 @@ public void LoadQuest(IniData saveData) } // Restore event log - log = new List(); + log = new QuestLog(); foreach (KeyValuePair kv in saveData.Get("Log")) { log.Add(new LogEntry(kv.Key, kv.Value)); @@ -815,7 +814,7 @@ public void LoadQuest(IniData saveData) } // Set start time to now - start_time = System.DateTime.UtcNow; + start_time = DateTime.UtcNow; // get previous duration, if not present, we are using an old savegame so do not use the duration if (!int.TryParse(saveData.Get("Quest", "duration"), out duration)) { @@ -946,7 +945,7 @@ public void LoadQuest(IniData saveData) foreach (KeyValuePair kv in saveSelection) { // List of selected heroes - string[] selectHeroes = kv.Value.Split(" ".ToCharArray(), System.StringSplitOptions.RemoveEmptyEntries); + string[] selectHeroes = kv.Value.Split(" ".ToCharArray(), StringSplitOptions.RemoveEmptyEntries); List heroList = new List(); foreach (string s in selectHeroes) @@ -1040,7 +1039,7 @@ public void LoadQuest(IniData saveData) // This is called on user actions (such as defeated monsters, heros activated) public void Save() { - undo.Push(ToString()); + undo.Push(ToString(false)); } // Load from the undo stack @@ -1049,9 +1048,12 @@ public void Undo() // Nothing to undo if (undo.Count == 0) return; // Load the old state. This will also set game.CurrentQuest + var currentLog = this.log; + currentLog.Add(new LogEntry("Notice: Undo", true)); Quest oldQuest = new Quest(undo.Pop()); // Transfer the undo stack to the loaded state oldQuest.undo = undo; + oldQuest.log = currentLog; } // This function adjusts morale. We don't write directly so that NoMorale can be triggered @@ -1292,20 +1294,25 @@ public void Update() } } - // Save the quest state to a string for save games and undo override public string ToString() + { + return ToString(true); + } + + // Save the quest state to a string for save games and undo + public string ToString(bool includeLog) { //Game game = Game.Get(); - string nl = System.Environment.NewLine; + string nl = Environment.NewLine; // General quest state block string r = "[Quest]" + nl; - r += "time=" + System.DateTime.Now.ToString() + nl; + r += "time=" + DateTime.Now.ToString() + nl; // Current game duration + duration of previous game session before loading if (duration >= 0) { - System.TimeSpan current_duration = System.DateTime.UtcNow.Subtract(start_time); + TimeSpan current_duration = DateTime.UtcNow.Subtract(start_time); r += "duration=" + (int) (this.duration + current_duration.TotalMinutes) + nl; } else @@ -1371,10 +1378,10 @@ override public string ToString() // Hero selection is a list of selections, each with space separated hero lists r += "[HeroSelection]" + nl; - foreach (KeyValuePair> kv in heroSelection) + foreach (KeyValuePair> kv in heroSelection) { r += kv.Key + "="; - foreach (Quest.Hero h in kv.Value) + foreach (Hero h in kv.Value) { r += h.id + " "; } @@ -1406,11 +1413,15 @@ override public string ToString() r += kv.Value.ToString(kv.Key); } - r += "[Log]" + nl; int i = 0; - foreach (LogEntry e in log) + r += "[Log]" + nl; + + if (includeLog) { - r += e.ToString(i++); + foreach (LogEntry e in log) + { + r += e.ToString(i++); + } } r += "[EventList]" + nl; @@ -1519,7 +1530,7 @@ public Tile(QuestData.Tile questTile, Game gameObject) : base(gameObject) unityObject.transform.SetParent(game.boardCanvas.transform); // Add image to object - image = unityObject.AddComponent(); + image = unityObject.AddComponent(); // Create sprite from texture Sprite tileSprite = null; if (game.gameType is MoMGameType) @@ -1605,7 +1616,7 @@ public Token(QuestData.Token questToken, Game gameObject) : base(gameObject) // Check that token exists if (!game.cd.ContainsKey(tokenName)) { - game.CurrentQuest.log.Add(new Quest.LogEntry( + game.CurrentQuest.log.Add(new LogEntry( "Warning: Quest component " + qToken.sectionName + " is using missing token type: " + tokenName, true)); // Catch for older quests with different types (0.4.0 or older) @@ -1633,7 +1644,7 @@ public Token(QuestData.Token questToken, Game gameObject) : base(gameObject) unityObject.transform.SetParent(game.tokenCanvas.transform); // Create the image - image = unityObject.AddComponent(); + image = unityObject.AddComponent(); Sprite tileSprite = Sprite.Create(newTex, new Rect(0, 0, newTex.width, newTex.height), Vector2.zero, 1); image.color = new Color(1, 1, 1, 0); image.sprite = tileSprite; @@ -1675,9 +1686,9 @@ public class UI : BoardComponent public UIElementBorder border; GameObject unityObject_text = null; - UnityEngine.UI.Text uiText; + Text uiText; TextMeshProUGUI richText; - UnityEngine.UI.Image uiTextBG; + Image uiTextBG; // Construct with quest info and reference to Game public UI(QuestData.UI questUI, Game gameObject) : base(gameObject) @@ -1728,7 +1739,7 @@ public UI(QuestData.UI questUI, Game gameObject) : base(gameObject) if (qUI.imageName.Length == 0) { - uiTextBG = unityObject.AddComponent(); + uiTextBG = unityObject.AddComponent(); uiTextBG.color = ColorUtil.ColorFromName(qUI.textBackgroundColor); unityObject_text = new GameObject("Object" + qUI.sectionName + "text"); @@ -1747,7 +1758,7 @@ public UI(QuestData.UI questUI, Game gameObject) : base(gameObject) } else { - uiText = unityObject_text.AddComponent(); + uiText = unityObject_text.AddComponent(); uiText.text = GetText(); uiText.alignment = ConvertStandardTextAlignment(qUI.textAlignment); uiText.font = game.gameType.GetFont(); @@ -1761,7 +1772,7 @@ public UI(QuestData.UI questUI, Game gameObject) : base(gameObject) else { // Create the image - image = unityObject.AddComponent(); + image = unityObject.AddComponent(); Sprite tileSprite = Sprite.Create(newTex, new Rect(0, 0, newTex.width, newTex.height), Vector2.zero, 1); image.color = new Color(1, 1, 1, 0); image.sprite = tileSprite; @@ -1958,7 +1969,7 @@ public Door(QuestData.Door questDoor, Game gameObject) : base(gameObject) unityObject.transform.SetParent(game.tokenCanvas.transform); // Create the image - image = unityObject.AddComponent(); + image = unityObject.AddComponent(); Sprite tileSprite = Sprite.Create(newTex, new Rect(0, 0, newTex.width, newTex.height), Vector2.zero, 1, 0, SpriteMeshType.FullRect); // Set door colour @@ -1996,7 +2007,7 @@ public override QuestData.Event GetEvent() abstract public class BoardComponent { // image for display - public UnityEngine.UI.Image image; + public Image image; // Game object public Game game; @@ -2067,15 +2078,15 @@ public void SetColor(string colorName) if ((colorRGB.Length != 7) || (colorRGB[0] != '#')) { game.CurrentQuest.log.Add( - new Quest.LogEntry("Warning: Color must be in #RRGGBB format or a known name: " + colorName, true)); + new LogEntry("Warning: Color must be in #RRGGBB format or a known name: " + colorName, true)); } // State with white (used for alpha) Color colour = Color.white; // Hexadecimal to float convert (0x00-0xFF -> 0.0-1.0) - colour[0] = (float) System.Convert.ToInt32(colorRGB.Substring(1, 2), 16) / 255f; - colour[1] = (float) System.Convert.ToInt32(colorRGB.Substring(3, 2), 16) / 255f; - colour[2] = (float) System.Convert.ToInt32(colorRGB.Substring(5, 2), 16) / 255f; + colour[0] = (float) Convert.ToInt32(colorRGB.Substring(1, 2), 16) / 255f; + colour[1] = (float) Convert.ToInt32(colorRGB.Substring(3, 2), 16) / 255f; + colour[2] = (float) Convert.ToInt32(colorRGB.Substring(5, 2), 16) / 255f; SetColor(colour); } } @@ -2115,7 +2126,7 @@ public Hero(Dictionary data) int.TryParse(data["id"], out id); if (data.ContainsKey("class")) { - string[] classes = data["class"].Split(" ".ToCharArray(), System.StringSplitOptions.RemoveEmptyEntries); + string[] classes = data["class"].Split(" ".ToCharArray(), StringSplitOptions.RemoveEmptyEntries); className = classes[0]; if (classes.Length > 1) { @@ -2139,7 +2150,7 @@ public Hero(Dictionary data) skills = new List(); if (data.ContainsKey("skills")) { - skills.AddRange(data["skills"].Split(" ".ToCharArray(), System.StringSplitOptions.RemoveEmptyEntries)); + skills.AddRange(data["skills"].Split(" ".ToCharArray(), StringSplitOptions.RemoveEmptyEntries)); } if (data.ContainsKey("xp")) @@ -2163,7 +2174,7 @@ public int AvailableXP() // Save hero to string for saves/undo override public string ToString() { - string nl = System.Environment.NewLine; + string nl = Environment.NewLine; string r = "[Hero" + id + "]" + nl; r += "id=" + id + nl; @@ -2405,7 +2416,7 @@ public ActivationInstance(ActivationData contentActivation, string monsterName) // Save monster data to string override public string ToString() { - string nl = System.Environment.NewLine; + string nl = Environment.NewLine; // Section name must be unique string r = "[Monster" + monsterData.sectionName + duplicate + "]" + nl; @@ -2482,7 +2493,7 @@ public string ToString(int id) r += "quest" + id + "="; } - r += entry.Replace("\n", "\\n") + System.Environment.NewLine; + r += entry.Replace("\n", "\\n") + Environment.NewLine; return r; } diff --git a/unity/Assets/Scripts/Quest/QuestLog.cs b/unity/Assets/Scripts/Quest/QuestLog.cs new file mode 100644 index 000000000..db9e06ea0 --- /dev/null +++ b/unity/Assets/Scripts/Quest/QuestLog.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections; +using System.Collections.Generic; + +public class QuestLog : IEnumerable +{ + private LinkedList log; + + public QuestLog() + { + log = new LinkedList(); + } + + public void Add(Quest.LogEntry logEntry) + { + log.AddLast(logEntry); + } + + public IEnumerator GetEnumerator() + { + return log.GetEnumerator(); + } + + IEnumerator IEnumerable.GetEnumerator() + { + return GetEnumerator(); + } +} diff --git a/unity/Assets/Scripts/Quest/QuestLog.cs.meta b/unity/Assets/Scripts/Quest/QuestLog.cs.meta new file mode 100644 index 000000000..98775a98c --- /dev/null +++ b/unity/Assets/Scripts/Quest/QuestLog.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 14562232e7464b8f850cf2bd0f243880 +timeCreated: 1666770606 \ No newline at end of file From 33a211bc325806f6c619e7c985f4fbb73b554fbf Mon Sep 17 00:00:00 2001 From: Estarriol Date: Wed, 26 Oct 2022 11:20:15 +0200 Subject: [PATCH 02/10] Added firebase to repository (google no longer maintains Unity Plugin Repository) https://github.com/firebase/quickstart-unity/issues/1028 --- .gitattributes | 7 + .../Editor Default Resources/Firebase.meta | 8 + .../Firebase/fb_analytics.png | Bin 0 -> 134 bytes .../Firebase/fb_analytics.png.meta | 68 + .../Firebase/fb_analytics_dark.png | Bin 0 -> 136 bytes .../Firebase/fb_analytics_dark.png.meta | 68 + .../Firebase/fb_auth.png | Bin 0 -> 295 bytes .../Firebase/fb_auth.png.meta | 68 + .../Firebase/fb_auth_dark.png | Bin 0 -> 305 bytes .../Firebase/fb_auth_dark.png.meta | 68 + .../Firebase/fb_cloud_messaging.png | Bin 0 -> 510 bytes .../Firebase/fb_cloud_messaging.png.meta | 68 + .../Firebase/fb_cloud_messaging_dark.png | Bin 0 -> 521 bytes .../Firebase/fb_cloud_messaging_dark.png.meta | 68 + .../Firebase/fb_config.png | Bin 0 -> 253 bytes .../Firebase/fb_config.png.meta | 68 + .../Firebase/fb_config_dark.png | Bin 0 -> 253 bytes .../Firebase/fb_config_dark.png.meta | 68 + .../Firebase/fb_crashlytics.png | Bin 0 -> 454 bytes .../Firebase/fb_crashlytics.png.meta | 68 + .../Firebase/fb_crashlytics_dark.png | Bin 0 -> 471 bytes .../Firebase/fb_crashlytics_dark.png.meta | 68 + .../Firebase/fb_database.png | Bin 0 -> 248 bytes .../Firebase/fb_database.png.meta | 69 + .../Firebase/fb_database_dark.png | Bin 0 -> 268 bytes .../Firebase/fb_database_dark.png.meta | 69 + .../Firebase/fb_dynamic_links.png | Bin 0 -> 468 bytes .../Firebase/fb_dynamic_links.png.meta | 68 + .../Firebase/fb_dynamic_links_dark.png | Bin 0 -> 470 bytes .../Firebase/fb_dynamic_links_dark.png.meta | 68 + .../Firebase/fb_functions.png | Bin 0 -> 449 bytes .../Firebase/fb_functions.png.meta | 68 + .../Firebase/fb_functions_dark.png | Bin 0 -> 464 bytes .../Firebase/fb_functions_dark.png.meta | 68 + .../Firebase/fb_storage.png | Bin 0 -> 306 bytes .../Firebase/fb_storage.png.meta | 78 ++ .../Firebase/fb_storage_dark.png | Bin 0 -> 304 bytes .../Firebase/fb_storage_dark.png.meta | 78 ++ .../Firebase/firebase_lockup.png | Bin 0 -> 2631 bytes .../Firebase/firebase_lockup.png.meta | 68 + .../Firebase/firebase_lockup_dark.png | Bin 0 -> 2718 bytes .../Firebase/firebase_lockup_dark.png.meta | 68 + unity/Assets/ExternalDependencyManager.meta | 8 + .../ExternalDependencyManager/Editor.meta | 8 + .../Editor/CHANGELOG.md | 1228 +++++++++++++++++ .../Editor/CHANGELOG.md.meta | 11 + .../Editor/Google.IOSResolver_v1.2.156.dll | 3 + .../Google.IOSResolver_v1.2.156.dll.mdb | Bin 0 -> 10869 bytes .../Google.IOSResolver_v1.2.156.dll.mdb.meta | 11 + .../Google.IOSResolver_v1.2.156.dll.meta | 38 + .../Editor/Google.JarResolver_v1.2.156.dll | 3 + .../Google.JarResolver_v1.2.156.dll.mdb | Bin 0 -> 47657 bytes .../Google.JarResolver_v1.2.156.dll.mdb.meta | 11 + .../Google.JarResolver_v1.2.156.dll.meta | 38 + ...Google.PackageManagerResolver_v1.2.156.dll | 3 + ...le.PackageManagerResolver_v1.2.156.dll.mdb | Bin 0 -> 16609 bytes ...ckageManagerResolver_v1.2.156.dll.mdb.meta | 11 + ...e.PackageManagerResolver_v1.2.156.dll.meta | 38 + .../Editor/Google.VersionHandler.dll | 3 + .../Editor/Google.VersionHandler.dll.mdb | Bin 0 -> 3572 bytes .../Editor/Google.VersionHandler.dll.mdb.meta | 11 + .../Editor/Google.VersionHandler.dll.meta | 38 + .../Google.VersionHandlerImpl_v1.2.156.dll | 3 + ...Google.VersionHandlerImpl_v1.2.156.dll.mdb | Bin 0 -> 36247 bytes ...e.VersionHandlerImpl_v1.2.156.dll.mdb.meta | 11 + ...oogle.VersionHandlerImpl_v1.2.156.dll.meta | 38 + .../Editor/GoogleRegistries.xml | 11 + .../Editor/GoogleRegistries.xml.meta | 12 + .../ExternalDependencyManager/Editor/LICENSE | 245 ++++ .../Editor/LICENSE.meta | 11 + .../Editor/README.md | 767 ++++++++++ .../Editor/README.md.meta | 11 + ...dency-manager_version-1.2.156_manifest.txt | 14 + ...-manager_version-1.2.156_manifest.txt.meta | 14 + unity/Assets/Firebase.meta | 8 + unity/Assets/Firebase/Editor.meta | 8 + .../Firebase/Editor/AppDependencies.xml | 23 + .../Firebase/Editor/AppDependencies.xml.meta | 11 + .../Editor/CrashlyticsDependencies.xml | 23 + .../Editor/CrashlyticsDependencies.xml.meta | 11 + .../Editor/Firebase.Crashlytics.Editor.dll | 3 + .../Firebase.Crashlytics.Editor.dll.mdb | Bin 0 -> 7065 bytes .../Firebase.Crashlytics.Editor.dll.mdb.meta | 13 + .../Firebase.Crashlytics.Editor.dll.meta | 123 ++ .../Firebase/Editor/Firebase.Editor.dll | 3 + .../Firebase/Editor/Firebase.Editor.dll.mdb | Bin 0 -> 21434 bytes .../Editor/Firebase.Editor.dll.mdb.meta | 13 + .../Firebase/Editor/Firebase.Editor.dll.meta | 38 + ...aseCrashlytics_version-6.15.2_manifest.txt | 77 ++ ...ashlytics_version-6.15.2_manifest.txt.meta | 10 + ...generate_xml_from_google_services_json.exe | 3 + ...ate_xml_from_google_services_json.exe.meta | 11 + .../generate_xml_from_google_services_json.py | 464 +++++++ ...rate_xml_from_google_services_json.py.meta | 11 + .../Firebase/Editor/network_request.exe | 3 + .../Firebase/Editor/network_request.exe.meta | 11 + .../Assets/Firebase/Editor/network_request.py | 416 ++++++ .../Firebase/Editor/network_request.py.meta | 11 + unity/Assets/Firebase/Plugins.meta | 8 + .../Assets/Firebase/Plugins/Crashlytics.meta | 8 + .../Firebase/Plugins/Crashlytics/link.xml | 5 + .../Plugins/Crashlytics/link.xml.meta | 76 + .../Assets/Firebase/Plugins/Firebase.App.dll | 3 + .../Firebase/Plugins/Firebase.App.dll.mdb | Bin 0 -> 27957 bytes .../Plugins/Firebase.App.dll.mdb.meta | 76 + .../Firebase/Plugins/Firebase.App.dll.meta | 122 ++ .../Firebase/Plugins/Firebase.Crashlytics.dll | 3 + .../Plugins/Firebase.Crashlytics.dll.mdb | Bin 0 -> 8791 bytes .../Plugins/Firebase.Crashlytics.dll.mdb.meta | 76 + .../Plugins/Firebase.Crashlytics.dll.meta | 122 ++ .../Firebase/Plugins/Firebase.Platform.dll | 3 + .../Plugins/Firebase.Platform.dll.mdb | Bin 0 -> 11937 bytes .../Plugins/Firebase.Platform.dll.mdb.meta | 76 + .../Plugins/Firebase.Platform.dll.meta | 122 ++ .../Plugins/Firebase.TaskExtension.dll | 3 + .../Plugins/Firebase.TaskExtension.dll.mdb | Bin 0 -> 1189 bytes .../Firebase.TaskExtension.dll.mdb.meta | 76 + .../Plugins/Firebase.TaskExtension.dll.meta | 122 ++ .../Firebase/Plugins/Google.MiniJson.dll | 3 + .../Firebase/Plugins/Google.MiniJson.dll.meta | 122 ++ unity/Assets/Firebase/Plugins/iOS.meta | 8 + .../Firebase/Plugins/iOS/Firebase.App.dll | 3 + .../Firebase/Plugins/iOS/Firebase.App.dll.mdb | Bin 0 -> 27957 bytes .../Plugins/iOS/Firebase.App.dll.mdb.meta | 76 + .../Plugins/iOS/Firebase.App.dll.meta | 76 + .../Plugins/iOS/Firebase.Crashlytics.dll | 3 + .../Plugins/iOS/Firebase.Crashlytics.dll.mdb | Bin 0 -> 8163 bytes .../iOS/Firebase.Crashlytics.dll.mdb.meta | 76 + .../Plugins/iOS/Firebase.Crashlytics.dll.meta | 76 + unity/Assets/Firebase/Plugins/x86_64.meta | 8 + .../x86_64/FirebaseCppApp-6_15_2.bundle | 3 + .../x86_64/FirebaseCppApp-6_15_2.bundle.meta | 76 + .../Plugins/x86_64/FirebaseCppApp-6_15_2.dll | 3 + .../x86_64/FirebaseCppApp-6_15_2.dll.meta | 122 ++ .../Plugins/x86_64/FirebaseCppApp-6_15_2.so | 3 + .../x86_64/FirebaseCppApp-6_15_2.so.meta | 76 + unity/Assets/Firebase/m2repository.meta | 8 + unity/Assets/Firebase/m2repository/com.meta | 8 + .../Firebase/m2repository/com/google.meta | 8 + .../m2repository/com/google/firebase.meta | 8 + .../google/firebase/firebase-app-unity.meta | 8 + .../firebase/firebase-app-unity/6.15.2.meta | 8 + .../6.15.2/firebase-app-unity-6.15.2.pom | 13 + .../6.15.2/firebase-app-unity-6.15.2.pom.meta | 11 + .../6.15.2/firebase-app-unity-6.15.2.srcaar | 3 + .../firebase-app-unity-6.15.2.srcaar.meta | 11 + .../firebase-app-unity/maven-metadata.xml | 10 + .../maven-metadata.xml.meta | 11 + .../firebase/firebase-crashlytics-unity.meta | 8 + .../firebase-crashlytics-unity/6.15.2.meta | 8 + .../firebase-crashlytics-unity-6.15.2.pom | 13 + ...firebase-crashlytics-unity-6.15.2.pom.meta | 11 + .../firebase-crashlytics-unity-6.15.2.srcaar | 3 + ...ebase-crashlytics-unity-6.15.2.srcaar.meta | 11 + .../maven-metadata.xml | 10 + .../maven-metadata.xml.meta | 11 + unity/Assets/Parse.meta | 8 + unity/Assets/Parse/Plugins.meta | 8 + unity/Assets/Parse/Plugins/Unity.Compat.dll | 3 + .../Parse/Plugins/Unity.Compat.dll.meta | 121 ++ unity/Assets/Parse/Plugins/Unity.Tasks.dll | 3 + .../Assets/Parse/Plugins/Unity.Tasks.dll.meta | 121 ++ unity/Assets/Parse/Plugins/dotNet45.meta | 8 + .../Parse/Plugins/dotNet45/Unity.Compat.dll | 3 + .../Plugins/dotNet45/Unity.Compat.dll.meta | 38 + .../Parse/Plugins/dotNet45/Unity.Tasks.dll | 3 + .../Plugins/dotNet45/Unity.Tasks.dll.meta | 38 + .../Android/Firebase/AndroidManifest.xml.meta | 14 +- .../Android/Firebase/project.properties | 10 +- .../Android/Firebase/project.properties.meta | 14 +- .../res/values/crashlytics_build_id.xml | 2 +- .../Firebase/res/values/google-services.xml | 2 +- unity/Assets/Plugins/iOS.meta | 8 + unity/Assets/Plugins/iOS/Firebase.meta | 8 + .../iOS/Firebase/libCrashlyticsiOSWrapper.a | 3 + .../Firebase/libCrashlyticsiOSWrapper.a.meta | 76 + .../Plugins/iOS/Firebase/libFirebaseCppApp.a | 3 + .../iOS/Firebase/libFirebaseCppApp.a.meta | 76 + .../iOS/Firebase/libFirebaseCppCrashlytics.a | 3 + .../Firebase/libFirebaseCppCrashlytics.a.meta | 76 + unity/Assets/Scripts/DebugManager.cs | 2 +- .../google-services-desktop.json.meta | 2 +- unity/Packages/manifest.json | 14 +- unity/ProjectSettings/GvhProjectSettings.xml | 1 + 184 files changed, 7748 insertions(+), 28 deletions(-) create mode 100644 .gitattributes create mode 100644 unity/Assets/Editor Default Resources/Firebase.meta create mode 100644 unity/Assets/Editor Default Resources/Firebase/fb_analytics.png create mode 100644 unity/Assets/Editor Default Resources/Firebase/fb_analytics.png.meta create mode 100644 unity/Assets/Editor Default Resources/Firebase/fb_analytics_dark.png create mode 100644 unity/Assets/Editor Default Resources/Firebase/fb_analytics_dark.png.meta create mode 100644 unity/Assets/Editor Default Resources/Firebase/fb_auth.png create mode 100644 unity/Assets/Editor Default Resources/Firebase/fb_auth.png.meta create mode 100644 unity/Assets/Editor Default Resources/Firebase/fb_auth_dark.png create mode 100644 unity/Assets/Editor Default Resources/Firebase/fb_auth_dark.png.meta create mode 100644 unity/Assets/Editor Default Resources/Firebase/fb_cloud_messaging.png create mode 100644 unity/Assets/Editor Default Resources/Firebase/fb_cloud_messaging.png.meta create mode 100644 unity/Assets/Editor Default Resources/Firebase/fb_cloud_messaging_dark.png create mode 100644 unity/Assets/Editor Default Resources/Firebase/fb_cloud_messaging_dark.png.meta create mode 100644 unity/Assets/Editor Default Resources/Firebase/fb_config.png create mode 100644 unity/Assets/Editor Default Resources/Firebase/fb_config.png.meta create mode 100644 unity/Assets/Editor Default Resources/Firebase/fb_config_dark.png create mode 100644 unity/Assets/Editor Default Resources/Firebase/fb_config_dark.png.meta create mode 100644 unity/Assets/Editor Default Resources/Firebase/fb_crashlytics.png create mode 100644 unity/Assets/Editor Default Resources/Firebase/fb_crashlytics.png.meta create mode 100644 unity/Assets/Editor Default Resources/Firebase/fb_crashlytics_dark.png create mode 100644 unity/Assets/Editor Default Resources/Firebase/fb_crashlytics_dark.png.meta create mode 100644 unity/Assets/Editor Default Resources/Firebase/fb_database.png create mode 100644 unity/Assets/Editor Default Resources/Firebase/fb_database.png.meta create mode 100644 unity/Assets/Editor Default Resources/Firebase/fb_database_dark.png create mode 100644 unity/Assets/Editor Default Resources/Firebase/fb_database_dark.png.meta create mode 100644 unity/Assets/Editor Default Resources/Firebase/fb_dynamic_links.png create mode 100644 unity/Assets/Editor Default Resources/Firebase/fb_dynamic_links.png.meta create mode 100644 unity/Assets/Editor Default Resources/Firebase/fb_dynamic_links_dark.png create mode 100644 unity/Assets/Editor Default Resources/Firebase/fb_dynamic_links_dark.png.meta create mode 100644 unity/Assets/Editor Default Resources/Firebase/fb_functions.png create mode 100644 unity/Assets/Editor Default Resources/Firebase/fb_functions.png.meta create mode 100644 unity/Assets/Editor Default Resources/Firebase/fb_functions_dark.png create mode 100644 unity/Assets/Editor Default Resources/Firebase/fb_functions_dark.png.meta create mode 100644 unity/Assets/Editor Default Resources/Firebase/fb_storage.png create mode 100644 unity/Assets/Editor Default Resources/Firebase/fb_storage.png.meta create mode 100644 unity/Assets/Editor Default Resources/Firebase/fb_storage_dark.png create mode 100644 unity/Assets/Editor Default Resources/Firebase/fb_storage_dark.png.meta create mode 100644 unity/Assets/Editor Default Resources/Firebase/firebase_lockup.png create mode 100644 unity/Assets/Editor Default Resources/Firebase/firebase_lockup.png.meta create mode 100644 unity/Assets/Editor Default Resources/Firebase/firebase_lockup_dark.png create mode 100644 unity/Assets/Editor Default Resources/Firebase/firebase_lockup_dark.png.meta create mode 100644 unity/Assets/ExternalDependencyManager.meta create mode 100644 unity/Assets/ExternalDependencyManager/Editor.meta create mode 100644 unity/Assets/ExternalDependencyManager/Editor/CHANGELOG.md create mode 100644 unity/Assets/ExternalDependencyManager/Editor/CHANGELOG.md.meta create mode 100644 unity/Assets/ExternalDependencyManager/Editor/Google.IOSResolver_v1.2.156.dll create mode 100644 unity/Assets/ExternalDependencyManager/Editor/Google.IOSResolver_v1.2.156.dll.mdb create mode 100644 unity/Assets/ExternalDependencyManager/Editor/Google.IOSResolver_v1.2.156.dll.mdb.meta create mode 100644 unity/Assets/ExternalDependencyManager/Editor/Google.IOSResolver_v1.2.156.dll.meta create mode 100644 unity/Assets/ExternalDependencyManager/Editor/Google.JarResolver_v1.2.156.dll create mode 100644 unity/Assets/ExternalDependencyManager/Editor/Google.JarResolver_v1.2.156.dll.mdb create mode 100644 unity/Assets/ExternalDependencyManager/Editor/Google.JarResolver_v1.2.156.dll.mdb.meta create mode 100644 unity/Assets/ExternalDependencyManager/Editor/Google.JarResolver_v1.2.156.dll.meta create mode 100644 unity/Assets/ExternalDependencyManager/Editor/Google.PackageManagerResolver_v1.2.156.dll create mode 100644 unity/Assets/ExternalDependencyManager/Editor/Google.PackageManagerResolver_v1.2.156.dll.mdb create mode 100644 unity/Assets/ExternalDependencyManager/Editor/Google.PackageManagerResolver_v1.2.156.dll.mdb.meta create mode 100644 unity/Assets/ExternalDependencyManager/Editor/Google.PackageManagerResolver_v1.2.156.dll.meta create mode 100644 unity/Assets/ExternalDependencyManager/Editor/Google.VersionHandler.dll create mode 100644 unity/Assets/ExternalDependencyManager/Editor/Google.VersionHandler.dll.mdb create mode 100644 unity/Assets/ExternalDependencyManager/Editor/Google.VersionHandler.dll.mdb.meta create mode 100644 unity/Assets/ExternalDependencyManager/Editor/Google.VersionHandler.dll.meta create mode 100644 unity/Assets/ExternalDependencyManager/Editor/Google.VersionHandlerImpl_v1.2.156.dll create mode 100644 unity/Assets/ExternalDependencyManager/Editor/Google.VersionHandlerImpl_v1.2.156.dll.mdb create mode 100644 unity/Assets/ExternalDependencyManager/Editor/Google.VersionHandlerImpl_v1.2.156.dll.mdb.meta create mode 100644 unity/Assets/ExternalDependencyManager/Editor/Google.VersionHandlerImpl_v1.2.156.dll.meta create mode 100644 unity/Assets/ExternalDependencyManager/Editor/GoogleRegistries.xml create mode 100644 unity/Assets/ExternalDependencyManager/Editor/GoogleRegistries.xml.meta create mode 100644 unity/Assets/ExternalDependencyManager/Editor/LICENSE create mode 100644 unity/Assets/ExternalDependencyManager/Editor/LICENSE.meta create mode 100644 unity/Assets/ExternalDependencyManager/Editor/README.md create mode 100644 unity/Assets/ExternalDependencyManager/Editor/README.md.meta create mode 100644 unity/Assets/ExternalDependencyManager/Editor/external-dependency-manager_version-1.2.156_manifest.txt create mode 100644 unity/Assets/ExternalDependencyManager/Editor/external-dependency-manager_version-1.2.156_manifest.txt.meta create mode 100644 unity/Assets/Firebase.meta create mode 100644 unity/Assets/Firebase/Editor.meta create mode 100644 unity/Assets/Firebase/Editor/AppDependencies.xml create mode 100644 unity/Assets/Firebase/Editor/AppDependencies.xml.meta create mode 100644 unity/Assets/Firebase/Editor/CrashlyticsDependencies.xml create mode 100644 unity/Assets/Firebase/Editor/CrashlyticsDependencies.xml.meta create mode 100644 unity/Assets/Firebase/Editor/Firebase.Crashlytics.Editor.dll create mode 100644 unity/Assets/Firebase/Editor/Firebase.Crashlytics.Editor.dll.mdb create mode 100644 unity/Assets/Firebase/Editor/Firebase.Crashlytics.Editor.dll.mdb.meta create mode 100644 unity/Assets/Firebase/Editor/Firebase.Crashlytics.Editor.dll.meta create mode 100644 unity/Assets/Firebase/Editor/Firebase.Editor.dll create mode 100644 unity/Assets/Firebase/Editor/Firebase.Editor.dll.mdb create mode 100644 unity/Assets/Firebase/Editor/Firebase.Editor.dll.mdb.meta create mode 100644 unity/Assets/Firebase/Editor/Firebase.Editor.dll.meta create mode 100644 unity/Assets/Firebase/Editor/FirebaseCrashlytics_version-6.15.2_manifest.txt create mode 100644 unity/Assets/Firebase/Editor/FirebaseCrashlytics_version-6.15.2_manifest.txt.meta create mode 100644 unity/Assets/Firebase/Editor/generate_xml_from_google_services_json.exe create mode 100644 unity/Assets/Firebase/Editor/generate_xml_from_google_services_json.exe.meta create mode 100644 unity/Assets/Firebase/Editor/generate_xml_from_google_services_json.py create mode 100644 unity/Assets/Firebase/Editor/generate_xml_from_google_services_json.py.meta create mode 100644 unity/Assets/Firebase/Editor/network_request.exe create mode 100644 unity/Assets/Firebase/Editor/network_request.exe.meta create mode 100644 unity/Assets/Firebase/Editor/network_request.py create mode 100644 unity/Assets/Firebase/Editor/network_request.py.meta create mode 100644 unity/Assets/Firebase/Plugins.meta create mode 100644 unity/Assets/Firebase/Plugins/Crashlytics.meta create mode 100644 unity/Assets/Firebase/Plugins/Crashlytics/link.xml create mode 100644 unity/Assets/Firebase/Plugins/Crashlytics/link.xml.meta create mode 100644 unity/Assets/Firebase/Plugins/Firebase.App.dll create mode 100644 unity/Assets/Firebase/Plugins/Firebase.App.dll.mdb create mode 100644 unity/Assets/Firebase/Plugins/Firebase.App.dll.mdb.meta create mode 100644 unity/Assets/Firebase/Plugins/Firebase.App.dll.meta create mode 100644 unity/Assets/Firebase/Plugins/Firebase.Crashlytics.dll create mode 100644 unity/Assets/Firebase/Plugins/Firebase.Crashlytics.dll.mdb create mode 100644 unity/Assets/Firebase/Plugins/Firebase.Crashlytics.dll.mdb.meta create mode 100644 unity/Assets/Firebase/Plugins/Firebase.Crashlytics.dll.meta create mode 100644 unity/Assets/Firebase/Plugins/Firebase.Platform.dll create mode 100644 unity/Assets/Firebase/Plugins/Firebase.Platform.dll.mdb create mode 100644 unity/Assets/Firebase/Plugins/Firebase.Platform.dll.mdb.meta create mode 100644 unity/Assets/Firebase/Plugins/Firebase.Platform.dll.meta create mode 100644 unity/Assets/Firebase/Plugins/Firebase.TaskExtension.dll create mode 100644 unity/Assets/Firebase/Plugins/Firebase.TaskExtension.dll.mdb create mode 100644 unity/Assets/Firebase/Plugins/Firebase.TaskExtension.dll.mdb.meta create mode 100644 unity/Assets/Firebase/Plugins/Firebase.TaskExtension.dll.meta create mode 100644 unity/Assets/Firebase/Plugins/Google.MiniJson.dll create mode 100644 unity/Assets/Firebase/Plugins/Google.MiniJson.dll.meta create mode 100644 unity/Assets/Firebase/Plugins/iOS.meta create mode 100644 unity/Assets/Firebase/Plugins/iOS/Firebase.App.dll create mode 100644 unity/Assets/Firebase/Plugins/iOS/Firebase.App.dll.mdb create mode 100644 unity/Assets/Firebase/Plugins/iOS/Firebase.App.dll.mdb.meta create mode 100644 unity/Assets/Firebase/Plugins/iOS/Firebase.App.dll.meta create mode 100644 unity/Assets/Firebase/Plugins/iOS/Firebase.Crashlytics.dll create mode 100644 unity/Assets/Firebase/Plugins/iOS/Firebase.Crashlytics.dll.mdb create mode 100644 unity/Assets/Firebase/Plugins/iOS/Firebase.Crashlytics.dll.mdb.meta create mode 100644 unity/Assets/Firebase/Plugins/iOS/Firebase.Crashlytics.dll.meta create mode 100644 unity/Assets/Firebase/Plugins/x86_64.meta create mode 100644 unity/Assets/Firebase/Plugins/x86_64/FirebaseCppApp-6_15_2.bundle create mode 100644 unity/Assets/Firebase/Plugins/x86_64/FirebaseCppApp-6_15_2.bundle.meta create mode 100644 unity/Assets/Firebase/Plugins/x86_64/FirebaseCppApp-6_15_2.dll create mode 100644 unity/Assets/Firebase/Plugins/x86_64/FirebaseCppApp-6_15_2.dll.meta create mode 100644 unity/Assets/Firebase/Plugins/x86_64/FirebaseCppApp-6_15_2.so create mode 100644 unity/Assets/Firebase/Plugins/x86_64/FirebaseCppApp-6_15_2.so.meta create mode 100644 unity/Assets/Firebase/m2repository.meta create mode 100644 unity/Assets/Firebase/m2repository/com.meta create mode 100644 unity/Assets/Firebase/m2repository/com/google.meta create mode 100644 unity/Assets/Firebase/m2repository/com/google/firebase.meta create mode 100644 unity/Assets/Firebase/m2repository/com/google/firebase/firebase-app-unity.meta create mode 100644 unity/Assets/Firebase/m2repository/com/google/firebase/firebase-app-unity/6.15.2.meta create mode 100644 unity/Assets/Firebase/m2repository/com/google/firebase/firebase-app-unity/6.15.2/firebase-app-unity-6.15.2.pom create mode 100644 unity/Assets/Firebase/m2repository/com/google/firebase/firebase-app-unity/6.15.2/firebase-app-unity-6.15.2.pom.meta create mode 100644 unity/Assets/Firebase/m2repository/com/google/firebase/firebase-app-unity/6.15.2/firebase-app-unity-6.15.2.srcaar create mode 100644 unity/Assets/Firebase/m2repository/com/google/firebase/firebase-app-unity/6.15.2/firebase-app-unity-6.15.2.srcaar.meta create mode 100644 unity/Assets/Firebase/m2repository/com/google/firebase/firebase-app-unity/maven-metadata.xml create mode 100644 unity/Assets/Firebase/m2repository/com/google/firebase/firebase-app-unity/maven-metadata.xml.meta create mode 100644 unity/Assets/Firebase/m2repository/com/google/firebase/firebase-crashlytics-unity.meta create mode 100644 unity/Assets/Firebase/m2repository/com/google/firebase/firebase-crashlytics-unity/6.15.2.meta create mode 100644 unity/Assets/Firebase/m2repository/com/google/firebase/firebase-crashlytics-unity/6.15.2/firebase-crashlytics-unity-6.15.2.pom create mode 100644 unity/Assets/Firebase/m2repository/com/google/firebase/firebase-crashlytics-unity/6.15.2/firebase-crashlytics-unity-6.15.2.pom.meta create mode 100644 unity/Assets/Firebase/m2repository/com/google/firebase/firebase-crashlytics-unity/6.15.2/firebase-crashlytics-unity-6.15.2.srcaar create mode 100644 unity/Assets/Firebase/m2repository/com/google/firebase/firebase-crashlytics-unity/6.15.2/firebase-crashlytics-unity-6.15.2.srcaar.meta create mode 100644 unity/Assets/Firebase/m2repository/com/google/firebase/firebase-crashlytics-unity/maven-metadata.xml create mode 100644 unity/Assets/Firebase/m2repository/com/google/firebase/firebase-crashlytics-unity/maven-metadata.xml.meta create mode 100644 unity/Assets/Parse.meta create mode 100644 unity/Assets/Parse/Plugins.meta create mode 100644 unity/Assets/Parse/Plugins/Unity.Compat.dll create mode 100644 unity/Assets/Parse/Plugins/Unity.Compat.dll.meta create mode 100644 unity/Assets/Parse/Plugins/Unity.Tasks.dll create mode 100644 unity/Assets/Parse/Plugins/Unity.Tasks.dll.meta create mode 100644 unity/Assets/Parse/Plugins/dotNet45.meta create mode 100644 unity/Assets/Parse/Plugins/dotNet45/Unity.Compat.dll create mode 100644 unity/Assets/Parse/Plugins/dotNet45/Unity.Compat.dll.meta create mode 100644 unity/Assets/Parse/Plugins/dotNet45/Unity.Tasks.dll create mode 100644 unity/Assets/Parse/Plugins/dotNet45/Unity.Tasks.dll.meta create mode 100644 unity/Assets/Plugins/iOS.meta create mode 100644 unity/Assets/Plugins/iOS/Firebase.meta create mode 100644 unity/Assets/Plugins/iOS/Firebase/libCrashlyticsiOSWrapper.a create mode 100644 unity/Assets/Plugins/iOS/Firebase/libCrashlyticsiOSWrapper.a.meta create mode 100644 unity/Assets/Plugins/iOS/Firebase/libFirebaseCppApp.a create mode 100644 unity/Assets/Plugins/iOS/Firebase/libFirebaseCppApp.a.meta create mode 100644 unity/Assets/Plugins/iOS/Firebase/libFirebaseCppCrashlytics.a create mode 100644 unity/Assets/Plugins/iOS/Firebase/libFirebaseCppCrashlytics.a.meta diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 000000000..8e0ab5811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,7 @@ +*.o filter=lfs diff=lfs merge=lfs +*.a filter=lfs diff=lfs merge=lfs +*.exe filter=lfs diff=lfs merge=lfs +*.srcaar filter=lfs diff=lfs merge=lfs +*.bundle filter=lfs diff=lfs merge=lfs +*.so filter=lfs diff=lfs merge=lfs +*.dll filter=lfs diff=lfs merge=lfs \ No newline at end of file diff --git a/unity/Assets/Editor Default Resources/Firebase.meta b/unity/Assets/Editor Default Resources/Firebase.meta new file mode 100644 index 000000000..9cb847165 --- /dev/null +++ b/unity/Assets/Editor Default Resources/Firebase.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3d5d8f1f25de31b4e9c30af30b916396 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity/Assets/Editor Default Resources/Firebase/fb_analytics.png b/unity/Assets/Editor Default Resources/Firebase/fb_analytics.png new file mode 100644 index 0000000000000000000000000000000000000000..3f19563a02333190a7d6cac490112c5164b417d6 GIT binary patch literal 134 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1|)ksWqE;=ucwP+NCjhZf&PbuT5>jQOpR;; z;m#Y`jjQ|Nj5K z&(b08u#xj9n-lLXo}=6=5+9_c*kmbu+~~QmaR!)>GCbnWt72)!+4;D~ca^lqDho&b f$=Y^5ymJ^eE()^ zo!vQyk}^1}zSX+?d$n)QmGYwHA8IFknPC#8zly^`%?e;xi7t t*ARW+PfWT~j?m9|x2v4BW%-vka0lYTCF;U{V!QwV002ovPDHLkV1jG`f=2)V literal 0 HcmV?d00001 diff --git a/unity/Assets/Editor Default Resources/Firebase/fb_auth.png.meta b/unity/Assets/Editor Default Resources/Firebase/fb_auth.png.meta new file mode 100644 index 000000000..ab6bab017 --- /dev/null +++ b/unity/Assets/Editor Default Resources/Firebase/fb_auth.png.meta @@ -0,0 +1,68 @@ +fileFormatVersion: 2 +guid: 394b3ec4d60c24476a12e4ba696d9e5d +labels: +- gvh +- gvh_version-6.15.2 +- gvhp_exportpath-Editor Default Resources/Firebase/fb_auth.png +timeCreated: 1473376335 +licenseType: Pro +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: + x: 0.5 + y: 0.5 + spriteBorder: + x: 0 + y: 0 + z: 0 + w: 0 + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity/Assets/Editor Default Resources/Firebase/fb_auth_dark.png b/unity/Assets/Editor Default Resources/Firebase/fb_auth_dark.png new file mode 100644 index 0000000000000000000000000000000000000000..e90ec77138bbaea8cbde417f3c3f636e313b50b2 GIT binary patch literal 305 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1|)ksWqE-VOS+@4BLl<6e(pbstU&$?PZ!4! z3&FRO&T<}d5NX*wk43*JK}x{pR&zv)Z-#K0z->Y64-W!2Fgbo$@Z#i;v$J^5Z#dS> zA@?caQ(ciTZ&&s%YROJa4jcktWAZIXv{cZh;i=w8-# literal 0 HcmV?d00001 diff --git a/unity/Assets/Editor Default Resources/Firebase/fb_auth_dark.png.meta b/unity/Assets/Editor Default Resources/Firebase/fb_auth_dark.png.meta new file mode 100644 index 000000000..a7aa0b073 --- /dev/null +++ b/unity/Assets/Editor Default Resources/Firebase/fb_auth_dark.png.meta @@ -0,0 +1,68 @@ +fileFormatVersion: 2 +guid: 3a9e1ef6287664c389bb09e2ac1b23b7 +labels: +- gvh +- gvh_version-6.15.2 +- gvhp_exportpath-Editor Default Resources/Firebase/fb_auth_dark.png +timeCreated: 1472679008 +licenseType: Pro +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: + x: 0.5 + y: 0.5 + spriteBorder: + x: 0 + y: 0 + z: 0 + w: 0 + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity/Assets/Editor Default Resources/Firebase/fb_cloud_messaging.png b/unity/Assets/Editor Default Resources/Firebase/fb_cloud_messaging.png new file mode 100644 index 0000000000000000000000000000000000000000..350c03f7eb9eae8e676b29ac670c63bed87d6c69 GIT binary patch literal 510 zcmV&*jewxW(Wn7MCx?KVz=Rz1;3Whic=7)- z;@zW15pq#4Dk4ZW5fU}0iDE)BE)y8PZ?L6jq0u?!!EdI!s;j!*tLh;5U!wl5i9CpT zu$#UVdQpRO9AO2AC>vE}TZ7;Q?XzgaXM8~xk1+-pa)6SkE@=sZe%hw-2}}5kFq*iS z!E2mi3k4Bf;V?auc!f0PafxVn{}D+fu!e#NCwxom6l$@L5BQ04@sCEw4dDuBxP7r5 zqi|)LSimk!CobHiXLthZ?L7IKdhrGp`8|C5UE&W9?ZG-X!$tkVkB9s`!gs_?mZ0B_ zYJp*@$FQE(`ZvZAxXT$dcoP$K^qJZOJVI`Uwa&rGSCK+K_YVFC;d%2-<)V$o5m=g5 zBqR5ph;P_H&KkP(=dcbJaK~J^tFk`}C$i0c%VeKf4Zwr$2XKOn4;r0#2Uijei@q3b zxVd)19=OYWXou-9hZAz0|6aTJw*(F_OlJoUcnLQ}elg)#GxCcu<#gD{b!a>JfH2p5&!@I07*qoM6N<$f=G4Y AkN^Mx literal 0 HcmV?d00001 diff --git a/unity/Assets/Editor Default Resources/Firebase/fb_cloud_messaging.png.meta b/unity/Assets/Editor Default Resources/Firebase/fb_cloud_messaging.png.meta new file mode 100644 index 000000000..6dc02f230 --- /dev/null +++ b/unity/Assets/Editor Default Resources/Firebase/fb_cloud_messaging.png.meta @@ -0,0 +1,68 @@ +fileFormatVersion: 2 +guid: 837e8e1f35e334e81931d0857680cebf +labels: +- gvh +- gvh_version-6.15.2 +- gvhp_exportpath-Editor Default Resources/Firebase/fb_cloud_messaging.png +timeCreated: 1473376336 +licenseType: Pro +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: + x: 0.5 + y: 0.5 + spriteBorder: + x: 0 + y: 0 + z: 0 + w: 0 + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity/Assets/Editor Default Resources/Firebase/fb_cloud_messaging_dark.png b/unity/Assets/Editor Default Resources/Firebase/fb_cloud_messaging_dark.png new file mode 100644 index 0000000000000000000000000000000000000000..1fbb8dc7c3ff30de7a231608b052bf452ef639ee GIT binary patch literal 521 zcmV+k0`~ohP)!g%}hDFThyY_DHw9TuW{OZ&5Jip)f_uccn@AJ;#_!p5(CTr{- z#3&@h#7%7qdY}U0a05GrVO%rjjl71KjidHM0?yz8nxPx2AdKlYPeDpdQvq8cOI>H>3Wh;ee=z7yV>f43sjGDy?Y=SK_HKMHq7kFS5WIU>xj@$-U zg^ox~2HoI?CauvX;1*6;2H_FLAZ7T(SgS>m&{dg$4NMoIA5t$==H$ar4UST{gkc0O z{i>2hLMDT0V)R6rAJVtSd|!PA6TPK%_<$|AfLBnwA&#SIW$ptVxe@BYymHbWKosp= zDoH~pi2&$pu*NB(C2K-+^m+tcpgSvCK=(3a{)$B9B;3#rYEZ;5JffzCNwBv=bruT@ zJ=7PzX=1F+XZT{)^iqBk`pooap)ci}-RFFEwvE_f&ONl<_!q)2I_l{$W0^LD00000 LNkvXXu0mjffllo- literal 0 HcmV?d00001 diff --git a/unity/Assets/Editor Default Resources/Firebase/fb_cloud_messaging_dark.png.meta b/unity/Assets/Editor Default Resources/Firebase/fb_cloud_messaging_dark.png.meta new file mode 100644 index 000000000..64c5dcc02 --- /dev/null +++ b/unity/Assets/Editor Default Resources/Firebase/fb_cloud_messaging_dark.png.meta @@ -0,0 +1,68 @@ +fileFormatVersion: 2 +guid: 20c5b8a1f82cb4aadb77ca20683d2a6e +labels: +- gvh +- gvh_version-6.15.2 +- gvhp_exportpath-Editor Default Resources/Firebase/fb_cloud_messaging_dark.png +timeCreated: 1472679008 +licenseType: Pro +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: + x: 0.5 + y: 0.5 + spriteBorder: + x: 0 + y: 0 + z: 0 + w: 0 + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity/Assets/Editor Default Resources/Firebase/fb_config.png b/unity/Assets/Editor Default Resources/Firebase/fb_config.png new file mode 100644 index 0000000000000000000000000000000000000000..3c69287360cb947de5b4a4931595fb05a34defa9 GIT binary patch literal 253 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1|)ksWqE-VOS+@4BLl<6e(pbstU&%2PZ!4! z3&G?B36}%Bv!iEh;1tq)#uUBP}|l~uHHH{X%tPn~$~TCfE0EWYBvb6CSvK!)>$-tsG_UpxyG zX_M%j6{Mf6lI6wA^76QWh^6eIOQIf%95pQg2|}@ao?JN^9sTCZ8+f9-*K|jit=r?% yQ#WIE;3egyC)th~B*irP^Il77_GgYPVpumz_+TXSXA_|N89ZJ6T-G@yGywoa%Tj0n literal 0 HcmV?d00001 diff --git a/unity/Assets/Editor Default Resources/Firebase/fb_config.png.meta b/unity/Assets/Editor Default Resources/Firebase/fb_config.png.meta new file mode 100644 index 000000000..28f90b8b2 --- /dev/null +++ b/unity/Assets/Editor Default Resources/Firebase/fb_config.png.meta @@ -0,0 +1,68 @@ +fileFormatVersion: 2 +guid: 415eaec414af14d11955222a282aca08 +labels: +- gvh +- gvh_version-6.15.2 +- gvhp_exportpath-Editor Default Resources/Firebase/fb_config.png +timeCreated: 1473376335 +licenseType: Pro +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: + x: 0.5 + y: 0.5 + spriteBorder: + x: 0 + y: 0 + z: 0 + w: 0 + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity/Assets/Editor Default Resources/Firebase/fb_config_dark.png b/unity/Assets/Editor Default Resources/Firebase/fb_config_dark.png new file mode 100644 index 0000000000000000000000000000000000000000..5441081da38360fd28869f32ec52c3d082e8223d GIT binary patch literal 253 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1|)ksWqE-VOS+@4BLl<6e(pbstU&%2PZ!4! z3&G?B37rT3|NjpRDdoO!;Oq^a)I}Gjd6YOyZj|H*NnsK>&zO{$^C{xUG-D$pJ?75G zMT(kj3ul~fI^t8M|O)W$;sT1@4#9sQ?USL`bM9Kf^qiUZGK4I=?D&KG^l zubh7IY@&SIiPx$fJsC_R5%f>lf6nqK@djcA1DZ-l~oG0P!Pozu(r0-SMU+6P3>FQX(!fs0~@gr zJ3-M(MUnV-&a#{A-EbiZ`QT({XJ_W_>~0#3F>7MLdV9p}#@IIFRbAd>&B7G^nQYBs z`Xm+3mV4%O&+J-jSO;M81zbm)AxM9%%7O-4Y(8da52dnY=lKpi=pYG?%^9&p;jrW4A{nDQH!0z2MnZqhv{kLExR*|t;2q-c+Pkm?Y<#D!}K)rAlp`umg@>{}egk+JtW?={3z{|0V4LF1)FlH0%AndfvvAc0vo$>)AFze;fR$GA3_5ILG?)5B!=+ta~qrdjJ3c07*qoM6N<$f`*0BF8}}l literal 0 HcmV?d00001 diff --git a/unity/Assets/Editor Default Resources/Firebase/fb_crashlytics.png.meta b/unity/Assets/Editor Default Resources/Firebase/fb_crashlytics.png.meta new file mode 100644 index 000000000..78dff30d0 --- /dev/null +++ b/unity/Assets/Editor Default Resources/Firebase/fb_crashlytics.png.meta @@ -0,0 +1,68 @@ +fileFormatVersion: 2 +guid: 008a5e76206e49f9b06d8ba144aabb38 +labels: +- gvh +- gvh_version-6.15.2 +- gvhp_exportpath-Editor Default Resources/Firebase/fb_crashlytics.png +timeCreated: 1473376335 +licenseType: Pro +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: + x: 0.5 + y: 0.5 + spriteBorder: + x: 0 + y: 0 + z: 0 + w: 0 + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity/Assets/Editor Default Resources/Firebase/fb_crashlytics_dark.png b/unity/Assets/Editor Default Resources/Firebase/fb_crashlytics_dark.png new file mode 100644 index 0000000000000000000000000000000000000000..52f5d48f91001fca05b21e004be293e54ea49edf GIT binary patch literal 471 zcmV;|0Vw{7P)Px$kx4{BR5%f>lus^0Q544S(~5xziHS`J14Ft77C<*(#xiu)bYf7ofwBdrX4WAj zVo+Mo?|aU9?tM?Am7e5t&;8DKzWe9h3Sq&K&El8m`3brs(+;yNyPnp!^jiUgCRmAT zGHV*#I4b|7HA9ScDfhvE{J^9#^N4fj$}uTwXH?F>hAGbBX1W%4tnRQuVcCm}s%wFn zBiSLBJz_^ax@F>vJ(KGS9>F`<0rLf>EpQ92z}h_BeolwTKOC#s3ho;SC1kipjRkyNpi;<$-J12QB4)hJ;}1 zN1?V3E=`k|)*dY)3F2p?o%yqwkn7nTgDs%=1Q&d$drcBU%=G&mfK?SO)DT~d=qmRH z*Va3(3blg|by%peD#zW}YOquenjVVrc*NZYaA^vK@D(e=0+ zh(_X=4;lQykKv1dVRl6mH%8QUDHgkTV;}?#qo4=$DQ+@yd N002ovPDHLkV1j1t*#H0l literal 0 HcmV?d00001 diff --git a/unity/Assets/Editor Default Resources/Firebase/fb_crashlytics_dark.png.meta b/unity/Assets/Editor Default Resources/Firebase/fb_crashlytics_dark.png.meta new file mode 100644 index 000000000..530c0d557 --- /dev/null +++ b/unity/Assets/Editor Default Resources/Firebase/fb_crashlytics_dark.png.meta @@ -0,0 +1,68 @@ +fileFormatVersion: 2 +guid: 214009068900439da4a9cded17d58090 +labels: +- gvh +- gvh_version-6.15.2 +- gvhp_exportpath-Editor Default Resources/Firebase/fb_crashlytics_dark.png +timeCreated: 1472679008 +licenseType: Pro +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: + x: 0.5 + y: 0.5 + spriteBorder: + x: 0 + y: 0 + z: 0 + w: 0 + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity/Assets/Editor Default Resources/Firebase/fb_database.png b/unity/Assets/Editor Default Resources/Firebase/fb_database.png new file mode 100644 index 0000000000000000000000000000000000000000..a2a186de39d258a56f5f28cf0586f3d5aa584786 GIT binary patch literal 248 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1|)ksWqE-VOS+@4BLl<6e(pbstU&&HPZ!4! z3&G?Bi8l>`CmW?4$_xZPD|ZSW{=*Tng|B0Mvxspchlav&g9%|1n41=)8EiNp5x^<1 zoyW6BB27F%@J{#%Jry@&N7E2Cz)Qb#WBs=#Ma?x z63KA$^nx!-*iBj8gtIj~^d$@qOE~=E6`&kp?m|9>{aO-lzI9%1E4b=)E5trI7Hp&Z$YE2^3kqZv;v;l?Dxo$CU_`Lexs1NvRZH00}}u z;uVQXp*Ru>jYm)@JbwSZJ2z_&E}fX5H&YV3nv(Ei>Y52tfGh!>y72df-Z$cjS zUi~!T6w%|5#=l`(hYj%3WQ%X~48Bo#g*8})9e9E=bi+B^fvcCWM9eI_z!Dt6b0A0S zBR$X#Cr~%xJu%_{&LEW=3?tAA+j2JQ@rmeUCYG!X!;l#hty+3%wnd~>vtd|)!(dmk z1?UX>y`cMpz6!cvVFiokOmk%o=wq$l)X6LvOVjm!c-bGQmcpklHmG>gIGep)r~9jm?($Jk)^Hdvanr<%hr;xPP2*0-r>&gkdYnVq5>GcK&mvi%CxsSVI& zlh(se%wSa)uHyE%i5L2LF%00WY1pQ-~a#s M07*qoM6N<$f&(VbB>(^b literal 0 HcmV?d00001 diff --git a/unity/Assets/Editor Default Resources/Firebase/fb_dynamic_links_dark.png.meta b/unity/Assets/Editor Default Resources/Firebase/fb_dynamic_links_dark.png.meta new file mode 100644 index 000000000..b1ec1479f --- /dev/null +++ b/unity/Assets/Editor Default Resources/Firebase/fb_dynamic_links_dark.png.meta @@ -0,0 +1,68 @@ +fileFormatVersion: 2 +guid: 9355a4671cfe4eef90879863318d1a4b +labels: +- gvh +- gvh_version-6.15.2 +- gvhp_exportpath-Editor Default Resources/Firebase/fb_dynamic_links_dark.png +timeCreated: 1472679009 +licenseType: Pro +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: + x: 0.5 + y: 0.5 + spriteBorder: + x: 0 + y: 0 + z: 0 + w: 0 + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity/Assets/Editor Default Resources/Firebase/fb_functions.png b/unity/Assets/Editor Default Resources/Firebase/fb_functions.png new file mode 100644 index 0000000000000000000000000000000000000000..776283e5cc8e6632ccb0606e72bbce1c475a901c GIT binary patch literal 449 zcmV;y0Y3hTP)!Tu~4O@SpFQT{R!5sEA1f3!5Y;R#qy4sk9XTOG_bDAZ;LZSX6?IfglD! z@gwNk9O1F-y1PLKE_Y_$ednDwGw1Tm_5yGFI6s4WHBq)4SilO-aoPoJ4jb{0+W{`( zBknMQ{VssZ7{*vw{(bC-~CC?;c_jFSFNhR$>Vsa2c?#ebn$5#sfBkqQE~~ zg=r%!`>{rvd5N1M$>vjyNzox+$7m&fh1ZpMv~^rM0p4X_#SW$uZ(=L{1h%oB__hi# z_z3f&^1-s=7m3SuFAjEK{0%?Sb=bo|{6E;mMLThHVtAGHU}r7QPr5Z_;3>OYkA$u< z{~s9hndKqWO8gDO>5Ruz6wr&U;a!w+fS+a1kCU9lo5<*(3)tseb8wUH7W r^}y~ZBn|`C)@qpTqkivGyXUiee^fZ>5y%qK00000NkvXXu0mjfX6nD- literal 0 HcmV?d00001 diff --git a/unity/Assets/Editor Default Resources/Firebase/fb_functions.png.meta b/unity/Assets/Editor Default Resources/Firebase/fb_functions.png.meta new file mode 100644 index 000000000..558a27c8a --- /dev/null +++ b/unity/Assets/Editor Default Resources/Firebase/fb_functions.png.meta @@ -0,0 +1,68 @@ +fileFormatVersion: 2 +guid: 953367231f9e3e22e70e5d1c91a40fe5 +labels: +- gvh +- gvh_version-6.15.2 +- gvhp_exportpath-Editor Default Resources/Firebase/fb_functions.png +timeCreated: 1473376335 +licenseType: Pro +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: + x: 0.5 + y: 0.5 + spriteBorder: + x: 0 + y: 0 + z: 0 + w: 0 + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity/Assets/Editor Default Resources/Firebase/fb_functions_dark.png b/unity/Assets/Editor Default Resources/Firebase/fb_functions_dark.png new file mode 100644 index 0000000000000000000000000000000000000000..64741fc6b7e42499f678fb500559024e7f9991b1 GIT binary patch literal 464 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 e?@D#~2pNcamFM-opl$Fbd2ZXDlz#&+fpUca literal 0 HcmV?d00001 diff --git a/unity/Assets/Editor Default Resources/Firebase/firebase_lockup_dark.png.meta b/unity/Assets/Editor Default Resources/Firebase/firebase_lockup_dark.png.meta new file mode 100644 index 000000000..e5e990ff0 --- /dev/null +++ b/unity/Assets/Editor Default Resources/Firebase/firebase_lockup_dark.png.meta @@ -0,0 +1,68 @@ +fileFormatVersion: 2 +guid: b93330fc8ea08407dbc514b5101afa14 +labels: +- gvh +- gvh_version-6.15.2 +- gvhp_exportpath-Editor Default Resources/Firebase/firebase_lockup_dark.png +timeCreated: 1472601251 +licenseType: Pro +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: + x: 0.5 + y: 0.5 + spriteBorder: + x: 0 + y: 0 + z: 0 + w: 0 + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity/Assets/ExternalDependencyManager.meta b/unity/Assets/ExternalDependencyManager.meta new file mode 100644 index 000000000..ace8c48eb --- /dev/null +++ b/unity/Assets/ExternalDependencyManager.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8fd00a378c003a744a0b97aa9dd267a8 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity/Assets/ExternalDependencyManager/Editor.meta b/unity/Assets/ExternalDependencyManager/Editor.meta new file mode 100644 index 000000000..c64053abe --- /dev/null +++ b/unity/Assets/ExternalDependencyManager/Editor.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 86bb49c701770884690f88f86d8aee35 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity/Assets/ExternalDependencyManager/Editor/CHANGELOG.md b/unity/Assets/ExternalDependencyManager/Editor/CHANGELOG.md new file mode 100644 index 000000000..1a61700c4 --- /dev/null +++ b/unity/Assets/ExternalDependencyManager/Editor/CHANGELOG.md @@ -0,0 +1,1228 @@ +# Version 1.2.156 - June 10, 2020 +* All: Described EDM4U analytics data usage in readme. +* Android Resolver: Fixed that the generated local repo assets contains + redundent labels which are causing Version Handler to failed while + uninstalling packages. +* Android Resolver: Fixed that the repo url injected into mainTemplate.gradle + is incorrect when Unity is configured to export gradle project. +* Android Resolver: Limited to only create local Maven repo when the source + repo contains ".srcaar" file. + +# Version 1.2.155 - May 14, 2020 +* All: Fixed compiler error when build with Unity 5.4 or below due to the + usage of Rect.zero. +* All: Ignore cases when checking command line arguments. + +# Version 1.2.154 - May 14, 2020 +* All: Make each MultiSelectWindow for different purposes to have its own + unique window. +* All: Replace all dialog with DialogWindow which is implemented from + EditorWindow. +* Package Manager Resolver: Clarify how manifest.json will be changed in Package + Manager Resolver window. + +# Version 1.2.153 - Apr 24, 2020 +* Android Resolver: Fixed an exception when repainting the Android resolution + window in Unity 2019.3.x. + +# Version 1.2.152 - Apr 17, 2020 +* Version Handler: Fixed exception when waiting for enabled editor DLLs to + load. +* Android Resolver: Fixed regression when using a Custom Gradle Template + on Windows. + +# Version 1.2.151 - Apr 16, 2020 +## Bug Fixes +* Version Handler: When waiting for newly enabled editor DLLs to load, ignore + all DLLs that do not have a file-system location. +* Android Resolver: Fixed resolution when using a Custom Gradle Template with + libraries stored in a local maven repository distributed with a plugin + installed with the Unity Package Manager. + +# Version 1.2.150 - Apr 9, 2020 +## Bug Fixes +* All: The new packaging script when run on MacOS was generating a + .unitypackage archive that could not be read by Unity on Windows. + This release simply repackages the plugin with tar/gzip to fix the problem. + +# Version 1.2.149 - Apr 8, 2020 +## Bug Fixes +* Package Manager Resolver: Fixed spurious error message when resuming + migration after installing a UPM package. + +# Version 1.2.148 - Apr 8, 2020 +## Bug Fixes +* Package Manager Resolver: Fixed an exception when resuming migration + after installing a UPM package. + +# Version 1.2.147 - Apr 8, 2020 +## Bug Fixes +* Version Handler: Fixed alias traversal bug which caused problems when + migrating from installed .unitypackage files to UPM packages. + +# Version 1.2.146 - Apr 8, 2020 +## Bug Fixes +* Version Handler: Fixed exception in manifest parsing when a manifest is + detected with no aliases. + +# Version 1.2.145 - Apr 2, 2020 +## New Features +* Package Manager Resolver: Added a method to migrate Version Handler + managed packages installed via `.unitypackage` to Unity Package Manager + packages. This is initially used to migrate the External Dependency Manager + to UPM. + +## Changes +* All: Verbose logging is now no longer automatically enabled in batch mode + across all components. Instead logging can be configured using each + component's verbose logging setting or by using the `-gvh_log_debug` command + line flag when starting Unity. +* Version Handler: Sped up version handler updates when the app domain isn't + reloaded. + +## Bug Fixes +* Version Handler: Fixed the display of the obsolete files clean up dialog + when the asset database refreshes. +* Version Handler: Improved reliability of callback from + the VersionHandler.UpdateCompleteMethods event when an asset database + refresh occurs. +* Version Handler: Fixed duplicate exportPath labels when 'Assets/' is the + root of paths assigned to files. +* Version Handler: Handle empty lines in manifest files. + +# Version 1.2.144 - Mar 23, 2020 +## Changed +* iOS Resolver: Removed the ability to configure the Xcode target a Cocoapod + is added to. + +## Bug Fixes +* iOS Resolver: Reverted support for adding Cocoapods to multiple targets as + it caused a regression (exception thrown during post-build step) in some + versions of Unity. + +# Version 1.2.143 - Mar 20, 2020 +## Bug Fixes +* Android Resolver: Fixed caching of resolution state which was causing + the resolver to always run when no dependencies had changed. + +# Version 1.2.142 - Mar 19, 2020 +## Changes +* Package Manager Resolver: Enabled auto-add by default. + +# Version 1.2.141 - Mar 19, 2020 +## Bug Fixes +* Fixed a bug when retrieving project settings. If a plugin was configured + to fetch project settings, if a setting was fetched (e.g "foo") and this + setting existed in the system settings but not the project settings the + system value would override the default value leading to unexpected + behavior. +* Fixed a warning when caching web request classes in Unity 5.6. + +# Version 1.2.140 - Mar 19, 2020 +## Bug Fixes +* Fixed measurement reporting in Unity 5.x. +* Version Handler: Fixed NullReferenceException when an asset doesn't have + an AssetImporter. + +# Version 1.2.139 - Mar 18, 2020 +## Changed +* Added documentation to the built plugin. + +# Version 1.2.138 - Mar 17, 2020 +## New Features +* Package Manager Resolver: Added the Package Manager Resolver + component that allows developers to easily boostrap Unity Package Manager + (UPM) registry addition using unitypackage plugins. +* Version Handler: Added a window that allows plugins to managed by the + Version Handler to be uninstalled. +* Version Handler: Added support for displaying installed plugins. +* Version Handler: Added support for moving files in plugins to their install + locations (if the plugin has been configured to support this). +* iOS Resolver: Added the ability to configure the Xcode target a Cocoapod is + added to. + +## Bug Fixes +* Fixed upgrade from version 1.2.137 and below after the plugin rename to + EDM4U broke the upgrade process. +* Android Resolver: Worked around PlayerSettings.Android.targetSdkVersion + returning empty names for some values in 2019.x. +* Version Handler: Fixed the display of the obsolete files clean up window. +* Version Handler: Fixed managed file check when assets are modified in the + project after plugin import. + +# Version 1.2.137 - Mar 6, 2020 +## Changed +* Renamed package to External Package Manager for Unity (EDM4U). + We changed this to reflect what this plugin is doing today which is far more + than the original scope which just consisted of importing jar files from the + Android SDK maven repository. + Scripts that used to pull `play-services-resolver*.unitypackage` will now have + to request `external-dependency-manager*.unitypackage` instead. + We'll still be shipping a `play-services-resolver*_manifest.txt` file to + handle upgrading from older versions of the plugin. + +## New Features +* All Components: Added reporting of usage so that we can remotely detect + errors and target improvements. +* Android Resolver: Added support for *Dependencies.xml files in Unity Package + Manager packages. +* iOS Resolver: Added support for *Dependencies.xml files in Unity Package + Manager packages. + +## Bug Fixes +* Version Handler: Disabled attempts to disable asset metadata modification + when assets are in a Unity Package Manager managed package. + +# Version 1.2.136 - Feb 19, 2019 +## Bug Fixes +* Android Resolver: Fixed OpenJDK path discovery in Unity 2019.3.1. + +# Version 1.2.135 - Dec 5, 2019 +## Bug Fixes +* All Components: Fixed stack overflow when loading project settings. + +# Version 1.2.134 - Dec 4, 2019 +## Bug Fixes +* All Components: Fixed an issue which caused project settings to be cleared + when running in batch mode. + +# Version 1.2.133 - Nov 18, 2019 +## Bug Fixes +* All Components: Failure to save project settings will now report an error + to the log rather than throwing an exception. + +# Version 1.2.132 - Nov 11, 2019 +## Bug Fixes +* Android Resolver: Worked around expansion of DIR_UNITYPROJECT on Windows + breaking Gradle builds when used as part of a file URI. +* Android Resolver: mainTemplate.gradle is only written if it needs to be + modified. + +# Version 1.2.131 - Oct 29, 2019 +## Bug Fixes +* Version Handler: Improved execution of events on the main thread in batch + mode. +* Version Handler: Improved log level configuration at startup. +* Version Handler: Improved performance of class lookup in deferred method + calls. +* Version Handler: Fixed rename to enable / disable for editor assets. +* iOS Resolver: Improved log level configuration at startup. +* Android Resolver: Improved local maven repo path reference in + mainTemplate.gradle using DIR_UNITYPROJECT. DIR_UNITYPROJECT by Unity + to point to the local filesystem path of the Unity project when Unity + generates the Gradle project. + +# Version 1.2.130 - Oct 23, 2019 +## New Features +* iOS Resolver: Added support for modifying the Podfile before `pod install` + is executed. + +## Bug Fixes +* Version Handler: Fixed invalid classname error when calling + `VersionHandler.UpdateVersionedAssets()`. + +# Version 1.2.129 - Oct 2, 2019 +## Bug Fixes +* iOS Resolver: Changed Cocoapod integration in Unity 2019.3+ to + only add Pods to the UnityFramework target. + +# Version 1.2.128 - Oct 1, 2019 +## Bug Fixes +* iOS Resolver: Fixed Cocoapod project integration mode with Unity + 2019.3+. + +# Version 1.2.127 - Sep 30, 2019 +## Changes +* Android Resolver: All Android Resolver settings File paths are now + serialized with POSIX directory separators. + +# Version 1.2.126 - Sep 27, 2019 +## Changes +* Android Resolver: File paths are now serialized with POSIX directory + separators. +## Bug Fixes +* Android Resolver: Fixed resolution when the parent directory of a Unity + project contains a Gradle project (i.e `settings.gradle` file). + +# Version 1.2.125 - Sep 23, 2019 +## Bug Fixes +* All components: Silenced a warning about not being able to set the console + encoding to UTF8. +* Android Resolver: Worked around broken AndroidSDKTools class in some + versions of Unity. +* iOS Resolver: Fixed iOS target SDK version check +* Version Handler: Changed clean up obsolete files window so that it doesn't + exceed the screen size. + +# Version 1.2.124 - Jul 28, 2019 +## Bug Fixes +* All components: Fixed regression with source control integration when using + Unity 2019.1+. + +# Version 1.2.123 - Jul 23, 2019 +## New Features +* All components: Source control integration for project settings. +## Changes +* Android Resolver: Removed AAR cache as it now makes little difference to + incremental resolution performance. +* Android Resolver: Improved embedded resource management so that embedded + resources should upgrade when the plugin is updated without restarting + the Unity editor. +## Bug Fixes +* Version Handler: Fixed InvokeMethod() and InvokeStaticMethod() when calling + methods that have interface typed arguments. + +# Version 1.2.122 - Jul 2, 2019 +## Bug Fixes +* iOS Resolver: Worked around Unity not loading the iOS Resolver DLL as it + referenced the Xcode extension in a public interface. The iOS Resolver + DLL still references the Xcode extension internally and just handles + missing type exceptions dynamically. + +# Version 1.2.121 - Jun 27, 2019 +## Bug Fixes +* Android Resolver: Fixed warning about missing Packages folder when loading + XML dependencies files in versions of Unity without the package manager. +* Android Resolver: Fixed resolution window progress bar exceeding 100%. +* Android Resolver: If AndroidX is detected in the set of resolved libraries, + the user will be prompted to enable the Jetifier. +* Android Resolver: Improved text splitting in text area windows. +* iOS Resolver: Added support for Unity's breaking changes to the Xcode API + in 2019.3.+. Cocoapods are now added to build targets, Unity-iPhone and + UnityFramework in Unity 2019.3+. + +# Version 1.2.120 - Jun 26, 2019 +## New Features +* Android Resolver: Added support for loading *Dependencies.xml files from + Unity Package Manager packages. +* Android Resolver: Resolution window is now closed if resolution runs as + a pre-build step. +* iOS Resolver: Added support for loading *Dependencies.xml files from + Unity Package Manager packages. +## Bug Fixes +* Android Resolver: Fixed generation of relative repo paths when using + mainTemplate.gradle resolver. +* Android Resolver: Fixed copy of .srcaar to .aar files in repos embedded in a + project when a project path has characters (e.g whitespace) that are escaped + during conversion to URIs. +* Android Resolver: Fixed auto-resolution always running if the Android SDK + is managed by Unity Hub. + +# Version 1.2.119 - Jun 19, 2019 +## Bug Fixes +* Android Resolver: Fixed error reported when using Jetifier integration + in Unity 2018+ if the target SDK is set to "highest installed". + +# Version 1.2.118 - Jun 18, 2019 +## New Features +* Android Resolver: Added initial + [Jetifier](https://developer.android.com/studio/command-line/jetifier) + integration which simplifies + [migration](ttps://developer.android.com/jetpack/androidx/migrate) + to Jetpack ([AndroidX](https://developer.android.com/jetpack/androidx)) + libraries in cases where all dependencies are managed by the Android + Resolver. + This can be enabled via the `Use Jetifier` option in the + `Assets > Play Services Resolver > Android Resolver > Settings` menu. + Caveats: + - If your project contains legacy Android Support Library .jar and .aar + files, these files will need to be removed and replaced with references to + artifacts on Maven via `*Dependencies.xml` files so that the Jetifier + can map them to Jetpack (AndroidX) libraries. + For example, remove the file `support-v4-27.0.2.jar` and replace it with + `` in a + `*Dependencies.xml` file. + - If your project contains .jar or .aar files that use the legacy Android + Support Libraries, these will need to be moved into a local Maven repo + [See this guide](https://maven.apache.org/guides/mini/guide-3rd-party-jars-local.html) + and then these files should be removed from your Unity project and instead + referenced via `*Dependencies.xml` files so that the Jetifier can + patch them to reference the Jetpack lirbaries. + +## Bug Fixes +* Android Resolver: Disabled version locking of com.android.support:multidex + does not use the same versioning scheme as other legacy Android support + libraries. +* Version Handler: Made Google.VersionHandler.dll's asset GUID stable across + releases. This faciliates error-free import into projects where + Google.VersionHandler.dll is moved from the default install location. + +# Version 1.2.117 - Jun 12, 2019 +## Bug Fixes +* Android Resolver: Fix copying of .srcaar to .aar files for + mainTemplate.gradle resolution. PluginImporter configuration was previously + not being applied to .aar files unless the Unity project was saved. + +# Version 1.2.116 - Jun 7, 2019 +## Bug Fixes +* Android Resolver: Fixed resolution of Android dependencies without version + specifiers. +* Android Resolver: Fixed Maven repo not found warning in Android Resolver. +* Android Resolver: Fixed Android Player directory not found exception in + Unity 2019.x when the Android Player isn't installed. + +# Version 1.2.115 - May 28, 2019 +## Bug Fixes +* Android Resolver: Fixed exception due to Unity 2019.3.0a4 removing + x86 from the set of supported ABIs. + +# Version 1.2.114 - May 27, 2019 +## New Features +* Android Resolver: Added support for ABI stripping when using + mainTemplate.gradle. This only works with AARs stored in repos + on the local filesystem. + +# Version 1.2.113 - May 24, 2019 +## New Features +* Android Resolver: If local repos are moved, the plugin will search the + project for matching directories in an attempt to correct the error. +* Version Handler: Files can be now targeted to multiple build targets + using multiple "gvh_" asset labels. +## Bug Fixes +* Android Resolver: "implementation" or "compile" are now added correctly + to mainTemplate.gradle in Unity versions prior to 2019. + +# Version 1.2.112 - May 22, 2019 +## New Features +* Android Resolver: Added option to disable addition of dependencies to + mainTemplate.gradle. + See `Assets > Play Services Resolver > Android Resolver > Settings`. +* Android Resolver: Made paths to local maven repositories in + mainTemplate.gradle relative to the Unity project when a project is not + being exported. +## Bug Fixes +* Android Resolver: Fixed builds with mainTemplate.gradle integration in + Unity 2019. +* Android Resolver: Changed dependency inclusion in mainTemplate.gradle to + use "implementation" or "compile" depending upon the version of Gradle + included with Unity. +* Android Resolver: Gracefully handled exceptions if the console encoding + can't be modified. +* Android Resolver: Now gracefully fails if the AndroidPlayer directory + can't be found. + +# Version 1.2.111 - May 9, 2019 +## Bug Fixes +* Version Handler: Fixed invocation of methods with named arguments. +* Version Handler: Fixed occasional hang when the editor is compiling + while activating plugins. + +# Version 1.2.110 - May 7, 2019 +## Bug Fixes +* Android Resolver: Fixed inclusion of some srcaar artifacts in builds with + Gradle builds when using mainTemplate.gradle. + +# Version 1.2.109 - May 6, 2019 +## New Features: +* Added links to documentation from menu. +* Android Resolver: Added option to auto-resolve Android libraries on build. +* Android Resolver: Added support for packaging specs of Android libraries. +* Android Resolver: Pop up a window when displaying Android dependencies. + +## Bug Fixes +* Android Resolver: Support for Unity 2019 Android SDK and JDK install locations +* Android Resolver: e-enable AAR explosion if internal builds are enabled. +* Android Resolver: Gracefully handle exceptions on file deletion. +* Android Resolver: Fixed Android Resolver log spam on load. +* Android Resolver: Fixed save of Android Resolver PromptBeforeAutoResolution + setting. +* Android Resolver: Fixed AAR processing failure when an AAR without + classes.jar is found. +* Android Resolver: Removed use of EditorUtility.DisplayProgressBar which + was occasionally left displayed when resolution had completed. +* Version Handler: Fixed asset rename to disable when a disabled file exists. + +# Version 1.2.108 - May 3, 2019 +## Bug Fixes: +* Version Handler: Fixed occasional hang on startup. + +# Version 1.2.107 - May 3, 2019 +## New Features: +* Version Handler: Added support for enabling / disabling assets that do not + support the PluginImporter, based upon build target selection. +* Android Resolver: Added support for the global specification of maven repos. +* iOS Resolver: Added support for the global specification of Cocoapod sources. + +# Version 1.2.106 - May 1, 2019 +## New Features +* iOS Resolver: Added support for development pods in Xcode project integration + mode. +* iOS Resolver: Added support for source pods with resources in Xcode project + integration mode. + +# Version 1.2.105 - Apr 30, 2019 +## Bug fixes +* Android Resolver: Fixed reference to Java tool path in logs. +* Android and iOS Resolvers: Changed command line execution to emit a warning + rather than throwing an exception and failing, when it is not possible to + change the console input and output encoding to UTF-8. +* Android Resolver: Added menu option and API to delete resolved libraries. +* Android Resolver: Added menu option and API to log the repos and libraries + currently included in the project. +* Android Resolver: If Plugins/Android/mainTemplate.gradle file is present and + Gradle is selected as the build type, resolution will simply patch the file + with Android dependencies specified by plugins in the project. + +# Version 1.2.104 - Apr 10, 2019 +## Bug Fixes +* Android Resolver: Changed Android ABI selection method from using whitelisted + Unity versions to type availability. This fixes an exception on resolution + in some versions of Unity 2017.4. + +# Version 1.2.103 - Apr 2, 2019 +## Bug Fixes +* Android Resolver: Whitelisted Unity 2017.4 and above with ARM64 support. +* Android Resolver: Fixed Java version check to work with Java SE 12 and above. + +# Version 1.2.102 - Feb 13, 2019 +## Bug Fixes +* Android Resolver: Fixed the text overflow on the Android Resolver + prompt before initial run to fit inside the buttons for + smaller screens. + +# Version 1.2.101 - Feb 12, 2019 +## New Features +* Android Resolver: Prompt the user before the resolver runs for the + first time and allow the user to elect to disable from the prompt. +* Android Resolver: Change popup warning when resolver is disabled + to be a console warning. + +# Version 1.2.100 - Jan 25, 2019 +## Bug Fixes +* Android Resolver: Fixed AAR processing sometimes failing on Windows + due to file permissions. + +# Version 1.2.99 - Jan 23, 2019 +## Bug Fixes +* Android Resolver: Improved performance of project property polling. +* Version Handler: Fixed callback of VersionHandler.UpdateCompleteMethods + when the update process is complete. + +# Version 1.2.98 - Jan 9, 2019 +## New Features +* iOS Resolver: Pod declaration properties can now be set via XML pod + references. For example, this can enable pods for a subset of build + configurations. +## Bug Fixes +* iOS Resolver: Fixed incremental builds after local pods support caused + regression in 1.2.96. + +# Version 1.2.97 - Dec 17, 2018 +## Bug Fixes +* Android Resolver: Reduced memory allocation for logic that monitors build + settings when auto-resolution is enabled. If auto-resolution is disabled, + almost all build settings are no longer polled for changes. + +# Version 1.2.96 - Dec 17, 2018 +## Bug Fixes +* Android Resolver: Fixed repacking of AARs to exclude .meta files. +* Android Resolver: Only perform auto-resolution on the first scene while + building. +* Android Resolver: Fixed parsing of version ranges that include whitespace. +* iOS Resolver: Added support for local development pods. +* Version Handler: Fixed Version Handler failing to rename some files. + +# Version 1.2.95 - Oct 23, 2018 +## Bug Fixes: +* Android Resolver: Fixed auto-resolution running in a loop in some scenarios. + +# Version 1.2.94 - Oct 22, 2018 +## Bug Fixes +* iOS Resolver: Added support for PODS_TARGET_SRCROOT in source Cocoapods. + +# Version 1.2.93 - Oct 22, 2018 +## Bug Fixes +* Android Resolver: Fixed removal of Android libraries on auto-resolution when + `*Dependencies.xml` files are deleted. + +# Version 1.2.92 - Oct 2, 2018 +## Bug Fixes +* Android Resolver: Worked around auto-resolution hang on Windows if + resolution starts before compilation is finished. + +# Version 1.2.91 - Sep 27, 2018 +## Bug Fixes +* Android Resolver: Fixed Android Resolution when the selected build target + isn't Android. +* Added C# assembly symbols the plugin to simplify debugging bug reports. + +# Version 1.2.90 - Sep 21, 2018 +## Bug Fixes +* Android Resolver: Fixed transitive dependency selection of version locked + packages. + +# Version 1.2.89 - Aug 31, 2018 +## Bug Fixes +* Fixed FileLoadException in ResolveUnityEditoriOSXcodeExtension an assembly + can't be loaded. + +# Version 1.2.88 - Aug 29, 2018 +## Changed +* Improved reporting of resolution attempts and conflicts found in the Android + Resolver. +## Bug Fixes +* iOS Resolver now correctly handles sample code in CocoaPods. Previously it + would add all sample code to the project when using project level + integration. +* Android Resolver now correctly handles Gradle conflict resolution when the + resolution results in a package that is compatible with all requested + dependencies. + +# Version 1.2.87 - Aug 23, 2018 +## Bug Fixes +* Fixed Android Resolver "Processing AARs" dialog getting stuck in Unity 5.6. + +# Version 1.2.86 - Aug 22, 2018 +## Bug Fixes +* Fixed Android Resolver exception in OnPostProcessScene() when the Android + platform isn't selected. + +# Version 1.2.85 - Aug 17, 2018 +## Changes +* Added support for synchronous resolution in the Android Resolver. + PlayServicesResolver.ResolveSync() now performs resolution synchronously. +* Auto-resolution in the Android Resolver now results in synchronous resolution + of Android dependencies before the Android application build starts via + UnityEditor.Callbacks.PostProcessSceneAttribute. + +# Version 1.2.84 - Aug 16, 2018 +## Bug Fixes +* Fixed Android Resolver crash when the AndroidResolverDependencies.xml + file can't be written. +* Reduced log spam when a conflicting Android library is pinned to a + specific version. + +# Version 1.2.83 - Aug 15, 2018 +## Bug Fixes +* Fixed Android Resolver failures due to an in-accessible AAR / JAR explode + cache file. If the cache can't be read / written the resolver now continues + with reduced performance following recompilation / DLL reloads. +* Fixed incorrect version number in plugin manifest on install. + This was a minor issue since the version handler rewrote the metadata + after installation. + +# Version 1.2.82 - Aug 14, 2018 +## Changed +* Added support for alphanumeric versions in the Android Resolver. + +## Bug Fixes +* Fixed Android Resolver selection of latest duplicated library. +* Fixed Android Resolver conflict resolution when version locked and non-version + locked dependencies are specified. +* Fixed Android Resolver conflict resolution when non-existent artifacts are + referenced. + +# Version 1.2.81 - Aug 9, 2018 +## Bug Fixes +* Fixed editor error that would occur when when + `PlayerSettings.Android.targetArchitectures` was set to + `AndroidArchitecture.All`. + +# Version 1.2.80 - Jul 24, 2018 +## Bug Fixes +* Fixed project level settings incorrectly falling back to system wide settings + when default property values were set. + +# Version 1.2.79 - Jul 23, 2018 +## Bug Fixes +* Fixed AndroidManifest.xml patching on Android Resolver load in Unity 2018.x. + +# Version 1.2.78 - Jul 19, 2018 +## Changed +* Added support for overriding conflicting dependencies. + +# Version 1.2.77 - Jul 19, 2018 +## Changed +* Android Resolver now supports Unity's 2018 ABI filter (i.e arm64-v8a). +* Reduced Android Resolver build option polling frequency. +* Disabled Android Resolver auto-resolution in batch mode. Users now need + to explicitly kick off resolution through the API. +* All Android Resolver and Version Handler dialogs are now disabled in batch + mode. +* Verbose logging for all plugins is now enabled by default in batch mode. +* Version Handler bootstrapper has been improved to no longer call + UpdateComplete multiple times. However, since Unity can still reload the + app domain after plugins have been enabled, users still need to store their + plugin state to persistent storage to handle reloads. + +## Bug Fixes +* Android Resolver no longer incorrectly adds MANIFEST.MF files to AARs. +* Android Resolver auto-resolution jobs are now unscheduled when an explicit + resolve job is started. + +# Version 1.2.76 - Jul 16, 2018 +## Bug Fixes +* Fixed variable replacement in AndroidManifest.xml files in the Android + Resolver. + Version 1.2.75 introduced a regression which caused all variable replacement + to replace the *entire* property value rather than the component of the + property that referenced a variable. For example, + given "applicationId = com.my.app", "${applicationId}.foo" would be + incorrectly expanded as "com.my.app" rather than "com.my.app.foo". This + resulted in numerous issues for Android builds where content provider + initialization would fail and services may not start. + +## Changed +* Gradle prebuild experimental feature has been removed from the Android + Resolver. The feature has been broken for some time and added around 8MB + to the plugin size. +* Added better support for execution of plugin components in batch mode. + In batch mode UnityEditor.update is sometimes never called - like when a + single method is executed - so the new job scheduler will execute all jobs + synchronously from the main thread. + +# Version 1.2.75 - Jun 20, 2018 +## New Features +* Android Resolver now monitors the Android SDK path when + auto-resolution is enabled and triggers resolution when the path is + modified. + +## Changed +* Android auto-resolution is now delayed by 3 seconds when the following build + settings are changed: + - Target ABI. + - Gradle build vs. internal build. + - Project export. +* Added a progress bar display when AARs are being processed during Android + resolution. + +## Bug Fixes +* Fixed incorrect Android package version selection when a mix of + version-locked and non-version-locked packages are specified. +* Fixed non-deterministic Android package version selection to select + the highest version of a specified package rather than the last + package specification passed to the Gradle resolution script. + +# Version 1.2.74 - Jun 19, 2018 +## New Features +* Added workaround for broken AndroidManifest.xml variable replacement in + Unity 2018.x. By default ${applicationId} variables will be replaced by + the bundle ID in the Plugins/Android/AndroidManifest.xml file. The + behavior can be disabled via the Android Resolver settings menu. + +# Version 1.2.73 - May 30, 2018 +## Bug Fixes +* Fixed spurious warning message about missing Android plugins directory on + Windows. + +# Version 1.2.72 - May 23, 2018 +## Bug Fixes +* Fixed spurious warning message about missing Android plugins directory. + +# Version 1.2.71 - May 10, 2018 +## Bug Fixes +* Fixed resolution of Android dependencies when the `Assets/Plugins/Android` + directory is named in a different case e.g `Assets/plugins/Android`. + +# Version 1.2.70 - May 7, 2018 +## Bug Fixes +* Fixed bitcode flag being ignored for iOS pods. + +# Version 1.2.69 - May 7, 2018 +## Bug Fixes +* Fixed escaping of local repository paths in Android Resolver. + +# Version 1.2.68 - May 3, 2018 +## Changes +* Added support for granular builds of Google Play Services. + +# Version 1.2.67 - May 1, 2018 +## Changes +* Improved support for iOS source-only pods in Unity 5.5 and below. + +# Version 1.2.66 - April 27, 2018 +## Bug Fixes +* Fixed Version Handler renaming of Linux libraries with hyphens in filenames. + Previously, libraries named Foo-1.2.3.so were not being renamed to + libFoo-1.2.3.so on Linux which could break native library loading on some + versions of Unity. + +# Version 1.2.65 - April 26, 2018 +## Bug Fixes +* Fix CocoaPods casing in logs and comments. + +# Version 1.2.64 - Mar 16, 2018 +## Bug Fixes +* Fixed bug in download_artifacts.gradle (used by Android Resolver) which + reported a failure if required artifacts already exist. + +# Version 1.2.63 - Mar 15, 2018 +## Bug Fixes +* Fixed iOS Resolver include search paths taking precedence over system headers + when using project level resolution. +* Fixed iOS Resolver includes relative to library root, when using project level + resolution. + +# Version 1.2.62 - Mar 12, 2018 +## Changes +* Improved error reporting when a file can't be moved to trash by the + Version Handler. +## Bug Fixes +* Fixed Android Resolver throwing NullReferenceException when the Android SDK + path isn't set. +* Fixed Version Handler renaming files with underscores if the + "Rename to Canonical Filenames" setting is enabled. + +# Version 1.2.61 - Jan 22, 2018 +## Bug Fixes +* Fixed Android Resolver reporting non-existent conflicting dependencies when + Gradle build system is enabled. + +# Version 1.2.60 - Jan 12, 2018 +## Changes +* Added support for Maven / Ivy version specifications for Android packages. +* Added support for Android SNAPSHOT packages. + +## Bug Fixes +* Fixed Openjdk version check. +* Fixed non-deterministic Android package resolution when two packages contain + an artifact with the same name. + +# Version 1.2.59 - Oct 19, 2017 +## Bug Fixes +* Fixed execution of Android Gradle resolution script when it's located + in a path with whitespace. + +# Version 1.2.58 - Oct 19, 2017 +## Changes +* Removed legacy resolution method from Android Resolver. + It is now only possible to use the Gradle or Gradle prebuild resolution + methods. + +# Version 1.2.57 - Oct 18, 2017 +## Bug Fixes +* Updated Gradle wrapper to 4.2.1 to fix issues using Gradle with the + latest Openjdk. +* Android Gradle resolution now also uses gradle.properties to pass + parameters to Gradle in an attempt to workaround problems with + command line argument parsing on Windows 10. + +# Version 1.2.56 - Oct 12, 2017 +## Bug Fixes +* Fixed Gradle artifact download with non-version locked artifacts. +* Changed iOS resolver to only load dependencies at build time. + +# Version 1.2.55 - Oct 4, 2017 +## Bug Fixes +* Force Android Resolution when the "Install Android Packages" setting changes. + +# Version 1.2.54 - Oct 4, 2017 +## Bug Fixes +* Fixed execution of command line tools on Windows when the path to the tool + contains a single quote (apostrophe). In this case we fallback to executing + the tool via the system shell. + +# Version 1.2.53 - Oct 2, 2017 +## New Features +* Changed Android Resolver "resolution complete" dialog so that it now displays + failures. +* Android Resolver now detects conflicting libraries that it does not manage + warning the user if they're newer than the managed libraries and prompting + the user to clean them up if they're older or at the same version. + +## Bug Fixes +* Improved Android Resolver auto-resolution speed. +* Fixed bug in the Gradle Android Resolver which would result in resolution + succeeding when some dependencies are not found. + +# Version 1.2.52 - Sep 25, 2017 +## New Features +* Changed Android Resolver's Gradle resolution to resolve conflicting + dependencies across Google Play services and Android Support library packages. + +# Version 1.2.51 - Sep 20, 2017 +## Changes +* Changed iOS Resolver to execute the CocoaPods "pod" command via the shell + by default. Some developers customize their shell environment to use + custom ssh certs to access internal git repositories that host pods so + executing "pod" via the shell will work for these scenarios. + The drawback of executing "pod" via the shell could potentially cause + users problems if they break their shell environment. Though users who + customize their shell environments will be able to resolve these issues. + +# Version 1.2.50 - Sep 18, 2017 +## New Features +* Added option to disable the Gradle daemon in the Android Resolver. + This daemon is now disabled by default as some users are getting into a state + where multiple daemon instances are being spawned when changing dependencies + which eventually results in Android resolution failing until all daemon + processes are manually killed. + +## Bug Fixes +* Android resolution is now always executed if the user declines the update + of their Android SDK. This ensure users can continue to use out of date + Android SDK packages if they desire. + +# Version 1.2.49 - Sep 18, 2017 +## Bug Fixes +* Removed modulemap parsing in iOS Resolver. + The framework *.modulemap did not need to be parsed by the iOS Resolver + when injecting Cocoapods into a Xcode project. Simply adding a modular + framework to a Xcode project results in Xcode's Clang parsing the associated + modulemap and injecting any compile and link flags into the build process. + +# Version 1.2.48 - Sep 12, 2017 +## New Features +* Changed settings to be per-project by default. + +## Bug Fixes +* Added Google maven repository to fix GradlePrebuild resolution with Google + components. +* Fixed Android Resolution failure with spaces in paths. + +# Version 1.2.47 - Aug 29, 2017 +## New Features +* Android and iOS dependencies can now be specified using *Dependencies.xml + files. This is now the preferred method for registering dependencies, + we may remove the API for dependency addition in future. +* Added "Reset to Defaults" button to each settings dialog to restore default + settings. +* Android Resolver now validates the configured JDK is new enough to build + recently released Android libraries. +## Bug Fixes +* Fixed a bug that caused dependencies with the "LATEST" version specification + to be ignored when using the Gradle mode of the Android Resolver. +* Fixed a race condition when running Android Resolution. +* Fixed Android Resolver logging if a PlayServicesSupport instance is created + with no logging enabled before the Android Resolver is initialized. +* Fixed iOS resolver dialog in Unity 4. +* Fixed iOS Cocoapod Xcode project integration in Unity 4. + +# Version 1.2.46 - Aug 22, 2017 +## Bug Fixes +* GradlePrebuild Android resolver on Windows now correctly locates dependent + data files. + +# Version 1.2.45 - Aug 22, 2017 +## Bug Fixes +* Improved Android package auto-resolution and fixed clean up of stale + dependencies when using Gradle dependency resolution. + +# Version 1.2.44 - Aug 21, 2017 +## Bug Fixes +* Enabled autoresolution for Gradle Prebuild. +* Made the command line dialog windows have selectable text. +* Fixed incorrect "Android Settings" dialog disabled groups. +* Updated PlayServicesResolver android platform detection to use the package + manager instead of the 'android' tool. +* UnityCompat reflection methods 'GetAndroidPlatform' and + 'GetAndroidBuildToolsVersion' are now Obsolete due to dependence on the + obsolete 'android' build tool. + +# Version 1.2.43 - Aug 18, 2017 +## Bug Fixes +* Fixed Gradle resolution in the Android Resolver when running + PlayServicesResolver.Resolve() in parallel or spawning multiple + resolutions before the previous resolve completed. + +# Version 1.2.42 - Aug 17, 2017 +## Bug Fixes +* Fixed Xcode project level settings not being applied by IOS Resolver when + Xcode project pod integration is enabled. + +# Version 1.2.41 - Aug 15, 2017 +## Bug Fixes +* IOS Resolver's Xcode workspace pod integration is now disabled when Unity + Cloud Build is detected. Unity Cloud Build does not follow the same build + process as the Unity editor and fails to open the generated xcworkspace at + this time. + +# Version 1.2.40 - Aug 15, 2017 +## Bug Fixes +* Moved Android Resolver Gradle Prebuild scripts into Google.JarResolver.dll. + They are now extracted from the DLL when required. +* AARs / JARs are now cleaned up when switching the Android resolution + strategy. + +# Version 1.2.39 - Aug 10, 2017 +## New Features +* Android Resolver now supports resolution with Gradle. This enables support + for non-local artifacts. +## Bug Fixes +* Android Resolver's Gradle Prebuild now uses Android build tools to determine + the Android platform tools version rather than relying upon internal Unity + APIs. +* Android Resolver's Gradle Prebuild now correctly strips binaries that are + not required for the target ABI. + +# Version 1.2.38 - Aug 7, 2017 +## Bug Fixes +* Fixed an issue in VersionHandler where disabled targets are ignored if + the "Any Platform" flag is set on a plugin DLL. + +# Version 1.2.37 - Aug 3, 2017 +## New Features +* Exposed GooglePlayServices.PlayServicesResolver.Resolve() so that it's + possible for a script to be notified when AAR / Jar resolution is complete. + This makes it easier to setup a project to build from the command line. + +# Version 1.2.36 - Aug 3, 2017 +## New Features +* VersionHandler.UpdateCompleteMethods allows a user to provide a list of + methods to be called when VersionHandlerImpl has completed an update. + This makes it easier to import a plugin and wait for VersionHandler to + execute prior executing a build. + +# Version 1.2.35 - Jul 28, 2017 +## New Features +* VersionHandler will now rename Linux libraries so they can target Unity + versions that require different file naming. Libraries need to be labelled + gvh_linuxlibname-${basename} in order to be considered for renaming. + e.g gvh\_linuxlibname-MyLib will be named MyLib.so in Unity 5.5 and below and + libMyLib.so in Unity 5.6 and above. + +# Version 1.2.34 - Jul 28, 2017 +## Bug Fixes +* Made VersionHandler bootstrap module more robust when calling static + methods before the implementation DLL is loaded. + +# Version 1.2.33 - Jul 27, 2017 +## New Features +* Added a bootstrap module for VersionHandler so the implementation + of the VersionHandler module can be versioned without resulting in + a compile error when imported at different versions across multiple + plugins. + +# Version 1.2.32 - Jul 20, 2017 +## New Features +* Added support for build target selection based upon .NET framework + version in the VersionHandler. + When applying either gvh\_dotnet-3.5 or gvh\_dotnet-4.5 labels to + assets, the VersionHandler will only enable the asset for the + specified set of build targets when the matching .NET framework version + is selected in Unity 2017's project settings. This allows assets + to be provided in a plugin that need to differ based upon .NET version. + +# Version 1.2.31 - Jul 5, 2017 +## Bug Fixes +* Force expansion of AARs with native components when using Unity 2017 + with the internal build system. In contrast to Unity 5.x, Unity 2017's + internal build system does not include native libraries included in AARs. + Forcing expansion of AARs with native components generates an + Ant / Eclipse project for each AAR which is correctly included by Unity + 2017's internal build system. + +# Version 1.2.30 - Jul 5, 2017 +## Bug Fixes +* Fixed Cocoapods being installed when the build target isn't iOS. +* Added support for malformed AARs with missing classes.jar. + +# Version 1.2.29 - Jun 16, 2017 +## New Features +* Added support for the Android sdkmanager tool. + +# Version 1.2.28 - Jun 8, 2017 +## Bug Fixes +* Fixed non-shell command line execution (regression from + Cocoapod installation patch). + +# Version 1.2.27 - Jun 7, 2017 +## Bug Fixes +* Added support for stdout / stderr redirection when executing + commands in shell mode. + This fixes CocoaPod tool installation when shell mode is + enabled. +* Fixed incremental builds when additional sources are specified + in the Podfile. + +# Version 1.2.26 - Jun 7, 2017 +## Bug Fixes +* Fixed a crash when importing Version Handler into Unity 4.7.x. + +# Version 1.2.25 - Jun 7, 2017 +## Bug Fixes +* Fixed an issue in the Jar Resolver which incorrectly notified + event handlers of bundle ID changes when the currently selected + (not active) build target changed in Unity 5.6 and above. + +# Version 1.2.24 - Jun 6, 2017 +## New Features +* Added option to control file renaming in Version Handler settings. + Disabling file renaming (default option) significantly increases + the speed of file version management operations with the downside + that any files that are referenced directly by canonical filename + rather than asset ID will no longer be valid. +* Improved logging in the Version Handler. +## Bug Fixes +* Fixed an issue in the Version Handler which caused it to not + re-enable plugins when re-importing a custom package with disabled + version managed files. + +# Version 1.2.23 - May 26, 2017 +## Bug Fixes +* Fixed a bug with gradle prebuild resolver on windows. + +# Version 1.2.22 - May 19, 2017 +## Bug Fixes +* Fixed a bug in the iOS resolver with incremental builds. +* Fixed misdetection of Cocoapods support with Unity beta 5.6. + +# Version 1.2.21 - May 8, 2017 +## Bug Fixes +* Fix for https://github.com/googlesamples/unity-jar-resolver/issues/48 + Android dependency version number parsing when "-alpha" (etc.) are + included in dependency (AAR / JAR) versions. + +# Version 1.2.20 - May 8, 2017 +## Bug Fixes +* Attempted to fix + https://github.com/googlesamples/unity-jar-resolver/issues/48 + where a NullReferenceException could occur if a target file does not + have a valid version string. + +# Version 1.2.19 - May 4, 2017 +## Bug Fixes +* Fixed Jar Resolver exploding and deleting AAR files it isn't managing. + +# Version 1.2.18 - May 4, 2017 +## New Features +* Added support for preserving Unity pods such as when GVR is enabled. + +# Version 1.2.17 - Apr 20, 2017 +## Bug Fixes +* Fixed auto-resolution when an Android application ID is modified. + +# Version 1.2.16 - Apr 17, 2017 +## Bug Fixes +* Fixed Unity version number parsing on machines with a locale that uses + "," for decimal points. +* Fixed null reference exception if JDK path isn't set. + +# Version 1.2.15 - Mar 17, 2017 +## New Features +* Added warning when the Jar Resolver's background resolution is disabled. +## Bug Fixes +* Fixed support of AARs with native libraries when using Gradle. +* Fixed extra repository paths when resolving dependencies. + +# Version 1.2.14 - Mar 7, 2017 +## New Features +* Added experimental Android resolution using Gradle. + This alternative resolver supports proguard stripping with Unity's + internal build system. +* Added Android support for single ABI builds when using AARs include + native libraries. +* Disabled Android resolution on changes to all .cs and .js files. + File patterns that are monitored for auto-resolution can be added + using PlayServicesResolver.AddAutoResolutionFilePatterns(). +* Added tracking of resolved AARs and JARs so they can be cleaned up + if they're no longer referenced by a project. +* Added persistence of AAR / JAR version replacement for each Unity + session. +* Added settings dialog to the iOS resolver. +* Integrated Cocoapod tool installation in the iOS resolver. +* Added option to run pod tool via the shell. +## Bug Fixes +* Fixed build of some source Cocoapods (e.g Protobuf). +* VersionHandler no longer prompts to delete obsolete manifests. +* iOS resolver handles Cocoapod installation when using Ruby < 2.2.2. +* Added workaround for package version selection when including + Google Play Services on Android. +* Fixed support for pods that reference static libraries. +* Fixed support for resource-only pods. + +# Version 1.2.12 - Feb 14, 2017 +## Bug Fixes +* Fixed re-explosion of AARs when the bundle ID is modified. + +# Version 1.2.11 - Jan 30, 2017 +## New Features +* Added support for Android Studio builds. +* Added support for native (C/C++) shared libraries in AARs. + +# Version 1.2.10 - Jan 11, 2017 +## Bug Fixes +* Fixed SDK manager path retrieval. +* Also, report stderr when it's not possible to run the "pod" tool. +* Handle exceptions thrown by Unity.Cecil on asset rename +* Fixed IOSResolver to handle PlayerSettings.iOS.targetOSVersionString + +# Version 1.2.9 - Dec 7, 2016 +## Bug Fixes +* Improved error reporting when "pod repo update" fails. +* Added detection of xml format xcode projects generated by old Cocoapods + installations. + +# Version 1.2.8 - Dec 6, 2016 +## Bug Fixes +* Increased speed of JarResolver resolution. +* Fixed JarResolver caches getting out of sync with requested dependencies + by removing the caches. +* Fixed JarResolver explode cache always being rewritten even when no + dependencies change. + +# Version 1.2.7 - Dec 2, 2016 +## Bug Fixes +* Fixed VersionHandler build errors with Unity 5.5, due to the constantly + changing BuildTarget enum. +* Added support for Unity configured JDK Path rather than requiring + JAVA_HOME to be set in the Jar Resolver. + +# Version 1.2.6 - Nov 15, 2016 +## Bug Fixes +* Fixed IOSResolver errors when iOS support is not installed. +* Added fallback to "pod" executable search which queries the Ruby Gems + package manager for the binary install location. + +# Version 1.2.5 - Nov 3, 2016 +## Bug Fixes +* Added crude support for source only Cocoapods to the IOSResolver. + +# Version 1.2.4 - Oct 27, 2016 +## Bug Fixes +* Automated resolution of out of date pod repositories. + +# Version 1.2.3 - Oct 25, 2016 +## Bug Fixes +* Fixed exception when reporting conflicting dependencies. + +# Version 1.2.2 - Oct 17, 2016 +## Bug Fixes +* Fixed issue working with Unity 5.5 +* Fixed issue with PlayServicesResolver corrupting other iOS dependencies. +* Updated build script to use Unity distributed tools for building. + +# Version 1.2.1 - Jul 25, 2016 +## Bug Fixes +* Removed 1.2 Resolver and hardcoded whitelist of AARs to expand. +* Improved error reporting when the "jar" executable can't be found. +* Removed the need to set JAVA_HOME if "jar" is in the user's path. +* Fixed spurious copying of partially matching AARs. +* Changed resolver to only copy / expand when source AARs change. +* Auto-resolution of dependencies is now performed when the Android + build target is selected. + +## New Features +* Expand AARs that contain manifests with variable expansion like + ${applicationId}. +* Added optional logging in the JarResolverLib module. +* Integration with the Android SDK manager for dependencies that + declare required Android SDK packages. + +# Version 1.2.0 - May 11 2016 +## Bug Fixes +* Handles resolving dependencies when the artifacts are split across 2 repos. +* #4 Misdetecting version for versions like 1.2-alpha. These are now string + compared if alphanumeric +* Removed resolver creation via reflection since it did not work all the time. + Now a resolver needs to be loaded externally (which is existing behavior). + +## New Features +* Expose PlayServicesResolver properties to allow for script access. +* Explodes firebase-common and firebase-measurement aar files to support + ${applicationId} substitution. + +# Version 1.1.1 - 25 Feb 2016 +## Bug Fixes +* #1 Spaces in project path not handled when exploding Aar file. +* #2 Script compilation error: TypeLoadException. + +# Version 1.1.0 - 5 Feb 2016 +## New Features +* Adds friendly alert when JAVA_HOME is not set on Windows platforms. +* Adds flag for disabling background resolution. +* Expands play-services-measurement and replaces ${applicationId} with the + bundle Id. + + ## Bug Fixes +* Fixes infinite loop of resolution triggered by resolution. diff --git a/unity/Assets/ExternalDependencyManager/Editor/CHANGELOG.md.meta b/unity/Assets/ExternalDependencyManager/Editor/CHANGELOG.md.meta new file mode 100644 index 000000000..562e7cb2f --- /dev/null +++ b/unity/Assets/ExternalDependencyManager/Editor/CHANGELOG.md.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d67e36cf70144eeeb62948707545ecfd +labels: +- gvh +- gvh_version-6.15.2 +- gvhp_exportpath-ExternalDependencyManager/Editor/CHANGELOG.md +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity/Assets/ExternalDependencyManager/Editor/Google.IOSResolver_v1.2.156.dll b/unity/Assets/ExternalDependencyManager/Editor/Google.IOSResolver_v1.2.156.dll new file mode 100644 index 000000000..b07779fea --- /dev/null +++ b/unity/Assets/ExternalDependencyManager/Editor/Google.IOSResolver_v1.2.156.dll @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d771c49b6ba2f6c3b941ebeb160980743022451f4dc3b8c56cbbbde8ca7739e3 +size 59904 diff --git a/unity/Assets/ExternalDependencyManager/Editor/Google.IOSResolver_v1.2.156.dll.mdb b/unity/Assets/ExternalDependencyManager/Editor/Google.IOSResolver_v1.2.156.dll.mdb new file mode 100644 index 0000000000000000000000000000000000000000..6a14b1918b18c54387fc1c05c97f2254abe06158 GIT binary patch literal 10869 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 literal 0 HcmV?d00001 diff --git a/unity/Assets/ExternalDependencyManager/Editor/Google.IOSResolver_v1.2.156.dll.mdb.meta b/unity/Assets/ExternalDependencyManager/Editor/Google.IOSResolver_v1.2.156.dll.mdb.meta new file mode 100644 index 000000000..df73111fc --- /dev/null +++ b/unity/Assets/ExternalDependencyManager/Editor/Google.IOSResolver_v1.2.156.dll.mdb.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: cb89028144b54a6298ff8725e497621d +labels: +- gvh +- gvh_version-1.2.156 +- gvhp_exportpath-ExternalDependencyManager/Editor/Google.IOSResolver_v1.2.156.dll.mdb +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity/Assets/ExternalDependencyManager/Editor/Google.IOSResolver_v1.2.156.dll.meta b/unity/Assets/ExternalDependencyManager/Editor/Google.IOSResolver_v1.2.156.dll.meta new file mode 100644 index 000000000..17aa971bb --- /dev/null +++ b/unity/Assets/ExternalDependencyManager/Editor/Google.IOSResolver_v1.2.156.dll.meta @@ -0,0 +1,38 @@ +fileFormatVersion: 2 +guid: f87eb93c55814d53b99e4d9d248b0ccd +labels: +- gvh +- gvh_version-1.2.156 +- gvhp_exportpath-ExternalDependencyManager/Editor/Google.IOSResolver_v1.2.156.dll +- gvhp_targets-editor +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 0 + settings: {} + - first: + Editor: Editor + second: + enabled: 1 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity/Assets/ExternalDependencyManager/Editor/Google.JarResolver_v1.2.156.dll b/unity/Assets/ExternalDependencyManager/Editor/Google.JarResolver_v1.2.156.dll new file mode 100644 index 000000000..d29990551 --- /dev/null +++ b/unity/Assets/ExternalDependencyManager/Editor/Google.JarResolver_v1.2.156.dll @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:48c44fd0d2de33b56435c87dcc9d8712a99f79c899de7ff32218f0503ecd90fc +size 339968 diff --git a/unity/Assets/ExternalDependencyManager/Editor/Google.JarResolver_v1.2.156.dll.mdb b/unity/Assets/ExternalDependencyManager/Editor/Google.JarResolver_v1.2.156.dll.mdb new file mode 100644 index 0000000000000000000000000000000000000000..074c9e9f1d0c4cdd1e31bcf74e17b9ca6c44db9a GIT binary patch literal 47657 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 I&H?cM0|1^XtN;K2 literal 0 HcmV?d00001 diff --git a/unity/Assets/ExternalDependencyManager/Editor/Google.PackageManagerResolver_v1.2.156.dll.mdb.meta b/unity/Assets/ExternalDependencyManager/Editor/Google.PackageManagerResolver_v1.2.156.dll.mdb.meta new file mode 100644 index 000000000..73ab33980 --- /dev/null +++ b/unity/Assets/ExternalDependencyManager/Editor/Google.PackageManagerResolver_v1.2.156.dll.mdb.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: cae2517b8dda4256bdb2dbddae81b462 +labels: +- gvh +- gvh_version-1.2.156 +- gvhp_exportpath-ExternalDependencyManager/Editor/Google.PackageManagerResolver_v1.2.156.dll.mdb +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity/Assets/ExternalDependencyManager/Editor/Google.PackageManagerResolver_v1.2.156.dll.meta b/unity/Assets/ExternalDependencyManager/Editor/Google.PackageManagerResolver_v1.2.156.dll.meta new file mode 100644 index 000000000..4bcf361dc --- /dev/null +++ b/unity/Assets/ExternalDependencyManager/Editor/Google.PackageManagerResolver_v1.2.156.dll.meta @@ -0,0 +1,38 @@ +fileFormatVersion: 2 +guid: be364d7e90834242b6f90a4ed5d63875 +labels: +- gvh +- gvh_version-1.2.156 +- gvhp_exportpath-ExternalDependencyManager/Editor/Google.PackageManagerResolver_v1.2.156.dll +- gvhp_targets-editor +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 0 + settings: {} + - first: + Editor: Editor + second: + enabled: 1 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity/Assets/ExternalDependencyManager/Editor/Google.VersionHandler.dll b/unity/Assets/ExternalDependencyManager/Editor/Google.VersionHandler.dll new file mode 100644 index 000000000..431129229 --- /dev/null +++ b/unity/Assets/ExternalDependencyManager/Editor/Google.VersionHandler.dll @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9c1ac7e048ac5559924e764dc3fad50b7e498ebc3c33e48e14e2773594115382 +size 14848 diff --git a/unity/Assets/ExternalDependencyManager/Editor/Google.VersionHandler.dll.mdb b/unity/Assets/ExternalDependencyManager/Editor/Google.VersionHandler.dll.mdb new file mode 100644 index 0000000000000000000000000000000000000000..cc3b5ac99f61fed2c2c5554ca88817d56ed98e32 GIT binary patch literal 3572 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 z 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 W9L`VWaQh + + + + com.google + + + diff --git a/unity/Assets/ExternalDependencyManager/Editor/GoogleRegistries.xml.meta b/unity/Assets/ExternalDependencyManager/Editor/GoogleRegistries.xml.meta new file mode 100644 index 000000000..3107c3bd4 --- /dev/null +++ b/unity/Assets/ExternalDependencyManager/Editor/GoogleRegistries.xml.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 81e43a9734ee4e3d8d85776f1b564bd3 +labels: +- gumpr_registries +- gvh +- gvh_version-6.15.2 +- gvhp_exportpath-ExternalDependencyManager/Editor/GoogleRegistries.xml +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity/Assets/ExternalDependencyManager/Editor/LICENSE b/unity/Assets/ExternalDependencyManager/Editor/LICENSE new file mode 100644 index 000000000..6258cc47e --- /dev/null +++ b/unity/Assets/ExternalDependencyManager/Editor/LICENSE @@ -0,0 +1,245 @@ +Copyright (C) 2014 Google Inc. + + 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. + + 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. + +==================================================================================================== +This package uses MiniJSON + +Copyright (c) 2013 Calvin Rien + +Based on the JSON parser by Patrick van Bergen +http://techblog.procurios.nl/k/618/news/view/14605/14863/How-do-I-write-my-own-parser-for-JSON.html + +Simplified it so that it doesn't throw exceptions +and can be used in Unity iPhone with maximum code stripping. + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/unity/Assets/ExternalDependencyManager/Editor/LICENSE.meta b/unity/Assets/ExternalDependencyManager/Editor/LICENSE.meta new file mode 100644 index 000000000..401507e39 --- /dev/null +++ b/unity/Assets/ExternalDependencyManager/Editor/LICENSE.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 35a6726adf03479eb04b8c082346d551 +labels: +- gvh +- gvh_version-6.15.2 +- gvhp_exportpath-ExternalDependencyManager/Editor/LICENSE +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity/Assets/ExternalDependencyManager/Editor/README.md b/unity/Assets/ExternalDependencyManager/Editor/README.md new file mode 100644 index 000000000..d3894d7bd --- /dev/null +++ b/unity/Assets/ExternalDependencyManager/Editor/README.md @@ -0,0 +1,767 @@ +External Dependency Manager for Unity +======== + +# Overview + +The External Dependency Manager for Unity (EDM4U) +(formerly Play Services Resolver / Jar Resolver) is intended to be used by any +Unity plugin that requires: + + * Android specific libraries (e.g + [AARs](https://developer.android.com/studio/projects/android-library.html)). + * iOS [CocoaPods](https://cocoapods.org/). + * Version management of transitive dependencies. + * Management of Package Manager (PM) Registries. + +Updated releases are available on +[GitHub](https://github.com/googlesamples/unity-jar-resolver) + +# Background + +Many Unity plugins have dependencies upon Android specific libraries, iOS +CocoaPods, and sometimes have transitive dependencies upon other Unity plugins. +This causes the following problems: + + * Integrating platform specific (e.g Android and iOS) libraries within a + Unity project can be complex and a burden on a Unity plugin maintainer. + * The process of resolving conflicting dependencies on platform specific + libraries is pushed to the developer attempting to use a Unity plugin. + The developer trying to use you plugin is very likely to give up when + faced with Android or iOS specific build errors. + * The process of resolving conflicting Unity plugins (due to shared Unity + plugin components) is pushed to the developer attempting to use your Unity + plugin. In an effort to resolve conflicts, the developer will very likely + attempt to resolve problems by deleting random files in your plugin, + report bugs when that doesn't work and finally give up. + +EDM provides solutions for each of these problems. + +## Android Dependency Management + +The *Android Resolver* component of this plugin will download and integrate +Android library dependencies and handle any conflicts between plugins that share +the same dependencies. + +Without the Android Resolver, typically Unity plugins bundle their AAR and +JAR dependencies, e.g. a Unity plugin `SomePlugin` that requires the Google +Play Games Android library would redistribute the library and its transitive +dependencies in the folder `SomePlugin/Android/`. When a user imports +`SomeOtherPlugin` that includes the same libraries (potentially at different +versions) in `SomeOtherPlugin/Android/`, the developer using `SomePlugin` and +`SomeOtherPlugin` will see an error when building for Android that can be hard +to interpret. + +Using the Android Resolver to manage Android library dependencies: + + * Solves Android library conflicts between plugins. + * Handles all of the various processing steps required to use Android + libraries (AARs, JARs) in Unity 4.x and above projects. Almost all + versions of Unity have - at best - partial support for AARs. + * (Experimental) Supports minification of included Java components without + exporting a project. + +## iOS Dependency Management + +The *iOS Resolver* component of this plugin integrates with +[CocoaPods](https://cocoapods.org/) to download and integrate iOS libraries +and frameworks into the Xcode project Unity generates when building for iOS. +Using CocoaPods allows multiple plugins to utilize shared components without +forcing developers to fix either duplicate or incompatible versions of +libraries included through multiple Unity plugins in their project. + +## Package Manager Registry Setup + +The [Package Manager](https://docs.unity3d.com/Manual/Packages.html) +(PM) makes use of [NPM](https://www.npmjs.com/) registry servers for package +hosting and provides ways to discover, install, upgrade and uninstall packages. +This makes it easier for developers to manage plugins within their projects. + +However, installing additional package registries requires a few manual steps +that can potentially be error prone. The *Package Manager Resolver* +component of this plugin integrates with +[PM](https://docs.unity3d.com/Manual/Packages.html) to provide a way to +auto-install PM package registries when a `.unitypackage` is installed which +allows plugin maintainers to ship a `.unitypackage` that can provide access +to their own PM registry server to make it easier for developers to +manage their plugins. + +## Unity Plugin Version Management + +Finally, the *Version Handler* component of this plugin simplifies the process +of managing transitive dependencies of Unity plugins and each plugin's upgrade +process. + +For example, without the Version Handler plugin, if: + + * Unity plugin `SomePlugin` includes `EDM4U` plugin at + version 1.1. + * Unity plugin `SomeOtherPlugin` includes `EDM4U` + plugin at version 1.2. + +The version of `EDM4U` included in the developer's project depends upon the +order the developer imports `SomePlugin` or `SomeOtherPlugin`. + +This results in: + + * `EDM4U` at version 1.2, if `SomePlugin` is imported then `SomeOtherPlugin` + is imported. + * `EDM4U` at version 1.1, if `SomeOtherPlugin` is imported then + `SomePlugin` is imported. + +The Version Handler solves the problem of managing transitive dependencies by: + + * Specifying a set of packaging requirements that enable a plugin at + different versions to be imported into a Unity project. + * Providing activation logic that selects the latest version of a plugin + within a project. + +When using the Version Handler to manage `EDM4U` included in `SomePlugin` and +`SomeOtherPlugin`, from the prior example, version 1.2 will always be the +version activated in a developer's Unity project. + +Plugin creators are encouraged to adopt this library to ease integration for +their customers. For more information about integrating EDM4U +into your own plugin, see the [Plugin Redistribution](#plugin-redistribution) +section of this document. + +# Analytics + +The External Dependency Manager for Unity plugin by default logs usage to Google +Analytics. The purpose of the logging is to quantitatively measure the usage of +functionality, to gather reports on integration failures and to inform future +improvements to the developer experience of the External Dependency Manager +plugin. Note that the analytics collected are limited to the scope of the EDM4U +plugin’s usage. + +For details of what is logged, please refer to the usage of +`EditorMeasurement.Report()` in the source code. + +# Requirements + +The *Android Resolver* and *iOS Resolver* components of the plugin only work +with Unity version 4.6.8 or higher. + +The *Version Handler* component only works with Unity 5.x or higher as it +depends upon the `PluginImporter` UnityEditor API. + +The *Package Manager Resolver* component only works with +Unity 2018.4 or above, when +[scoped registry](https://docs.unity3d.com/Manual/upm-scoped.html) +support was added to the Package Manager. + +# Getting Started + +Before you import EDM4U into your plugin project, you first +need to consider whether you intend to *redistribute* `EDM4U` +along with your own plugin. + +## Plugin Redistribution + +If you're a plugin maintainer, redistributing `EDM4U` inside your own plugin +will ease the integration process for your users, by resolving dependency +conflicts between your plugin and other plugins in a user's project. + +If you wish to redistribute `EDM4U` inside your plugin, +you **must** follow these steps when importing the +`external-dependency-manager-*.unitypackage`, and when exporting your own plugin +package: + + 1. Import the `external-dependency-manager-*.unitypackage` into your plugin + project by + [running Unity from the command line](https://docs.unity3d.com/Manual/CommandLineArguments.html), ensuring that + you add the `-gvh_disable` option. + 1. Export your plugin by [running Unity from the command line](https://docs.unity3d.com/Manual/CommandLineArguments.html), ensuring that + you: + - Include the contents of the `Assets/PlayServicesResolver` directory. + - Add the `-gvh_disable` option. + +You **must** specify the `-gvh_disable` option in order for the Version +Handler to work correctly! + +For example, the following command will import the +`external-dependency-manager-1.2.46.0.unitypackage` into the project +`MyPluginProject` and export the entire Assets folder to +`MyPlugin.unitypackage`: + +``` +Unity -gvh_disable \ + -batchmode \ + -importPackage external-dependency-manager-1.2.46.0.unitypackage \ + -projectPath MyPluginProject \ + -exportPackage Assets MyPlugin.unitypackage \ + -quit +``` + +### Background + +The *Version Handler* component relies upon deferring the load of editor DLLs +so that it can run first and determine the latest version of a plugin component +to activate. The build of `EDM4U` plugin has Unity asset metadata that is +configured so that the editor components are not initially enabled when it's +imported into a Unity project. To maintain this configuration when importing +the `external-dependency-manager.unitypackage` into a Unity plugin project, you +*must* specify the command line option `-gvh_disable` which will prevent the +Version Handler component from running and changing the Unity asset metadata. + +# Android Resolver Usage + +The Android Resolver copies specified dependencies from local or remote Maven +repositories into the Unity project when a user selects Android as the build +target in the Unity editor. + + 1. Add the `external-dependency-manager-*.unitypackage` to your plugin + project (assuming you are developing a plugin). If you are redistributing + EDM4U with your plugin, you **must** follow the + import steps in the [Getting Started](#getting-started) section! + + 2. Copy and rename the + [SampleDependencies.xml](https://github.com/googlesamples/unity-jar-resolver/blob/master/sample/Assets/ExternalDependencyManager/Editor/SampleDependencies.xml) + file into your plugin and add the dependencies your plugin requires. + + The XML file just needs to be under an `Editor` directory and match the + name `*Dependencies.xml`. For example, + `MyPlugin/Editor/MyPluginDependencies.xml`. + + 3. Follow the steps in the [Getting Started](#getting-started) + section when you are exporting your plugin package. + +For example, to add the Google Play Games library +(`com.google.android.gms:play-services-games` package) at version `9.8.0` to +the set of a plugin's Android dependencies: + +``` + + + + + extra-google-m2repository + + + + +``` + +The version specification (last component) supports: + + * Specific versions e.g `9.8.0` + * Partial matches e.g `9.8.+` would match 9.8.0, 9.8.1 etc. choosing the most + recent version. + * Latest version using `LATEST` or `+`. We do *not* recommend using this + unless you're 100% sure the library you depend upon will not break your + Unity plugin in future. + +The above example specifies the dependency as a component of the Android SDK +manager such that the Android SDK manager will be executed to install the +package if it's not found. If your Android dependency is located on Maven +central it's possible to specify the package simply using the `androidPackage` +element: + +``` + + + + + +``` + +## Auto-resolution + +By default the Android Resolver automatically monitors the dependencies you have +specified and the `Plugins/Android` folder of your Unity project. The +resolution process runs when the specified dependencies are not present in your +project. + +The *auto-resolution* process can be disabled via the +`Assets > External Dependency Manager > Android Resolver > Settings` menu. + +Manual resolution can be performed using the following menu options: + + * `Assets > External Dependency Manager > Android Resolver > Resolve` + * `Assets > External Dependency Manager > Android Resolver > Force Resolve` + +## Deleting libraries + +Resolved packages are tracked via asset labels by the Android Resolver. +They can easily be deleted using the +`Assets > External Dependency Manager > Android Resolver > Delete Resolved Libraries` +menu item. + +## Android Manifest Variable Processing + +Some AAR files (for example play-services-measurement) contain variables that +are processed by the Android Gradle plugin. Unfortunately, Unity does not +perform the same processing when using Unity's Internal Build System, so the +Android Resolver plugin handles known cases of this variable substitution +by exploding the AAR into a folder and replacing `${applicationId}` with the +`bundleID`. + +Disabling AAR explosion and therefore Android manifest processing can be done +via the `Assets > External Dependency Manager > Android Resolver > Settings` +menu. You may want to disable explosion of AARs if you're exporting a project +to be built with Gradle / Android Studio. + +## ABI Stripping + +Some AAR files contain native libraries (.so files) for each ABI supported +by Android. Unfortunately, when targeting a single ABI (e.g x86), Unity does +not strip native libraries for unused ABIs. To strip unused ABIs, the Android +Resolver plugin explodes an AAR into a folder and removes unused ABIs to +reduce the built APK size. Furthermore, if native libraries are not stripped +from an APK (e.g you have a mix of Unity's x86 library and some armeabi-v7a +libraries) Android may attempt to load the wrong library for the current +runtime ABI completely breaking your plugin when targeting some architectures. + +AAR explosion and therefore ABI stripping can be disabled via the +`Assets > External Dependency Manager > Android Resolver > Settings` menu. +You may want to disable explosion of AARs if you're exporting a project to be +built with Gradle / Android Studio. + +## Resolution Strategies + +By default the Android Resolver will use Gradle to download dependencies prior +to integrating them into a Unity project. This works with Unity's internal +build system and Gradle / Android Studio project export. + +It's possible to change the resolution strategy via the +`Assets > External Dependency Manager > Android Resolver > Settings` menu. + +### Download Artifacts with Gradle + +Using the default resolution strategy, the Android resolver executes the +following operations: + + - Remove the result of previous Android resolutions. + e.g Delete all files and directories labeled with "gpsr" under + `Plugins/Android` from the project. + - Collect the set of Android dependencies (libraries) specified by a + project's `*Dependencies.xml` files. + - Run `download_artifacts.gradle` with Gradle to resolve conflicts and, + if successful, download the set of resolved Android libraries (AARs, JARs). + - Process each AAR / JAR so that it can be used with the currently selected + Unity build system (e.g Internal vs. Gradle, Export vs. No Export). + This involves patching each reference to `applicationId` in the + AndroidManifest.xml with the project's bundle ID. This means resolution + must be run if the bundle ID is changed again. + - Move the processed AARs to `Plugins/Android` so they will be included when + Unity invokes the Android build. + +### Integrate into mainTemplate.gradle + +Unity 5.6 introduced support for customizing the `build.gradle` used to build +Unity projects with Gradle. When the *Patch mainTemplate.gradle* setting is +enabled, rather than downloading artifacts before the build, Android resolution +results in the execution of the following operations: + + - Remove the result of previous Android resolutions. + e.g Delete all files and directories labeled with "gpsr" under + `Plugins/Android` from the project and remove sections delimited with + `// Android Resolver * Start` and `// Android Resolver * End` lines. + - Collect the set of Android dependencies (libraries) specified by a + project's `*Dependencies.xml` files. + - Rename any `.srcaar` files in the build to `.aar` and exclude them from + being included directly by Unity in the Android build as + `mainTemplate.gradle` will be patched to include them instead from their + local maven repositories. + - Inject the required Gradle repositories into `mainTemplate.gradle` at the + line matching the pattern + `.*apply plugin: 'com\.android\.(application|library)'.*` or the section + starting at the line `// Android Resolver Repos Start`. + If you want to control the injection point in the file, the section + delimited by the lines `// Android Resolver Repos Start` and + `// Android Resolver Repos End` should be placed in the global scope + before the `dependencies` section. + - Inject the required Android dependencies (libraries) into + `mainTemplate.gradle` at the line matching the pattern `***DEPS***` or + the section starting at the line `// Android Resolver Dependencies Start`. + If you want to control the injection point in the file, the section + delimited by the lines `// Android Resolver Dependencies Start` and + `// Android Resolver Dependencies End` should be placed in the + `dependencies` section. + - Inject the packaging options logic, which excludes architecture specific + libraries based upon the selected build target, into `mainTemplate.gradle` + at the line matching the pattern `android +{` or the section starting at + the line `// Android Resolver Exclusions Start`. + If you want to control the injection point in the file, the section + delimited by the lines `// Android Resolver Exclusions Start` and + `// Android Resolver Exclusions End` should be placed in the global + scope before the `android` section. + +## Dependency Tracking + +The Android Resolver creates the +`ProjectSettings/AndroidResolverDependencies.xml` to quickly determine the set +of resolved dependencies in a project. This is used by the auto-resolution +process to only run the expensive resolution process when necessary. + +## Displaying Dependencies + +It's possible to display the set of dependencies the Android Resolver +would download and process in your project via the +`Assets > External Dependency Manager > Android Resolver > Display Libraries` +menu item. + +# iOS Resolver Usage + +The iOS resolver component of this plugin manages +[CocoaPods](https://cocoapods.org/). A CocoaPods `Podfile` is generated and +the `pod` tool is executed as a post build process step to add dependencies +to the Xcode project exported by Unity. + +Dependencies for iOS are added by referring to CocoaPods. + + 1. Add the `external-dependency-manager-*.unitypackage` to your plugin + project (assuming you are developing a plugin). If you are redistributing + EDM4U with your plugin, you **must** follow the + import steps in the [Getting Started](#getting-started) section! + + 2. Copy and rename the + [SampleDependencies.xml](https://github.com/googlesamples/unity-jar-resolver/blob/master/sample/Assets/ExternalDependencyManager/Editor/SampleDependencies.xml) + file into your plugin and add the dependencies your plugin requires. + + The XML file just needs to be under an `Editor` directory and match the + name `*Dependencies.xml`. For example, + `MyPlugin/Editor/MyPluginDependencies.xml`. + + 3. Follow the steps in the [Getting Started](#getting-started) + section when you are exporting your plugin package. + +For example, to add the AdMob pod, version 7.0 or greater with bitcode enabled: + +``` + + + + + +``` + +## Integration Strategies + +The `CocoaPods` are either: + * Downloaded and injected into the Xcode project file directly, rather than + creating a separate xcworkspace. We call this `Xcode project` integration. + * If the Unity version supports opening a xcworkspace file, the `pod` tool + is used as intended to generate a xcworkspace which references the + CocoaPods. We call this `Xcode workspace` integration. + +The resolution strategy can be changed via the +`Assets > External Dependency Manager > iOS Resolver > Settings` menu. + +### Appending text to generated Podfile +In order to modify the generated Podfile you can create a script like this: +``` +using System.IO; +public class PostProcessIOS : MonoBehaviour { +[PostProcessBuildAttribute(45)]//must be between 40 and 50 to ensure that it's not overriden by Podfile generation (40) and that it's added before "pod install" (50) +private static void PostProcessBuild_iOS(BuildTarget target, string buildPath) +{ + if (target == BuildTarget.iOS) + { + + using (StreamWriter sw = File.AppendText(buildPath + "/Podfile")) + { + //in this example I'm adding an app extension + sw.WriteLine("\ntarget 'NSExtension' do\n pod 'Firebase/Messaging', '6.6.0'\nend"); + } + } +} +``` + +# Package Manager Resolver Usage + +Adding registries to the +[Package Manager](https://docs.unity3d.com/Manual/Packages.html) +(PM) is a manual process. The Package Manager Resolver (PMR) component +of this plugin makes it easy for plugin maintainers to distribute new PM +registry servers and easy for plugin users to manage PM registry servers. + +## Adding Registries + + 1. Add the `external-dependency-manager-*.unitypackage` to your plugin + project (assuming you are developing a plugin). If you are redistributing + EDM4U with your plugin, you **must** follow the + import steps in the [Getting Started](#getting-started) section! + + 2. Copy and rename the + [SampleRegistries.xml](https://github.com/googlesamples/unity-jar-resolver/blob/master/sample/Assets/ExternalDependencyManager/Editor/sample/Assets/ExternalDependencyManager/Editor/SampleRegistries.xml) + file into your plugin and add the registries your plugin requires. + + The XML file just needs to be under an `Editor` directory and match the + name `*Registries.xml` or labeled with `gumpr_registries`. For example, + `MyPlugin/Editor/MyPluginRegistries.xml`. + + 3. Follow the steps in the [Getting Started](#getting-started) + section when you are exporting your plugin package. + +For example, to add a registry for plugins in the scope `com.coolstuff`: + +``` + + + + com.coolstuff + + + +``` + +When PMR is loaded it will prompt the developer to add the registry to their +project if it isn't already present in the `Packages/manifest.json` file. + +For more information, see Unity's documentation on +[scoped package registries](https://docs.unity3d.com/Manual/upm-scoped.html). + +## Managing Registries + +It's possible to add and remove registries that are specified via PMR +XML configuration files via the following menu options: + +* `Assets > External Dependency Manager > Package Manager Resolver > + Add Registries` will prompt the user with a window which allows them to + add registries discovered in the project to the Package Manager. +* `Assets > External Dependency Manager > Package Manager Resolver > + Remove Registries` will prompt the user with a window which allows them to + remove registries discovered in the project from the Package Manager. +* `Assets > External Dependency Manager > Package Manager Resolver > + Modify Registries` will prompt the user with a window which allows them to + add or remove registries discovered in the project. + +## Migration + +PMR can migrate Version Handler packages installed in the `Assets` folder +to PM packages. This requires the plugins to implement the following: + +* `.unitypackage` must include a Version Handler manifests that describes + the components of the plugin. If the plugin has no dependencies + the manifest would just include the files in the plugin. +* The PM package JSON provided by the registry must include a keyword + (in the `versions.VERSION.keyword` list) that maps the PM package + to a Version Handler package using the format + `vh-name:VERSION_HANDLER_MANIFEST_NAME` where `VERSION_HANDLER_MANIFEST_NAME` + is the name of the manifest defined in the `.unitypackage`. For + more information see the description of the `gvhp_manifestname` asset label + in the *Version Handler Usage* section. + +When using the `Assets > External Dependency Manager > +Package Manager Resolver > Migrate Packages` menu option, PMR then +will: + +* List all Version Handler manager packages in the project. +* Search all available packages in the PM registries and fetch keywords + associated with each package parsing the Version Handler manifest names + for each package. +* Map each installed Version Handler package to a PM package. +* Prompt the user to migrate the discovered packages. +* Perform package migration for all selected packages if the user clicks + the `Apply` button. + +## Configuration + +PMR can be configured via the `Assets > External Dependency Manager > +Package Manager Resolver > Settings` menu option: + +* `Add package registries` when enabled, when the plugin loads or registry + configuration files change, this will prompt the user to add registries + that are not present in the Package Manager. +* `Prompt to add package registries` will cause a developer to be prompted + with a window that will ask for confirmation before adding registries. + When this is disabled registries are added silently to the project. +* `Prompt to migrate packages` will cause a developer to be prompted + with a window that will ask for confirmation before migrating packages + installed in the `Assets` directory to PM packages. +* `Enable Analytics Reporting` when enabled, reports the use of the plugin + to the developers so they can make imrpovements. +* `Verbose logging` when enabled prints debug information to the console + which can be useful when filing bug reports. + +# Version Handler Usage + +The Version Handler component of this plugin manages: + +* Shared Unity plugin dependencies. +* Upgrading Unity plugins by cleaning up old files from previous versions. +* Uninstallation of plugins that are distributed with manifest files. +* Restoration of plugin assets to their original install locations if assets + are tagged with the `exportpath` label. + +Since the Version Handler needs to modify Unity asset metadata (`.meta` files), +to enable / disable components, rename and delete asset files it does not +work with Package Manager installed packages. It's still possible to +include EDM4U in Package Manager packages, the Version Handler component +simply won't do anything to PM plugins in this case. + +## Using Version Handler Managed Plugins + +If a plugin is imported at multiple different versions into a project, if +the Version Handler is enabled, it will automatically check all managed +assets to determine the set of assets that are out of date and assets that +should be removed. To disable automatic checking managed assets disable +the `Enable version management` option in the +`Assets > External Dependency Manager > Version Handler > Settings` menu. + +If version management is disabled, it's possible to check managed assets +manually using the +`Assets > External Dependency Manager > Version Handler > Update` menu option. + +### Listing Managed Plugins + +Plugins managed by the Version Handler, those that ship with manifest files, +can displayed using the `Assets > External Dependency Manager > +Version Handler > Display Managed Packages` menu option. The list of plugins +are written to the console window along with the set of files used by each +plugin. + +### Uninstalling Managed Plugins + +Plugins managed by the Version Handler, those that ship with manifest files, +can be removed using the `Assets > External Dependency Manager > +Version Handler > Uninstall Managed Packages` menu option. This operation +will display a window that allows a developer to select a set of plugins to +remove which will remove all files owned by each plugin excluding those that +are in use by other installed plugins. + +Files managed by the Version Handler, those labeled with the `gvh` asset label, +can be checked to see whether anything needs to be upgraded, disabled or +removed using the `Assets > External Dependency Manager > +Version Handler > Update` menu option. + +### Restore Install Paths + +Some developers move assets around in their project which can make it +harder for plugin maintainers to debug issues if this breaks Unity's +[special folders](https://docs.unity3d.com/Manual/SpecialFolders.html) rules. +If assets are labeled with their original install / export path +(see `gvhp_exportpath` below), Version Handler can restore assets to their +original locations when using the `Assets > External Dependency Manager > +Version Handler > Move Files To Install Locations` menu option. + +### Settings + +Some behavior of the Version Handler can be configured via the +`Assets > External Dependency Manager > Version Handler > Settings` menu +option. + +* `Enable version management` controls whether the plugin should automatically + check asset versions and apply changes. If this is disabled the process + should be run manually when installing or upgrading managed plugins using + `Assets > External Dependency Manager > Version Handler > Update`. +* `Rename to canonical filenames` is a legacy option that will rename files to + remove version numbers and other labels from filenames. +* `Prompt for obsolete file deletion` enables the display of a window when + obsolete files are deleted allowing the developer to select which files to + delete and those to keep. +* `Allow disabling files via renaming` controls whether obsolete or disabled + files should be disabled by renaming them to `myfilename_DISABLED`. + Renaming to disable files is required in some scenarios where Unity doesn't + support removing files from the build via the PluginImporter. +* `Enable Analytics Reporting` enables / disables usage reporting to plugin + developers to improve the product. +* `Verbose logging` enables _very_ noisy log output that is useful for + debugging while filing a bug report or building a new managed plugin. +* `Use project settings` saves settings for the plugin in the project rather + than system-wide. + +## Redistributing a Managed Plugin + +The Version Handler employs a couple of methods for managing version +selection, upgrade and removal of plugins. + +* Each plugin can ship with a manifest file that lists the files it includes. + This makes it possible for Version Handler to calculate the difference + in assets between the most recent release of a plugin and the previous + release installed in a project. If a files are removed the Version Handler + will prompt the user to clean up obsolete files. +* Plugins can ship using assets with unique names, unique GUIDs and version + number labels. Version numbers can be attached to assets using labels or + added to the filename (e.g `myfile.txt` would be `myfile_version-x.y.z.txt). + This allows the Version Handler to determine which set of files are the + same file at different versions, select the most recent version and prompt + the developer to clean up old versions. + +Unity plugins can be managed by the Version Handler using the following steps: + + 1. Add the `gvh` asset label to each asset (file) you want Version Handler + to manage. + 1. Add the `gvh_version-VERSION` label to each asset where `VERSION` is the + version of the plugin you're releasing (e.g 1.2.3). + 1. Add the `gvhp_exportpath-PATH` label to each asset where `PATH` is the + export path of the file when the `.unitypackage` is created. This is + used to track files if they're moved around in a project by developers. + 1. Optional: Add `gvh_targets-editor` label to each editor DLL in your + plugin and disable `editor` as a target platform for the DLL. + The Version Handler will enable the most recent version of this DLL when + the plugin is imported. + 1. Optional: If your plugin is included in other Unity plugins, you should + add the version number to each filename and change the GUID of each asset. + This allows multiple versions of your plugin to be imported into a Unity + project, with the Version Handler component activating only the most + recent version. + 1. Create a manifest text file named `MY_UNIQUE_PLUGIN_NAME_VERSION.txt` + that lists all the files in your plugin relative to the project root. + Then add the `gvh_manifest` label to the asset to indicate this file is + a plugin manifest. + 1. Optional: Add a `gvhp_manifestname-NAME` label to your manifest file + to provide a human readable name for your package. If this isn't provided + the name of the manifest file will be used as the package name. + NAME can match the pattern `[0-9]+[a-zA-Z -]' where a leading integer + will set the priority of the name where `0` is the highest priority + and preferably used as the display name. The lowest value (i.e highest + priority name) will be used as the display name and all other specified + names will be aliases of the display name. Aliases can refer to previous + names of the package allowing renaming across published versions. + 1. Redistribute EDM4U Unity plugin with your plugin. + See the [Plugin Redistribution](#plugin-redistribution) for the details. + +If you follow these steps: + + * When users import a newer version of your plugin, files referenced by the + older version's manifest are cleaned up. + * The latest version of the plugin will be selected when users import + multiple packages that include your plugin, assuming the steps in + [Plugin Redistribution](#plugin-redistribution) are followed. + +# Building from Source + +To build this plugin from source you need the following tools installed: + * Unity (with iOS and Android modules installed) + +You can build the plugin by running the following from your shell +(Linux / OSX): + +``` +./gradlew build +``` + +or Windows: + +``` +./gradlew.bat build +``` + +# Releasing + +Each time a new build of this plugin is checked into the source tree you +need to do the following: + + * Bump the plugin version variable `pluginVersion` in `build.gradle` + * Update `CHANGELOG.md` with the new version number and changes included in + the release. + * Build the release using `./gradlew release` which performs the following: + * Updates `external-dependency-manager-*.unitypackage` + * Copies the unpacked plugin to the `exploded` directory. + * Updates template metadata files in the `plugin` directory. + The GUIDs of all asset metadata is modified due to the version number + change. Each file within the plugin is versioned to allow multiple + versions of the plugin to be imported into a Unity project which allows + the most recent version to be activated by the Version Handler + component. + * Create release commit using `./gradlew gitCreateReleaseCommit` which + performs `git commit -a -m "description from CHANGELOG.md"` + * Once the release commit is merge, tag the release using + `./gradlew gitTagRelease` which performs the following: + * `git tag -a pluginVersion -m "version RELEASE"` to tag the release. + * Update tags on remote branch using `git push --tag REMOTE HEAD:master` diff --git a/unity/Assets/ExternalDependencyManager/Editor/README.md.meta b/unity/Assets/ExternalDependencyManager/Editor/README.md.meta new file mode 100644 index 000000000..23f1b992b --- /dev/null +++ b/unity/Assets/ExternalDependencyManager/Editor/README.md.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 11eb52f780284fd69194951ac46cb538 +labels: +- gvh +- gvh_version-6.15.2 +- gvhp_exportpath-ExternalDependencyManager/Editor/README.md +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity/Assets/ExternalDependencyManager/Editor/external-dependency-manager_version-1.2.156_manifest.txt b/unity/Assets/ExternalDependencyManager/Editor/external-dependency-manager_version-1.2.156_manifest.txt new file mode 100644 index 000000000..06ece7899 --- /dev/null +++ b/unity/Assets/ExternalDependencyManager/Editor/external-dependency-manager_version-1.2.156_manifest.txt @@ -0,0 +1,14 @@ +Assets/ExternalDependencyManager/Editor/CHANGELOG.md +Assets/ExternalDependencyManager/Editor/Google.IOSResolver_v1.2.156.dll +Assets/ExternalDependencyManager/Editor/Google.IOSResolver_v1.2.156.dll.mdb +Assets/ExternalDependencyManager/Editor/Google.JarResolver_v1.2.156.dll +Assets/ExternalDependencyManager/Editor/Google.JarResolver_v1.2.156.dll.mdb +Assets/ExternalDependencyManager/Editor/Google.PackageManagerResolver_v1.2.156.dll +Assets/ExternalDependencyManager/Editor/Google.PackageManagerResolver_v1.2.156.dll.mdb +Assets/ExternalDependencyManager/Editor/Google.VersionHandler.dll +Assets/ExternalDependencyManager/Editor/Google.VersionHandler.dll.mdb +Assets/ExternalDependencyManager/Editor/Google.VersionHandlerImpl_v1.2.156.dll +Assets/ExternalDependencyManager/Editor/Google.VersionHandlerImpl_v1.2.156.dll.mdb +Assets/ExternalDependencyManager/Editor/GoogleRegistries.xml +Assets/ExternalDependencyManager/Editor/LICENSE +Assets/ExternalDependencyManager/Editor/README.md diff --git a/unity/Assets/ExternalDependencyManager/Editor/external-dependency-manager_version-1.2.156_manifest.txt.meta b/unity/Assets/ExternalDependencyManager/Editor/external-dependency-manager_version-1.2.156_manifest.txt.meta new file mode 100644 index 000000000..376ae7b4b --- /dev/null +++ b/unity/Assets/ExternalDependencyManager/Editor/external-dependency-manager_version-1.2.156_manifest.txt.meta @@ -0,0 +1,14 @@ +fileFormatVersion: 2 +guid: 12dc913e0ab84c37aa57b1cfc1a5f1a2 +labels: +- gvh +- gvh_manifest +- gvh_version-1.2.156 +- gvhp_exportpath-ExternalDependencyManager/Editor/external-dependency-manager_version-1.2.156_manifest.txt +- gvhp_manifestname-0External Dependency Manager +- gvhp_manifestname-play-services-resolver +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity/Assets/Firebase.meta b/unity/Assets/Firebase.meta new file mode 100644 index 000000000..0a6df40ec --- /dev/null +++ b/unity/Assets/Firebase.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a72f5ad8732143f48944519870a19abd +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity/Assets/Firebase/Editor.meta b/unity/Assets/Firebase/Editor.meta new file mode 100644 index 000000000..08de1857f --- /dev/null +++ b/unity/Assets/Firebase/Editor.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f27d6d6ae844e3242b0702af918ce695 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity/Assets/Firebase/Editor/AppDependencies.xml b/unity/Assets/Firebase/Editor/AppDependencies.xml new file mode 100644 index 000000000..1e0e86cb9 --- /dev/null +++ b/unity/Assets/Firebase/Editor/AppDependencies.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + Assets/Firebase/m2repository + + + + + diff --git a/unity/Assets/Firebase/Editor/AppDependencies.xml.meta b/unity/Assets/Firebase/Editor/AppDependencies.xml.meta new file mode 100644 index 000000000..11c9a7019 --- /dev/null +++ b/unity/Assets/Firebase/Editor/AppDependencies.xml.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 9b63af95d9364af4a3d8ce58738b6223 +labels: +- gvh +- gvh_version-6.15.2 +- gvhp_exportpath-Firebase/Editor/AppDependencies.xml +timeCreated: 1480838400 +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity/Assets/Firebase/Editor/CrashlyticsDependencies.xml b/unity/Assets/Firebase/Editor/CrashlyticsDependencies.xml new file mode 100644 index 000000000..ced67fe47 --- /dev/null +++ b/unity/Assets/Firebase/Editor/CrashlyticsDependencies.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + Assets/Firebase/m2repository + + + + + diff --git a/unity/Assets/Firebase/Editor/CrashlyticsDependencies.xml.meta b/unity/Assets/Firebase/Editor/CrashlyticsDependencies.xml.meta new file mode 100644 index 000000000..abaa61a8d --- /dev/null +++ b/unity/Assets/Firebase/Editor/CrashlyticsDependencies.xml.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: be690db6bda046a89e38b20ef9bfe06c +labels: +- gvh +- gvh_version-6.15.2 +- gvhp_exportpath-Firebase/Editor/CrashlyticsDependencies.xml +timeCreated: 1480838400 +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity/Assets/Firebase/Editor/Firebase.Crashlytics.Editor.dll b/unity/Assets/Firebase/Editor/Firebase.Crashlytics.Editor.dll new file mode 100644 index 000000000..416b33342 --- /dev/null +++ b/unity/Assets/Firebase/Editor/Firebase.Crashlytics.Editor.dll @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:94ec418f248b2608bc3479880ed38068b2ffab48a356f6bf278cfe9a83d2e2fb +size 22016 diff --git a/unity/Assets/Firebase/Editor/Firebase.Crashlytics.Editor.dll.mdb b/unity/Assets/Firebase/Editor/Firebase.Crashlytics.Editor.dll.mdb new file mode 100644 index 0000000000000000000000000000000000000000..4074e9b20f11f0582464a25c3ecb151b042b256c GIT binary patch literal 7065 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 element and put into the list of keeps. + + Args: + parent: The object that will hold the string. + name: The name to store the string under. + text: The text of the string. + """ + if text: + prev = parent.get('tools:keep', '') + if prev: + prev += ',' + parent.set('tools:keep', prev + '@string/' + name) + child = ElementTree.SubElement(parent, 'string', { + 'name': name, + 'translatable': 'false' + }) + child.text = text + + +def indent(elem, level=0): + """Recurse through XML tree and add indentation. + + Args: + elem: The element to recurse over + level: The current indentation level. + """ + i = '\n' + level*' ' + if elem is not None: + if not elem.text or not elem.text.strip(): + elem.text = i + ' ' + if not elem.tail or not elem.tail.strip(): + elem.tail = i + for elem in elem: + indent(elem, level+1) + if not elem.tail or not elem.tail.strip(): + elem.tail = i + else: + if level and (not elem.tail or not elem.tail.strip()): + elem.tail = i + + +def argv_as_unicode_win32(): + """Returns unicode command line arguments on windows. + """ + + get_command_line_w = ctypes.cdll.kernel32.GetCommandLineW + get_command_line_w.restype = ctypes.wintypes.LPCWSTR + + # CommandLineToArgvW parses the Unicode command line + command_line_to_argv_w = ctypes.windll.shell32.CommandLineToArgvW + command_line_to_argv_w.argtypes = [ + ctypes.wintypes.LPCWSTR, + ctypes.POINTER(ctypes.c_int) + ] + command_line_to_argv_w.restype = ctypes.POINTER( + ctypes.wintypes.LPWSTR) + + argc = ctypes.c_int(0) + argv = command_line_to_argv_w(get_command_line_w(), argc) + + # Strip the python executable from the arguments if it exists + # (It would be listed as the first argument on the windows command line, but + # not in the arguments to the python script) + sys_argv_len = len(sys.argv) + return [unicode(argv[i]) for i in + range(argc.value - sys_argv_len, argc.value)] + + +def main(): + parser = argparse.ArgumentParser( + description=(( + 'Converts a Firebase %s into %s similar to the Gradle plugin, or ' + 'converts a Firebase %s into a %s suitible for use on desktop apps.' % + (DEFAULT_INPUT_FILENAME, DEFAULT_OUTPUT_FILENAME, + DEFAULT_PLIST_INPUT_FILENAME, DEFAULT_JSON_OUTPUT_FILENAME)))) + parser.add_argument('-i', help='Override input file name', + metavar='FILE', required=False) + parser.add_argument('-o', help='Override destination file name', + metavar='FILE', required=False) + parser.add_argument('-p', help=('Package ID to select within the set of ' + 'packages in the input file. If this is ' + 'not specified, the first package in the ' + 'input file is selected.')) + parser.add_argument('-l', help=('List all package IDs referenced by the ' + 'input file. If this is specified, ' + 'the output file is not created.'), + action='store_true', default=False, required=False) + parser.add_argument('-f', help=('Print project fields from the input file ' + 'in the form \'name=value\\n\' for each ' + 'field. If this is specified, the output ' + 'is not created.'), + action='store_true', default=False, required=False) + parser.add_argument( + '--plist', + help=( + 'Specifies a plist file to convert to a JSON configuration file. ' + 'If this is enabled, the script will expect a .plist file as input, ' + 'which it will convert into %s file. The output file is ' + '*not* suitable for use with Firebase on Android.' % + (DEFAULT_JSON_OUTPUT_FILENAME)), + action='store_true', + default=False, + required=False) + + # python 2 on Windows doesn't handle unicode arguments well, so we need to + # pre-process the command line arguments before trying to parse them. + if platform.system() == 'Windows': + sys.argv = argv_as_unicode_win32() + + args = parser.parse_args() + + if args.plist: + input_filename = DEFAULT_PLIST_INPUT_FILENAME + output_filename = DEFAULT_JSON_OUTPUT_FILENAME + else: + input_filename = DEFAULT_INPUT_FILENAME + output_filename = DEFAULT_OUTPUT_FILENAME + + if args.i: + # Encode the input string (type unicode) as a normal string (type str) + # using the 'utf-8' encoding so that it can be worked with the same as + # input names from other sources (like the defaults). + input_filename_raw = args.i.encode('utf-8') + # Decode the filename to a unicode string using the 'utf-8' encoding to + # properly handle filepaths with unicode characters in them. + input_filename = input_filename_raw.decode('utf-8') + + if args.o: + output_filename = args.o + + with open(input_filename, 'r') as ifile: + file_string = ifile.read() + + json_string = None + if args.plist: + json_string = convert_plist_to_json(file_string, input_filename) + if json_string is None: + return 1 + jsobj = json.loads(json_string) + else: + jsobj = json.loads(file_string) + + root = ElementTree.Element('resources') + root.set('xmlns:tools', 'http://schemas.android.com/tools') + + project_info = jsobj.get('project_info') + if project_info: + gen_string(root, 'firebase_database_url', project_info.get('firebase_url')) + gen_string(root, 'gcm_defaultSenderId', project_info.get('project_number')) + gen_string(root, 'google_storage_bucket', + project_info.get('storage_bucket')) + gen_string(root, 'project_id', project_info.get('project_id')) + + if args.f: + if not project_info: + sys.stderr.write('No project info found in %s.' % input_filename) + return 1 + for field, value in sorted(project_info.items()): + sys.stdout.write('%s=%s\n' % (field, value)) + return 0 + + packages = set() + client_list = jsobj.get('client') + if client_list: + # Search for the user specified package in the file. + selected_package_name = '' + selected_client = client_list[0] + find_package_name = args.p + for client in client_list: + package_name = client.get('client_info', {}).get( + 'android_client_info', {}).get('package_name', '') + if not package_name: + package_name = client.get('oauth_client', {}).get( + 'android_info', {}).get('package_name', '') + if package_name: + if not selected_package_name: + selected_package_name = package_name + selected_client = client + if package_name == find_package_name: + selected_package_name = package_name + selected_client = client + packages.add(package_name) + + if args.p and selected_package_name != find_package_name: + sys.stderr.write('No packages found in %s which match the package ' + 'name %s\n' + '\n' + 'Found the following:\n' + '%s\n' % (input_filename, find_package_name, + '\n'.join(packages))) + return 1 + + client_api_key = selected_client.get('api_key') + if client_api_key: + client_api_key0 = client_api_key[0] + gen_string(root, 'google_api_key', client_api_key0.get('current_key')) + gen_string(root, 'google_crash_reporting_api_key', + client_api_key0.get('current_key')) + + client_info = selected_client.get('client_info') + if client_info: + gen_string(root, 'google_app_id', client_info.get('mobilesdk_app_id')) + + # Only include the first matching OAuth client ID per type. + client_id_web_parsed = False + client_id_android_parsed = False + + oauth_client_list = selected_client.get('oauth_client') + if oauth_client_list: + for oauth_client in oauth_client_list: + client_type = oauth_client.get('client_type') + client_id = oauth_client.get('client_id') + if not (client_type and client_id): continue + if (client_type == OAUTH_CLIENT_TYPE_WEB and + not client_id_web_parsed): + gen_string(root, 'default_web_client_id', client_id) + client_id_web_parsed = True + if (client_type == OAUTH_CLIENT_TYPE_ANDROID_APP and + not client_id_android_parsed): + gen_string(root, 'default_android_client_id', client_id) + client_id_android_parsed = True + + services = selected_client.get('services') + if services: + ads_service = services.get('ads_service') + if ads_service: + gen_string(root, 'test_banner_ad_unit_id', + ads_service.get('test_banner_ad_unit_id')) + gen_string(root, 'test_interstitial_ad_unit_id', + ads_service.get('test_interstitial_ad_unit_id')) + analytics_service = services.get('analytics_service') + if analytics_service: + analytics_property = analytics_service.get('analytics_property') + if analytics_property: + gen_string(root, 'ga_trackingId', + analytics_property.get('tracking_id')) + # enable this once we have an example if this service being present + # in the json data: + maps_service_enabled = False + if maps_service_enabled: + maps_service = services.get('maps_service') + if maps_service: + maps_api_key = maps_service.get('api_key') + if maps_api_key: + for k in range(0, len(maps_api_key)): + # generates potentially multiple of these keys, which is + # the same behavior as the java plugin. + gen_string(root, 'google_maps_key', + maps_api_key[k].get('maps_api_key')) + + tree = ElementTree.ElementTree(root) + + indent(root) + + if args.l: + for package in sorted(packages): + if package: + sys.stdout.write(package + '\n') + else: + path = os.path.dirname(output_filename) + + if path and not os.path.exists(path): + os.makedirs(path) + + if not args.plist: + tree.write(output_filename, 'utf-8', True) + else: + with open(output_filename, 'w') as ofile: + ofile.write(json_string) + + return 0 + +if __name__ == '__main__': + sys.exit(main()) diff --git a/unity/Assets/Firebase/Editor/generate_xml_from_google_services_json.py.meta b/unity/Assets/Firebase/Editor/generate_xml_from_google_services_json.py.meta new file mode 100644 index 000000000..cb8198c3b --- /dev/null +++ b/unity/Assets/Firebase/Editor/generate_xml_from_google_services_json.py.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8f18ed76c0f04ce0a65736104f913ef8 +labels: +- gvh +- gvh_version-6.15.2 +- gvhp_exportpath-Firebase/Editor/generate_xml_from_google_services_json.py +timeCreated: 1480838400 +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity/Assets/Firebase/Editor/network_request.exe b/unity/Assets/Firebase/Editor/network_request.exe new file mode 100644 index 000000000..d63ff132b --- /dev/null +++ b/unity/Assets/Firebase/Editor/network_request.exe @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:88e2282bc508f842f870b881332032bcf10b0bffe78b4b453ac6abdc872ba2e6 +size 9541202 diff --git a/unity/Assets/Firebase/Editor/network_request.exe.meta b/unity/Assets/Firebase/Editor/network_request.exe.meta new file mode 100644 index 000000000..ac2113e47 --- /dev/null +++ b/unity/Assets/Firebase/Editor/network_request.exe.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d3cd5d0a941c4cdc8ab4b1b684b05191 +labels: +- gvh +- gvh_version-6.15.2 +- gvhp_exportpath-Firebase/Editor/network_request.exe +timeCreated: 1480838400 +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity/Assets/Firebase/Editor/network_request.py b/unity/Assets/Firebase/Editor/network_request.py new file mode 100644 index 000000000..04f055f48 --- /dev/null +++ b/unity/Assets/Firebase/Editor/network_request.py @@ -0,0 +1,416 @@ +# Copyright 2019 Google LLC +# +# 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. +"""Wrapper script which makes a network request. + +Basic Usage: network_request.py post + --url + --header
(optional, support multiple) + --body (optional) + --timeout (optional) + --verbose (optional) +""" + +import argparse +import inspect +import logging +import socket +import sys + +# pylint: disable=g-import-not-at-top +# pylint: disable=g-importing-member +try: + from six.moves.http_client import HTTPSConnection + from six.moves.http_client import HTTPConnection + from six.moves.http_client import HTTPException +except ImportError: + from http.client import HTTPSConnection + from http.client import HTTPConnection + from http.client import HTTPException + +try: + from six.moves.urllib.parse import urlparse +except ImportError: + from urllib.parse import urlparse +# pylint: enable=g-import-not-at-top +# pylint: enable=g-importing-member + +# Set up logger as soon as possible +formatter = logging.Formatter('[%(levelname)s] %(message)s') + +handler = logging.StreamHandler(stream=sys.stdout) +handler.setFormatter(formatter) +handler.setLevel(logging.INFO) + +logger = logging.getLogger(__name__) +logger.addHandler(handler) +logger.setLevel(logging.INFO) + +# Custom exit codes for known issues. +# System exit codes in python are valid from 0 - 256, so we will map some common +# ones here to understand successes and failures. +# Uses lower ints to not collide w/ HTTP status codes that the script may return +EXIT_CODE_SUCCESS = 0 +EXIT_CODE_SYS_ERROR = 1 +EXIT_CODE_INVALID_REQUEST_VALUES = 2 +EXIT_CODE_GENERIC_HTTPLIB_ERROR = 3 +EXIT_CODE_HTTP_TIMEOUT = 4 +EXIT_CODE_HTTP_REDIRECT_ERROR = 5 +EXIT_CODE_HTTP_NOT_FOUND_ERROR = 6 +EXIT_CODE_HTTP_SERVER_ERROR = 7 +EXIT_CODE_HTTP_UNKNOWN_ERROR = 8 + +MAX_EXIT_CODE = 8 + +# All used http verbs +POST = 'POST' + + +def unwrap_kwarg_namespace(func): + """Transform a Namespace object from argparse into proper args and kwargs. + + For a function that will be delegated to from argparse, inspect all of the + argments and extract them from the Namespace object. + + Args: + func: the function that we are wrapping to modify behavior + + Returns: + a new function that unwraps all of the arguments in a namespace and then + delegates to the passed function with those args. + """ + # When we move to python 3, getfullargspec so that we can tell the + # difference between args and kwargs -- then this could be used for functions + # that have both args and kwargs + if 'getfullargspec' in dir(inspect): + argspec = inspect.getfullargspec(func) + else: + argspec = inspect.getargspec(func) # Python 2 compatibility. + + def wrapped(argparse_namespace=None, **kwargs): + """Take a Namespace object and map it to kwargs. + + Inspect the argspec of the passed function. Loop over all the args that + are present in the function and try to map them by name to arguments in the + namespace. For keyword arguments, we do not require that they be present + in the Namespace. + + Args: + argparse_namespace: an arparse.Namespace object, the result of calling + argparse.ArgumentParser().parse_args() + **kwargs: keyword arguments that may be passed to the original function + Returns: + The return of the wrapped function from the parent. + + Raises: + ValueError in the event that an argument is passed to the cli that is not + in the set of named kwargs + """ + if not argparse_namespace: + return func(**kwargs) + + reserved_namespace_keywords = ['func'] + new_kwargs = {} + + args = argspec.args or [] + for arg_name in args: + passed_value = getattr(argparse_namespace, arg_name, None) + if passed_value is not None: + new_kwargs[arg_name] = passed_value + + for namespace_key in vars(argparse_namespace).keys(): + # ignore namespace keywords that have been set not passed in via cli + if namespace_key in reserved_namespace_keywords: + continue + + # make sure that we haven't passed something we should be processing + if namespace_key not in args: + raise ValueError('CLI argument "{}" does not match any argument in ' + 'function {}'.format(namespace_key, func.__name__)) + + return func(**new_kwargs) + + wrapped.__name__ = func.__name__ + return wrapped + + +class NetworkRequest(object): + """A container for an network request object. + + This class holds on to all of the attributes necessary for making a + network request via httplib. + """ + + def __init__(self, url, method, headers, body, timeout): + self.url = url.lower() + self.parsed_url = urlparse(self.url) + self.method = method + self.headers = headers + self.body = body + self.timeout = timeout + self.is_secure_connection = self.is_secure_connection() + + def execute_request(self): + """"Execute the request, and get a response. + + Returns: + an HttpResponse object from httplib + """ + if self.is_secure_connection: + conn = HTTPSConnection(self.get_hostname(), timeout=self.timeout) + else: + conn = HTTPConnection(self.get_hostname(), timeout=self.timeout) + + conn.request(self.method, self.url, self.body, self.headers) + response = conn.getresponse() + return response + + def get_hostname(self): + """Return the hostname for the url.""" + return self.parsed_url.netloc + + def is_secure_connection(self): + """Checks for a secure connection of https. + + Returns: + True if the scheme is "https"; False if "http" + + Raises: + ValueError when the scheme does not match http or https + """ + scheme = self.parsed_url.scheme + + if scheme == 'http': + return False + elif scheme == 'https': + return True + else: + raise ValueError('The url scheme is not "http" nor "https"' + ': {}'.format(scheme)) + + +def parse_colon_delimited_options(option_args): + """Parses a key value from a string. + + Args: + option_args: Key value string delimited by a color, ex: ("key:value") + + Returns: + Return an array with the key as the first element and value as the second + + Raises: + ValueError: If the key value option is not formatted correctly + """ + options = {} + + if not option_args: + return options + + for single_arg in option_args: + values = single_arg.split(':') + if len(values) != 2: + raise ValueError('An option arg must be a single key/value pair ' + 'delimited by a colon - ex: "thing_key:thing_value"') + + key = values[0].strip() + value = values[1].strip() + options[key] = value + + return options + + +def make_request(request): + """Makes a synchronous network request and return the HTTP status code. + + Args: + request: a well formulated request object + + Returns: + The HTTP status code of the network request. + '1' maps to invalid request headers. + """ + + logger.info('Sending network request -') + logger.info('\tUrl: %s', request.url) + logger.debug('\tMethod: %s', request.method) + logger.debug('\tHeaders: %s', request.headers) + logger.debug('\tBody: %s', request.body) + + try: + response = request.execute_request() + except socket.timeout: + logger.exception( + 'Timed out post request to %s in %d seconds for request body: %s', + request.url, request.timeout, request.body) + return EXIT_CODE_HTTP_TIMEOUT + except (HTTPException, socket.error): + logger.exception( + 'Encountered generic exception in posting to %s with request body %s', + request.url, request.body) + return EXIT_CODE_GENERIC_HTTPLIB_ERROR + + status = response.status + headers = response.getheaders() + logger.info('Received Network response -') + logger.info('\tStatus code: %d', status) + logger.debug('\tResponse headers: %s', headers) + + if status < 200 or status > 299: + logger.error('Request (%s) failed with status code %d\n', request.url, + status) + + # If we wanted this script to support get, we need to + # figure out what mechanism we intend for capturing the response + return status + + +@unwrap_kwarg_namespace +def post(url=None, header=None, body=None, timeout=5, verbose=False): + """Sends a post request. + + Args: + url: The url of the request + header: A list of headers for the request + body: The body for the request + timeout: Timeout in seconds for the request + verbose: Should debug logs be displayed + + Returns: + Return an array with the key as the first element and value as the second + """ + + if verbose: + handler.setLevel(logging.DEBUG) + logger.setLevel(logging.DEBUG) + + try: + logger.info('Parsing headers: %s', header) + headers = parse_colon_delimited_options(header) + except ValueError: + logging.exception('Could not parse the parameters with "--header": %s', + header) + return EXIT_CODE_INVALID_REQUEST_VALUES + + try: + request = NetworkRequest(url, POST, headers, body, float(timeout)) + except ValueError: + logger.exception('Invalid request values passed into the script.') + return EXIT_CODE_INVALID_REQUEST_VALUES + + status = make_request(request) + + # View exit code after running to get the http status code: 'echo $?' + return status + + +def get_argsparser(): + """Returns the argument parser. + + Returns: + Argument parser for the script. + """ + + parser = argparse.ArgumentParser( + description='The script takes in the arguments of a network request. ' + 'The network request is sent and the http status code will be' + 'returned as the exit code.') + subparsers = parser.add_subparsers(help='Commands:') + post_parser = subparsers.add_parser( + post.__name__, help='{} help'.format(post.__name__)) + post_parser.add_argument( + '--url', + help='Request url. Ex: https://www.google.com/somePath/', + required=True, + dest='url') + post_parser.add_argument( + '--header', + help='Request headers as a space delimited list of key ' + 'value pairs. Ex: "key1:value1 key2:value2"', + action='append', + required=False, + dest='header') + post_parser.add_argument( + '--body', + help='The body of the network request', + required=True, + dest='body') + post_parser.add_argument( + '--timeout', + help='The timeout in seconds', + default=10.0, + required=False, + dest='timeout') + post_parser.add_argument( + '--verbose', + help='Should verbose logging be outputted', + action='store_true', + default=False, + required=False, + dest='verbose') + post_parser.set_defaults(func=post) + return parser + + +def map_http_status_to_exit_code(status_code): + """Map an http status code to the appropriate exit code. + + Exit codes in python are valid from 0-256, so we want to map these to + predictable exit codes within range. + + Args: + status_code: the input status code that was output from the network call + function + + Returns: + One of our valid exit codes declared at the top of the file or a generic + unknown error code + """ + if status_code <= MAX_EXIT_CODE: + return status_code + + if status_code > 199 and status_code < 300: + return EXIT_CODE_SUCCESS + + if status_code == 302: + return EXIT_CODE_HTTP_REDIRECT_ERROR + + if status_code == 404: + return EXIT_CODE_HTTP_NOT_FOUND_ERROR + + if status_code > 499: + return EXIT_CODE_HTTP_SERVER_ERROR + + return EXIT_CODE_HTTP_UNKNOWN_ERROR + + +def main(): + """Main function to run the program. + + Parse system arguments and delegate to the appropriate function. + + Returns: + A status code - either an http status code or a custom error code + """ + parser = get_argsparser() + subparser_action = parser.parse_args() + try: + return subparser_action.func(subparser_action) + except ValueError: + logger.exception('Invalid arguments passed.') + parser.print_help(sys.stderr) + return EXIT_CODE_INVALID_REQUEST_VALUES + return EXIT_CODE_GENERIC_HTTPLIB_ERROR + +if __name__ == '__main__': + exit_code = map_http_status_to_exit_code(main()) + sys.exit(exit_code) diff --git a/unity/Assets/Firebase/Editor/network_request.py.meta b/unity/Assets/Firebase/Editor/network_request.py.meta new file mode 100644 index 000000000..9c16931eb --- /dev/null +++ b/unity/Assets/Firebase/Editor/network_request.py.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e6e32fecbfd44fab946fa160e4861924 +labels: +- gvh +- gvh_version-6.15.2 +- gvhp_exportpath-Firebase/Editor/network_request.py +timeCreated: 1480838400 +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity/Assets/Firebase/Plugins.meta b/unity/Assets/Firebase/Plugins.meta new file mode 100644 index 000000000..8332c8135 --- /dev/null +++ b/unity/Assets/Firebase/Plugins.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3a2fa617251310f47847807f6f5c9eeb +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity/Assets/Firebase/Plugins/Crashlytics.meta b/unity/Assets/Firebase/Plugins/Crashlytics.meta new file mode 100644 index 000000000..eff883c87 --- /dev/null +++ b/unity/Assets/Firebase/Plugins/Crashlytics.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b896f025231653145a0a859d53bc98e9 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity/Assets/Firebase/Plugins/Crashlytics/link.xml b/unity/Assets/Firebase/Plugins/Crashlytics/link.xml new file mode 100644 index 000000000..63dde2f03 --- /dev/null +++ b/unity/Assets/Firebase/Plugins/Crashlytics/link.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/unity/Assets/Firebase/Plugins/Crashlytics/link.xml.meta b/unity/Assets/Firebase/Plugins/Crashlytics/link.xml.meta new file mode 100644 index 000000000..a307b1ab9 --- /dev/null +++ b/unity/Assets/Firebase/Plugins/Crashlytics/link.xml.meta @@ -0,0 +1,76 @@ +fileFormatVersion: 2 +guid: dfba8b6966eb4740bd7795fc7eb936aa +labels: +- gvh +- gvh_version-6.15.2 +- gvhp_exportpath-Firebase/Plugins/Crashlytics/link.xml +timeCreated: 1480838400 +PluginImporter: + serializedVersion: 1 + iconMap: {} + executionOrder: {} + isPreloaded: 0 + platformData: + Android: + enabled: 1 + settings: + CPU: AnyCPU + Any: + enabled: 0 + settings: {} + Editor: + enabled: 1 + settings: + CPU: AnyCPU + DefaultValueInitialized: true + OS: AnyOS + Linux: + enabled: 1 + settings: + CPU: x86 + Linux64: + enabled: 1 + settings: + CPU: x86_64 + LinuxUniversal: + enabled: 1 + settings: + CPU: AnyCPU + OSXIntel: + enabled: 1 + settings: + CPU: x86 + OSXIntel64: + enabled: 1 + settings: + CPU: x86_64 + OSXUniversal: + enabled: 1 + settings: + CPU: AnyCPU + Web: + enabled: 0 + settings: {} + WebStreamed: + enabled: 0 + settings: {} + Win: + enabled: 1 + settings: + CPU: x86 + Win64: + enabled: 1 + settings: + CPU: x86_64 + WindowsStoreApps: + enabled: 0 + settings: + CPU: AnyCPU + iOS: + enabled: 1 + settings: + CompileFlags: + FrameworkDependencies: + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity/Assets/Firebase/Plugins/Firebase.App.dll b/unity/Assets/Firebase/Plugins/Firebase.App.dll new file mode 100644 index 000000000..7585bedf5 --- /dev/null +++ b/unity/Assets/Firebase/Plugins/Firebase.App.dll @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7705b60b0fb1bef2c269ae885e72a6034889b44019a5ee579a65e55abeb87658 +size 87040 diff --git a/unity/Assets/Firebase/Plugins/Firebase.App.dll.mdb b/unity/Assets/Firebase/Plugins/Firebase.App.dll.mdb new file mode 100644 index 0000000000000000000000000000000000000000..6b58c464a70328d9c2ecf3a5c718ae2527b62be4 GIT binary patch literal 27957 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 literal 0 HcmV?d00001 diff --git a/unity/Assets/Firebase/Plugins/Firebase.App.dll.mdb.meta b/unity/Assets/Firebase/Plugins/Firebase.App.dll.mdb.meta new file mode 100644 index 000000000..5df0caece --- /dev/null +++ b/unity/Assets/Firebase/Plugins/Firebase.App.dll.mdb.meta @@ -0,0 +1,76 @@ +fileFormatVersion: 2 +guid: fc0d86fadf7e4dfba6fea54327923f95 +labels: +- gvh +- gvh_version-6.15.2 +- gvhp_exportpath-Firebase/Plugins/Firebase.App.dll.mdb +timeCreated: 1480838400 +PluginImporter: + serializedVersion: 1 + iconMap: {} + executionOrder: {} + isPreloaded: 0 + platformData: + Android: + enabled: 1 + settings: + CPU: AnyCPU + Any: + enabled: 0 + settings: {} + Editor: + enabled: 1 + settings: + CPU: AnyCPU + DefaultValueInitialized: true + OS: AnyOS + Linux: + enabled: 1 + settings: + CPU: x86 + Linux64: + enabled: 1 + settings: + CPU: x86_64 + LinuxUniversal: + enabled: 1 + settings: + CPU: AnyCPU + OSXIntel: + enabled: 1 + settings: + CPU: x86 + OSXIntel64: + enabled: 1 + settings: + CPU: x86_64 + OSXUniversal: + enabled: 1 + settings: + CPU: AnyCPU + Web: + enabled: 0 + settings: {} + WebStreamed: + enabled: 0 + settings: {} + Win: + enabled: 1 + settings: + CPU: x86 + Win64: + enabled: 1 + settings: + CPU: x86_64 + WindowsStoreApps: + enabled: 0 + settings: + CPU: AnyCPU + iOS: + enabled: 0 + settings: + CompileFlags: + FrameworkDependencies: + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity/Assets/Firebase/Plugins/Firebase.App.dll.meta b/unity/Assets/Firebase/Plugins/Firebase.App.dll.meta new file mode 100644 index 000000000..401e90fa1 --- /dev/null +++ b/unity/Assets/Firebase/Plugins/Firebase.App.dll.meta @@ -0,0 +1,122 @@ +fileFormatVersion: 2 +guid: 7311924048bd457bac6d713576c952da +labels: +- gvh +- gvh_version-6.15.2 +- gvhp_exportpath-Firebase/Plugins/Firebase.App.dll +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + '': OSXIntel + second: + enabled: 1 + settings: + CPU: x86 + - first: + '': OSXIntel64 + second: + enabled: 1 + settings: + CPU: x86_64 + - first: + '': Web + second: + enabled: 0 + settings: {} + - first: + '': WebStreamed + second: + enabled: 0 + settings: {} + - first: + Android: Android + second: + enabled: 1 + settings: + CPU: AnyCPU + - first: + Any: + second: + enabled: 0 + settings: {} + - first: + Editor: Editor + second: + enabled: 1 + settings: + CPU: AnyCPU + DefaultValueInitialized: true + OS: AnyOS + - first: + Facebook: Win + second: + enabled: 1 + settings: + CPU: AnyCPU + - first: + Facebook: Win64 + second: + enabled: 1 + settings: + CPU: AnyCPU + - first: + Standalone: Linux + second: + enabled: 1 + settings: + CPU: x86 + - first: + Standalone: Linux64 + second: + enabled: 1 + settings: + CPU: x86_64 + - first: + Standalone: LinuxUniversal + second: + enabled: 1 + settings: + CPU: AnyCPU + - first: + Standalone: OSXUniversal + second: + enabled: 1 + settings: + CPU: AnyCPU + - first: + Standalone: Win + second: + enabled: 1 + settings: + CPU: AnyCPU + - first: + Standalone: Win64 + second: + enabled: 1 + settings: + CPU: AnyCPU + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + - first: + iPhone: iOS + second: + enabled: 0 + settings: + CompileFlags: + FrameworkDependencies: + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity/Assets/Firebase/Plugins/Firebase.Crashlytics.dll b/unity/Assets/Firebase/Plugins/Firebase.Crashlytics.dll new file mode 100644 index 000000000..faa6bb64c --- /dev/null +++ b/unity/Assets/Firebase/Plugins/Firebase.Crashlytics.dll @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8cf2a94bcba5e23f6053dfe708c331b84a07f8b996fd555e4552b257220d4824 +size 31744 diff --git a/unity/Assets/Firebase/Plugins/Firebase.Crashlytics.dll.mdb b/unity/Assets/Firebase/Plugins/Firebase.Crashlytics.dll.mdb new file mode 100644 index 0000000000000000000000000000000000000000..cf44d8ee3434c352211df86f8ed1e3c7b0edf662 GIT binary patch literal 8791 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 f{~Vate-X^m7urf?05K~Pik+LgIiUbP~1*9WV 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 literal 0 HcmV?d00001 diff --git a/unity/Assets/Firebase/Plugins/Firebase.Platform.dll.mdb.meta b/unity/Assets/Firebase/Plugins/Firebase.Platform.dll.mdb.meta new file mode 100644 index 000000000..5b24821fd --- /dev/null +++ b/unity/Assets/Firebase/Plugins/Firebase.Platform.dll.mdb.meta @@ -0,0 +1,76 @@ +fileFormatVersion: 2 +guid: 657ad9d9048b4c8eb351131596cc9bb8 +labels: +- gvh +- gvh_version-6.15.2 +- gvhp_exportpath-Firebase/Plugins/Firebase.Platform.dll.mdb +timeCreated: 1480838400 +PluginImporter: + serializedVersion: 1 + iconMap: {} + executionOrder: {} + isPreloaded: 0 + platformData: + Android: + enabled: 1 + settings: + CPU: AnyCPU + Any: + enabled: 0 + settings: {} + Editor: + enabled: 1 + settings: + CPU: AnyCPU + DefaultValueInitialized: true + OS: AnyOS + Linux: + enabled: 1 + settings: + CPU: x86 + Linux64: + enabled: 1 + settings: + CPU: x86_64 + LinuxUniversal: + enabled: 1 + settings: + CPU: AnyCPU + OSXIntel: + enabled: 1 + settings: + CPU: x86 + OSXIntel64: + enabled: 1 + settings: + CPU: x86_64 + OSXUniversal: + enabled: 1 + settings: + CPU: AnyCPU + Web: + enabled: 0 + settings: {} + WebStreamed: + enabled: 0 + settings: {} + Win: + enabled: 1 + settings: + CPU: x86 + Win64: + enabled: 1 + settings: + CPU: x86_64 + WindowsStoreApps: + enabled: 0 + settings: + CPU: AnyCPU + iOS: + enabled: 1 + settings: + CompileFlags: + FrameworkDependencies: + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity/Assets/Firebase/Plugins/Firebase.Platform.dll.meta b/unity/Assets/Firebase/Plugins/Firebase.Platform.dll.meta new file mode 100644 index 000000000..d091ec83e --- /dev/null +++ b/unity/Assets/Firebase/Plugins/Firebase.Platform.dll.meta @@ -0,0 +1,122 @@ +fileFormatVersion: 2 +guid: 7d3eec03d7e241a48941e038118c5e6a +labels: +- gvh +- gvh_version-6.15.2 +- gvhp_exportpath-Firebase/Plugins/Firebase.Platform.dll +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + '': OSXIntel + second: + enabled: 1 + settings: + CPU: x86 + - first: + '': OSXIntel64 + second: + enabled: 1 + settings: + CPU: x86_64 + - first: + '': Web + second: + enabled: 0 + settings: {} + - first: + '': WebStreamed + second: + enabled: 0 + settings: {} + - first: + Android: Android + second: + enabled: 1 + settings: + CPU: AnyCPU + - first: + Any: + second: + enabled: 0 + settings: {} + - first: + Editor: Editor + second: + enabled: 1 + settings: + CPU: AnyCPU + DefaultValueInitialized: true + OS: AnyOS + - first: + Facebook: Win + second: + enabled: 1 + settings: + CPU: AnyCPU + - first: + Facebook: Win64 + second: + enabled: 1 + settings: + CPU: AnyCPU + - first: + Standalone: Linux + second: + enabled: 1 + settings: + CPU: x86 + - first: + Standalone: Linux64 + second: + enabled: 1 + settings: + CPU: x86_64 + - first: + Standalone: LinuxUniversal + second: + enabled: 1 + settings: + CPU: AnyCPU + - first: + Standalone: OSXUniversal + second: + enabled: 1 + settings: + CPU: AnyCPU + - first: + Standalone: Win + second: + enabled: 1 + settings: + CPU: AnyCPU + - first: + Standalone: Win64 + second: + enabled: 1 + settings: + CPU: AnyCPU + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + - first: + iPhone: iOS + second: + enabled: 1 + settings: + CompileFlags: + FrameworkDependencies: + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity/Assets/Firebase/Plugins/Firebase.TaskExtension.dll b/unity/Assets/Firebase/Plugins/Firebase.TaskExtension.dll new file mode 100644 index 000000000..9363a2902 --- /dev/null +++ b/unity/Assets/Firebase/Plugins/Firebase.TaskExtension.dll @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8e83dde750382bcfd4de4e16237f0697b4701a8e8d016f174b4715d66851fdb4 +size 7680 diff --git a/unity/Assets/Firebase/Plugins/Firebase.TaskExtension.dll.mdb b/unity/Assets/Firebase/Plugins/Firebase.TaskExtension.dll.mdb new file mode 100644 index 0000000000000000000000000000000000000000..e204c50982a15a0faeba1df42d79cfeea511b56c GIT binary patch literal 1189 zcmYL}TS!zv9LE21X6Be}+Qsdv_K*-{X`pYuXcwt4kU&FXp*CA<)z-z`NTm`@?edZu zmRgb(sb#(8B`mwp^~FmGMHkD`vaFEO#9Q?p&pGU{KfZ7N=Q}gA!_2YPHy+(lh#0g6{aH}WR~UXdd;}-jrxlH+y{EN*Xja z3u+Kojnr9Y###imid()|hoDZ;WyIF7HoR)FuwFs$#Rp$%M9`@CW2DxZsUk_mvP8}- zM4Pf&(m8ov@AK{2c3IdpNsaQlFVimRuDoYtGW1M`q)yr8%Y2mdN%k9=d~>#6l77n( zU+TC@C)AUwz73U3AF5KNDzzF#oNsj)hxm(rm{k>pX?UD{H3U8g;M}WG&{aUfZ-&MK z6~CR(WZ(y%10IHhd%W60pFxL0iEb_-^P^5CGo??FE7GW6+;q zF1#OZn*j6RL!nkMA3g#a4i>;~gvNj%_$25yV1-YI+QCBjJm^8N2p;!=j)BGSwa^-{ z1pX%U23QLJ5PBahgMS6>2Ep)y&;bwv{}(z6Lg53kc@}_=h#CeB2KWmzA018mz<+b$ BxHbR) literal 0 HcmV?d00001 diff --git a/unity/Assets/Firebase/Plugins/Firebase.TaskExtension.dll.mdb.meta b/unity/Assets/Firebase/Plugins/Firebase.TaskExtension.dll.mdb.meta new file mode 100644 index 000000000..2e700692f --- /dev/null +++ b/unity/Assets/Firebase/Plugins/Firebase.TaskExtension.dll.mdb.meta @@ -0,0 +1,76 @@ +fileFormatVersion: 2 +guid: 9b97197272244860a9e3f1af9dbb06aa +labels: +- gvh +- gvh_version-6.15.2 +- gvhp_exportpath-Firebase/Plugins/Firebase.TaskExtension.dll.mdb +timeCreated: 1480838400 +PluginImporter: + serializedVersion: 1 + iconMap: {} + executionOrder: {} + isPreloaded: 0 + platformData: + Android: + enabled: 1 + settings: + CPU: AnyCPU + Any: + enabled: 0 + settings: {} + Editor: + enabled: 1 + settings: + CPU: AnyCPU + DefaultValueInitialized: true + OS: AnyOS + Linux: + enabled: 1 + settings: + CPU: x86 + Linux64: + enabled: 1 + settings: + CPU: x86_64 + LinuxUniversal: + enabled: 1 + settings: + CPU: AnyCPU + OSXIntel: + enabled: 1 + settings: + CPU: x86 + OSXIntel64: + enabled: 1 + settings: + CPU: x86_64 + OSXUniversal: + enabled: 1 + settings: + CPU: AnyCPU + Web: + enabled: 0 + settings: {} + WebStreamed: + enabled: 0 + settings: {} + Win: + enabled: 1 + settings: + CPU: x86 + Win64: + enabled: 1 + settings: + CPU: x86_64 + WindowsStoreApps: + enabled: 0 + settings: + CPU: AnyCPU + iOS: + enabled: 1 + settings: + CompileFlags: + FrameworkDependencies: + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity/Assets/Firebase/Plugins/Firebase.TaskExtension.dll.meta b/unity/Assets/Firebase/Plugins/Firebase.TaskExtension.dll.meta new file mode 100644 index 000000000..ccf1a225d --- /dev/null +++ b/unity/Assets/Firebase/Plugins/Firebase.TaskExtension.dll.meta @@ -0,0 +1,122 @@ +fileFormatVersion: 2 +guid: f5d4069c578548ba9f199b46d61bf06d +labels: +- gvh +- gvh_version-6.15.2 +- gvhp_exportpath-Firebase/Plugins/Firebase.TaskExtension.dll +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + '': OSXIntel + second: + enabled: 1 + settings: + CPU: x86 + - first: + '': OSXIntel64 + second: + enabled: 1 + settings: + CPU: x86_64 + - first: + '': Web + second: + enabled: 0 + settings: {} + - first: + '': WebStreamed + second: + enabled: 0 + settings: {} + - first: + Android: Android + second: + enabled: 1 + settings: + CPU: AnyCPU + - first: + Any: + second: + enabled: 0 + settings: {} + - first: + Editor: Editor + second: + enabled: 1 + settings: + CPU: AnyCPU + DefaultValueInitialized: true + OS: AnyOS + - first: + Facebook: Win + second: + enabled: 1 + settings: + CPU: AnyCPU + - first: + Facebook: Win64 + second: + enabled: 1 + settings: + CPU: AnyCPU + - first: + Standalone: Linux + second: + enabled: 1 + settings: + CPU: x86 + - first: + Standalone: Linux64 + second: + enabled: 1 + settings: + CPU: x86_64 + - first: + Standalone: LinuxUniversal + second: + enabled: 1 + settings: + CPU: AnyCPU + - first: + Standalone: OSXUniversal + second: + enabled: 1 + settings: + CPU: AnyCPU + - first: + Standalone: Win + second: + enabled: 1 + settings: + CPU: AnyCPU + - first: + Standalone: Win64 + second: + enabled: 1 + settings: + CPU: AnyCPU + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + - first: + iPhone: iOS + second: + enabled: 1 + settings: + CompileFlags: + FrameworkDependencies: + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity/Assets/Firebase/Plugins/Google.MiniJson.dll b/unity/Assets/Firebase/Plugins/Google.MiniJson.dll new file mode 100644 index 000000000..dbb55cb6f --- /dev/null +++ b/unity/Assets/Firebase/Plugins/Google.MiniJson.dll @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:61e2e374d7c5312a1d7c88c13167952d41302b5f0dd296547435d2aa304f5184 +size 9216 diff --git a/unity/Assets/Firebase/Plugins/Google.MiniJson.dll.meta b/unity/Assets/Firebase/Plugins/Google.MiniJson.dll.meta new file mode 100644 index 000000000..5923c926f --- /dev/null +++ b/unity/Assets/Firebase/Plugins/Google.MiniJson.dll.meta @@ -0,0 +1,122 @@ +fileFormatVersion: 2 +guid: 3ebb289656f1477fa263e62d36c6e329 +labels: +- gvh +- gvh_version-6.15.2 +- gvhp_exportpath-Firebase/Plugins/Google.MiniJson.dll +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + '': OSXIntel + second: + enabled: 1 + settings: + CPU: x86 + - first: + '': OSXIntel64 + second: + enabled: 1 + settings: + CPU: x86_64 + - first: + '': Web + second: + enabled: 0 + settings: {} + - first: + '': WebStreamed + second: + enabled: 0 + settings: {} + - first: + Android: Android + second: + enabled: 1 + settings: + CPU: AnyCPU + - first: + Any: + second: + enabled: 0 + settings: {} + - first: + Editor: Editor + second: + enabled: 1 + settings: + CPU: AnyCPU + DefaultValueInitialized: true + OS: AnyOS + - first: + Facebook: Win + second: + enabled: 1 + settings: + CPU: AnyCPU + - first: + Facebook: Win64 + second: + enabled: 1 + settings: + CPU: AnyCPU + - first: + Standalone: Linux + second: + enabled: 1 + settings: + CPU: x86 + - first: + Standalone: Linux64 + second: + enabled: 1 + settings: + CPU: x86_64 + - first: + Standalone: LinuxUniversal + second: + enabled: 1 + settings: + CPU: AnyCPU + - first: + Standalone: OSXUniversal + second: + enabled: 1 + settings: + CPU: AnyCPU + - first: + Standalone: Win + second: + enabled: 1 + settings: + CPU: AnyCPU + - first: + Standalone: Win64 + second: + enabled: 1 + settings: + CPU: AnyCPU + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + - first: + iPhone: iOS + second: + enabled: 1 + settings: + CompileFlags: + FrameworkDependencies: + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity/Assets/Firebase/Plugins/iOS.meta b/unity/Assets/Firebase/Plugins/iOS.meta new file mode 100644 index 000000000..176e2dda5 --- /dev/null +++ b/unity/Assets/Firebase/Plugins/iOS.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: cb088fa96df3d91418c85475cff6e9b9 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity/Assets/Firebase/Plugins/iOS/Firebase.App.dll b/unity/Assets/Firebase/Plugins/iOS/Firebase.App.dll new file mode 100644 index 000000000..73c134bdc --- /dev/null +++ b/unity/Assets/Firebase/Plugins/iOS/Firebase.App.dll @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:df542291fe1135534f5ef8739d70c05fc04f5dae70543c6995a7408bd2d643f3 +size 81408 diff --git a/unity/Assets/Firebase/Plugins/iOS/Firebase.App.dll.mdb b/unity/Assets/Firebase/Plugins/iOS/Firebase.App.dll.mdb new file mode 100644 index 0000000000000000000000000000000000000000..27f4244cb3abc6e6505f305cdc3b5bb4307d1d16 GIT binary patch literal 27957 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 l|L6k# + 4.0.0 + com.google.firebase + firebase-app-unity + 6.15.2 + aar + + + + + diff --git a/unity/Assets/Firebase/m2repository/com/google/firebase/firebase-app-unity/6.15.2/firebase-app-unity-6.15.2.pom.meta b/unity/Assets/Firebase/m2repository/com/google/firebase/firebase-app-unity/6.15.2/firebase-app-unity-6.15.2.pom.meta new file mode 100644 index 000000000..3b9ae7103 --- /dev/null +++ b/unity/Assets/Firebase/m2repository/com/google/firebase/firebase-app-unity/6.15.2/firebase-app-unity-6.15.2.pom.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: ded18c1c01394d03aa5581cac95189a1 +labels: +- gvh +- gvh_version-6.15.2 +- gvhp_exportpath-Firebase/m2repository/com/google/firebase/firebase-app-unity/6.15.2/firebase-app-unity-6.15.2.pom +timeCreated: 1480838400 +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity/Assets/Firebase/m2repository/com/google/firebase/firebase-app-unity/6.15.2/firebase-app-unity-6.15.2.srcaar b/unity/Assets/Firebase/m2repository/com/google/firebase/firebase-app-unity/6.15.2/firebase-app-unity-6.15.2.srcaar new file mode 100644 index 000000000..b28bc5982 --- /dev/null +++ b/unity/Assets/Firebase/m2repository/com/google/firebase/firebase-app-unity/6.15.2/firebase-app-unity-6.15.2.srcaar @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0e68371feb544cd91e25475620d20376eb1471e165a1e3f987a0d3bf3c2acfd4 +size 3507646 diff --git a/unity/Assets/Firebase/m2repository/com/google/firebase/firebase-app-unity/6.15.2/firebase-app-unity-6.15.2.srcaar.meta b/unity/Assets/Firebase/m2repository/com/google/firebase/firebase-app-unity/6.15.2/firebase-app-unity-6.15.2.srcaar.meta new file mode 100644 index 000000000..bcc7a35d6 --- /dev/null +++ b/unity/Assets/Firebase/m2repository/com/google/firebase/firebase-app-unity/6.15.2/firebase-app-unity-6.15.2.srcaar.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6a54846866a44d238f4bf55ddb7ab965 +labels: +- gvh +- gvh_version-6.15.2 +- gvhp_exportpath-Firebase/m2repository/com/google/firebase/firebase-app-unity/6.15.2/firebase-app-unity-6.15.2.srcaar +timeCreated: 1480838400 +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity/Assets/Firebase/m2repository/com/google/firebase/firebase-app-unity/maven-metadata.xml b/unity/Assets/Firebase/m2repository/com/google/firebase/firebase-app-unity/maven-metadata.xml new file mode 100644 index 000000000..e8fb8b6b4 --- /dev/null +++ b/unity/Assets/Firebase/m2repository/com/google/firebase/firebase-app-unity/maven-metadata.xml @@ -0,0 +1,10 @@ + + com.google.firebase + firebase-app-unity + + 6.15.2 + 6.15.2 + + + + diff --git a/unity/Assets/Firebase/m2repository/com/google/firebase/firebase-app-unity/maven-metadata.xml.meta b/unity/Assets/Firebase/m2repository/com/google/firebase/firebase-app-unity/maven-metadata.xml.meta new file mode 100644 index 000000000..0bcec0a71 --- /dev/null +++ b/unity/Assets/Firebase/m2repository/com/google/firebase/firebase-app-unity/maven-metadata.xml.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 96337775a7c941d88ea15f8026ad6f8e +labels: +- gvh +- gvh_version-6.15.2 +- gvhp_exportpath-Firebase/m2repository/com/google/firebase/firebase-app-unity/maven-metadata.xml +timeCreated: 1480838400 +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity/Assets/Firebase/m2repository/com/google/firebase/firebase-crashlytics-unity.meta b/unity/Assets/Firebase/m2repository/com/google/firebase/firebase-crashlytics-unity.meta new file mode 100644 index 000000000..8ad964cf4 --- /dev/null +++ b/unity/Assets/Firebase/m2repository/com/google/firebase/firebase-crashlytics-unity.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f098d4be42fe7b943aa940a2ba4b5e0c +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity/Assets/Firebase/m2repository/com/google/firebase/firebase-crashlytics-unity/6.15.2.meta b/unity/Assets/Firebase/m2repository/com/google/firebase/firebase-crashlytics-unity/6.15.2.meta new file mode 100644 index 000000000..2a616d4d7 --- /dev/null +++ b/unity/Assets/Firebase/m2repository/com/google/firebase/firebase-crashlytics-unity/6.15.2.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 19cb3e2091141aa489fdf421f994907a +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity/Assets/Firebase/m2repository/com/google/firebase/firebase-crashlytics-unity/6.15.2/firebase-crashlytics-unity-6.15.2.pom b/unity/Assets/Firebase/m2repository/com/google/firebase/firebase-crashlytics-unity/6.15.2/firebase-crashlytics-unity-6.15.2.pom new file mode 100644 index 000000000..032959dce --- /dev/null +++ b/unity/Assets/Firebase/m2repository/com/google/firebase/firebase-crashlytics-unity/6.15.2/firebase-crashlytics-unity-6.15.2.pom @@ -0,0 +1,13 @@ + + 4.0.0 + com.google.firebase + firebase-crashlytics-unity + 6.15.2 + aar + + + + + diff --git a/unity/Assets/Firebase/m2repository/com/google/firebase/firebase-crashlytics-unity/6.15.2/firebase-crashlytics-unity-6.15.2.pom.meta b/unity/Assets/Firebase/m2repository/com/google/firebase/firebase-crashlytics-unity/6.15.2/firebase-crashlytics-unity-6.15.2.pom.meta new file mode 100644 index 000000000..fa1c9508d --- /dev/null +++ b/unity/Assets/Firebase/m2repository/com/google/firebase/firebase-crashlytics-unity/6.15.2/firebase-crashlytics-unity-6.15.2.pom.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 0066b2979f534a21b8ab7095eb79b31f +labels: +- gvh +- gvh_version-6.15.2 +- gvhp_exportpath-Firebase/m2repository/com/google/firebase/firebase-crashlytics-unity/6.15.2/firebase-crashlytics-unity-6.15.2.pom +timeCreated: 1480838400 +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity/Assets/Firebase/m2repository/com/google/firebase/firebase-crashlytics-unity/6.15.2/firebase-crashlytics-unity-6.15.2.srcaar b/unity/Assets/Firebase/m2repository/com/google/firebase/firebase-crashlytics-unity/6.15.2/firebase-crashlytics-unity-6.15.2.srcaar new file mode 100644 index 000000000..3b018f54b --- /dev/null +++ b/unity/Assets/Firebase/m2repository/com/google/firebase/firebase-crashlytics-unity/6.15.2/firebase-crashlytics-unity-6.15.2.srcaar @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bc9ae013569147f9a6b61347c6ec47faaf3ef875764c811d28a4f219fecaaee2 +size 75505 diff --git a/unity/Assets/Firebase/m2repository/com/google/firebase/firebase-crashlytics-unity/6.15.2/firebase-crashlytics-unity-6.15.2.srcaar.meta b/unity/Assets/Firebase/m2repository/com/google/firebase/firebase-crashlytics-unity/6.15.2/firebase-crashlytics-unity-6.15.2.srcaar.meta new file mode 100644 index 000000000..29de6403c --- /dev/null +++ b/unity/Assets/Firebase/m2repository/com/google/firebase/firebase-crashlytics-unity/6.15.2/firebase-crashlytics-unity-6.15.2.srcaar.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 7eb3881979d44dd68a22af52d60e94bf +labels: +- gvh +- gvh_version-6.15.2 +- gvhp_exportpath-Firebase/m2repository/com/google/firebase/firebase-crashlytics-unity/6.15.2/firebase-crashlytics-unity-6.15.2.srcaar +timeCreated: 1480838400 +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity/Assets/Firebase/m2repository/com/google/firebase/firebase-crashlytics-unity/maven-metadata.xml b/unity/Assets/Firebase/m2repository/com/google/firebase/firebase-crashlytics-unity/maven-metadata.xml new file mode 100644 index 000000000..4b8a56a90 --- /dev/null +++ b/unity/Assets/Firebase/m2repository/com/google/firebase/firebase-crashlytics-unity/maven-metadata.xml @@ -0,0 +1,10 @@ + + com.google.firebase + firebase-crashlytics-unity + + 6.15.2 + 6.15.2 + + + + diff --git a/unity/Assets/Firebase/m2repository/com/google/firebase/firebase-crashlytics-unity/maven-metadata.xml.meta b/unity/Assets/Firebase/m2repository/com/google/firebase/firebase-crashlytics-unity/maven-metadata.xml.meta new file mode 100644 index 000000000..cb2d1ae17 --- /dev/null +++ b/unity/Assets/Firebase/m2repository/com/google/firebase/firebase-crashlytics-unity/maven-metadata.xml.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: eda65244fc1b407e8948b25b31c17991 +labels: +- gvh +- gvh_version-6.15.2 +- gvhp_exportpath-Firebase/m2repository/com/google/firebase/firebase-crashlytics-unity/maven-metadata.xml +timeCreated: 1480838400 +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity/Assets/Parse.meta b/unity/Assets/Parse.meta new file mode 100644 index 000000000..e9f82cc31 --- /dev/null +++ b/unity/Assets/Parse.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e54ce3a352b20b241833407f8e32f4ae +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity/Assets/Parse/Plugins.meta b/unity/Assets/Parse/Plugins.meta new file mode 100644 index 000000000..9ac3094d9 --- /dev/null +++ b/unity/Assets/Parse/Plugins.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 2adab886812e22e4e944358b1292843f +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity/Assets/Parse/Plugins/Unity.Compat.dll b/unity/Assets/Parse/Plugins/Unity.Compat.dll new file mode 100644 index 000000000..2a10726a1 --- /dev/null +++ b/unity/Assets/Parse/Plugins/Unity.Compat.dll @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bff4756538172a5811dc7dd5b603b739b7e1d9fc978eee203b8edcdacbe3820f +size 22528 diff --git a/unity/Assets/Parse/Plugins/Unity.Compat.dll.meta b/unity/Assets/Parse/Plugins/Unity.Compat.dll.meta new file mode 100644 index 000000000..e2569f4a9 --- /dev/null +++ b/unity/Assets/Parse/Plugins/Unity.Compat.dll.meta @@ -0,0 +1,121 @@ +fileFormatVersion: 2 +guid: 015ef18e20f24535830f59eda9e70830 +labels: +- gvh +- gvh_dotnet-3.5 +- gvh_version-6.15.2 +- gvhp_exportpath-Parse/Plugins/Unity.Compat.dll +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + '': OSXIntel + second: + enabled: 1 + settings: + CPU: x86 + - first: + '': OSXIntel64 + second: + enabled: 1 + settings: + CPU: x86_64 + - first: + '': Web + second: + enabled: 1 + settings: {} + - first: + '': WebStreamed + second: + enabled: 1 + settings: {} + - first: + Android: Android + second: + enabled: 1 + settings: + CPU: AnyCPU + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 1 + settings: + DefaultValueInitialized: true + - first: + Facebook: Win + second: + enabled: 1 + settings: + CPU: AnyCPU + - first: + Facebook: Win64 + second: + enabled: 1 + settings: + CPU: AnyCPU + - first: + Standalone: Linux + second: + enabled: 1 + settings: + CPU: x86 + - first: + Standalone: Linux64 + second: + enabled: 1 + settings: + CPU: x86_64 + - first: + Standalone: LinuxUniversal + second: + enabled: 1 + settings: + CPU: AnyCPU + - first: + Standalone: OSXUniversal + second: + enabled: 1 + settings: + CPU: AnyCPU + - first: + Standalone: Win + second: + enabled: 1 + settings: + CPU: AnyCPU + - first: + Standalone: Win64 + second: + enabled: 1 + settings: + CPU: AnyCPU + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 1 + settings: + CPU: AnyCPU + - first: + iPhone: iOS + second: + enabled: 1 + settings: + CompileFlags: + FrameworkDependencies: + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity/Assets/Parse/Plugins/Unity.Tasks.dll b/unity/Assets/Parse/Plugins/Unity.Tasks.dll new file mode 100644 index 000000000..8d05fb81f --- /dev/null +++ b/unity/Assets/Parse/Plugins/Unity.Tasks.dll @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:972659e5cff50f8a9f45c4a23a5a6779c68d2024c56ba07d61dfda45c452a84c +size 26624 diff --git a/unity/Assets/Parse/Plugins/Unity.Tasks.dll.meta b/unity/Assets/Parse/Plugins/Unity.Tasks.dll.meta new file mode 100644 index 000000000..dacd44911 --- /dev/null +++ b/unity/Assets/Parse/Plugins/Unity.Tasks.dll.meta @@ -0,0 +1,121 @@ +fileFormatVersion: 2 +guid: 93324a471a6d44bb8297d17d8b191e52 +labels: +- gvh +- gvh_dotnet-3.5 +- gvh_version-6.15.2 +- gvhp_exportpath-Parse/Plugins/Unity.Tasks.dll +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + '': OSXIntel + second: + enabled: 1 + settings: + CPU: x86 + - first: + '': OSXIntel64 + second: + enabled: 1 + settings: + CPU: x86_64 + - first: + '': Web + second: + enabled: 1 + settings: {} + - first: + '': WebStreamed + second: + enabled: 1 + settings: {} + - first: + Android: Android + second: + enabled: 1 + settings: + CPU: AnyCPU + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 1 + settings: + DefaultValueInitialized: true + - first: + Facebook: Win + second: + enabled: 1 + settings: + CPU: AnyCPU + - first: + Facebook: Win64 + second: + enabled: 1 + settings: + CPU: AnyCPU + - first: + Standalone: Linux + second: + enabled: 1 + settings: + CPU: x86 + - first: + Standalone: Linux64 + second: + enabled: 1 + settings: + CPU: x86_64 + - first: + Standalone: LinuxUniversal + second: + enabled: 1 + settings: + CPU: AnyCPU + - first: + Standalone: OSXUniversal + second: + enabled: 1 + settings: + CPU: AnyCPU + - first: + Standalone: Win + second: + enabled: 1 + settings: + CPU: AnyCPU + - first: + Standalone: Win64 + second: + enabled: 1 + settings: + CPU: AnyCPU + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 1 + settings: + CPU: AnyCPU + - first: + iPhone: iOS + second: + enabled: 1 + settings: + CompileFlags: + FrameworkDependencies: + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity/Assets/Parse/Plugins/dotNet45.meta b/unity/Assets/Parse/Plugins/dotNet45.meta new file mode 100644 index 000000000..1ee920b38 --- /dev/null +++ b/unity/Assets/Parse/Plugins/dotNet45.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b4aa29589bbc1ab4cb1c301da6563306 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity/Assets/Parse/Plugins/dotNet45/Unity.Compat.dll b/unity/Assets/Parse/Plugins/dotNet45/Unity.Compat.dll new file mode 100644 index 000000000..1e329824e --- /dev/null +++ b/unity/Assets/Parse/Plugins/dotNet45/Unity.Compat.dll @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7fe2e18dcf2f27ed4c7ef99ab87e05e9794f17f936a9ff0b967f978ef1c73664 +size 4608 diff --git a/unity/Assets/Parse/Plugins/dotNet45/Unity.Compat.dll.meta b/unity/Assets/Parse/Plugins/dotNet45/Unity.Compat.dll.meta new file mode 100644 index 000000000..3b44317e0 --- /dev/null +++ b/unity/Assets/Parse/Plugins/dotNet45/Unity.Compat.dll.meta @@ -0,0 +1,38 @@ +fileFormatVersion: 2 +guid: 3db0783b58c2429b9bc1f560ba323d05 +labels: +- gvh +- gvh_dotnet-4.5 +- gvh_version-6.15.2 +- gvhp_exportpath-Parse/Plugins/dotNet45/Unity.Compat.dll +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 0 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity/Assets/Parse/Plugins/dotNet45/Unity.Tasks.dll b/unity/Assets/Parse/Plugins/dotNet45/Unity.Tasks.dll new file mode 100644 index 000000000..6ccb188de --- /dev/null +++ b/unity/Assets/Parse/Plugins/dotNet45/Unity.Tasks.dll @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dc5e12943a811897614ecaf7b863d93c10d32fb412c7ec2be90231da81e90c89 +size 4608 diff --git a/unity/Assets/Parse/Plugins/dotNet45/Unity.Tasks.dll.meta b/unity/Assets/Parse/Plugins/dotNet45/Unity.Tasks.dll.meta new file mode 100644 index 000000000..2800f3657 --- /dev/null +++ b/unity/Assets/Parse/Plugins/dotNet45/Unity.Tasks.dll.meta @@ -0,0 +1,38 @@ +fileFormatVersion: 2 +guid: bd18eee30834e4f71bded96fd14033a9 +labels: +- gvh +- gvh_dotnet-4.5 +- gvh_version-6.15.2 +- gvhp_exportpath-Parse/Plugins/dotNet45/Unity.Tasks.dll +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 0 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity/Assets/Plugins/Android/Firebase/AndroidManifest.xml.meta b/unity/Assets/Plugins/Android/Firebase/AndroidManifest.xml.meta index 399a99685..98573bd15 100644 --- a/unity/Assets/Plugins/Android/Firebase/AndroidManifest.xml.meta +++ b/unity/Assets/Plugins/Android/Firebase/AndroidManifest.xml.meta @@ -1,7 +1,11 @@ fileFormatVersion: 2 -guid: f784e473ec9fb2a488a48330499b0232 +guid: 7bc44e101c9c4b9997973ec71e31fb0a +labels: +- gvh +- gvh_version-6.15.2 +- gvhp_exportpath-Plugins/Android/Firebase/AndroidManifest.xml +timeCreated: 1480838400 DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity/Assets/Plugins/Android/Firebase/project.properties b/unity/Assets/Plugins/Android/Firebase/project.properties index 37b95eded..f547ef077 100644 --- a/unity/Assets/Plugins/Android/Firebase/project.properties +++ b/unity/Assets/Plugins/Android/Firebase/project.properties @@ -1,2 +1,10 @@ +# Copyright (C) 2016 Google Inc. All Rights Reserved. +# +# This file is placed in the Unity Android Plugin to make it support the +# eclipse style directory structure. It's currently used only as a stub, and has +# no real data that gets merged with the final manifest, but is none-the-less +# needed for the plugin to be parsed correctly in the folder structure we use. + + target=android-9 -android.library=true \ No newline at end of file +android.library=true diff --git a/unity/Assets/Plugins/Android/Firebase/project.properties.meta b/unity/Assets/Plugins/Android/Firebase/project.properties.meta index 11d2c9267..2c3ca794c 100644 --- a/unity/Assets/Plugins/Android/Firebase/project.properties.meta +++ b/unity/Assets/Plugins/Android/Firebase/project.properties.meta @@ -1,7 +1,11 @@ fileFormatVersion: 2 -guid: 7af5114c2f9409242af65b800e887f9c +guid: c338787e9056407f8331208ec039a8a3 +labels: +- gvh +- gvh_version-6.15.2 +- gvhp_exportpath-Plugins/Android/Firebase/project.properties +timeCreated: 1480838400 DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity/Assets/Plugins/Android/Firebase/res/values/crashlytics_build_id.xml b/unity/Assets/Plugins/Android/Firebase/res/values/crashlytics_build_id.xml index bbfd1dc95..94087d93a 100644 --- a/unity/Assets/Plugins/Android/Firebase/res/values/crashlytics_build_id.xml +++ b/unity/Assets/Plugins/Android/Firebase/res/values/crashlytics_build_id.xml @@ -1 +1 @@ -1db01ce8-707a-49e9-a6f0-685ae965291d +09b3032a-f3e7-4956-8123-5772bd076e59 diff --git a/unity/Assets/Plugins/Android/Firebase/res/values/google-services.xml b/unity/Assets/Plugins/Android/Firebase/res/values/google-services.xml index 9cbc5b7df..ffe7a74c4 100644 --- a/unity/Assets/Plugins/Android/Firebase/res/values/google-services.xml +++ b/unity/Assets/Plugins/Android/Firebase/res/values/google-services.xml @@ -1,5 +1,5 @@ - + https://valkyrie-59b81.firebaseio.com 409081743146 valkyrie-59b81.appspot.com diff --git a/unity/Assets/Plugins/iOS.meta b/unity/Assets/Plugins/iOS.meta new file mode 100644 index 000000000..653669c10 --- /dev/null +++ b/unity/Assets/Plugins/iOS.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8f600b4a66bc2bf49b62ee534d956303 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity/Assets/Plugins/iOS/Firebase.meta b/unity/Assets/Plugins/iOS/Firebase.meta new file mode 100644 index 000000000..aef2f93e7 --- /dev/null +++ b/unity/Assets/Plugins/iOS/Firebase.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: cea57ffc1c2505946913302cd04d9427 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity/Assets/Plugins/iOS/Firebase/libCrashlyticsiOSWrapper.a b/unity/Assets/Plugins/iOS/Firebase/libCrashlyticsiOSWrapper.a new file mode 100644 index 000000000..f7c13617c --- /dev/null +++ b/unity/Assets/Plugins/iOS/Firebase/libCrashlyticsiOSWrapper.a @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:43f779eae2206a9e9e76aaf993be75fd91b6fb0d43b1b4a24e3bb38d7bd485e1 +size 73944 diff --git a/unity/Assets/Plugins/iOS/Firebase/libCrashlyticsiOSWrapper.a.meta b/unity/Assets/Plugins/iOS/Firebase/libCrashlyticsiOSWrapper.a.meta new file mode 100644 index 000000000..534252199 --- /dev/null +++ b/unity/Assets/Plugins/iOS/Firebase/libCrashlyticsiOSWrapper.a.meta @@ -0,0 +1,76 @@ +fileFormatVersion: 2 +guid: 18fb07a8bd0b437c827b544b21591360 +labels: +- gvh +- gvh_version-6.15.2 +- gvhp_exportpath-Plugins/iOS/Firebase/libCrashlyticsiOSWrapper.a +timeCreated: 1480838400 +PluginImporter: + serializedVersion: 1 + iconMap: {} + executionOrder: {} + isPreloaded: 0 + platformData: + Android: + enabled: 0 + settings: + CPU: AnyCPU + Any: + enabled: 0 + settings: {} + Editor: + enabled: 0 + settings: + CPU: AnyCPU + DefaultValueInitialized: true + OS: AnyOS + Linux: + enabled: 0 + settings: + CPU: None + Linux64: + enabled: 0 + settings: + CPU: None + LinuxUniversal: + enabled: 0 + settings: + CPU: None + OSXIntel: + enabled: 0 + settings: + CPU: None + OSXIntel64: + enabled: 0 + settings: + CPU: None + OSXUniversal: + enabled: 0 + settings: + CPU: None + Web: + enabled: 0 + settings: {} + WebStreamed: + enabled: 0 + settings: {} + Win: + enabled: 0 + settings: + CPU: None + Win64: + enabled: 0 + settings: + CPU: None + WindowsStoreApps: + enabled: 0 + settings: + CPU: AnyCPU + iOS: + enabled: 1 + settings: + CompileFlags: + FrameworkDependencies: + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity/Assets/Plugins/iOS/Firebase/libFirebaseCppApp.a b/unity/Assets/Plugins/iOS/Firebase/libFirebaseCppApp.a new file mode 100644 index 000000000..e067ed2e1 --- /dev/null +++ b/unity/Assets/Plugins/iOS/Firebase/libFirebaseCppApp.a @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a0cfc9c4e4cac29da458f64c9f6c11fbf00f52ae0d07c445a988bfa9b4b14ca6 +size 15378456 diff --git a/unity/Assets/Plugins/iOS/Firebase/libFirebaseCppApp.a.meta b/unity/Assets/Plugins/iOS/Firebase/libFirebaseCppApp.a.meta new file mode 100644 index 000000000..cc314ec5d --- /dev/null +++ b/unity/Assets/Plugins/iOS/Firebase/libFirebaseCppApp.a.meta @@ -0,0 +1,76 @@ +fileFormatVersion: 2 +guid: 601e8e1d2d2744929ede33676cbeccc0 +labels: +- gvh +- gvh_version-6.15.2 +- gvhp_exportpath-Plugins/iOS/Firebase/libFirebaseCppApp.a +timeCreated: 1480838400 +PluginImporter: + serializedVersion: 1 + iconMap: {} + executionOrder: {} + isPreloaded: 0 + platformData: + Android: + enabled: 0 + settings: + CPU: AnyCPU + Any: + enabled: 0 + settings: {} + Editor: + enabled: 0 + settings: + CPU: AnyCPU + DefaultValueInitialized: true + OS: AnyOS + Linux: + enabled: 0 + settings: + CPU: None + Linux64: + enabled: 0 + settings: + CPU: None + LinuxUniversal: + enabled: 0 + settings: + CPU: None + OSXIntel: + enabled: 0 + settings: + CPU: None + OSXIntel64: + enabled: 0 + settings: + CPU: None + OSXUniversal: + enabled: 0 + settings: + CPU: None + Web: + enabled: 0 + settings: {} + WebStreamed: + enabled: 0 + settings: {} + Win: + enabled: 0 + settings: + CPU: None + Win64: + enabled: 0 + settings: + CPU: None + WindowsStoreApps: + enabled: 0 + settings: + CPU: AnyCPU + iOS: + enabled: 1 + settings: + CompileFlags: + FrameworkDependencies: + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity/Assets/Plugins/iOS/Firebase/libFirebaseCppCrashlytics.a b/unity/Assets/Plugins/iOS/Firebase/libFirebaseCppCrashlytics.a new file mode 100644 index 000000000..5260f9f84 --- /dev/null +++ b/unity/Assets/Plugins/iOS/Firebase/libFirebaseCppCrashlytics.a @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:27e5d59e3bd07173e34a4de2b952006cbef157726d77728e787bb67edd909ee7 +size 474904 diff --git a/unity/Assets/Plugins/iOS/Firebase/libFirebaseCppCrashlytics.a.meta b/unity/Assets/Plugins/iOS/Firebase/libFirebaseCppCrashlytics.a.meta new file mode 100644 index 000000000..9ebd233e9 --- /dev/null +++ b/unity/Assets/Plugins/iOS/Firebase/libFirebaseCppCrashlytics.a.meta @@ -0,0 +1,76 @@ +fileFormatVersion: 2 +guid: c9a5f5c47ed44459ae2c09b918d44344 +labels: +- gvh +- gvh_version-6.15.2 +- gvhp_exportpath-Plugins/iOS/Firebase/libFirebaseCppCrashlytics.a +timeCreated: 1480838400 +PluginImporter: + serializedVersion: 1 + iconMap: {} + executionOrder: {} + isPreloaded: 0 + platformData: + Android: + enabled: 0 + settings: + CPU: AnyCPU + Any: + enabled: 0 + settings: {} + Editor: + enabled: 0 + settings: + CPU: AnyCPU + DefaultValueInitialized: true + OS: AnyOS + Linux: + enabled: 0 + settings: + CPU: None + Linux64: + enabled: 0 + settings: + CPU: None + LinuxUniversal: + enabled: 0 + settings: + CPU: None + OSXIntel: + enabled: 0 + settings: + CPU: None + OSXIntel64: + enabled: 0 + settings: + CPU: None + OSXUniversal: + enabled: 0 + settings: + CPU: None + Web: + enabled: 0 + settings: {} + WebStreamed: + enabled: 0 + settings: {} + Win: + enabled: 0 + settings: + CPU: None + Win64: + enabled: 0 + settings: + CPU: None + WindowsStoreApps: + enabled: 0 + settings: + CPU: AnyCPU + iOS: + enabled: 1 + settings: + CompileFlags: + FrameworkDependencies: + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity/Assets/Scripts/DebugManager.cs b/unity/Assets/Scripts/DebugManager.cs index a4c88604e..fbd0a8782 100644 --- a/unity/Assets/Scripts/DebugManager.cs +++ b/unity/Assets/Scripts/DebugManager.cs @@ -8,7 +8,7 @@ static public void Enable() { Firebase.FirebaseApp app = Firebase.FirebaseApp.Create(); - System.Threading.Tasks.Task t = Firebase.FirebaseApp.CheckAndFixDependenciesAsync().ContinueWith(task => { + Firebase.FirebaseApp.CheckAndFixDependenciesAsync().ContinueWith(task => { var dependencyStatus = task.Result; if (dependencyStatus == Firebase.DependencyStatus.Available) { diff --git a/unity/Assets/StreamingAssets/google-services-desktop.json.meta b/unity/Assets/StreamingAssets/google-services-desktop.json.meta index 518f79afd..fd69a0390 100644 --- a/unity/Assets/StreamingAssets/google-services-desktop.json.meta +++ b/unity/Assets/StreamingAssets/google-services-desktop.json.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 2efa1b3a46062804e8cfb3ac63e146e3 +guid: e1613302d4517754e9a6a5072f9fb3a1 TextScriptImporter: externalObjects: {} userData: diff --git a/unity/Packages/manifest.json b/unity/Packages/manifest.json index 72f507e22..504bd7456 100644 --- a/unity/Packages/manifest.json +++ b/unity/Packages/manifest.json @@ -1,8 +1,5 @@ { "dependencies": { - "com.google.external-dependency-manager": "1.2.159", - "com.google.firebase.app": "6.15.2", - "com.google.firebase.crashlytics": "6.15.2", "com.unity.package-manager-ui": "2.0.13", "com.unity.textmeshpro": "1.4.1", "com.unity.modules.ai": "1.0.0", @@ -35,14 +32,5 @@ "com.unity.modules.vr": "1.0.0", "com.unity.modules.wind": "1.0.0", "com.unity.modules.xr": "1.0.0" - }, - "scopedRegistries": [ - { - "name": "Game Package Registry by Google", - "url": "https://unityregistry-pa.googleapis.com", - "scopes": [ - "com.google" - ] - } - ] + } } diff --git a/unity/ProjectSettings/GvhProjectSettings.xml b/unity/ProjectSettings/GvhProjectSettings.xml index b32c43647..d822817c2 100644 --- a/unity/ProjectSettings/GvhProjectSettings.xml +++ b/unity/ProjectSettings/GvhProjectSettings.xml @@ -4,6 +4,7 @@ + From f6fb0af51d20f9c1a6d01e9db231bfcc76637e86 Mon Sep 17 00:00:00 2001 From: Estarriol Date: Wed, 26 Oct 2022 12:00:09 +0200 Subject: [PATCH 03/10] #1580 Added Czech localization --- .../Scripts/UI/Screens/OptionsScreen.cs | 2 +- .../text/Localization.Czech.txt | 663 ++++++++++++++++++ .../text/Localization.Czech.txt.meta | 3 + 3 files changed, 667 insertions(+), 1 deletion(-) create mode 100644 unity/Assets/StreamingAssets/text/Localization.Czech.txt create mode 100644 unity/Assets/StreamingAssets/text/Localization.Czech.txt.meta diff --git a/unity/Assets/Scripts/UI/Screens/OptionsScreen.cs b/unity/Assets/Scripts/UI/Screens/OptionsScreen.cs index 4c89b4493..9d4970d89 100644 --- a/unity/Assets/Scripts/UI/Screens/OptionsScreen.cs +++ b/unity/Assets/Scripts/UI/Screens/OptionsScreen.cs @@ -11,7 +11,7 @@ namespace Assets.Scripts.UI.Screens // Class for options menu public class OptionsScreen { - public static readonly HashSet ENABLED_LANGS = new HashSet("English,Spanish,French,Italian,German,Portuguese,Polish,Russian,Chinese,Korean".Split(',')); + public static readonly HashSet ENABLED_LANGS = new HashSet("English,Spanish,French,Italian,German,Portuguese,Polish,Russian,Chinese,Korean,Czech".Split(',')); private static readonly string IMG_LOW_EDITOR_TRANSPARENCY = "ImageLowEditorTransparency"; private static readonly string IMG_MEDIUM_EDITOR_TRANSPARENCY = "ImageMediumEditorTransparency"; diff --git a/unity/Assets/StreamingAssets/text/Localization.Czech.txt b/unity/Assets/StreamingAssets/text/Localization.Czech.txt new file mode 100644 index 000000000..398bb1c36 --- /dev/null +++ b/unity/Assets/StreamingAssets/text/Localization.Czech.txt @@ -0,0 +1,663 @@ +.,Czech +// Version 1.001, Last correction/Posledni oprava: ententeak 09.08.2022, text format UTF-8 +// ICONS +ICON_SKILL_STRENGTH, +ICON_SKILL_AGILITY, +ICON_SKILL_OBSERVATION, +ICON_SKILL_LORE, +ICON_SKILL_INFLUENCE, +ICON_SKILL_WILL, +ICON_ACTION, +ICON_SUCCESS_RESULT, +ICON_INVESTIGATION_RESULT, +ICON_TENTACLE, +ICON_PRODUCT_MAD01, +ICON_PRODUCT_MAD06, +ICON_PRODUCT_MAD09, +ICON_PRODUCT_MAD20, +ICON_PRODUCT_MAD21, +ICON_PRODUCT_MAD22, +ICON_PRODUCT_MAD23, +ICON_PRODUCT_MAD25, +ICON_PRODUCT_MAD26, +ICON_PRODUCT_MAD27, +ICON_PRODUCT_MAD28, + +// TEXTS +ABILITY,Schopnost +ABOUT,O aplikaci +ABOUT_FFG,Valkyrie je pomocná aplikace Pána Zla, inspirována hrou od Fantasy Flight Games, Descent: Road to Legend. Většina obrázků je importována z FFG aplikace a pod copyrightem FFG a dalších držitelů práv a ochranných známek. Vlaječky jazyků pocházejí od Freepik z www.flaticon.com. +ABOUT_LIBS,Valkyrie využívá DotNetZip-For-Unity, UnityStandaloneFileBrowser z gkngkc a má kód vycházející z Unity Studio a .NET Ogg Vorbis Encoder. +ACTIONS,Akce +ACTIVATED,Aktivován +ACTIVATION,Aktivace +ACTIVATIONS,Aktivace +ADD_COMPONENTS,Přidat komponenty +COMPONENTS,Komponenty +RENAME,Přejmenování +SAVE_TEST,Uložit a vyzkoušet +SOURCE,Zdroj +COMMENT,Komentář +TRUE,Ano +FALSE,Ne +SNAP,Chytit +FREE,Volný +CONFIRM,Potvrdit +INSPECT,Prohlédnout +DURATION,Trvání +DESCRIPTION,Popis +AUTHORS,Autoři +DIFFICULTY,Obtížnost +VALIDATE_SCENARIO,Ověřit +FILE,Soubor +OPTIMIZE_LOCALIZATION,Optimalizovat překlad +CREATE_PACKAGE,Vytvořit balíček +REORDER_COMPONENTS,Přeskládat díly +POSITION_SNAP,╳ {val:SNAP} +POSITION_FREE,〜 {val:FREE} +ASSIGN,Nastavit proměnnou +ATTACK,Zaútočit +ATTACK_MESSAGE,Zpráva útoku: +AUDIO,Zvuk +BACK,Zpět +BASE,Základ +BUTTON,Tlačítko +BUTTONS,Tlačítka +CAMERA,Kamera +CANCEL,Zrušit +CHOOSE_LANG,Výběr jazyka +CLEAR_FIRE,Čistý oheň +COLOR,Barva +COMPONENT_NAME,Jméno dílu: +COMPONENT_TO_DELETE,Díl ke smazání: +CONTENT_IMPORT,Importovat obsah +CONTENT_IMPORTING,Importuji...\nTohle může chvíli trvat +CONTENT_REIMPORT,Znovu imporovat obsah +CONTENT_LOCATE,Najít hru +CONTENT_INSTALL_VIA_STEAM,Instalovat ze Steamu +CONTENT_INSTALL_VIA_GOOGLEPLAY,Instalovat z Google Play +CONTINUE,Pokračovat +COPY,Kopírovat +CUSTOMMONSTER,Vlastní monstrum +DEFAULTMUSICON,Zapnout základni hudbu +D2E_APP_NOT_FOUND,Nelze najít Road to Legend +D2E_HEROES_NAME,Hrdinové +D2E_HERO_NAME,Hrdina +D2E_NAME,Descent: Výprava do temnot (Druhá edice) +D2E_QUEST_NAME,Úkol +DEFEATED,Poražen +DELETE,Smazat +UPDATE,Aktualizovat +DIALOG,Dialog +DOOR,Dveře +DOWNLOAD,Stáhnout +DOWNLOAD_LIST,Stahuji seznam balíčků +DOWNLOAD_PACKAGE,Stahuji balíček +E,E +EFFECTS,Efekty +EMPTY, +END_TURN,Konec kola +ROUND,kolo {0} +EVADE,Úhyb +EVENT,Událost +EXIT,Konec +FINISHED,Dokončeno +FIRST,První +FORCE_ACTIVATE,Vynutit aktivaci + +HEALTH,Zdraví +HEALTH_HERO,za hrdinu +HIGHLIGHT,Zvýraznit +HORROR_CHECK,Kontrola hrůzy +AWARENESS,Ostražitost +IA_APP_NOT_FOUND,Nelze nalézt Legends of the Alliance, Instalovat ze Steamu +IA_APP_NOT_FOUND_ANDROID,Nelze nalézt Legends of the Alliance, Instalovat z Google Play +IA_HEROES_NAME,Hrdinové +IA_HERO_NAME,Hrdina +IA_NAME,Star Wars: Imperial Assault UNAVAILABLE +IA_QUEST_NAME,Mise +INDENT, {0} +INFO,Info +INFORMATION,Informace +INITIAL_MESSAGE,Úvodní zpráva: +ITEM,Předmět +QITEM,Úkolový předmět +KO,KO +LOAD_QUEST,Pokračovat +LOG,Deník +SKILLS,Talent +ITEMS,Věci +ITEMS_SMALL,věci +GOLD,Zlato +MAIN_MENU,Hlavní menu +MAX,Max +MAX_X,Max {0} +MAX_CAM,Horni okraj +MENU,Menu +MIN,Min +MIN_X,Min {0} +MIN_CAM,Spodni okraj +MOM_APP_NOT_FOUND,Nelze nalézt Panství děsu +MOM_HEROES_NAME,Vyšetřovatelé +MOM_HERO_NAME,Vyšetřovatel +MOM_NAME,Panství děsu (Druhá edice) +MOM_QUEST_NAME,Scénář +MONSTER,Monstrum +MONSTER_ATTACKS,Monstrum útočí. +MONSTER_MASTER,Lord +MONSTER_MASTER_X,Lord {0} +MONSTER_MINION,Běžná +MONSTER_NORMAL,Normální + +MONSTER_UNIQUE,Unikátní +MOVES,Pohyby +MPLACE,Umístění +MUSIC,Hudba +NAME,Jméno +NEW,Nový +NEW_X,{Nový {0}} +NONE,{Žádný} + +NEXT_EVENTS,Další události +NOT_FIRST,Ne první +NO_ATTACK_MESSAGE,Zpráva bez útoku + +NUMBER,Číslo +NUMBER_HEROS,{0} Hrdiny: +OK,Ok +OP,Op +OPTIONS,Volby +PLACEMENT,Umístění + +PLACE_IMG,Umístit obrázek: +POOL_TRAITS,Výběr vlastností: +POSITION,Pozice +POSITION_TYPE_HIGHLIGHT,Zvýraznění +POSITION_TYPE_UNUSED,Nepoužité +PUZZLE,Hádanka +PUZZLE_ALT_LEVEL,Alternativní uroveň +PUZZLE_SOLUTION,Řešení +PUZZLE_CLASS,Třída +PUZZLE_CLASS_SELECT,Výběr třídy +IMAGE,Obrázek + +PUZZLE_LEVEL,Úroveň hádanky +PUZZLE_SELECT_SKILL,Výběr talentu: +PUZZLE_IMAGE_CLASS,obrázek +PUZZLE_CODE_CLASS,kód +PUZZLE_SLIDE_CLASS,slide +QUEST,Úkol +QUEST_NAME_DOWNLOAD,Stáhnout {0} +QUEST_NAME_EDITOR,Editor úkolů +EDITOR,Editor +QUEST_NAME_UPDATE, [Aktualizace] {0} +QUOTA,Kvóta +RECOVER,Obnovit +INVESTIGATOR_ATTACKS,Vyšetřovatel útočí + + +RELOAD,Znovu načíst +REMOVE_COMPONENTS,Odebrat díly: +REQUIRED_EXPANSIONS,Vyžadované rozšírení: +REQUIRES_EXPANSION, Vyžaduje: {0} + +REQ_TRAITS,Vyž. vlastnosti: +RESET,Reset +ROTATE_TO,Otočit: {0} +ROTATION,Otočení +SAVE,Uložit +AUTOSAVE,Automatické uložení +SELECT_SAVE,Výběr uložení: +SELECT,Výběr {0} +SELECT_CLASS,Výběr třídy +SELECTION,Výběr +SELECT_CONTENT,Výběr obsahu +SELECT_EXPANSION,Výběr obsahu rozšíření: +SELECT_IMAGE,Výběr obrazu: +SELECT_ITEM,Výběr předmětu +SELECT_PACK,Výběr balíčku +SELECT_TO_COPY,Vyber {0} ke kopírování: +SELECT_TO_DELETE,Vyber {0} ke smazáni: +DISABLE,Zakázat +HIDE,Skrýt +HIDDEN,Skryto +ACTIVE,Aktivní +SET,Nastavit +SET_EDITOR_ALPHA,Průhlednost editoru +SKILL,Talent +SELECT_SKILLS,Vyber talenty: +SPAWN,Monstrum +STARTING_ITEM,Startovní předmět +STARTING_ITEMS,Startovní předměty +START_QUEST,Nová hra +START,Začátek + +TESTS,Zkoušky +TILE,Díl + +AND,A +OR,Nebo + +TOKEN,Žeton +TOOLS,Nástroje +TOTAL_MOVES,Celkové pohyby +TRAITS,Vlastnosti +TRIGGER,Spouštěč +TYPE,Typ +TYPES,Typy +UNABLE_BUTTON,Tlačitko nedostupné: + +UI,UI +UNITS,Jednotky +HORIZONTAL,Horizontální +VERTICAL,Vertikální +ALIGN,Zarovnat +SIZE,Velikost +TEXT_SIZE,Velikost textu +BACKGROUND_COLOUR,Barva pozadí +ASPECT,Poměr +BORDER,Okraj +NO_BORDER,Bez okraje +UNDO,Zpět +UNIQUE_DEFEATED,Unikátní\nporažen(a) +UNIQUE_INFO,Unikátní informace +UNIQUE_MONSTER,Unikátní monstrum +UNIQUE_TITLE,Unikátní díl +UNUSED,Nepoužité +VALUE,Hodnota +VAR,Proměnná +VARS,Proměnné +VAR_NAME,Název Proměnné +X_ACTIVATED,{0} aktivován(a) + +BUY,Koupit +SELL,Prodat +CLASS,Třída +ACT_1,Akt I +ACT_2,Akt II + +X_COLON,{0}: + +//Packs +SoA,SoA  +BtT,BtT  +CotW,CotW  +CotWT,CotWT  +CotWI,CotWI  +CotWM,CotWM  +FA,FA  +FAT,FAT  +FAI,FAI  +FAM,FAM  +HJ,HJ  +MoM1E,MoM1E  +MoM1ET,MoM1ET  +MoM1EI,MoM1EI  +MoM1EM,MoM1EM  +MoM1CK,CK ᶜ +base,base  +PotS,PotS  +RN,RN  +SM,SM  +SoT,SoT  + +//Packs symbols MoM +SoA_SYMBOL, +BtT_SYMBOL, +CotW_SYMBOL, +CotWT_SYMBOL, +CotWI_SYMBOL, +CotWM_SYMBOL, +FA_SYMBOL, +FAT_SYMBOL, +FAI_SYMBOL, +FAM_SYMBOL, +HJ_SYMBOL, +MoM1E_SYMBOL, +MoM1ET_SYMBOL, +MoM1EI_SYMBOL, +MoM1EM_SYMBOL, +MoM1CK_SYMBOL,ᶜ +base_SYMBOL, +PotS_SYMBOL, +RN_SYMBOL, +SM_SYMBOL, +SoT_SYMBOL, + +//Packs symbols D2E +LoR_SYMBOL, +LotW_SYMBOL, +MoB_SYMBOL, +MoR_SYMBOL, +SoN_SYMBOL, +TCTR_SYMBOL, +TT_SYMBOL, +BotW_SYMBOL, +CoD_SYMBOL, +CotF_SYMBOL, +GoD_SYMBOL, +OotO_SYMBOL, +SoE_SYMBOL, +SotS_SYMBOL, +ToC_SYMBOL, +VoD_SYMBOL, +CKAoD_SYMBOL,ck +CKD1E_SYMBOL,ck +CKDQ_SYMBOL,ck +CKPromo_SYMBOL,ck +CKToI_SYMBOL,ck +CKWoD_SYMBOL,ck +DJ09_SYMBOL,lt +DJ10_SYMBOL,lt +DJ11_SYMBOL,lt +DJ12_SYMBOL,lt +DJ13_SYMBOL,lt +DJ14_SYMBOL,lt +DJ15_SYMBOL,lt +DJ16_SYMBOL,lt +DJ17_SYMBOL,lt +DJ18_SYMBOL,lt +DJ19_SYMBOL,lt +DJ20_SYMBOL,lt +DJ22_SYMBOL,lt +DJ23_SYMBOL,lt +DJ24_SYMBOL,lt +DJ25_SYMBOL,lt +DJ35_SYMBOL,lt +DJ41_SYMBOL,lt +DJ42_SYMBOL,lt +DJ43_SYMBOL,lt + +// Expansions name D2E (for performance) +LL, Ztracené Legendy +LoR,Labyrint Zkázy  +LotW,Dračí Sluj  +MoB,Mlhy Bilehallu  +MoR,Sídlo Havranů  +SoN,Stín Nerekhallu  +TCTR,Řetězy co Rezivějí  +TT,Zlobří Bažiny  +BotW,Pouta Divočiny  +CoD,Koruna Osudu  +CotF,Křížové Tažení Zapomenutých  +GoD,Strážci Deephallu  +OotO,Přísaha Vyhnankyně  +SoE,Střepy Věčnotemna  +SotS,Služebníci Tajemství  +ToC,Úmluva Bojovníků  +VoD,Vidiny Úsvitu  +CKAoD,Oltář zoufalství +CKD1E,1. edice +CKDQ,Dungeon Quest hrdinové +CKPromo,Promo +CKToI,Ledová hrobka +CKWoD,Studna temnoty +DJ09,Splig +DJ10,Belthir +DJ11,Baron Zachariáš +DJ12,Alric Farrow +DJ13,Merick Farrow +DJ14,Eliza Farrow +DJ15,Valyndra +DJ16,Raythen +DJ17,Serena +DJ18,Ariad +DJ19,Královna Ariad +DJ20,Bol'Goreth +DJ22,Rylan Olliven +DJ23,Verminous +DJ24,Tristayne Olliven +DJ25,Gargan Mirklace +DJ35,Skarn +DJ41,Kyndrithul +DJ42,Zarihell +DJ43,Ardus Ix'Erebus + +//Items +weapon,Zbraň +firearm,Střelná zbraň +heavyweapon,Těžká zbraň +heavy,Těžká zbraň +tome,Kniha +equipment,Vybavení +lightsource,Zdroj světla +bladedweapon,Sečná zbraň +bladed,Sečná zbraň +spell,Kouzlo +key,Klíč +evidence,Důkaz +ally,Spojenec +spelldefence,Obranné kouzlo +spellattack,Útočné kouzlo + +//Audio +menu,Menu +music,Hudba +quest,Úkol +defeated,Poražen +newround,Nové kolo +attack,Útok +unarmed,Neozbrojený +horror,Hrůza +search,Hledat +explore,Prozkoumat + +//Heroes +latari,Latari +dwarf,Trpaslík +gnome,Gnom +male,Muž +female,Žena + +//monsters +monster,Montrum +undead,Nemrtvý +humanoid,Humanoid +spirit,Duch +beast,Bestie +agent,Agent +lieutenant,Poručík +small,Malý +medium,Střední +huge,Velký +massive,Masivní +building,Budova +melee,Souboj na blízko +ranged,Vzdálený útok +goblin,Goblin +cursed,Prokletý +cave,Jeskyně +wilderness,Divočina +civilized,Civilizovaný +dark,Temný +mountain,Hory +cold,Chlad +hot,Horko +water,Voda +fleshless,Bezmasý +snakeperson,Hadí osoba +relic,Relikvie +elixir,Elixir + +//Tiles +basement,Sklepení +river,Řeka +street,Ulice +hallway,Chodba +bathroom,Koupelna +bedroom,Ložnice +kitchen,Kuchyně +dock,Dok +storage,Skladiště +outside,Venku +inside,Uvnitř +big,Velký +transition,Přechod +throne,Trůn +pit,Jáma +farm,Farma +tomb,Hrobka +library,Knihovna +graves,Hrob +bridge,Most +stairs,Schody +torture,Mučení +tents,Stany +stables,Stáje +hall,Hala +map,Mapa +city,Město +fountain,Fontána +blackrealm,Temnosvět +altar,Oltář +beds,Postele +study,Studovna +prison,Vězení +plinth,Podstavec +tavern,Hospoda +statues,Sochy +drawbridge,Padací most +rubble,Sutiny +treasure,Poklad +stone,Kámen +dirt,Hlína +timber,Dřevo +snow,Sníh +lava,Láva +swamp,Bažina +sludge,Bahno +ship,Loď +temple,Chrám +train,Vlak + +// Colors +black,Černá +white,Bílá +red,Červena +lime,Limetková +blue,Modrá +yellow,Žlutá +aqua,Vodová +cyan,Azurová +magenta,Purpurová +fuchsia,Fuchsiová +silver,Stříbrná +gray,Šedá +maroon,Kaštanová +olive,Olivová +green,Zelená +purple,Fialová +teal,Modrozelená +navy,Námořnická modř + +//Puzzles +image,Obrázek +code,Kód +slide,Slide +tower,Věž +SYMBOL,Symbol +ELEMENT,Element + +// Events +Ordered,Seřazeno +Random,Náhodně + +//Inherited from FFG localization files +SET_FIRE,Zapálit +INVESTIGATOR_ELIMINATED,Vyšetřovatel eliminován +CLOSE,Zavřít +PUZZLE_GUESS,Hádat + +UP,Nahoru +DOWN,Dolu +LEFT,Vlevo +RIGHT,Vpravo + +PHASE_INVESTIGATOR,Fáze vyšetřovatele +PHASE_MYTHOS,Fáze Mythose +MONSTER_STEP,Krok monstra +HORROR_STEP,Krok hrůzy +END_PHASE,Konec fáze + +ATTACK_PROMPT,Jakým typem zbraně se útočí? +ATTACK_WITH_HEAVY_WEAPON, Útočí s [i]těžkou zbraní[/i] +ATTACK_WITH_BLADED_WEAPON, Útočí se [i]sečnou zbraní[/i] +ATTACK_WITH_FIREARM, Útočí se [i]střelnou zbraní[/i] +ATTACK_WITH_SPELL, Útočí kouzlem +ATTACK_WITH_UNARMED, Útočí beze zbraně + +ACTION_X, {0} + +STATS_WELCOME,Díky za hru. Prosím sdílejte sve zážitky s ostatními hráči. Vaše herní aktivita bude sdílena s autory hry pro další zlepšování scénaře. + +STATS_ASK_VICTORY,Vyhráli jste tuto hru? +STATS_ASK_VICTORY_YES,ANO! +STATS_ASK_VICTORY_NO,Ne +STATS_ASK_RATING,Jak byste ohodnotili tento scénář?\n(1: Hrůza 10: Úžasné) +STATS_ASK_COMMENTS,Chcete nechat komentář autorovi? +STATS_MISSING_INFO,Před odesláním nám prosím sděl hodnocení a jestli jste vyhráli. +STATS_SEND_BUTTON,Odeslat +STATS_MENU_BUTTON,Menu + +STATS_AVERAGE_WIN_RATIO,Poměrně výher: {0}% +STATS_NB_USER_REVIEWS,({0} uživatelských recenzí) +STATS_AVERAGE_DURATION,Průměrná délka hry: {0} min +STATS_NO_AVERAGE_DURATION,Průměrná délka hry nedostupná +STATS_NO_AVERAGE_WIN_RATIO,Poměr výher nedostupné + +STATS_DOWNLOAD_ONGOING,Stahuji herní statistiky...\nProsím za pár vteřin obnov stránku +STATS_ERROR_HTTP,Chyba při stahování herních statistik. Pokud problém přetrvává, nahlas tento problém na github Valkyrie\n{0} +STATS_ERROR_NETWORK,Chyba při stahování herních statistik. Prosím zkontroluj své internetové připojení. + +ERROR_HTTP,Chyba při stahování souboru. Pokud problém přetrvává, nahlas tento problém na github Valkyrie\n{0} +ERROR_NETWORK,Chyba při stahování souboru. Prosím zkontroluj své internetové připojení. + +NEW_VERSION_AVAILABLE,Dostupná nová verze + +SORT_TITLE,Seřadit +SORT_SELECT_CRITERIA,Vyber podmínky řazení +SORT_SELECT_ORDER,Řadit podle: +SORT_ASCENDING,Vzestupně +SORT_DESCENDING,Sestupně + +SORT_BY_AUTHOR,Autor +SORT_BY_NAME,Jméno +SORT_BY_DIFFICULTY,Obtížnost +SORT_BY_DURATION,Trvání + +SORT_BY_RATING,Hodnocení +SORT_BY_AVERAGE_DURATION,Průměrné hodnocení +SORT_BY_WIN_RATIO,Poměr vítězství +SORT_BY_DATE,Datum aktualizace + +FILTER_TITLE,Vyber filtry +FILTER_SELECT_LANG,Vyber jazyk(y): +FILTER_MISSING_EXPANSIONS_ON,Skrýt scénáře s chybějícími rozšířeními ☑ +FILTER_MISSING_EXPANSIONS_OFF,Skrýt scénáře s chybějícími rozšířeními ☐ +FILTER_TEXT_NUMBER_OF_FILTERED_SCENARIO,{0} scenář(ů) vyfiltrováno + +AUTHORS_SHORT,"Jeden řádek pro autory (pro volbu ""řazení podle autora"")" +AUTHORS_UNKNOWN,Neznámí autoři + +SYNOPSYS,Popis (max 100 znaků) + +UPDATED_THIS_WEEK,Aktualizováno tento týden +UPDATED_THIS_MONTH,Aktualizováno tento měsíc +UPDATED_THIS_TRIMESTER,Aktualizováno tento trimestr +UPDATED_THIS_SEMESTER,Aktualizováno tento semestr +UPDATED_THIS_YEAR,Aktualizováno tento rok +UPDATED_TWO_YEARS_AGO,Aktualizováno před dvěma roky +UPDATE_OLDER_THAN_TWO_YEAR,Aktualizováno déle než před dvěma roky + +GO_OFFLINE,Odpojit +GO_ONLINE,Připojit +DOWNLOAD_ONGOING,Stahuji... +OFFLINE_DUE_TO_ERROR,OFFLINE (Chyba sítě) + +MISSING_EXPANSIONS,Chybějící rozšíření: + +RICH_TEXT,Zdobný text +TEXT_ALIGNMENT,Zarovnat +TOP,Nahoru +CENTER,Střed +BOTTOM,Dolu \ No newline at end of file diff --git a/unity/Assets/StreamingAssets/text/Localization.Czech.txt.meta b/unity/Assets/StreamingAssets/text/Localization.Czech.txt.meta new file mode 100644 index 000000000..dc043b310 --- /dev/null +++ b/unity/Assets/StreamingAssets/text/Localization.Czech.txt.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 8dd2ec95fd6c48d6b19e79f5c8722ad9 +timeCreated: 1666778179 \ No newline at end of file From f32ffe60a391af546c146399386c5301956089fe Mon Sep 17 00:00:00 2001 From: Estarriol Date: Wed, 26 Oct 2022 13:06:45 +0200 Subject: [PATCH 04/10] Fixes #1498 --- unity/Assets/Scripts/QuestEditor/EditorComponentEvent.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/unity/Assets/Scripts/QuestEditor/EditorComponentEvent.cs b/unity/Assets/Scripts/QuestEditor/EditorComponentEvent.cs index 5727af9d0..541a85f64 100644 --- a/unity/Assets/Scripts/QuestEditor/EditorComponentEvent.cs +++ b/unity/Assets/Scripts/QuestEditor/EditorComponentEvent.cs @@ -911,6 +911,7 @@ public void AddVisibility(bool add, int index = -1) Dictionary> traits = new Dictionary>(); traits.Add(CommonStringKeys.TYPE.Translate(), new string[] { "Special" }); + traits.Add(CommonStringKeys.SOURCE.Translate(), new string[] { "Special" }); select.AddItem("#boardcomponents", traits); select.AddItem("#monsters", traits); From b617d39a6bc1f734c58d646cf8c84011a0c16ce9 Mon Sep 17 00:00:00 2001 From: Estarriol Date: Wed, 26 Oct 2022 13:58:04 +0200 Subject: [PATCH 05/10] Workaround for #1560 #1548 --- unity/Assets/Scripts/Destroyer.cs | 24 ++++++++++- unity/Assets/Scripts/Game.cs | 1 + .../Assets/Scripts/Quest/MonsterDialogMoM.cs | 41 +++++++++++-------- unity/ProjectSettings/TagManager.asset | 1 + 4 files changed, 49 insertions(+), 18 deletions(-) diff --git a/unity/Assets/Scripts/Destroyer.cs b/unity/Assets/Scripts/Destroyer.cs index fe693d206..43726182c 100644 --- a/unity/Assets/Scripts/Destroyer.cs +++ b/unity/Assets/Scripts/Destroyer.cs @@ -1,4 +1,6 @@ -using UnityEngine; +using System; +using UnityEngine; +using Object = UnityEngine.Object; // This is a helper class because we often need to clean things up. public class Destroyer @@ -76,6 +78,14 @@ public static void Logs() Object.Destroy(go); } + // Close logs + public static void Tag(String tag) + { + // Clean up everything marked as 'dialog' + foreach (GameObject go in GameObject.FindGameObjectsWithTag(tag)) + Object.Destroy(go); + } + // All dialogs that are to be acknoledged/cancled are marked as 'dialog' and are often destroyed public static void Dialog() { @@ -83,11 +93,23 @@ public static void Dialog() foreach (GameObject go in GameObject.FindGameObjectsWithTag(Game.DIALOG)) Object.Destroy(go); + foreach (GameObject go in GameObject.FindGameObjectsWithTag(Game.DIALOG_PART)) + Object.Destroy(go); + CameraController.panDisable = false; Game.Get().logWindow = null; Resources.UnloadUnusedAssets(); } + // Smaller part of dialogs that should be refreshed on their own + public static void DialogParts() + { + foreach (GameObject go in GameObject.FindGameObjectsWithTag(Game.DIALOG_PART)) + Object.Destroy(go); + + Resources.UnloadUnusedAssets(); + } + // All dialogs that are to be acknoledged/cancled are marked as 'dialog' and are often destroyed public static void SetWindow() { diff --git a/unity/Assets/Scripts/Game.cs b/unity/Assets/Scripts/Game.cs index 2ab889879..fe5a837d7 100644 --- a/unity/Assets/Scripts/Game.cs +++ b/unity/Assets/Scripts/Game.cs @@ -31,6 +31,7 @@ public class Game : MonoBehaviour public static readonly string ENDGAME = "endgame"; public static readonly string BG_TASKS = "bg_tasks"; public static readonly string LOGS = "logs"; + public static readonly string DIALOG_PART = "dialogPart"; // This is populated at run time from the text asset public string version = ""; diff --git a/unity/Assets/Scripts/Quest/MonsterDialogMoM.cs b/unity/Assets/Scripts/Quest/MonsterDialogMoM.cs index c5ad48726..7086716f8 100644 --- a/unity/Assets/Scripts/Quest/MonsterDialogMoM.cs +++ b/unity/Assets/Scripts/Quest/MonsterDialogMoM.cs @@ -40,37 +40,43 @@ public override void CreateWindow() new UIElementBorder(ui); } else - { // In investigator phase we do attacks and evades + { + // In investigator phase we do attacks and evades DrawMonsterHealth(monster, delegate { CreateWindow(); }); + var isAlive = monster.damage < monster.GetHealth(); + UIElement ui = new UIElement(); ui.SetLocation(UIScaler.GetHCenter(-8f), 2, 16, 2); - ui.SetText(new StringKey("val","ACTION_X",ATTACK)); + ui.SetText(new StringKey("val", "ACTION_X", ATTACK), isAlive ? Color.white : Color.gray); ui.SetFontSize(UIScaler.GetMediumFont()); - ui.SetButton(Attack); - new UIElementBorder(ui); + new UIElementBorder(ui, isAlive ? Color.white : Color.gray); + if (isAlive) + { + ui.SetButton(Attack); + } ui = new UIElement(); ui.SetLocation(UIScaler.GetHCenter(-8f), 4.5f, 16, 2); - ui.SetText(EVADE); + ui.SetText(EVADE, isAlive ? Color.white : Color.gray); ui.SetFontSize(UIScaler.GetMediumFont()); - ui.SetButton(Evade); - new UIElementBorder(ui); + new UIElementBorder(ui, isAlive ? Color.white : Color.gray); + if (isAlive) + { + ui.SetButton(Evade); + } + ui = new UIElement(); ui.SetLocation(UIScaler.GetHCenter(-5f), 7, 10, 2); - if (monster.damage == monster.GetHealth()) - { - ui.SetText(CommonStringKeys.CANCEL, Color.gray); - new UIElementBorder(ui, Color.gray); - } - else + ui.SetText(CommonStringKeys.CANCEL, isAlive ? Color.white : Color.gray); + ui.SetFontSize(UIScaler.GetMediumFont()); + new UIElementBorder(ui, isAlive ? Color.white : Color.gray); + if (isAlive) { - ui.SetText(CommonStringKeys.CANCEL); ui.SetButton(OnCancel); - new UIElementBorder(ui); } - ui.SetFontSize(UIScaler.GetMediumFont()); + } } @@ -157,7 +163,7 @@ private static void DrawMonsterHealth(Quest.Monster monster, UnityEngine.Events. ui.SetText(CommonStringKeys.PLUS, Color.grey); new UIElementBorder(ui, Color.grey); - UIElement defui = new UIElement(); + UIElement defui = new UIElement(Game.DIALOG_PART); defui.SetLocation(2, 11.5f, 6, 2); defui.SetText(DEFEATED); defui.SetFontSize(UIScaler.GetMediumFont()); @@ -202,6 +208,7 @@ public static void Defeated(Quest.Monster monster) public static void MonsterDamageDec(Quest.Monster monster, UnityEngine.Events.UnityAction call) { + Destroyer.DialogParts(); monster.damage -= 1; if (monster.damage < 0) { diff --git a/unity/ProjectSettings/TagManager.asset b/unity/ProjectSettings/TagManager.asset index abe1869a7..29fa961d6 100644 --- a/unity/ProjectSettings/TagManager.asset +++ b/unity/ProjectSettings/TagManager.asset @@ -20,6 +20,7 @@ TagManager: - logs - questlist - setwindow + - dialogPart layers: - Default - TransparentFX From fce256877398075de58bb44a7f5c390edfb5f222 Mon Sep 17 00:00:00 2001 From: Estarriol Date: Wed, 26 Oct 2022 14:21:23 +0200 Subject: [PATCH 06/10] Added basic Japanese language support (needs testing) #1457 --- .../Scripts/UI/Screens/OptionsScreen.cs | 6 +- .../UI/Screens/QuestSelectionScreen.cs | 2 +- .../text/Localization.Japanese.txt | 666 +++++++++++++++++- .../text/Localization.Japanese.txt.meta | 11 +- 4 files changed, 669 insertions(+), 16 deletions(-) diff --git a/unity/Assets/Scripts/UI/Screens/OptionsScreen.cs b/unity/Assets/Scripts/UI/Screens/OptionsScreen.cs index 9d4970d89..4d5f2b2a4 100644 --- a/unity/Assets/Scripts/UI/Screens/OptionsScreen.cs +++ b/unity/Assets/Scripts/UI/Screens/OptionsScreen.cs @@ -11,7 +11,7 @@ namespace Assets.Scripts.UI.Screens // Class for options menu public class OptionsScreen { - public static readonly HashSet ENABLED_LANGS = new HashSet("English,Spanish,French,Italian,German,Portuguese,Polish,Russian,Chinese,Korean,Czech".Split(',')); + public static readonly HashSet ENABLED_LANGS = new HashSet("English,Spanish,French,Italian,German,Portuguese,Polish,Russian,Chinese,Korean,Czech,Japanese".Split(',')); private static readonly string IMG_LOW_EDITOR_TRANSPARENCY = "ImageLowEditorTransparency"; private static readonly string IMG_MEDIUM_EDITOR_TRANSPARENCY = "ImageMediumEditorTransparency"; @@ -253,12 +253,12 @@ private void CreateLanguageElements() // In D2E there is an additional language // It can change in future - string[] langs = "English,Spanish,French,German,Italian,Portuguese,Polish,Russian,Chinese,Korean,Czech".Split(','); // Japanese removed to fit into screen + string[] langs = "English,Spanish,French,German,Italian,Portuguese,Polish,Russian,Chinese,Korean,Czech,Japanese".Split(','); // Japanese removed to fit into screen // For now, the languages below are available. HashSet enabled_langs = ENABLED_LANGS; //The first button in the list of buttons should start in this vertical coordinate - float verticalStart = UIScaler.GetVCenter(-2f) - langs.Length; + float verticalStart = UIScaler.GetVCenter(-2f) - langs.Length + 1; for (int i = 0; i < langs.Length; i++) { diff --git a/unity/Assets/Scripts/UI/Screens/QuestSelectionScreen.cs b/unity/Assets/Scripts/UI/Screens/QuestSelectionScreen.cs index 74cde54b8..d1a2fc907 100644 --- a/unity/Assets/Scripts/UI/Screens/QuestSelectionScreen.cs +++ b/unity/Assets/Scripts/UI/Screens/QuestSelectionScreen.cs @@ -71,7 +71,7 @@ public class QuestSelectionScreen: MonoBehaviour private readonly Color dark_red_text_color = new Color(0.686f, 0.031f, 0.023f); // filters - string[] langs = "English,Spanish,French,German,Italian,Portuguese,Polish,Russian,Chinese,Czech,Korean".Split(','); + string[] langs = "English,Spanish,French,German,Italian,Portuguese,Polish,Russian,Chinese,Czech,Korean,Japanese".Split(','); Dictionary langs_selected = null; bool filter_missing_expansions = false; diff --git a/unity/Assets/StreamingAssets/text/Localization.Japanese.txt b/unity/Assets/StreamingAssets/text/Localization.Japanese.txt index 61c0261bb..704d6e2d7 100644 --- a/unity/Assets/StreamingAssets/text/Localization.Japanese.txt +++ b/unity/Assets/StreamingAssets/text/Localization.Japanese.txt @@ -1,11 +1,627 @@ .,Japanese -//Inherited from FFG localization files +//Heroes, + +ALYS_RAINE,アリス・レイン +ANDIRA_RUNEHAND,ルーンの巧者アンディラ +ARVEL_WORLDWALKER,世界を駆けるアーベル +ASHRIAN,アシュリアン +ASTARRA,ルーンの魔女アスタラ +AUGUR_GRISOM,オウグル・グリソム +AURIM,オーリム +AVRIC_ALBRIGHT,アヴリック・オルブライト +BOGRAN_THE_SHADOW,影のボグラン +BROTHER_GHERINN,修道士ゲーリン +BROTHER_GLYR,兄弟人グリル +CHALLARA,シャララ +CORBIN,斧背負いのコービン +DEZRA_THE_VILE,あばずれデズラ +ELDER_MOK,精霊語りのモック +ELIAM,エリアム +GREY_KER,グレイ・カー +GRISBAN_THE_THIRSTY,渇いたグリスバン +HIGH_MAGE_QUELLEN,高位魔導士ケレン +HUGO_THE_GLORIOUS,誉れ高きヒューゴ +ISPHER,イスファー +JAES_THE_EXILE,追放者イェーズ +JAIN_FAIRWOOD,ジェイン・フェアウッド +JONAS_THE_KIND,優しきヨナス +KARNON,カーノン +KIRGA,キルガ +KRUTZBECK,クラッツベック +LANDREC_THE_WISE,賢人ランドレック +LAUGHIN_BULDAR,ラフィン・バルダー +LAUREL_OF_BLOODWOOD,深紅の森のローレル +LEORIC_OF_THE_BOOK,本の虫レオリック +LINDEL,リンデル +LOGAN_LASHLEY,ローガン・ラッシュレイ +LORD_HAWTHORNE,ホーソーン卿 +LYSSA,東方より来たりしリッサ +MAD_CARTHOS,狂人カルソス +MASTER_THORNE,導師ソーン +MORDROG,モルドログ +NANOK_OF_THE_BLADE,剣客ナノック +NARA_THE_FANG,牙のナーラ +OKALUK_AND_RAKASH,オカルクとラカッシュ +ONE_FIST,ワン・フィスト +ORKELL_THE_SWIFT,速攻オーケル +PATHFINDER_DURIK,パスファインダー・デュリック +RAVAELLA_LIGHTFOOT,軽足ラヴェラ +RED_SCORPION,レッド・スコーピオン +RENDIEL,レンディエル +REYNHART_THE_WORTHY,高潔なる騎士レインハート +ROGANNA_THE_SHADE,影の中のロガンア +RONAN_OF_THE_WILD,野人ローナン +SAHLA,サハラ +SEER_KEL,セレナ +SHIVER,シヴァー +SILHOUETTE,シルエット +SIR_VALADIR,ヴァラディア卿 +STEELHORNS,スティールホーン +SYNDRAEL,シンドラエル +TAHLIA,盗人ターリア +TATIANNA,タチアナ +TETHERYS,テザリス +THAIDEN_MISTPEAK,霧峰のタイデン +TINASHI_THE_WANDERER,放浪者ティナシ +TOBIN_FARSLAYER,ファースレイヤーのトービン +TOMBLE_BURROWELL,トンブル・バロウェル +TRENLOE_THE_STRONG,剛力トレンロー +ULMA_GRIMSTONE,ウルマ・グリムストーン +VARIKAS_THE_DEAD,死せるヴァリカス +VYRAH_THE_FALCONER,鷹匠ヴィラ +WIDOW_TARHA,やもめのタイラー +ZYLA,ジーラ + +// ICONS +ICON_SKILL_STRENGTH, +ICON_SKILL_AGILITY, +ICON_SKILL_OBSERVATION, +ICON_SKILL_LORE, +ICON_SKILL_INFLUENCE, +ICON_SKILL_WILL, +ICON_ACTION, +ICON_SUCCESS_RESULT, +ICON_INVESTIGATION_RESULT, +ICON_TENTACLE, +ICON_PRODUCT_MAD01, +ICON_PRODUCT_MAD06, +ICON_PRODUCT_MAD09, +ICON_PRODUCT_MAD20, +ICON_PRODUCT_MAD21, +ICON_PRODUCT_MAD22, +ICON_PRODUCT_MAD23, +ICON_PRODUCT_MAD25, +ICON_PRODUCT_MAD26, +ICON_PRODUCT_MAD27, +ICON_PRODUCT_MAD28, + +// TEXTS +ABILITY,Ability +ABOUT,このアプリに関して +ABOUT_FFG,Valkyrie is a game master helper tool inspired by Fantasy Flight Games' Descent: Road to Legend. Most images used are imported from FFG applications are are copyright FFG and other rights holders. Languages flags are made by Freepik from www.flaticon.com. +ABOUT_LIBS,Valkyrie uses DotNetZip-For-Unity, UnityStandaloneFileBrowser from gkngkc and has code derived from Unity Studio and .NET Ogg Vorbis Encoder. +ACTIONS,行動 +ACTIVATED,活動済 +ACTIVATION,活動 +ACTIVATIONS,活動 +ADD_COMPONENTS,追加コンポーネント: +COMPONENTS,構成要素 +RENAME,リネーム +SAVE_TEST,保存 & テスト +SOURCE,ソース +COMMENT,コメント +TRUE,真 +FALSE,偽 +SNAP,指定 +FREE,自由 +CONFIRM,確定 +INSPECT,調査 +DURATION,時間間隔 +DESCRIPTION,説明 +AUTHORS,作者 +DIFFICULTY,難易度 +VALIDATE_SCENARIO,発効 +FILE,ファイル +OPTIMIZE_LOCALIZATION,ローカライズ最適化 +CREATE_PACKAGE,パッケージの生成 +REORDER_COMPONENTS,コンポーネントの再配置 +ASSIGN,指定 +ATTACK,攻撃 +ATTACK_MESSAGE,攻擊メッセージ +AUDIO,オーディオ +BACK,戻る +BASE,基礎 +BUTTON,ボタン +BUTTONS,ボタン +CAMERA,カメラ +CANCEL,キャンセル +CHOOSE_LANG,言語を選択 +CLEAR_FIRE,消火 +COLOR,色 +COMPONENT_NAME,コンポーネント名: +COMPONENT_TO_DELETE,削除するコンポーネント: +CONTENT_IMPORT,コンテンツのインポート +CONTENT_IMPORTING,インポート中... +CONTENT_REIMPORT,コンテンツのインポート +CONTINUE,コンティニュー +COPY,複製 +CUSTOMMONSTER,カスタムモンスター +D2E_APP_NOT_FOUND,Unable to locate Road to Legend +D2E_HEROES_NAME,英雄 +D2E_HERO_NAME,英雄 +D2E_NAME,ディセント:闇への旅立ち 第2版 +D2E_QUEST_NAME,シナリオ +DEFEATED,敗北 +DELETE,削除 +DIALOG,会話 +DOOR,ドア +DOWNLOAD,ダウンロード +DOWNLOAD_LIST,ダウンロード中... +DOWNLOAD_PACKAGE,ダウンロード中... +E,E +EFFECTS,効果 +EMPTY,空 +END_TURN,End Turn +ROUND,ラウンド {0} +EVADE,回避 +EVENT,イベント +EXIT,終了 +FINISHED,終了 +FIRST,第1の +FORCE_ACTIVATE,強制活動させる + +HEALTH,体力値 +HEALTH_HERO,Per Hero +HIGHLIGHT,ハイライト +HORROR_CHECK,恐怖判定 +AWARENESS,知覚力 +IA_APP_NOT_FOUND,Unable to locate Legends of the Alliance, install via Steam +IA_APP_NOT_FOUND_ANDROID,Unable to locate Legends of the Alliance +IA_HEROES_NAME,Heroes +IA_HERO_NAME,Hero +IA_NAME,Star Wars: Imperial Assault UNAVAILABLE +IA_QUEST_NAME,Mission +INDENT, {0} +INFO,情報 +INFORMATION,情報 +INITIAL_MESSAGE,Initial Message: +ITEM,アイテム +QITEM,アイテム +KO,ノックアウト +LOAD_QUEST,ゲームを続ける +LOG,ログ +SKILLS,スキル +ITEMS,アイテム +ITEMS_SMALL,アイテム +GOLD,ゴールド +MAIN_MENU,メインメニュー +MAX,最大 +MAX_X,最大の{0} +MAX_CAM,Max Cam +MENU,Menu +MIN,最小 +MIN_X,最小の{0} +MIN_CAM,Min Cam +MOM_APP_NOT_FOUND,マンションオブマッドネスのアプリが見つかりません. +MOM_HEROES_NAME,探索者 +MOM_HERO_NAME,探索者 +MOM_NAME,マンションオブマッドネス 第2版 +MOM_QUEST_NAME,クエスト +MONSTER,モンスター +MONSTER_ATTACKS,モンスターの攻撃 +MONSTER_MASTER,ボスモンスター +MONSTER_MASTER_X,ボスの{0} +MONSTER_MINION,一般モンスター +MONSTER_NORMAL,一般 + +MONSTER_UNIQUE,ユニーク +MOVES,歩数 +MPLACE,MPlace +MUSIC,音楽 +NAME,名前 +NEW,新規 +NEW_X,{新規 {0}} +NONE,{None} + +NEXT_EVENTS,次のイベント +NOT_FIRST,Not First +NO_ATTACK_MESSAGE,No Attack Message: + +NUMBER,数 +NUMBER_HEROS,{0}人の探索者: +OK,確定 +OP,Op +OPTIONS,オプション +PLACEMENT,配置 + +PLACE_IMG,Place Img: +POOL_TRAITS,Pool Traits: +POSITION,位置 +POSITION_TYPE_HIGHLIGHT,ハイライト位置 +POSITION_TYPE_UNUSED,不使用 +PUZZLE,パズル +PUZZLE_ALT_LEVEL,Alt レベル +PUZZLE_CLASS,クラス +PUZZLE_CLASS_SELECT,クラスを選択 +IMAGE,画像 + +PUZZLE_LEVEL,レベル +PUZZLE_SELECT_SKILL,スキルを選択 +PUZZLE_IMAGE_CLASS,画像 +PUZZLE_CODE_CLASS,暗号 +PUZZLE_SLIDE_CLASS,華容道 +QUEST,クエスト +QUEST_NAME_DOWNLOAD,{0} をダウンロード +QUEST_NAME_EDITOR,{0}を編集 +EDITOR,編集 +QUEST_NAME_UPDATE, [更新] {0} +QUOTA,クォータ +RECOVER,回復 +INVESTIGATOR_ATTACKS,探究者攻擊 + +RELOAD,再ロード +REMOVE_COMPONENTS,コンポーネントを削除: +REQUIRED_EXPANSIONS,必要な拡張: +REQUIRES_EXPANSION, {0}の拡張が必要 + +REQ_TRAITS,Req. Traits: +RESET,リセット +ROTATE_TO,旋轉至: {0} +ROTATION,旋轉 +SAVE,保存 +AUTOSAVE,自動保存 +SELECT_SAVE,保存 +SELECT,{0} を選択 +SELECT_CLASS,クラスを選択 +SELECTION,選択 +SELECT_CONTENT,コンテンツを選択 +SELECT_EXPANSION,拡張を選択 +SELECT_IMAGE,画像を選択 +SELECT_ITEM,アイテムを選択 +SELECT_PACK,Select Pack +SELECT_TO_COPY,Select {0} をコピー +SELECT_TO_DELETE,Select {0} を削除 +HIDDEN,隠密 +ACTIVE,行動 +SET,設置 +SET_EDITOR_ALPHA,エディタの透明度 +SKILL,スキル判定 +SELECT_SKILLS,スキルの選択 +SPAWN,産出 +STARTING_ITEM,開始アイテム +STARTING_ITEMS,開始アイテム +START_QUEST,新しいゲーム +START,開始 + +TESTS,テスト +TILE,クエストタイトル + +TOKEN,トークン +TOOLS,ツール +TOTAL_MOVES,合計歩数 +TRAITS,特徴 +TRIGGER,トリガー +TYPE,タイプ +TYPES,タイプ +UNABLE_BUTTON,Unable Button: + +UI,UI +UNITS,単位 +HORIZONTAL,水平 +VERTICAL,垂直 +ALIGN,整列 +SIZE,大小 +TEXT_SIZE,文字の大きさ +BACKGROUND_COLOUR,背景色 +ASPECT,アスペクト +BORDER,ボーダー +NO_BORDER,ボーダー無し +UNDO,アンドゥ +UNIQUE_DEFEATED,Unique\nDefeated +UNIQUE_INFO,Unique Information +UNIQUE_MONSTER,Unique Monster +UNIQUE_TITLE,Unique Title +UNUSED,不使用 +VALUE,值 +VAR,変数 +VARS,変数 +VAR_NAME,変数名: +X_ACTIVATED,{0} の活動終了 + +BUY,購入 +SELL,売却 +CLASS,クラス +ACT_1,アクト I +ACT_2,アクト II + +X_COLON,{0}: + +//Packs +SoA,SoA  +BtT,BtT  +CotW,CotW  +CotWT,CotWT  +CotWI,CotWI  +CotWM,CotWM  +FA,FA  +FAT,FAT  +FAI,FAI  +FAM,FAM  +HJ,HJ  +MoM1E,MoM1E  +MoM1ET,MoM1ET  +MoM1EI,MoM1EI  +MoM1EM,MoM1EM  +base,基本 +PotS,PotS  +RN,RN  +SM,SM  +SoT,SoT  + +//Packs symbols MoM +SoA_SYMBOL, +BtT_SYMBOL, +CotW_SYMBOL, +CotWT_SYMBOL, +CotWI_SYMBOL, +CotWM_SYMBOL, +FA_SYMBOL, +FAT_SYMBOL, +FAI_SYMBOL, +FAM_SYMBOL, +HJ_SYMBOL, +MoM1E_SYMBOL, +MoM1ET_SYMBOL, +MoM1EI_SYMBOL, +MoM1EM_SYMBOL, +base_SYMBOL, +PotS_SYMBOL, +RN_SYMBOL, +SM_SYMBOL, +SoT_SYMBOL, + +//Packs symbols D2E +LoR_SYMBOL, +LotW_SYMBOL, +MoB_SYMBOL, +MoR_SYMBOL, +SoN_SYMBOL, +TCTR_SYMBOL, +TT_SYMBOL, +BotW_SYMBOL, +CoD_SYMBOL, +CotF_SYMBOL, +GoD_SYMBOL, +OotO_SYMBOL, +SoE_SYMBOL, +SotS_SYMBOL, +ToC_SYMBOL, +VoD_SYMBOL, +CKAoD_SYMBOL,ck +CKD1E_SYMBOL,ck +CKDQ_SYMBOL,ck +CKPromo_SYMBOL,ck +CKToI_SYMBOL,ck +CKWoD_SYMBOL,ck +DJ09_SYMBOL,lt +DJ10_SYMBOL,lt +DJ11_SYMBOL,lt +DJ12_SYMBOL,lt +DJ13_SYMBOL,lt +DJ14_SYMBOL,lt +DJ15_SYMBOL,lt +DJ16_SYMBOL,lt +DJ17_SYMBOL,lt +DJ18_SYMBOL,lt +DJ19_SYMBOL,lt +DJ20_SYMBOL,lt +DJ22_SYMBOL,lt +DJ23_SYMBOL,lt +DJ24_SYMBOL,lt +DJ25_SYMBOL,lt +DJ35_SYMBOL,lt +DJ41_SYMBOL,lt +DJ42_SYMBOL,lt +DJ43_SYMBOL,lt + +// Expansions name D2E (for performance) +LoR,LoR  +LotW,LotW  +MoB,MoB  +MoR,MoR  +SoN,SoN  +TCTR,TCTR  +TT,TT  +BotW,BotW  +CoD,CoD  +CotF,CotF  +GoD,GoD  +OotO,OotO  +SoE,SoE  +SotS,SotS  +ToC,ToC  +VoD,VoD  +CKAoD,CKAoD +CKD1E,CKD1E +CKDQ,CKDQ +CKPromo,CKPromo +CKToI,CKToI +CKWoD,CKWoD +DJ09,DJ09 +DJ10,DJ10 +DJ11,DJ11 +DJ12,DJ12 +DJ13,DJ13 +DJ14,DJ14 +DJ15,DJ15 +DJ16,DJ16 +DJ17,DJ17 +DJ18,DJ18 +DJ19,DJ19 +DJ20,DJ20 +DJ22,DJ22 +DJ23,DJ23 +DJ24,DJ24 +DJ25,DJ25 +DJ35,DJ35 +DJ41,DJ41 +DJ42,DJ42 +DJ43,DJ43 + +//Items +weapon,武器 +firearm,銃火器 +heavyweapon,大型武器 +heavy,大型 +tome,書 +equipment,装備 +lightsource,光源 +bladedweapon,鋭器 +bladed,刃物 +spell,魔法 +key,鍵 +evidence,証拠 +ally,仲間 +spelldefence,特殊防御 +spellattack,特殊攻撃 + +//Audio +menu,メニュー +music,音楽 +quest,クエスト +defeated,撃破 +newround,新ラウンド +attack,攻擊 +unarmed,素手 +horror,恐怖 +search,捜索 +explore,探索 + +//Heroes +latari,ラタリ +dwarf,ドワーフ +gnome,ノーム +male,男性 +female,女性 + +//monsters +monster,モンスター +undead,不死 +humanoid,人型 +spirit,精霊 +beast,野獣 +agent,エージェント +lieutenant,副官 +small,小型 +medium,中型 +huge,大型 +massive,巨大 +building,建造 +melee,近接 +ranged,遠隔 +goblin,ゴブリン +cursed,呪い +cave,洞窟 +wilderness,荒野 +civilized,市街 +dark,暗黒 +mountain,山 +cold,冷気 +hot,熱 +water,水 +fleshless,無肉體 +snakeperson,蛇人 +relic,遺跡 +elixir,霊薬 + +//Tiles +basement,地下室 +river,河 +street,街道 +hallway,回廊 +bathroom,浴室 +bedroom,寝室 +kitchen,厨房 +dock,埠頭 +storage,倉庫 +outside,屋外 +inside,屋内 +big,大 +transition,遷移 +throne,玉座 +pit,坑 +farm,農場 +tomb,墓地 +library,図書館 +graves,墓穴 +bridge,端 +stairs,梯 +torture,拷打 +tents,テント +stables,厩舎 +hall,ホール +map,地図 +city,都市 +fountain,噴水 +blackrealm,神秘領域 +altar,祭壇 +beds,寝台 +study,書房 +prison,監獄 +plinth,台座 +tavern,酒場 +statues,彫像 +drawbridge,吊橋 +rubble,瓦礫 +treasure,寶藏 +stone,石頭 +dirt,汚垢 +timber,木材 +snow,雪 +lava,溶岩 +swamp,沼 +sludge,汚泥 +ship,船 +temple,寺院 +train,電車 + +// Colors +black,黑 +white,白 +red,紅 +lime,ライム +blue,青 +yellow,黄 +aqua,水 +cyan,シアン +magenta,マゼンダ +fuchsia,紅紫 +silver,銀 +gray,灰 +maroon,栗 +olive,オリーブ +green,緑 +purple,紫 +teal,深藍 +navy,ネイビー + +//Puzzles +image,画像 +code,コード +slide,スライド +tower,タワー +SYMBOL,シンボル +ELEMENT,元素 + +// Events +Ordered,順番 +Random,ランダム + +//Inherited from FFG localization files, SET_FIRE,炎トークンを置く INVESTIGATOR_ELIMINATED,探索者の死亡 CLOSE,閉じる PUZZLE_GUESS,入力 -START_QUEST,新しいゲーム -LOAD_QUEST,ゲームを続ける UP,上 DOWN,下 @@ -25,4 +641,46 @@ ATTACK_WITH_FIREARM, [i]銃火器[/i]で攻撃 ATTACK_WITH_SPELL, 呪文で攻撃 ATTACK_WITH_UNARMED, 素手で攻撃 -ACTION_X, {0} +ACTION_X,行動 {0} + +SORT_TITLE,整列 +SORT_SELECT_CRITERIA,整列条件: +SORT_SELECT_ORDER,整列順序: +SORT_ASCENDING,昇順に整列 +SORT_DESCENDING,降順に整列 + +SORT_BY_AUTHOR,作者 +SORT_BY_NAME,名称 +SORT_BY_DIFFICULTY,難易度別 +SORT_BY_DURATION,プレイ時間 + +SORT_BY_RATING,レート +SORT_BY_AVERAGE_DURATION,平均プレイ時間 +SORT_BY_WIN_RATIO,勝利比率 +SORT_BY_DATE,更新日時 + +FILTER_TITLE,フィルタ条件 +FILTER_SELECT_LANG, 言語でフィルタ: +FILTER_MISSING_EXPANSIONS_ON, 不足した拡張でフィルタ ☑ +FILTER_MISSING_EXPANSIONS_OFF, 不足した拡張でフィルタ ☐ +FILTER_TEXT_NUMBER_OF_FILTERED_SCENARIO,{0} 個のシナリオが見つかりました。 + +AUTHORS_SHORT,作者略歴 +AUTHORS_UNKNOWN,作者不詳 + +SYNOPSYS,概要(最大100文字) + +UPDATED_THIS_WEEK,今週の更新 +UPDATED_THIS_MONTH,今月の更新 +UPDATED_THIS_TRIMESTER,最近3ヶ月の更新 +UPDATED_THIS_SEMESTER,半期の更新 +UPDATED_THIS_YEAR,今年の更新 +UPDATED_TWO_YEARS_AGO,昨年の更新 +UPDATE_OLDER_THAN_TWO_YEAR,昨年以前の更新 + +GO_OFFLINE,GO OFFLINE +GO_ONLINE,GO ONLINE +DOWNLOAD_ONGOING,Downloading... +OFFLINE_DUE_TO_ERROR,OFFLINE (network error) + +MISSING_EXPANSIONS,Missing expansions: diff --git a/unity/Assets/StreamingAssets/text/Localization.Japanese.txt.meta b/unity/Assets/StreamingAssets/text/Localization.Japanese.txt.meta index 5835e02a3..13841fa4c 100644 --- a/unity/Assets/StreamingAssets/text/Localization.Japanese.txt.meta +++ b/unity/Assets/StreamingAssets/text/Localization.Japanese.txt.meta @@ -1,8 +1,3 @@ -fileFormatVersion: 2 -guid: 132cf9b67886ecc4e881c9336453d643 -timeCreated: 1500083402 -licenseType: Free -DefaultImporter: - userData: - assetBundleName: - assetBundleVariant: +fileFormatVersion: 2 +guid: 8254bea126fa48789dc1c0b04127b415 +timeCreated: 1666786146 \ No newline at end of file From 35042cb083bb71cff659358708944d14beadb72f Mon Sep 17 00:00:00 2001 From: Estarriol Date: Wed, 26 Oct 2022 14:24:01 +0200 Subject: [PATCH 07/10] version bump --- .../Android/Firebase/res/values/crashlytics_build_id.xml | 2 +- .../Android/Firebase/res/values/crashlytics_unity_version.xml | 2 +- unity/Assets/Resources/version.txt | 2 +- unity/ProjectSettings/ProjectSettings.asset | 4 ++-- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/unity/Assets/Plugins/Android/Firebase/res/values/crashlytics_build_id.xml b/unity/Assets/Plugins/Android/Firebase/res/values/crashlytics_build_id.xml index 94087d93a..e74c1ac26 100644 --- a/unity/Assets/Plugins/Android/Firebase/res/values/crashlytics_build_id.xml +++ b/unity/Assets/Plugins/Android/Firebase/res/values/crashlytics_build_id.xml @@ -1 +1 @@ -09b3032a-f3e7-4956-8123-5772bd076e59 +e82215ac-3cfc-4ffb-9a01-ae853b593a68 diff --git a/unity/Assets/Plugins/Android/Firebase/res/values/crashlytics_unity_version.xml b/unity/Assets/Plugins/Android/Firebase/res/values/crashlytics_unity_version.xml index e14d58b67..b2fea9e73 100644 --- a/unity/Assets/Plugins/Android/Firebase/res/values/crashlytics_unity_version.xml +++ b/unity/Assets/Plugins/Android/Firebase/res/values/crashlytics_unity_version.xml @@ -1 +1 @@ -2018.4.29f1 +2018.4.27f1 diff --git a/unity/Assets/Resources/version.txt b/unity/Assets/Resources/version.txt index 6de6d0556..1191e651a 100644 --- a/unity/Assets/Resources/version.txt +++ b/unity/Assets/Resources/version.txt @@ -1 +1 @@ -2.5.7 \ No newline at end of file +2.5.8a \ No newline at end of file diff --git a/unity/ProjectSettings/ProjectSettings.asset b/unity/ProjectSettings/ProjectSettings.asset index 53b6554da..18f09a669 100644 --- a/unity/ProjectSettings/ProjectSettings.asset +++ b/unity/ProjectSettings/ProjectSettings.asset @@ -119,7 +119,7 @@ PlayerSettings: 16:10: 1 16:9: 1 Others: 0 - bundleVersion: 2.5.7 + bundleVersion: 2.5.8a preloadedAssets: [] metroInputSource: 0 wsaTransparentSwapchain: 0 @@ -164,7 +164,7 @@ PlayerSettings: tvOS: com.Company.ProductName buildNumber: iOS: 0 - AndroidBundleVersionCode: 20050070 + AndroidBundleVersionCode: 20050081 AndroidMinSdkVersion: 16 AndroidTargetSdkVersion: 0 AndroidPreferredInstallLocation: 1 From c68a3f7f5a2d1c6ae28fc155e47725a71ee09e06 Mon Sep 17 00:00:00 2001 From: Estarriol Date: Thu, 22 Dec 2022 23:14:10 +0100 Subject: [PATCH 08/10] fixes for alpha comments --- unity/Assets/Scripts/Quest/InventoryButton.cs | 2 +- unity/Assets/Scripts/Quest/SkillButton.cs | 2 +- unity/Assets/Scripts/QuestEditor/EditorComponentEvent.cs | 9 ++++++--- unity/Assets/Scripts/UI/LogButton.cs | 2 +- unity/Assets/Scripts/UI/Screens/OptionsScreen.cs | 2 +- 5 files changed, 10 insertions(+), 7 deletions(-) diff --git a/unity/Assets/Scripts/Quest/InventoryButton.cs b/unity/Assets/Scripts/Quest/InventoryButton.cs index cdd101618..8b3e1dce8 100644 --- a/unity/Assets/Scripts/Quest/InventoryButton.cs +++ b/unity/Assets/Scripts/Quest/InventoryButton.cs @@ -17,7 +17,7 @@ public InventoryButton() if (game.gameType is MoMGameType) return; UIElement ui = new UIElement(Game.QUESTUI); - ui.SetLocation(15.5f, UIScaler.GetBottom(-2.5f), 5, 2); + ui.SetLocation(17.5f, UIScaler.GetBottom(-2.5f), 6, 2); ui.SetText(ITEMS); ui.SetFont(game.gameType.GetHeaderFont()); ui.SetFontSize(UIScaler.GetMediumFont()); diff --git a/unity/Assets/Scripts/Quest/SkillButton.cs b/unity/Assets/Scripts/Quest/SkillButton.cs index 8e275a992..a7339a180 100644 --- a/unity/Assets/Scripts/Quest/SkillButton.cs +++ b/unity/Assets/Scripts/Quest/SkillButton.cs @@ -16,7 +16,7 @@ public SkillButton() if (game.gameType is MoMGameType) return; UIElement ui = new UIElement(Game.QUESTUI); - ui.SetLocation(10.5f, UIScaler.GetBottom(-2.5f), 5, 2); + ui.SetLocation(11.5f, UIScaler.GetBottom(-2.5f), 6, 2); ui.SetText(SKILLS); ui.SetFont(game.gameType.GetHeaderFont()); ui.SetFontSize(UIScaler.GetMediumFont()); diff --git a/unity/Assets/Scripts/QuestEditor/EditorComponentEvent.cs b/unity/Assets/Scripts/QuestEditor/EditorComponentEvent.cs index 541a85f64..dd35c7ce3 100644 --- a/unity/Assets/Scripts/QuestEditor/EditorComponentEvent.cs +++ b/unity/Assets/Scripts/QuestEditor/EditorComponentEvent.cs @@ -913,9 +913,12 @@ public void AddVisibility(bool add, int index = -1) traits.Add(CommonStringKeys.TYPE.Translate(), new string[] { "Special" }); traits.Add(CommonStringKeys.SOURCE.Translate(), new string[] { "Special" }); - select.AddItem("#boardcomponents", traits); - select.AddItem("#monsters", traits); - select.AddItem("#shop", traits); + if (!add) + { + select.AddItem("#boardcomponents", traits); + select.AddItem("#monsters", traits); + select.AddItem("#shop", traits); + } if (game.gameType is D2EGameType || game.gameType is IAGameType) { diff --git a/unity/Assets/Scripts/UI/LogButton.cs b/unity/Assets/Scripts/UI/LogButton.cs index 20872acad..6dc928dcd 100644 --- a/unity/Assets/Scripts/UI/LogButton.cs +++ b/unity/Assets/Scripts/UI/LogButton.cs @@ -17,7 +17,7 @@ public LogButton() if (game.gameType is MoMGameType) return; UIElement ui = new UIElement(Game.QUESTUI); - ui.SetLocation(5.5f, UIScaler.GetBottom(-2.5f),5, 2); + ui.SetLocation(5.5f, UIScaler.GetBottom(-2.5f),6, 2); ui.SetText(LOG); ui.SetFont(Game.Get().gameType.GetHeaderFont()); ui.SetFontSize(UIScaler.GetMediumFont()); diff --git a/unity/Assets/Scripts/UI/Screens/OptionsScreen.cs b/unity/Assets/Scripts/UI/Screens/OptionsScreen.cs index 4d5f2b2a4..c46c882b7 100644 --- a/unity/Assets/Scripts/UI/Screens/OptionsScreen.cs +++ b/unity/Assets/Scripts/UI/Screens/OptionsScreen.cs @@ -267,7 +267,7 @@ private void CreateLanguageElements() string currentLanguage = langs[i]; ui = new UIElement(); - ui.SetLocation((0.25f * UIScaler.GetWidthUnits()) - 6, verticalStart + (2f * position), 8, 1.8f); + ui.SetLocation((0.25f * UIScaler.GetWidthUnits()) - 6, verticalStart + (1.8f * position), 8, 1.6f); if (!enabled_langs.Contains(currentLanguage)) { ui.SetText(currentLanguage, Color.red); From c5c8197ec9c07733c721795d5b5400a0b34798ed Mon Sep 17 00:00:00 2001 From: Estarriol Date: Thu, 22 Dec 2022 23:50:41 +0100 Subject: [PATCH 09/10] version bump --- unity/Assets/Resources/version.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/unity/Assets/Resources/version.txt b/unity/Assets/Resources/version.txt index 1191e651a..a5c51e136 100644 --- a/unity/Assets/Resources/version.txt +++ b/unity/Assets/Resources/version.txt @@ -1 +1 @@ -2.5.8a \ No newline at end of file +2.5.8 \ No newline at end of file From b949d5426925c53c666966f617ef03a357286936 Mon Sep 17 00:00:00 2001 From: Estarriol Date: Fri, 23 Dec 2022 12:51:39 +0100 Subject: [PATCH 10/10] notification bump --- unity/Assets/Resources/prod_version.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/unity/Assets/Resources/prod_version.txt b/unity/Assets/Resources/prod_version.txt index 6de6d0556..a5c51e136 100644 --- a/unity/Assets/Resources/prod_version.txt +++ b/unity/Assets/Resources/prod_version.txt @@ -1 +1 @@ -2.5.7 \ No newline at end of file +2.5.8 \ No newline at end of file