public void Visit(EndStream endStream, byte data) { for (int i = 0; i < endStream.Length; i++) { currentChange.ChangeData(buffer, endStream.Source + i, 0xFF); } }
//Запуск декодирования public async Task Start() { if (IsStart) { return; } IsStart = true; await Task.Run(() => { while (IsStart) { Result r = ReadPackage(); switch (r) { case Result.Error: PackageError?.Invoke(this, new EventArgs()); break; case Result.Ok: PackageReceived?.Invoke(this, Package); break; case Result.End: EndStream?.Invoke(this, new EventArgs()); Stop(); return; } } }); }
public void Visit(EndStream endStream, byte data) { // the only valid edit for an EndStream is to extend the stream. Result = true; var run = (TableStreamRun)Model.GetNextRun(memoryLocation); var newRun = run.Append(CurrentChange, 1); if (newRun.Start != run.Start) { MessageText = $"Stream was automatically moved to {newRun.Start:X6}. Pointers were updated."; NewDataIndex = memoryLocation + newRun.Start - run.Start; DataMoved = true; } Model.ObserveRunWritten(CurrentChange, newRun); }
private void Start() { // 待機アニメーションを再生する BeginStream.Subscribe(_ => _animator.Play("Idle")); // チュートリアルの文言を変更する BeginStream.Subscribe(_ => _tutorialText.text = "左クリックで走行ステートに遷移します"); float counter = 0f; // n秒経過したらアピールステートに遷移する UpdateStream.Do(_ => counter += Time.deltaTime) .Where(count => counter > TRANSITION_TO_APPEAL_DURATION) .Subscribe(_ => Transition <AppealState>()); // 左クリックされたら走行ステートに遷移する UpdateStream.Where(_ => Input.GetMouseButtonDown(0)) .Subscribe(_ => Transition <RunState>()); // ステート遷移を行うときカウンタをリセットする EndStream.Subscribe(_ => counter = 0f); }
private void Start() { // Play idle animation BeginStream.Subscribe(_ => _animator.Play("Idle")); // Change the language of the tutorial BeginStream.Subscribe(_ => _tutorialText.text = "Transit to driving state with left click"); float counter = 0f; // Transit to appeal state after n seconds UpdateStream.Do(_ => counter += Time.deltaTime) .Where(count => counter > TRANSITION_TO_APPEAL_DURATION) .Subscribe(_ => Transition <AppealState>()); // Transit to driving state when left-clicked UpdateStream.Where(_ => Input.GetMouseButtonDown(0)) .Subscribe(_ => Transition <RunState>()); // Reset counter when performing state transition EndStream.Subscribe(_ => counter = 0f); }
public void Visit(EndStream stream, byte data) { }
public void Visit(EndStream endStream, byte data) => Result = new string(new[] { ArrayRun.ArrayStart, ArrayRun.ArrayEnd });