public void OnTankPartsPrepared(NodeAddedEvent e, AssembledTankNode tank, [JoinAll] SingleNode <CameraRootTransformComponent> cameraNode)
        {
            tank.tankVisualRoot.transform.parent = tank.assembledTank.AssemblyRoot.transform;
            CameraVisibleTriggerComponent component = tank.trackRenderer.Renderer.gameObject.AddComponent <CameraVisibleTriggerComponent>();

            tank.Entity.AddComponent(component);
            component.MainCameraTransform = cameraNode.component.Root;
        }
 public void SetColoringTextureToRenderer(NodeAddedEvent evt, AssembledTankNode tank, [JoinByTank, Context] TankRendererInitializedNode tankRendererNode, [JoinByTank, Context] WeaponRendererInitializedNode weaponRendererNode)
 {
     TankMaterialsUtil.ApplyColoring(tankRendererNode.baseRenderer.Renderer, weaponRendererNode.baseRenderer.Renderer, tankRendererNode.coloring, weaponRendererNode.coloring);
     tankRendererNode.Entity.AddComponent <RendererPaintedComponent>();
     weaponRendererNode.Entity.AddComponent <RendererPaintedComponent>();
     tankRendererNode.coloring.transform.localPosition   = Vector3.zero;
     weaponRendererNode.coloring.transform.localPosition = Vector3.zero;
     if (tankRendererNode.coloring.overrideEmission)
     {
         tankRendererNode.doubleArmorEffect.usualEmissionColor = tankRendererNode.coloring.emissionColor;
     }
     if (weaponRendererNode.coloring.overrideEmission)
     {
         weaponRendererNode.doubleDamageEffect.usualEmissionColor = weaponRendererNode.coloring.emissionColor;
     }
 }
 public void DestroyTank(NodeRemoveEvent e, AssembledTankNode tank)
 {
     UnityUtil.Destroy(tank.hullInstance.HullInstance);
     UnityUtil.Destroy(tank.assembledTank.AssemblyRoot);
 }
 public void ShowRenderersVisibleState(NodeAddedEvent evt, [Combine] RendererReadyForShowingNode renderer, [Context, JoinByTank] AssembledTankNode tank, [Context, JoinByTank] VisibleTankNode state)
 {
     renderer.baseRenderer.Renderer.enabled = true;
 }
 public void HideRenderersVisibleState(NodeRemoveEvent evt, [Combine] RendererReadyForShowingNode renderer, [Context, JoinByTank] AssembledTankNode tank, [Context, JoinByTank] VisibleTankNode state)
 {
     renderer.baseRenderer.Renderer.enabled = false;
 }