public PrintTextArgs(ITextPrinterActor printer, string text, string authorId, float speed) { Printer = printer; Text = text; AuthorId = authorId; Speed = speed; }
private async UniTask AppendLineBreakAsync(ITextPrinterActor printer, TextPrinterMetadata metadata, CancellationToken cancellationToken) { var appendCommand = new AppendLineBreak { PrinterId = printer.Id, AuthorId = AssignedAuthorId, Count = Assigned(LineBreaks) ? LineBreaks.Value : metadata.AutoLineBreak }; await appendCommand.ExecuteAsync(cancellationToken); }
private async UniTask PrintTextAsync(string text, ITextPrinterActor printer, CancellationToken cancellationToken) { await PrinterManager.PrintTextAsync(printer.Id, text, AssignedAuthorId, AssignedRevealSpeed, cancellationToken); if (cancellationToken.CancelASAP) { return; } printer.RevealProgress = 1f; // Make sure all the text is always revealed. }
private async UniTask PlayAutoVoiceAsync(ITextPrinterActor printer, CancellationToken cancellationToken) { var playedVoicePath = AudioManager.GetPlayedVoicePath(); if (AudioManager.Configuration.VoiceOverlapPolicy == VoiceOverlapPolicy.PreventCharacterOverlap && printer.AuthorId == AssignedAuthorId && !string.IsNullOrEmpty(playedVoicePath)) { AudioManager.StopVoice(); } await AudioManager.PlayVoiceAsync(AutoVoicePath, authorId : AssignedAuthorId, cancellationToken : cancellationToken); }
private void SetDefaultPrinter(ITextPrinterActor defaultPrinter, CancellationToken cancellationToken) { if (PrinterManager.DefaultPrinterId != defaultPrinter.Id) { PrinterManager.DefaultPrinterId = defaultPrinter.Id; } foreach (var printer in PrinterManager.GetAllActors()) { if (printer.Id != defaultPrinter.Id && printer.Visible) { HideOtherPrinter(printer); } } void HideOtherPrinter(ITextPrinterActor other) { var otherMeta = PrinterManager.Configuration.GetMetadataOrDefault(other.Id); var otherHideDuration = Assigned(ChangeVisibilityDuration) ? ChangeVisibilityDuration.Value : otherMeta.ChangeVisibilityDuration; other.ChangeVisibilityAsync(false, otherHideDuration, cancellationToken: cancellationToken).Forget(); } }
public virtual async UniTask HoldResourcesAsync() { heldPrinterActor = await GetOrAddPrinterAsync(); await heldPrinterActor.HoldResourcesAsync(this, null); }
public virtual async UniTask PreloadResourcesAsync() { heldPrinterActor = await GetOrAddPrinterAsync(); await heldPrinterActor.HoldResourcesAsync(null, this); }
private void ResetText(ITextPrinterActor printer) { printer.Text = string.Empty; printer.RevealProgress = 0f; }
private async UniTask ShowPrinterAsync(ITextPrinterActor printer, TextPrinterMetadata metadata, CancellationToken cancellationToken) { var showDuration = Assigned(ChangeVisibilityDuration) ? ChangeVisibilityDuration.Value : metadata.ChangeVisibilityDuration; await printer.ChangeVisibilityAsync(true, showDuration, cancellationToken : cancellationToken); }