public void ChangeEnergy(int delta) { stateArgs = new StateEvents(); _Energy += delta; if (_Energy <= 0) { ShipDestroyed?.Invoke(this, EventArgs.Empty); stateArgs.message = $"Ship has been low energy. Ship has been destoroyed."; OnShipState(stateArgs); } if (_Energy > 100) { _Energy = 100; stateArgs.message = $"Ship has got {delta} energey pack. Ship has high energy."; OnShipState(stateArgs); } else if (delta > 0) { stateArgs.message = $"Ship has got {delta} energey pack. Ship has {_Energy} energy."; OnShipState(stateArgs); } else if (delta < 0) { stateArgs.message = $"Ship has got {delta} damage. Ship has {_Energy} energy."; OnShipState(stateArgs); } }
private static void OnShipOnState(object sender, StateEvents e) { Console.WriteLine(e.message); using (StreamWriter sw = new StreamWriter(_logFile, true, System.Text.Encoding.Default)) { sw.WriteLine(e.message); } }
public void ShouldCauseExpectedStateEvent() { StateEvents.Clear(); CallMethod(); StateEvents.ShouldBeSameEventsAs( ExpectedState ); }
override public bool SetEvent(StateEvents newEvent) { bool changed = stateMachine.SetEvent(newEvent); if(changed) { Controls.Clear(); LoadCurrentCtrl(); } return changed; }
override public bool SetEvent(StateEvents newEvent) { bool changed = stateMachine.SetEvent(newEvent); if (changed) { Controls.Clear(); LoadCurrentCtrl(); } return(changed); }
private void SetStateChangeEvents(List <Event> events) { foreach (Event e in events) { if (e.StateChange != StateChange.None && e.SrcInstid == Instid) { StateEvents.Add(new StateChangeEvent() { Time = e.Time, StateChange = e.StateChange }); } } }
/// <summary> /// Add Default state event listeners. The Default state is present by default /// and does not need to be added. /// </summary> public void AddDefaultStateListeners() { StateEvents defaultEvents = interactiveElement.GetStateEvents <StateEvents>("Default"); defaultEvents.OnStateOn.AddListener(() => { Debug.Log($"{gameObject.name} Default State On"); }); defaultEvents.OnStateOff.AddListener(() => { Debug.Log($"{gameObject.name} Default State Off"); }); }
protected void BackLB_Click(object sender, System.EventArgs e) { // Ziel des Rücksprungs ermitteln. StateEvents eEvent = StateEvents.CancelToForumView; // War ein Artikel als Sprungziel angegeben, war die letzte Seite die Suchseite. if (configAgent.ArticleToShow != -1) { eEvent = StateEvents.SearchText; } // Zurücksetzen des Konfigurationsobjektes. configAgent.ThreadFile = null; configAgent.ArticleToShow = -1; ((IStateProcessor)Parent).SetEvent(eEvent); }
private void ExternalControlEndpoint_StaticOnStateEvent(object sender, StateEventArgs e) { if (!NanoleafPlugin.getClient(this.SerialNumber).IP.Equals(e.IP)) { return; } StateEvents events = e.StateEvents; if (events == null) { return; } var value = events.Events.FirstOrDefault(v => v.Attribute == StateEvent.EAttribute.Saturation); if (value != null) { this.CurrentValue = value.Value; } }
/// <summary> /// Create a state with a new name. This state will be initialized with the StateEvents /// event configuration that contains the OnStateOn and OnStateOff events. /// </summary> public void CreateNewState() { interactiveElement.AddNewState("MyNewState"); // A new state is initialized with a the default StateEvents configuration which contains the // OnStateOn and OnStateOff events StateEvents myNewStateEvents = interactiveElement.GetStateEvents <StateEvents>("MyNewState"); myNewStateEvents.OnStateOn.AddListener(() => { Debug.Log($"MyNewState is On"); }); // Creating a new state with a custom event configuration requires the creation of 2 new files: // 1. A receiver file // 2. An event configuration file // // An example of a new state with a custom event configuration is the Keyboard state. // Example file names are KeyboardReceiver.cs + KeyboardEvents.cs files }
protected virtual void OnShipState(StateEvents e) { ShipOnState?.Invoke(this, e); }
/// <summary> /// Signalisiert ein Event, welches den Status der Statusmaschine beeinflussen kann. Der Status wird wenn nötig /// angepasst. /// </summary> /// <returns>true, wenn eine Änderung erfolgt ist.</returns> /// <param name="NewEvent">Das aufgetretene Ereignis.</param> public virtual bool SetEvent(StateEvents newEvent) { bool changed = false; switch (currentState) { case ForumStates.ForumView: // Aktueller Status MainView. { switch (newEvent) { case StateEvents.ShowThread: currentState = ForumStates.ThreadView; changed = true; break; case StateEvents.NewArticle: currentState = ForumStates.WriteArticleView; changed = true; break; } break; } case ForumStates.ThreadView: { switch (newEvent) { case StateEvents.CancelToForumView: currentState = ForumStates.ForumView; changed = true; break; case StateEvents.NewArticle: currentState = ForumStates.WriteArticleView; changed = true; break; } break; } case ForumStates.WriteArticleView: { if ((newEvent == StateEvents.CancelToThreadView) || (newEvent == StateEvents.ShowThread)) { currentState = ForumStates.ThreadView; changed = true; } else if (newEvent == StateEvents.CancelToForumView) { currentState = ForumStates.ForumView; changed = true; } break; } case ForumStates.SearchResults: { if (newEvent == StateEvents.CancelToForumView) { currentState = ForumStates.ForumView; changed = true; } else if (newEvent == StateEvents.ShowThread) { currentState = ForumStates.ThreadView; changed = true; } break; } } if (newEvent == StateEvents.SearchText) { currentState = ForumStates.SearchResults; changed = true; } // Abspeichern des aktuellen Status. if (changed) { System.Web.HttpContext.Current.Session[sessionKey] = currentState; } return(changed); }
abstract public bool SetEvent(StateEvents newEvent);
/// <summary> /// Signalisiert ein Event, welches den Status der Statusmaschine beeinflussen kann. Der Status wird wenn nötig /// angepasst. /// </summary> /// <returns>true, wenn eine Änderung erfolgt ist.</returns> /// <param name="NewEvent">Das aufgetretene Ereignis.</param> public virtual bool SetEvent(StateEvents newEvent) { bool changed = false; switch(currentState) { case ForumStates.ForumView: // Aktueller Status MainView. { switch(newEvent) { case StateEvents.ShowThread: currentState = ForumStates.ThreadView; changed = true; break; case StateEvents.NewArticle: currentState = ForumStates.WriteArticleView; changed = true; break; } break; } case ForumStates.ThreadView: { switch (newEvent) { case StateEvents.CancelToForumView: currentState = ForumStates.ForumView; changed = true; break; case StateEvents.NewArticle: currentState = ForumStates.WriteArticleView; changed = true; break; } break; } case ForumStates.WriteArticleView: { if((newEvent == StateEvents.CancelToThreadView) || (newEvent == StateEvents.ShowThread)) { currentState = ForumStates.ThreadView; changed = true; } else if (newEvent == StateEvents.CancelToForumView) { currentState = ForumStates.ForumView; changed = true; } break; } case ForumStates.SearchResults: { if (newEvent == StateEvents.CancelToForumView) { currentState = ForumStates.ForumView; changed = true; } else if (newEvent == StateEvents.ShowThread) { currentState = ForumStates.ThreadView; changed = true; } break; } } if (newEvent == StateEvents.SearchText) { currentState = ForumStates.SearchResults; changed = true; } // Abspeichern des aktuellen Status. if(changed) System.Web.HttpContext.Current.Session[sessionKey] = currentState; return changed; }