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(); }