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);
 }