Esempio n. 1
0
 public PrintTextArgs(ITextPrinterActor printer, string text, string authorId, float speed)
 {
     Printer  = printer;
     Text     = text;
     AuthorId = authorId;
     Speed    = speed;
 }
Esempio n. 2
0
 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);
 }
Esempio n. 3
0
        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.
        }
Esempio n. 4
0
        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);
        }
Esempio n. 5
0
        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);
        }
Esempio n. 7
0
        public virtual async UniTask PreloadResourcesAsync()
        {
            heldPrinterActor = await GetOrAddPrinterAsync();

            await heldPrinterActor.HoldResourcesAsync(null, this);
        }
Esempio n. 8
0
 private void ResetText(ITextPrinterActor printer)
 {
     printer.Text           = string.Empty;
     printer.RevealProgress = 0f;
 }
Esempio n. 9
0
 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);
 }