public void Main(string argument, UpdateType updateSource) { if (!initialized) { launchScheduler.Main(); return; } if ((updateSource & UpdateType.Update100) != 0) { missiles.FetchMissiles(); statusWriter.UpdateStatus(); entityTrackingModule.TimeoutEntities(TimeSpan.FromSeconds(5)); } entityTrackingModule?.Poll(); statusWriter.Main(); launchScheduler.Main(); commsHandler.HandleMain(argument, (updateSource & UpdateType.Antenna) != 0); }
public void OnEntityDetected(HaE_Entity entity) { if (Vector3D.DistanceSquared(entity.entityInfo.Position, control.GetPosition()) > 1000 * 1000) { return; } if (IgnoreEventAfterOnce) { return; } if (control.GetShipSpeed() < maxActiveRotorGunVel) { gridCannonTargeting.NewTarget(entity.entityInfo); } else { foreach (var cannon in rotorTurretGroups) { cannon.TargetDirection(ref Vector3D.Zero); } } statusWriter.UpdateStatus(StatusWriter.TargetingStatus.Targeting); missileCannonTargeting.NewTarget(entity.entityInfo); basicTargeting.UpdateValues(control.GetVelocityVector(), control.GetPosition(), maxGatlingBulletVel); var result = basicTargeting.CalculateTrajectory(entity.entityInfo); if (result.HasValue) { TargetSolvedGatling(result.Value); } IgnoreEventAfterOnce = true; }