/// <summary> /// Adds the Instance to the instances and Group lists. Also sets the PQSCity.name /// </summary> /// <param name="instance"></param> internal static void AddStatic(StaticInstance instance) { if (string.IsNullOrEmpty(instance.UUID)) { instance.UUID = GetNewUUID(); } _allStaticInstances.Add(instance); allStaticInstances = _allStaticInstances.ToArray(); instancedByUUID.Add(instance.UUID, instance); String bodyName = instance.CelestialBody.bodyName; String groupName = instance.Group; if (!groupList.ContainsKey(bodyName)) { groupList.Add(bodyName, new Dictionary <string, StaticGroup>()); } if (!groupList[bodyName].ContainsKey(groupName)) { StaticGroup group = new StaticGroup(groupName, bodyName); groupList[bodyName].Add(groupName, group); } groupList[bodyName][groupName].AddStatic(instance); SetNewName(instance); instance.groupCenter.AddInstance(instance); }
/// <summary> /// Changes the group from a instance /// </summary> /// <param name="instance"></param> /// <param name="newGroup"></param> internal static void ChangeGroup(StaticInstance instance, string newGroup) { String bodyName = instance.CelestialBody.bodyName; String groupName = instance.Group; instance.Group = newGroup; if (groupList.ContainsKey(bodyName)) { if (groupList[bodyName].ContainsKey(groupName)) { Log.Normal("StaticDatabase deleteObject"); groupList[bodyName][groupName].RemoveStatic(instance); } } if (!groupList.ContainsKey(bodyName)) { groupList.Add(bodyName, new Dictionary <string, StaticGroup>()); } if (!groupList[bodyName].ContainsKey(newGroup)) { StaticGroup group = new StaticGroup(newGroup, bodyName); groupList[bodyName].Add(newGroup, group); } groupList[bodyName][newGroup].AddStatic(instance); SetNewName(instance); }
/// <summary> /// Adds the Instance to the instances and Group lists. Also sets the PQSCity.name /// </summary> /// <param name="instance"></param> internal static void AddStatic(StaticInstance instance) { _allStaticInstances.Add(instance); allStaticInstances = _allStaticInstances.ToArray(); String bodyName = instance.CelestialBody.bodyName; String groupName = instance.Group; if (!groupList.ContainsKey(bodyName)) { groupList.Add(bodyName, new Dictionary <string, StaticGroup>()); } if (!groupList[bodyName].ContainsKey(groupName)) { StaticGroup group = new StaticGroup(groupName, bodyName); if (groupName == "Ungrouped") { group.alwaysActive = true; } group.active = true; groupList[bodyName].Add(groupName, group); } groupList[bodyName][groupName].AddStatic(instance); SetNewName(instance); }
/// <summary> /// Changes the group from a instance /// </summary> /// <param name="instance"></param> /// <param name="newGroup"></param> internal static void ChangeGroup(StaticInstance instance, GroupCenter newGroup) { String bodyName = instance.CelestialBody.bodyName; String groupName = instance.Group; instance.groupCenter.RemoveInstance(instance); if (groupList.ContainsKey(bodyName)) { if (groupList[bodyName].ContainsKey(groupName)) { Log.Normal("StaticDatabase deleteObject"); groupList[bodyName][groupName].RemoveStatic(instance); } } instance.Group = newGroup.Group; instance.groupCenter = newGroup; bodyName = instance.CelestialBody.bodyName; groupName = instance.Group; if (!groupList.ContainsKey(bodyName)) { groupList.Add(bodyName, new Dictionary <string, StaticGroup>()); } if (!groupList[bodyName].ContainsKey(groupName)) { StaticGroup group = new StaticGroup(groupName, bodyName); groupList[bodyName].Add(groupName, group); } groupList[bodyName][groupName].AddStatic(instance); SetNewName(instance); instance.groupCenter.AddInstance(instance); instance.gameObject.transform.parent = instance.groupCenter.gameObject.transform; }