public void EjectCase(CartridgeCaseEjectionEvent e, SingleNode <CartridgeCaseEjectorComponent> ejectorNode, [JoinByTank] HullNode hullNode, [JoinAll] SingleNode <CartridgeCaseContainerComponent> containerNode)
 {
     if (hullNode.Entity.HasComponent <SelfTankComponent>() || hullNode.cameraVisibleTrigger.IsVisibleAtRange(30f))
     {
         GetInstanceFromPoolEvent eventInstance = new GetInstanceFromPoolEvent {
             Prefab = ejectorNode.component.casePrefab
         };
         base.ScheduleEvent(eventInstance, ejectorNode);
         GameObject gameObject = eventInstance.Instance.gameObject;
         this.SetCaseTransform(gameObject, ejectorNode.component);
         this.SetCaseVelocity(gameObject, ejectorNode.component, hullNode);
         gameObject.SetActive(true);
     }
 }
 public void PlayCaseEjectionSound(CartridgeCaseEjectionEvent evt, ReadyCaseEjectionSoundEffectNode weapon)
 {
     weapon.caseEjectionSoundEffect.Source.Play();
 }