private void FillUpPositions() { foreach (var launchsite in PSystemSetup.Instance.SpaceCenterFacilityLaunchSites) { if (!SpawnPoints.ContainsKey(launchsite.hostBody.name)) { SpawnPoints.Add(launchsite.hostBody.name, new List <SpawnPointLocation>()); } foreach (var spawnPoint in launchsite.spawnPoints) { SpawnPoints[launchsite.hostBody.name].Add(new SpawnPointLocation(spawnPoint, launchsite.hostBody)); } } foreach (var launchsite in PSystemSetup.Instance.StockLaunchSites) { if (!SpawnPoints.ContainsKey(launchsite.Body.name)) { SpawnPoints.Add(launchsite.Body.name, new List <SpawnPointLocation>()); } foreach (var spawnPoint in launchsite.spawnPoints) { SpawnPoints[launchsite.Body.name].Add(new SpawnPointLocation(spawnPoint, launchsite.Body)); } } }
private bool IsInSafetyBubble(Vector3d position, CelestialBody body) { if (!SpawnPoints.ContainsKey(body.name)) { return(false); } foreach (var spawnPoint in SpawnPoints[body.name]) { var distance = Vector3d.Distance(position, spawnPoint.Position); if (distance < SettingsSystem.ServerSettings.SafetyBubbleDistance) { return(true); } } return(false); }