Esempio n. 1
0
 private void UpdateAlpha(float alpha, params Material[] materials)
 {
     foreach (Material material in materials)
     {
         ClientGraphicsUtil.UpdateAlpha(material, "_TintColor", alpha);
     }
 }
Esempio n. 2
0
 public void StopTankShaderEffect(StopTankShaderEffectEvent e, TankNode tank, [JoinByTank] WeaponNode weapon)
 {
     if (e.EnableException && !tank.tankOpaqueShaderBlockers.Blockers.Contains(e.Key))
     {
         throw new TankShaderEffectNotFoundException(e.Key);
     }
     tank.tankOpaqueShaderBlockers.Blockers.Remove(e.Key);
     if (tank.tankOpaqueShaderBlockers.Blockers.Count <= 0)
     {
         ClientGraphicsUtil.ApplyShaderToRenderer(tank.baseRenderer.Renderer, tank.tankShader.OpaqueShader);
         ClientGraphicsUtil.ApplyShaderToRenderer(weapon.baseRenderer.Renderer, tank.tankShader.OpaqueShader);
     }
 }
Esempio n. 3
0
        public void FadeTemperature(UpdateEvent e, TankDeadStateVisibleActivatedNode tank, [JoinByTank] ICollection <RendererNode> renderers)
        {
            float time = (float)((tank.tankDeadState.EndDate - Date.Now) / (tank.tankDeadState.EndDate - tank.tankDeadStateTexture.FadeStart));

            if (time != tank.tankDeadStateTexture.LastFade)
            {
                tank.tankDeadStateTexture.LastFade = time;
                Vector4 vector = new Vector4(tank.tankDeadStateTexture.HeatEmission.Evaluate(time), 0f, tank.tankDeadStateTexture.WhiteToHeatTexture.Evaluate(time), tank.tankDeadStateTexture.PaintTextureToWhiteHeat.Evaluate(time));
                foreach (RendererNode node in renderers)
                {
                    ClientGraphicsUtil.UpdateVector(node.baseRenderer.Renderer, ClientGraphicsConstants.TEMPERATURE, vector);
                }
            }
        }
Esempio n. 4
0
 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 InitTransparency(TransparencyInitEvent evt, RendererNode renderer, [JoinByTank] TankNotInvisibilityInvisibilityShaderNode tankShader)
 {
     ClientGraphicsUtil.ApplyShaderToRenderer(renderer.baseRenderer.Renderer, tankShader.tankShader.TransparentShader);
 }