private void OnObjectiveChanged(IMoveDriver driver, IObjective previous, IObjective current) { if (current == null) { this.AddNextStrongest(); } }
private void OnMoverStateChanged(IMoveDriver driver, MoverStateKind previousState, MoverStateKind currentState) { Assert.AreEqual(this.Driver, driver); if (this.dispatchDiagnosticIndicatorSignals) { this.diagnosticSignal.DispatchSet( this.gameObject, StateDiagnosticsKey, currentState.ToString()); } switch (currentState) { case MoverStateKind.Arrived: this.log.Trace("Arrived").Write(); if (this.Arrived != null) { this.Arrived(driver); } if (this.raiseFlagOnArrival) { this.log.Trace("Raising arrival flag").Field("flag", this.arrivedFlag).Write(); this.flagSignal.DispatchFlag(this.gameObject, this.arrivedFlag); } break; case MoverStateKind.Cancelled: this.log.Trace("Cancelled").Write(); if (this.Cancelled != null) { this.Cancelled(driver); } break; } }
public static void MoveTo(this IMoveDriver moveDriver, Vector3 destination) { moveDriver.MoveTo(new Objective(destination)); }
public void StartModifying(IMoveDriver moveDriver) { moveDriver.ObjectiveChanged += this.OnObjectiveChanged; }
private void OnObjectiveChanged(IMoveDriver driver, IObjective previousObjective, IObjective currentObjective) { Debug.LogFormat("Previous objective: {0}, current objective {1}", previousObjective, currentObjective); }