public void DisableShadowOnDeadState(NodeRemoveEvent evt, DeadTankNode state, [Combine, JoinByTank] TankPartRendererNode renderer) { Renderer renderer2 = renderer.baseRenderer.Renderer; renderer2.enabled = false; TankMaterialsUtil.SetAlpha(renderer2, 0f); }
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 HideAndPrepareRenderer(NodeAddedEvent evt, TankPartRendererNode renderer) { Renderer renderer2 = renderer.baseRenderer.Renderer; renderer2.enabled = false; TankMaterialsUtil.SetAlpha(renderer2, ClientGraphicsConstants.OPAQUE_ALPHA); renderer.startMaterials.Materials = renderer2.materials; renderer.Entity.AddComponent <RendererInitializedComponent>(); }
private bool FadeAlpha() { float clampedAlpha = 1f - Mathf.Clamp01((Time.timeSinceLevelLoad - ((this.effectStartTime + this.effectLifeTime) - this.fadeTime)) / this.fadeTime); if (clampedAlpha != this.lastAlpha) { this.lastAlpha = clampedAlpha; foreach (Material material in this.materials) { TankMaterialsUtil.SetAlpha(material, clampedAlpha); } } return(Time.timeSinceLevelLoad < (this.effectStartTime + this.effectLifeTime)); }
private void SetTransparentMode(ICollection <RendererNode> renderers, TankNode tank, Shader targetShader = null, float alpha = -1f) { foreach (RendererNode node in renderers) { if (targetShader != null) { ClientGraphicsUtil.ApplyShaderToRenderer(node.baseRenderer.Renderer, targetShader); } if ((alpha == 0f) || tank.Entity.HasComponent <TankPartIntersectedWithCameraStateComponent>()) { node.baseRenderer.Renderer.enabled = false; } else if (alpha > 0f) { TankMaterialsUtil.SetAlpha(node.baseRenderer.Renderer, alpha); node.baseRenderer.Renderer.enabled = true; } } }
public void InitSemiActiveTransition(NodeAddedEvent e, SemiActiveTankNode tank, [Combine, Context, JoinByTank] RendererNode renderer) { base.ScheduleEvent(new AddTankShaderEffectEvent(ClientGraphicsConstants.TRANSPARENCY_TRANSITION_EFFECT, false), tank); base.ScheduleEvent <TransparencyInitEvent>(renderer); TankMaterialsUtil.SetAlpha(renderer.baseRenderer.Renderer, ClientGraphicsConstants.SEMI_TRANSPARENT_ALPHA); }
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); }