Ejemplo n.º 1
0
        private void HandlePrintTextFinished(PrintTextArgs args)
        {
            if (args.AuthorId != authorId)
            {
                return;
            }

            setIsSpeaking.Invoke(false);
            textPrinterManager.OnPrintTextFinished -= HandlePrintTextFinished;
        }
Ejemplo n.º 2
0
 private void HandlePrintTextStarted(PrintTextArgs args)
 {
     foreach (var actor in ManagedActors.Values)
     {
         var actorMeta = GetActorMetadata(actor.Id);
         if (!actorMeta.HighlightWhenSpeaking)
         {
             continue;
         }
         var tintColor = actor.Id == args.AuthorId ? actorMeta.SpeakingTint : actorMeta.NotSpeakingTint;
         actor.ChangeTintColorAsync(tintColor, actorMeta.HighlightDuration, actorMeta.HighlightEasing).WrapAsync();
     }
 }
Ejemplo n.º 3
0
        private void HandlePrintTextStarted(PrintTextArgs args)
        {
            if (!SyncAllowed || args.AuthorId != authorId)
            {
                return;
            }

            setIsSpeaking.Invoke(true);

            var playedVoicePath = audioManager.GetPlayedVoicePath();

            if (!string.IsNullOrEmpty(playedVoicePath))
            {
                var track = audioManager.GetVoiceTrack(playedVoicePath);
                track.OnStop -= HandleVoiceClipStopped;
                track.OnStop += HandleVoiceClipStopped;
            }
            else
            {
                textPrinterManager.OnPrintTextFinished += HandlePrintTextFinished;
            }
        }
Ejemplo n.º 4
0
        protected virtual void HandleAuthorHighlighting(PrintTextArgs args)
        {
            if (ManagedActors.Count == 0)
            {
                return;
            }

            var visibleActors = ManagedActors.Count(a => a.Value.Visible);

            foreach (var actor in ManagedActors.Values)
            {
                var actorMeta = Configuration.GetMetadataOrDefault(actor.Id);
                if (!actorMeta.HighlightWhenSpeaking)
                {
                    continue;
                }
                var poseName = (actorMeta.HighlightCharacterCount > visibleActors || actor.Id == args.AuthorId) ? actorMeta.SpeakingPose : actorMeta.NotSpeakingPose;
                ApplyPose(actor, poseName, actorMeta.HighlightDuration, actorMeta.HighlightEasing);
            }

            if (string.IsNullOrEmpty(args.AuthorId) || !ActorExists(args.AuthorId))
            {
                return;
            }
            var authorMeta = Configuration.GetMetadataOrDefault(args.AuthorId);

            if (authorMeta.HighlightWhenSpeaking && authorMeta.HighlightCharacterCount <= visibleActors && authorMeta.PlaceOnTop)
            {
                var topmostChar = ManagedActors.Values.OrderBy(c => c.Position.z).FirstOrDefault();
                if (topmostChar != null && !topmostChar.Id.EqualsFast(args.AuthorId))
                {
                    var authorChar  = GetActor(args.AuthorId);
                    var authorZPos  = authorChar.Position.z;
                    var topmostZPos = topmostChar.Position.z < authorZPos ? topmostChar.Position.z : topmostChar.Position.z - .1f;
                    authorChar.ChangePositionZAsync(topmostZPos, authorMeta.HighlightDuration, authorMeta.HighlightEasing).Forget();
                    topmostChar.ChangePositionZAsync(authorZPos, authorMeta.HighlightDuration, authorMeta.HighlightEasing).Forget();
                }
            }
        }