static void RunGetVersion( PackageManager.Requests.ListRequest listRequest, Action <string> onGetVersionCompleted) { EditorDispatcher.Dispatch(() => { if (!listRequest.IsCompleted) { RunGetVersion(listRequest, onGetVersionCompleted); return; } string pluginVersion = string.Empty; if (listRequest.Status == PackageManager.StatusCode.Success && listRequest.Result != null) { PackageManager.PackageInfo collabPackage = listRequest.Result .FirstOrDefault(package => package.name == mCollabPackageName); if (collabPackage != null) { pluginVersion = collabPackage.version; } } onGetVersionCompleted.Invoke(pluginVersion); }); }
static void AutoInit() { if (!MidiINPlugin.initialized) { EditorDispatcher.StartThread((a) => { MidiINPlugin.Init(); MidiINPlugin.Refresh(); EditorDispatcher.Dispatch((b) => { MidiINPlugin.RestoreEditorConnections(); midiINInitialized = true; }, new { a = "" }); }, new { a = "" }); } else { midiINInitialized = true; } if (!MidiOUTPlugin.initialized) { EditorDispatcher.StartThread((a) => { MidiOUTPlugin.Init(); MidiOUTPlugin.Refresh(); EditorDispatcher.Dispatch((b) => { MidiOUTPlugin.RestoreEditorConnections(); midiOUTInitialized = true; }, new { a = "" }); }, new { a = "" }); } else { midiOUTInitialized = true; } EditorApplication.update -= EditorUpdate; EditorApplication.update += EditorUpdate; }
void OnEnable() { // Create database cache _databaseCache = new DatabaseCache(); var onInsert = new Action <DatabaseEntry>(entry => { if (entry is ItemData itemData) { if (!_itemBlueprints.ContainsKey(itemData.ID)) { _itemBlueprints[itemData.ID] = new HashSet <Guid>(); } } if (entry is BlueprintData blueprintData) { if (!_itemBlueprints.ContainsKey(blueprintData.Item)) { _itemBlueprints[blueprintData.Item] = new HashSet <Guid>(); } _itemBlueprints[blueprintData.Item].Add(blueprintData.ID); } }); _databaseCache.OnDataInsertLocal += onInsert; _databaseCache.OnDataInsertRemote += onInsert; var onDelete = new Action <DatabaseEntry>(entry => { if (entry is BlueprintData blueprintData) { _itemBlueprints[blueprintData.Item].Remove(blueprintData.ID); } }); _databaseCache.OnDataDeleteLocal += onDelete; _databaseCache.OnDataDeleteRemote += onDelete; _databaseCache.OnDataUpdateLocal += _ => Repaint(); _databaseCache.OnDataInsertLocal += _ => Repaint(); _databaseCache.OnDataDeleteLocal += _ => Repaint(); _databaseCache.OnDataUpdateRemote += _ => EditorDispatcher.Dispatch(Repaint); _databaseCache.OnDataInsertRemote += _ => EditorDispatcher.Dispatch(Repaint); _databaseCache.OnDataDeleteRemote += _ => EditorDispatcher.Dispatch(Repaint); DatabaseInspector.DatabaseCache = _databaseCache; _inspector = DatabaseInspector.ShowWindow(); _itemTypes = typeof(ItemData).GetAllChildClasses() .Where(t => t.GetCustomAttribute <InspectableAttribute>() != null).ToArray(); _entryTypes = typeof(DatabaseEntry).GetAllChildClasses() .Where(t => t.GetCustomAttribute <InspectableAttribute>() != null && !typeof(ItemData).IsAssignableFrom(t)).ToArray(); _itemTypeFoldouts = new bool[_itemTypes.Length]; _entryFoldouts = new bool[_entryTypes.Length]; if (EditorPrefs.HasKey("RethinkDB.URL")) { _connectionString = EditorPrefs.GetString("RethinkDB.URL"); } else { _connectionString = "Enter DB URL"; } InitStyles(); }