Exemple #1
0
        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();
        }
Exemple #2
0
        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);
        }