public override void HandleComponentState(ComponentState?curState, ComponentState?nextState) { base.HandleComponentState(curState, nextState); if (curState is not ProtolatheDatabaseState state) { return; } Clear(); foreach (var id in state.Recipes) { if (!_prototypeManager.TryIndex(id, out LatheRecipePrototype? recipe)) { continue; } AddRecipe(recipe); } OnDatabaseUpdated?.Invoke(); }
public override void HandleComponentState(ComponentState?curState, ComponentState?nextState) { base.HandleComponentState(curState, nextState); if (curState is not TechnologyDatabaseState state) { return; } Technologies.Clear(); var protoManager = IoCManager.Resolve <IPrototypeManager>(); foreach (var techID in state.Technologies) { if (!protoManager.TryIndex(techID, out TechnologyPrototype? technology)) { continue; } Technologies.Add(technology); } OnDatabaseUpdated?.Invoke(); }
public bool TriggerEvent(KodiEventMessage e) { switch (e.Source) { case "onAbortRequested": OnAbortRequested?.Invoke(null, new EventArgs()); break; case "onCleanStarted": OnCleanStarted?.Invoke(null, new LibraryEventArgs(e.EventArgs[0])); break; case "onCleanFinished": OnCleanFinished?.Invoke(null, new LibraryEventArgs(e.EventArgs[0])); break; case "onDPMSActivated": OnDPMSActivated?.Invoke(null, new EventArgs()); break; case "onDPMSDeactivated": OnDPMSDeactivated?.Invoke(null, new EventArgs()); break; case "onDatabaseScanStarted": OnDatabaseScanStarted?.Invoke(null, new DatabaseEventArgs(e.EventArgs[0])); break; case "onDatabaseUpdated": OnDatabaseUpdated?.Invoke(null, new DatabaseEventArgs(e.EventArgs[0])); break; case "onNotification": OnNotification?.Invoke(null, new NotificationEventArgs( e.EventArgs[0], e.EventArgs[1], e.EventArgs[2] )); break; case "onScanStarted": OnScanStarted?.Invoke(null, new LibraryEventArgs(e.EventArgs[0])); break; case "onScanFinished": OnScanFinished?.Invoke(null, new LibraryEventArgs(e.EventArgs[0])); break; case "onScreensaverActivated": OnScreensaverActivated?.Invoke(null, new EventArgs()); break; case "onScreensaverDeactivated": OnScreensaverDeactivated?.Invoke(null, new EventArgs()); break; case "onSettingsChanged": OnSettingsChanged?.Invoke(null, new EventArgs()); break; default: PyConsole.WriteLine(string.Format("Unknown event '{0}' not handled", e.Source)); return(false); } return(true); }