public void UpdateTransparencyTransition(TimeUpdateEvent evt, TransitionRendererNode renderer) { TransparencyTransitionComponent transparencyTransition = renderer.transparencyTransition; transparencyTransition.CurrentTransitionTime += evt.DeltaTime; if (renderer.baseRenderer.Renderer) { float targetAlpha; if (transparencyTransition.CurrentTransitionTime < transparencyTransition.TransparencyTransitionTime) { targetAlpha = transparencyTransition.OriginAlpha + (transparencyTransition.AlphaSpeed * transparencyTransition.CurrentTransitionTime); } else { targetAlpha = transparencyTransition.TargetAlpha; if (transparencyTransition.TargetAlpha >= ClientGraphicsConstants.OPAQUE_ALPHA) { base.ScheduleEvent <TransparencyFinalizeEvent>(renderer.Entity); } else if (transparencyTransition.TargetAlpha <= ClientGraphicsConstants.TRANSPARENT_ALPHA) { renderer.baseRenderer.Renderer.enabled = false; } } renderer.transparencyTransition.CurrentAlpha = targetAlpha; TankMaterialsUtil.SetAlpha(renderer.baseRenderer.Renderer, targetAlpha); } }
public void SetTransparencyTransitionData(SetTransparencyTransitionDataEvent evt, TransitionRendererNode renderer) { this.SetTransparencyTransitionData(evt, renderer, renderer.transparencyTransition); base.ScheduleEvent <TransparencyInitEvent>(renderer.Entity); }
public void FinalizeTransparency(TransparencyFinalizeEvent evt, TransitionRendererNode renderer, [JoinByTank] TankShaderNode tankShader) { renderer.Entity.RemoveComponent <TransparencyTransitionComponent>(); TankMaterialsUtil.SetAlpha(renderer.baseRenderer.Renderer, ClientGraphicsConstants.OPAQUE_ALPHA); base.ScheduleEvent(new StopTankShaderEffectEvent(ClientGraphicsConstants.TRANSPARENCY_TRANSITION_EFFECT, false), tankShader); }