public void RunWorkingStream(EarlyUpdateEvent evt, StreamWeaponWorkingControllerNode workingWeapon, [JoinByTank] SelfActiveTankNode selfActiveTank)
        {
            Entity weapon = workingWeapon.Entity;
            CooldownTimerComponent cooldownTimer = workingWeapon.cooldownTimer;

            if (workingWeapon.weaponEnergy.Energy <= 0f)
            {
                SwitchWorkingModeToIdleMode(weapon);
            }
            else if (InputManager.GetActionKeyUp(ShotActions.SHOT))
            {
                SwitchWorkingModeToIdleMode(weapon);
            }
            else if ((cooldownTimer.CooldownTimerSec <= 0f) && workingWeapon.Entity.HasComponent <ShootableComponent>())
            {
                base.ScheduleEvent <BeforeShotEvent>(workingWeapon);
                base.ScheduleEvent <ShotPrepareEvent>(workingWeapon);
            }
        }
 public void SwitchToIdleWhenTankInactive(NodeRemoveEvent evt, SelfActiveTankNode selfActiveTank, [JoinByTank] StreamWeaponWorkingControllerNode workingWeapon)
 {
     SwitchWorkingModeToIdleMode(workingWeapon.Entity);
 }