Пример #1
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);
     }
 }
Пример #2
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);
 }