void Step( FromProcessMeasurement<MemoryMeasurement> MemoryMeasurement, BotPreference UserPreference, IEnumerable<int> TaskCompletedId) { var StepPreviousIndex = StepCurrentState?.StepIndex; if (null == StepCurrentState) { StepCurrentState = new BotInstant(); } else { History.Enqueue(StepCurrentState.CopyForBotHistory()); History.TrimHeadToKeep(10); } StepCurrentState.StepIndex = (StepPreviousIndex + 1) ?? 0; StepCurrentState.MemoryMeasurement = MemoryMeasurement; StepCurrentState.UserPreference = UserPreference; StepCurrentState.SensorDataAccumulator = StepCurrentState.SensorDataAccumulator ?? new SensorDataAccumulator(); StepCurrentState.SensorDataAccumulator?.Accumulate(MemoryMeasurement); TaskPropagateComplete(TaskCompletedId); TaskResolve(); ListTask?.RemoveAll(Task => Task.Ended() || !((StepIndex - Task.BeginStepIndexInBot) < 30)); }
public BotPreference PreferenceReadFromUI(BotPreference Destination = null) { if (null == Destination) { Destination = new BotPreference(); } Destination.TravelEnable = TravelTab?.HeaderToggleButtonIsChecked() ?? false; Destination.MineEnable = MineTab?.HeaderToggleButtonIsChecked() ?? false; return Destination; }
public void Exchange( FromProcessMeasurement<MemoryMeasurement> MemoryMeasurement, BotPreference UserPreference, IEnumerable<int> TaskCompletedId) { if (null == MemoryMeasurement) { return; } var MemoryMeasurementIsNew = !(MemoryMeasurement?.EndeZait == StepCurrentState?.MemoryMeasurement?.EndeZait); if (MemoryMeasurementIsNew) { Step(MemoryMeasurement, UserPreference, TaskCompletedId); } }