private void HandlePrintTextFinished(PrintTextArgs args) { if (args.AuthorId != authorId) { return; } setIsSpeaking.Invoke(false); textPrinterManager.OnPrintTextFinished -= HandlePrintTextFinished; }
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(); } }
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; } }
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(); } } }