public static float TotalBarracksPool(StaticInstance staticInstance) { float fKerbals = 0f; foreach (StaticInstance instance in StaticDatabase.GetAllStatics()) { //if ((string)obj.model.getSetting("DefaultFacilityType") == "None") continue; if (instance.FacilityType != "Barracks") { if (instance.model.DefaultFacilityType != "Barracks") { continue; } } var dist = Vector3.Distance(staticInstance.position, instance.position); if (dist > 5000f) { continue; } Barracks foundBarracks = instance.gameObject.GetComponent <Barracks>(); fKerbals = fKerbals + foundBarracks.StaffAvailable; } return(fKerbals); }
private void SetGroup() { slaveList = new List <AnimateOnSunRise> (); if (staticInstance.Group == "Ungrouped") { master = this; isMaster = true; return; } bool findMaster = false; foreach (StaticInstance sInstance in StaticDatabase.GetAllStatics()) { if (sInstance != staticInstance) { if (sInstance.Group == staticInstance.Group) { AnimateOnSunRise module = sInstance.gameObject.GetComponentInChildren <AnimateOnSunRise> (); if (module != null) { if (module.isMaster) { master = module; findMaster = true; isMaster = false; break; } else { slaveList.Add(module); } } } } } if (!findMaster) { master = this; isMaster = true; } }
void SetLocalsGroup(string sGroup, float fRange) { if (sGroup == "") { return; } foreach (StaticInstance obj in StaticDatabase.GetAllStatics()) { if (obj.pqsCity.sphere == FlightGlobals.currentMainBody.pqsController) { var dist = Vector3.Distance(FlightGlobals.ActiveVessel.GetTransform().position, obj.gameObject.transform.position); if (dist < fRange) { StaticDatabase.ChangeGroup(obj, sGroup); } } } }
void Awake() { // Version Check Debug.Log("[SigmaLog] Version Check: KKtoSD v0.1.5"); // Check if KK is installed if (AssemblyLoader.loadedAssemblies.FirstOrDefault(a => a.name == "KerbalKonstructs") == null) { return; } // Get the groups from KK StaticInstance[] KKStatics = StaticDatabase.GetAllStatics(); // Send the groups to SD foreach (StaticInstance KKStatic in KKStatics) { CelestialBody planet = KKStatic?.CelestialBody; string group = KKStatic?.Group; PQSCity mod = KKStatic?.pqsCity; if (planet == null || string.IsNullOrEmpty(group) || mod == null) { continue; } if (!PQSCityGroups.ExternalExceptions.ContainsKey(planet)) { PQSCityGroups.ExternalExceptions.Add(planet, new Dictionary <string, List <object> >()); } if (!PQSCityGroups.ExternalExceptions[planet].ContainsKey(group)) { PQSCityGroups.ExternalExceptions[planet].Add(group, new List <object>()); } if (!PQSCityGroups.ExternalExceptions[planet][group].Contains(mod)) { PQSCityGroups.ExternalExceptions[planet][group].Add(mod); } } }
/// <summary> /// saves the facility settings to the cfg file /// </summary> internal static void SaveFacilities(ConfigNode facilityNodes) { foreach (StaticInstance instance in StaticDatabase.GetAllStatics()) { if (!instance.hasFacilities) { continue; } ConfigNode instanceNode = facilityNodes.AddNode(CareerUtils.KeyFromString(instance.RadialPosition.ToString())); instanceNode.SetValue("FacilityName", instance.gameObject.name, true); instanceNode.SetValue("FacilityType", instance.facilityType.ToString(), true); for (int i = 0; i < instance.myFacilities.Count; i++) { ConfigNode facnode = instanceNode.AddNode(instance.myFacilities[i].FacilityType); facnode.SetValue("Index", i, true); instance.myFacilities[i].SaveCareerConfig(facnode); } } }
public static StaticInstance NearestBarracks(StaticInstance staticInstance, bool bUnassigned = true) { StaticInstance soNearest = null; float fKerbals = 0f; foreach (StaticInstance instance in StaticDatabase.GetAllStatics()) { //if ((string)obj.model.getSetting("DefaultFacilityType") == "None") continue; if (instance.FacilityType != "Barracks") { if (instance.model.DefaultFacilityType != "Barracks") { continue; } } if (instance.CelestialBody.name == FlightGlobals.currentMainBody.name) { var dist = Vector3.Distance(staticInstance.position, instance.position); if (dist > 5000f) { continue; } } else { continue; } Barracks foundBarracks = instance.gameObject.GetComponent <Barracks>(); if (bUnassigned) { fKerbals = foundBarracks.StaffAvailable; if (fKerbals < 1) { continue; } else { soNearest = instance; break; } } else { if (foundBarracks.StaffCurrent == 1) { continue; } if ((foundBarracks.StaffCurrent - 1f) == foundBarracks.StaffAvailable) { continue; } else { soNearest = instance; break; } } } return(soNearest); }