From 2ff06f85a9dc8b5bdbd69ab12de139a2f52bb408 Mon Sep 17 00:00:00 2001 From: Sigma88 Date: Fri, 5 May 2017 23:54:47 +0200 Subject: [PATCH 01/23] test group stuff --- [Source]/Distribution/SigmaDimensions.dll | Bin 22016 -> 24576 bytes .../SigmaDimensions/PQSCityGroupsLoader.cs | 194 +++++++++++++---- [Source]/SigmaDimensions/SigmaDimensions.cs | 204 +++++++++--------- 3 files changed, 254 insertions(+), 144 deletions(-) diff --git a/[Source]/Distribution/SigmaDimensions.dll b/[Source]/Distribution/SigmaDimensions.dll index 5ffcf7048c6cefcfce96fd4ec85854cb74d6cb7b..774bc1d32439cf7c54b9cdc9ff847f5188ee8958 100644 GIT binary patch literal 24576 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%0A+<&qIGs%g%)*{TGZS1LW{a-TGT*` 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 Zi52A`@$c!-T=ARE3jF`C{-^N3{{pm$2iO1r diff --git a/[Source]/SigmaDimensions/PQSCityGroupsLoader.cs b/[Source]/SigmaDimensions/PQSCityGroupsLoader.cs index d559ad0..6bbbd1e 100644 --- a/[Source]/SigmaDimensions/PQSCityGroupsLoader.cs +++ b/[Source]/SigmaDimensions/PQSCityGroupsLoader.cs @@ -10,16 +10,15 @@ namespace SigmaDimensionsPlugin public class PQSCityGroups : MonoBehaviour { Dictionary GroupsList = new Dictionary(); - public static List ExternalGroups = new List(); - + public static Dictionary> ExternalGroups = new Dictionary>(); + void Start() { foreach (ConfigNode GroupsLoader in GameDatabase.Instance.GetConfigNodes("PQSCity_Groups")) { - AddGroups(GroupsLoader.GetNodes("Group")); + AddGroups(GroupsLoader.GetNodes("GROUP")); } - AddGroups(ExternalGroups.ToArray()); - + SaveGroups(); } @@ -38,61 +37,180 @@ void AddGroups(ConfigNode[] Groups) void SaveGroups() { + // LOAD SD GROUPS foreach (ConfigNode Group in GroupsList.Values) { string name = Group.GetValue("name"); - CelestialBody body = FlightGlobals.Bodies.First(b => b.transform.name == Group.GetValue("body")); + CelestialBody body = FlightGlobals.Bodies.First(b => b.name == Group.GetValue("body")); if (string.IsNullOrEmpty(name) || body == null) continue; - Vector3Parser center = new Vector3Parser(); - if (Group.HasValue("CentralPQSCity")) - { - center = body.GetComponentsInChildren(true).FirstOrDefault(p => p.name == Group.GetValue("CentralPQSCity")).repositionRadial; - } - else if (Group.HasValue("CentralPQSCity2")) - { - center = (Vector3)body.GetComponentsInChildren(true).First(p => p.name == Group.GetValue("CentralPQSCity2")).PlanetRelativePosition; - } - else if (Group.HasValue("CentralPosition")) + // Find Group Center + Vector3Parser center = null; + + if (Group.HasNode("CENTER")) { - center.SetFromString(Group.GetValue("CentralPosition")); + ConfigNode C = Group.GetNode("CENTER"); + + if (C.HasValue("CentralPQSCity")) + { + if (body == FlightGlobals.GetHomeBody() && C.GetValue("CentralPQSCity") == "KSC") + center = new Vector3(157000, -1000, -570000); + } + + if (center == null) + center = GetCenter(C, body); } - else if (Group.HasValue("CentralLAT") && Group.HasValue("CentralLON")) + + if (!body.Has("PQSCityGroups")) + body.Set("PQSCityGroups", new Dictionary()); + Dictionary PQSList = body.Get>("PQSCityGroups"); + + if (Group.HasNode("MODS")) { - EnumParser LAT = new EnumParser(); - EnumParser LON = new EnumParser(); - LAT.SetFromString(Group.GetValue("CentralLAT")); - LON.SetFromString(Group.GetValue("CentralLON")); - center = Utility.LLAtoECEF(LAT, LON, 1, 1); + ConfigNode M = Group.GetNode("MODS"); + + foreach (string city in M.GetValues("PQSCity")) + { + PQSCity mod = body.GetComponentsInChildren(true).First(m => m.name == city); + + if (mod != null) + { + if (center == null) + center = mod.repositionRadial; + if (!PQSList.ContainsKey(mod)) + PQSList.Add(mod, center); + } + } + foreach (string city2 in M.GetValues("PQSCity2")) + { + PQSCity2 mod = body.GetComponentsInChildren(true).First(m => m.name == city2); + + if (mod != null) + { + if (center == null) + center = (Vector3)mod.PlanetRelativePosition; + if (!PQSList.ContainsKey(mod)) + PQSList.Add(mod, center); + } + } } - else if (Group.HasValue("PQSCity")) + + if (center == null) continue; + + + // ADD EXTERNAL MODS TO THIS GROUP + string[] group = new[] { body.name, name }; + if (ExternalGroups.ContainsKey(group)) { - center = body.GetComponentsInChildren(true).FirstOrDefault(p => p.name == Group.GetValue("PQSCity")).repositionRadial; + foreach (object mod in ExternalGroups[group]) + { + if (!PQSList.ContainsKey(mod)) + PQSList.Add(mod, center); + } + ExternalGroups.Remove(group); } - else if (Group.HasValue("PQSCity2")) + + body.Set("PQSCityGroups", PQSList); + + + // ADD THIS GROUP TO THE MOVE LIST + + if (Group.HasNode("MOVE")) { - center = (Vector3)body.GetComponentsInChildren(true).First(p => p.name == Group.GetValue("CentralPQSCity2")).PlanetRelativePosition; + ConfigNode C2 = Group.GetNode("MOVE"); + Vector3? newCenter = GetCenter(C2, body); + + if (newCenter == null) continue; + Vector3[] keys = new Vector3[] { center, (Vector3)newCenter }; + + + NumericParser[] values = new[] { 0, 0, new NumericParser() }; + values[2].SetFromString("-Infinity"); + + if (C2.HasValue("Rotate")) + values[0].SetFromString(C2.GetValue("Rotate")); + if (C2.HasValue("fixAltitude")) + values[1].SetFromString(C2.GetValue("fixAltitude")); + if (C2.HasValue("originalAltitude")) + values[2].SetFromString(C2.GetValue("originalAltitude")); + + + if (!body.Has("PQSCityGroupsMove")) + body.Set("PQSCityGroupsMove", new Dictionary[]>()); + Dictionary[]> MoveList = body.Get[]>>("PQSCityGroupsMove"); + + + if (!MoveList.ContainsKey(keys)) + MoveList.Add(keys, values); + + body.Set("PQSCityGroupsMove", MoveList); } - else continue; + } + + + // LOAD REMAINING EXTERNAL GROUPS + + foreach (string[] group in ExternalGroups.Keys) + { + string name = group[1]; + CelestialBody body = FlightGlobals.Bodies.First(b => b.name == group[0]); + if (string.IsNullOrEmpty(name) || body == null || ExternalGroups[group].Count == 0) continue; + + // Since these groups are new they don't have a center + // Define the center as the position of the first mod in the array + Vector3? center = null; + center = GetPosition(ExternalGroups[group][0]); + if (center == null) continue; if (!body.Has("PQSCityGroups")) body.Set("PQSCityGroups", new Dictionary()); Dictionary PQSList = body.Get>("PQSCityGroups"); - foreach (string city in Group.GetValues("PQSCity")) + foreach (object mod in ExternalGroups[group]) { - PQSCity mod = body.GetComponentsInChildren(true).First(m => m.name == city); - if (mod != null && !PQSList.ContainsKey(mod)) - PQSList.Add(mod, center); - } - foreach (string city2 in Group.GetValues("PQSCity2")) - { - PQSCity2 mod = body.GetComponentsInChildren(true).First(m => m.name == city2); - if (mod != null && !PQSList.ContainsKey(mod)) - PQSList.Add(mod, center); + if (!PQSList.ContainsKey(mod)) + PQSList.Add(mod, (Vector3)center); } + body.Set("PQSCityGroups", PQSList); } } + + Vector3? GetCenter(ConfigNode node, CelestialBody body) + { + if (node.HasValue("CentralPQSCity")) + { + return body.GetComponentsInChildren(true).FirstOrDefault(p => p.name == node.GetValue("CentralPQSCity")).repositionRadial; + } + else if (node.HasValue("CentralPQSCity2")) + { + return body.GetComponentsInChildren(true).First(p => p.name == node.GetValue("CentralPQSCity2")).PlanetRelativePosition; + } + else if (node.HasValue("CentralPosition")) + { + Vector3Parser v = new Vector3Parser(); + v.SetFromString(node.GetValue("CentralPosition")); + return v; + } + else if (node.HasValue("CentralLAT") && node.HasValue("CentralLON")) + { + NumericParser LAT = new NumericParser(); + NumericParser LON = new NumericParser(); + LAT.SetFromString(node.GetValue("CentralLAT")); + LON.SetFromString(node.GetValue("CentralLON")); + return Utility.LLAtoECEF(LAT, LON, 1, 1); + } + else return null; + } + + Vector3? GetPosition(object mod) + { + string type = mod.GetType().ToString(); + if (type == "PQSCity") + return ((PQSCity)mod).repositionRadial; + else if (type == "PQSCity2") + return ((PQSCity2)mod).PlanetRelativePosition; + else return null; + } } } diff --git a/[Source]/SigmaDimensions/SigmaDimensions.cs b/[Source]/SigmaDimensions/SigmaDimensions.cs index e53d640..b905724 100644 --- a/[Source]/SigmaDimensions/SigmaDimensions.cs +++ b/[Source]/SigmaDimensions/SigmaDimensions.cs @@ -49,9 +49,7 @@ void CityFixer(PQSCity pqs) { Dictionary PQSList = body.Get>("PQSCityGroups"); if (PQSList.ContainsKey(pqs)) - { - GroupFixer(pqs, PQSList[pqs].normalized); - } + GroupFixer(pqs, PQSList[pqs]); } @@ -97,9 +95,7 @@ void City2Fixer(PQSCity2 pqs) { Dictionary PQSList = body.Get>("PQSCityGroups"); if (PQSList.ContainsKey(pqs)) - { - GroupFixer(pqs, PQSList[pqs].normalized); - } + GroupFixer(pqs, PQSList[pqs]); } @@ -126,124 +122,118 @@ void City2Fixer(PQSCity2 pqs) } } - void GroupFixer(PQSCity pqs, Vector3 REFvector) + void GroupFixer(object mod, Vector3 REFvector) { - if (body == FlightGlobals.GetHomeBody()) - LinkToKSC(pqs); + // Moves the group + if (body.Has("PQSCityGroupsMove")) + { + Dictionary[]> MovesInfo = body.Get[]>>("PQSCityGroupsMove"); + + Vector3[] vectors = MovesInfo.Keys.FirstOrDefault(k => k[0] == REFvector); + + if (vectors != null) + { + if (body == FlightGlobals.GetHomeBody() && REFvector == new Vector3(157000, -1000, -570000)) + { + PQSCity KSC = body.GetComponentsInChildren().First(m => m.name == "KSC"); + MoveGroup(mod, KSC.repositionRadial, KSC.reorientFinalAngle - (-15), 0, 64.7846885412); + } + else + { + MoveGroup(mod, vectors[1], (float)MovesInfo[vectors][0], MovesInfo[vectors][1], MovesInfo[vectors][2]); + } + } + } - Vector3 PQSvector = pqs.repositionRadial.normalized; - Vector3 NEWvector = Vector3.LerpUnclamped(REFvector, PQSvector, (float)(resizeBuildings / resize)); - pqs.repositionRadial = NEWvector; + // Spread or Shrinks the group to account for Resize + Vector3 PQSvector = ((Vector3)GetPosition(mod)).normalized; + Vector3 NEWvector = Vector3.LerpUnclamped(REFvector.normalized, PQSvector, (float)(resizeBuildings / resize)); + SetPosition(mod, NEWvector); } - void GroupFixer(PQSCity2 pqs, Vector3 REFvector) + void MoveGroup(object mod, Vector3 moveTo, float angle = 0, double fixAltitude = 0, double originalAltitude = double.NegativeInfinity) { - if (body == FlightGlobals.GetHomeBody()) - LinkToKSC(pqs); - - Vector3 PQSvector = pqs.PlanetRelativePosition.normalized; - Vector3 NEWvector = Vector3.LerpUnclamped(REFvector, PQSvector, (float)(resizeBuildings / resize)); - LatLon NEWlatlon = new LatLon(NEWvector); - pqs.lat = NEWlatlon.lat; - pqs.lon = NEWlatlon.lon; + LatLon target = new LatLon(moveTo.normalized); + + // Fix Rotation + Rotate(mod, angle); + + // ORIGINAL VECTORS (Center, North, East) + LatLon origin = new LatLon(body.Get>("PQSCityGroups")[mod].normalized); + Vector3 north = Vector3.ProjectOnPlane(Vector3.up, origin.vector); + Vector3 east = QuaternionD.AngleAxis(90, origin.vector) * north; + + // PQS Vectors (PQS, North, East) + Vector3 oldPQS = Vector3.ProjectOnPlane(((Vector3)GetPosition(mod)).normalized, origin.vector); + Vector3 pqsNorth = Vector3.Project(oldPQS, north); + Vector3 pqsEast = Vector3.Project(oldPQS, east); + + // Distance from center (Northward, Eastward) + float northward = pqsNorth.magnitude * (1 - (Vector3.Angle(north.normalized, pqsNorth.normalized) / 90)); + float eastward = pqsEast.magnitude * (1 - (Vector3.Angle(east.normalized, pqsEast.normalized) / 90)); + + // New Position Vectors (North, East) + Vector3 newNorth = Vector3.ProjectOnPlane(Vector3.up, target.vector).normalized; + Vector3 newEast = (QuaternionD.AngleAxis(90, target.vector) * newNorth); + + // Account for PQSCity rotation: + // PQSCity rotate when their Longitude changes + angle -= (float)(origin.lon - target.lon); + QuaternionD rotation = QuaternionD.AngleAxis(angle, target.vector); + + // Calculate final position by adding the north and east distances to the target position + // then rotate the new vector by as many degrees as it is necessary to account for the PQS model rotation + SetPosition(mod, rotation * (target.vector + newNorth * northward + newEast * eastward)); + + // Fix Altitude + if (originalAltitude == double.NegativeInfinity) + originalAltitude = body.pqsController.GetSurfaceHeight(origin.vector) - body.Radius; + FixAltitude(mod, (body.pqsController.GetSurfaceHeight(target.vector) - body.Radius) / (resize * landscape) - originalAltitude + fixAltitude); } - void LinkToKSC(PQSCity pqs) + Vector3? GetPosition(object mod) { - PQSCity KSC = body.GetComponentsInChildren().First(m => m.name == "KSC"); - LatLon movedKSC = new LatLon(KSC.repositionRadial.normalized); - Vector3 reference = body.Get>("PQSCityGroups")[pqs].normalized; + string type = mod.GetType().ToString(); + if (type == "PQSCity") + return ((PQSCity)mod).repositionRadial; + else if (type == "PQSCity2") + return ((PQSCity2)mod).PlanetRelativePosition; + else return null; + } - if (reference == movedKSC.vector) + void SetPosition(object mod, Vector3 position) + { + string type = mod.GetType().ToString(); + if (type == "PQSCity") + ((PQSCity)mod).repositionRadial = position; + else if (type == "PQSCity2") { - // Fix Rotation - float angle = KSC.reorientFinalAngle - (-15); - pqs.reorientFinalAngle += angle; - - // Stock Vectors (KSC, North, East) - LatLon stockKSC = new LatLon(new Vector3(157000, -1000, -570000).normalized); - Vector3 north = Vector3.ProjectOnPlane(Vector3.up, stockKSC.vector); - Vector3 east = QuaternionD.AngleAxis(90, stockKSC.vector) * north; - - // PQS Vectors (PQS, North, East) - Vector3 oldPQS = Vector3.ProjectOnPlane(pqs.repositionRadial.normalized, stockKSC.vector); - Vector3 pqsNorth = Vector3.Project(oldPQS, north); - Vector3 pqsEast = Vector3.Project(oldPQS, east); - - // Distance from KSC (Northward, Eastward) - float northward = pqsNorth.magnitude * (1 - (Vector3.Angle(north.normalized, pqsNorth.normalized) / 90)); - float eastward = pqsEast.magnitude * (1 - (Vector3.Angle(east.normalized, pqsEast.normalized) / 90)); - - // New KSC Vectors (North, East) - Vector3 newNorth = Vector3.ProjectOnPlane(Vector3.up, movedKSC.vector).normalized; - Vector3 newEast = (QuaternionD.AngleAxis(90, movedKSC.vector) * newNorth); - - // Account for PQSCity rotation: - // PQSCity rotate when their Longitude changes - angle -= (float)(stockKSC.lon - movedKSC.lon); - QuaternionD rotation = QuaternionD.AngleAxis(angle, movedKSC.vector); - - // Calculate final position by adding the north and east distances to the movedKSC position - // then rotate the new vector by as many degrees as it is necessary to account for the PQS model rotation - pqs.repositionRadial = rotation * (movedKSC.vector + newNorth * northward + newEast * eastward); - - // Fix Altitude - if (!pqs.repositionToSphereSurface) - { - pqs.repositionRadiusOffset += (body.pqsController.GetSurfaceHeight(movedKSC.vector) - body.Radius) / (resize * landscape) - 64.7846885412; - } + LatLon LLA = new LatLon(position); + ((PQSCity2)mod).lat = LLA.lat; + ((PQSCity2)mod).lon = LLA.lon; } } - void LinkToKSC(PQSCity2 pqs) + void FixAltitude(object mod, double fixAltitude) { - PQSCity KSC = body.GetComponentsInChildren().First(m => m.name == "KSC"); - LatLon movedKSC = new LatLon(KSC.repositionRadial.normalized); - Vector3 reference = body.Get>("PQSCityGroups")[pqs].normalized; - - if (reference == movedKSC.vector) + string type = mod.GetType().ToString(); + if (type == "PQSCity") + ((PQSCity)mod).repositionRadiusOffset += fixAltitude; + else if (type == "PQSCity2") { - // Fix Rotation - float angle = KSC.reorientFinalAngle - (-15); - pqs.rotation += angle; - - // Stock Vectors (KSC, North, East) - LatLon stockKSC = new LatLon(new Vector3(157000, -1000, -570000).normalized); - Vector3 north = Vector3.ProjectOnPlane(Vector3.up, stockKSC.vector); - Vector3 east = QuaternionD.AngleAxis(90, stockKSC.vector) * north; - - // PQS Vectors (PQS, North, East) - Vector3 oldPQS = Vector3.ProjectOnPlane(pqs.PlanetRelativePosition.normalized, stockKSC.vector); - Vector3 pqsNorth = Vector3.Project(oldPQS, north); - Vector3 pqsEast = Vector3.Project(oldPQS, east); - - // Distance from KSC (Northward, Eastward) - float northward = pqsNorth.magnitude * (1 - (Vector3.Angle(north.normalized, pqsNorth.normalized) / 90)); - float eastward = pqsEast.magnitude * (1 - (Vector3.Angle(east.normalized, pqsEast.normalized) / 90)); - - // New KSC Vectors (North, East) - Vector3 newNorth = Vector3.ProjectOnPlane(Vector3.up, movedKSC.vector).normalized; - Vector3 newEast = (QuaternionD.AngleAxis(90, movedKSC.vector) * newNorth); - - // Account for PQSCity rotation: - // PQSCity rotate when their Longitude changes - angle -= (float)(stockKSC.lon - movedKSC.lon); - QuaternionD rotation = QuaternionD.AngleAxis(angle, movedKSC.vector); - - // Calculate final position by adding the north and east distances to the movedKSC position - // then rotate the new vector by as many degrees as it is necessary to account for the PQS model rotation - LatLon newPQS = new LatLon(rotation * (movedKSC.vector + newNorth * northward + newEast * eastward)); - pqs.lat = newPQS.lat; - pqs.lon = newPQS.lon; - - // Fix Altitude - if (!pqs.snapToSurface) - { - pqs.alt += (body.pqsController.GetSurfaceHeight(movedKSC.vector) - body.Radius) / (resize * landscape) - 64.7846885412; - } + ((PQSCity2)mod).alt += fixAltitude; } } + void Rotate(object mod, float angle) + { + string type = mod.GetType().ToString(); + if (type == "PQSCity") + ((PQSCity)mod).reorientFinalAngle += angle; + else if (type == "PQSCity2") + ((PQSCity2)mod).rotation += angle; + } + public class LatLon { double[] data = { 1, 1, 1 }; @@ -291,9 +281,11 @@ void Update() { v = Utility.LLAtoECEF(data[0], data[1], 0, data[2]); } + public LatLon() //LLA() { } + public LatLon(Vector3 input)//LLA(Vector3 input) { vector = input; From fa38aa64056cbe20696294db95f10a623f094d01 Mon Sep 17 00:00:00 2001 From: Sigma88 Date: Sat, 6 May 2017 02:05:12 +0200 Subject: [PATCH 02/23] debug --- [Source]/SigmaDimensions/PQSCityGroupsLoader.cs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/[Source]/SigmaDimensions/PQSCityGroupsLoader.cs b/[Source]/SigmaDimensions/PQSCityGroupsLoader.cs index 6bbbd1e..a99c8a5 100644 --- a/[Source]/SigmaDimensions/PQSCityGroupsLoader.cs +++ b/[Source]/SigmaDimensions/PQSCityGroupsLoader.cs @@ -111,7 +111,11 @@ void SaveGroups() } body.Set("PQSCityGroups", PQSList); - + Debug.debug = true; + foreach(object k in PQSList.Keys) + { + Debug.Log(k + " >>> " + PQSList[k]); + } // ADD THIS GROUP TO THE MOVE LIST From 7ddb2d4d9974252df400e6461f3ded4be1ae62e6 Mon Sep 17 00:00:00 2001 From: Sigma88 Date: Sat, 6 May 2017 02:45:48 +0200 Subject: [PATCH 03/23] dict of dict --- [Source]/Distribution/SigmaDimensions.dll | Bin 24576 -> 25088 bytes .../SigmaDimensions/PQSCityGroupsLoader.cs | 49 +++++++++--------- 2 files changed, 24 insertions(+), 25 deletions(-) diff --git a/[Source]/Distribution/SigmaDimensions.dll b/[Source]/Distribution/SigmaDimensions.dll index 774bc1d32439cf7c54b9cdc9ff847f5188ee8958..931e7438c5d20e755e67040e85b5299a2a418bde 100644 GIT binary patch delta 10120 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 delta 9693 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 G?SBEStjlHq diff --git a/[Source]/SigmaDimensions/PQSCityGroupsLoader.cs b/[Source]/SigmaDimensions/PQSCityGroupsLoader.cs index a99c8a5..cadd4f0 100644 --- a/[Source]/SigmaDimensions/PQSCityGroupsLoader.cs +++ b/[Source]/SigmaDimensions/PQSCityGroupsLoader.cs @@ -10,7 +10,7 @@ namespace SigmaDimensionsPlugin public class PQSCityGroups : MonoBehaviour { Dictionary GroupsList = new Dictionary(); - public static Dictionary> ExternalGroups = new Dictionary>(); + public static Dictionary>> ExternalGroups = new Dictionary>>(); void Start() { @@ -99,15 +99,13 @@ void SaveGroups() // ADD EXTERNAL MODS TO THIS GROUP - string[] group = new[] { body.name, name }; - if (ExternalGroups.ContainsKey(group)) + if (ExternalGroups.ContainsKey(body.name) && ExternalGroups[body.name].ContainsKey(name)) { - foreach (object mod in ExternalGroups[group]) + foreach (object mod in ExternalGroups[body.name][name]) { if (!PQSList.ContainsKey(mod)) PQSList.Add(mod, center); } - ExternalGroups.Remove(group); } body.Set("PQSCityGroups", PQSList); @@ -153,30 +151,31 @@ void SaveGroups() // LOAD REMAINING EXTERNAL GROUPS - - foreach (string[] group in ExternalGroups.Keys) + foreach (string planet in ExternalGroups.Keys) { - string name = group[1]; - CelestialBody body = FlightGlobals.Bodies.First(b => b.name == group[0]); - if (string.IsNullOrEmpty(name) || body == null || ExternalGroups[group].Count == 0) continue; - - // Since these groups are new they don't have a center - // Define the center as the position of the first mod in the array - Vector3? center = null; - center = GetPosition(ExternalGroups[group][0]); - if (center == null) continue; + foreach (string group in ExternalGroups[planet].Keys) + { + CelestialBody body = FlightGlobals.Bodies.FirstOrDefault(b => b.name == planet); + if (body == null || ExternalGroups[planet][group].Count == 0) continue; - if (!body.Has("PQSCityGroups")) - body.Set("PQSCityGroups", new Dictionary()); - Dictionary PQSList = body.Get>("PQSCityGroups"); + // Since these groups are new they don't have a center + // Define the center as the position of the first mod in the array + Vector3? center = null; + center = GetPosition(ExternalGroups[planet][group][0]); + if (center == null) continue; - foreach (object mod in ExternalGroups[group]) - { - if (!PQSList.ContainsKey(mod)) - PQSList.Add(mod, (Vector3)center); - } + if (!body.Has("PQSCityGroups")) + body.Set("PQSCityGroups", new Dictionary()); + Dictionary PQSList = body.Get>("PQSCityGroups"); - body.Set("PQSCityGroups", PQSList); + foreach (object mod in ExternalGroups[planet][group]) + { + if (!PQSList.ContainsKey(mod)) + PQSList.Add(mod, (Vector3)center); + } + + body.Set("PQSCityGroups", PQSList); + } } } From 6ba375e6df098ed18ed71db43b51d0870fb6b2dd Mon Sep 17 00:00:00 2001 From: Sigma88 Date: Sat, 6 May 2017 04:14:33 +0200 Subject: [PATCH 04/23] fix grouping --- .../Dimensions/Plugins/SigmaDimensions.dll | Bin 22016 -> 24576 bytes [Source]/Distribution/SigmaDimensions.dll | Bin 25088 -> 24576 bytes .../SigmaDimensions/PQSCityGroupsLoader.cs | 16 ++++++---------- [Source]/SigmaDimensions/SigmaDimensions.cs | 17 +++++++---------- 4 files changed, 13 insertions(+), 20 deletions(-) diff --git a/GameData/Sigma/Dimensions/Plugins/SigmaDimensions.dll b/GameData/Sigma/Dimensions/Plugins/SigmaDimensions.dll index 5ffcf7048c6cefcfce96fd4ec85854cb74d6cb7b..bcfe0c2af7682f094253a872cc2525eae9a618a4 100644 GIT binary patch literal 24576 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 O*ss9<|LXq}7WiMBH7SY! delta 10695 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 diff --git a/[Source]/Distribution/SigmaDimensions.dll b/[Source]/Distribution/SigmaDimensions.dll index 931e7438c5d20e755e67040e85b5299a2a418bde..bcfe0c2af7682f094253a872cc2525eae9a618a4 100644 GIT binary patch delta 6534 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 TZs844*jCn~-SHLKTBQ6xM*ICs delta 6617 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 diff --git a/[Source]/SigmaDimensions/PQSCityGroupsLoader.cs b/[Source]/SigmaDimensions/PQSCityGroupsLoader.cs index cadd4f0..5ff4a59 100644 --- a/[Source]/SigmaDimensions/PQSCityGroupsLoader.cs +++ b/[Source]/SigmaDimensions/PQSCityGroupsLoader.cs @@ -11,14 +11,14 @@ public class PQSCityGroups : MonoBehaviour { Dictionary GroupsList = new Dictionary(); public static Dictionary>> ExternalGroups = new Dictionary>>(); - + void Start() { foreach (ConfigNode GroupsLoader in GameDatabase.Instance.GetConfigNodes("PQSCity_Groups")) { AddGroups(GroupsLoader.GetNodes("GROUP")); } - + SaveGroups(); } @@ -44,7 +44,8 @@ void SaveGroups() CelestialBody body = FlightGlobals.Bodies.First(b => b.name == Group.GetValue("body")); if (string.IsNullOrEmpty(name) || body == null) continue; - // Find Group Center + + // FIND GROUP CENTER Vector3Parser center = null; if (Group.HasNode("CENTER")) @@ -109,14 +110,9 @@ void SaveGroups() } body.Set("PQSCityGroups", PQSList); - Debug.debug = true; - foreach(object k in PQSList.Keys) - { - Debug.Log(k + " >>> " + PQSList[k]); - } - // ADD THIS GROUP TO THE MOVE LIST + // ADD THIS GROUP TO THE MOVE LIST if (Group.HasNode("MOVE")) { ConfigNode C2 = Group.GetNode("MOVE"); @@ -135,7 +131,7 @@ void SaveGroups() values[1].SetFromString(C2.GetValue("fixAltitude")); if (C2.HasValue("originalAltitude")) values[2].SetFromString(C2.GetValue("originalAltitude")); - + if (!body.Has("PQSCityGroupsMove")) body.Set("PQSCityGroupsMove", new Dictionary[]>()); diff --git a/[Source]/SigmaDimensions/SigmaDimensions.cs b/[Source]/SigmaDimensions/SigmaDimensions.cs index b905724..168b2fd 100644 --- a/[Source]/SigmaDimensions/SigmaDimensions.cs +++ b/[Source]/SigmaDimensions/SigmaDimensions.cs @@ -125,7 +125,12 @@ void City2Fixer(PQSCity2 pqs) void GroupFixer(object mod, Vector3 REFvector) { // Moves the group - if (body.Has("PQSCityGroupsMove")) + if (body == FlightGlobals.GetHomeBody() && REFvector == new Vector3(157000, -1000, -570000)) + { + PQSCity KSC = body.GetComponentsInChildren().First(m => m.name == "KSC"); + MoveGroup(mod, KSC.repositionRadial, KSC.reorientFinalAngle - (-15), 0, 64.7846885412); + } + else if (body.Has("PQSCityGroupsMove")) { Dictionary[]> MovesInfo = body.Get[]>>("PQSCityGroupsMove"); @@ -133,15 +138,7 @@ void GroupFixer(object mod, Vector3 REFvector) if (vectors != null) { - if (body == FlightGlobals.GetHomeBody() && REFvector == new Vector3(157000, -1000, -570000)) - { - PQSCity KSC = body.GetComponentsInChildren().First(m => m.name == "KSC"); - MoveGroup(mod, KSC.repositionRadial, KSC.reorientFinalAngle - (-15), 0, 64.7846885412); - } - else - { - MoveGroup(mod, vectors[1], (float)MovesInfo[vectors][0], MovesInfo[vectors][1], MovesInfo[vectors][2]); - } + MoveGroup(mod, vectors[1], (float)MovesInfo[vectors][0], MovesInfo[vectors][1], MovesInfo[vectors][2]); } } From afdce21309e986593cdd5bc50b5512503b83e364 Mon Sep 17 00:00:00 2001 From: Sigma88 Date: Sat, 6 May 2017 19:25:14 +0200 Subject: [PATCH 05/23] fix lerping --- [Source]/SigmaDimensions/SigmaDimensions.cs | 22 +++++++++------------ 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/[Source]/SigmaDimensions/SigmaDimensions.cs b/[Source]/SigmaDimensions/SigmaDimensions.cs index 168b2fd..1c3fcd1 100644 --- a/[Source]/SigmaDimensions/SigmaDimensions.cs +++ b/[Source]/SigmaDimensions/SigmaDimensions.cs @@ -39,12 +39,10 @@ void Start() void CityFixer(PQSCity pqs) { // Resize the Building - pqs.transform.localScale *= (float)resizeBuildings; // Fix PQSCity Groups - if (body.Has("PQSCityGroups")) { Dictionary PQSList = body.Get>("PQSCityGroups"); @@ -54,7 +52,6 @@ void CityFixer(PQSCity pqs) // Fix Altitude - double groundLevel = body.pqsController.GetSurfaceHeight(pqs.repositionRadial) - body.Radius; if (!pqs.repositionToSphere && !pqs.repositionToSphereSurface) @@ -71,7 +68,6 @@ void CityFixer(PQSCity pqs) // Offset = Distance from the radius of the planet double builtInOffset = pqs.repositionRadiusOffset - groundLevel / (resize * landscape); - pqs.repositionRadiusOffset = groundLevel + builtInOffset * resizeBuildings; } else if (pqs.repositionToSphereSurface && pqs.repositionToSphereSurfaceAddHeight) @@ -85,12 +81,10 @@ void CityFixer(PQSCity pqs) void City2Fixer(PQSCity2 pqs) { // Resize the Building - pqs.transform.localScale *= (float)resizeBuildings; // Fix PQSCity Groups - if (body.Has("PQSCityGroups")) { Dictionary PQSList = body.Get>("PQSCityGroups"); @@ -100,7 +94,6 @@ void City2Fixer(PQSCity2 pqs) // Fix Altitude - if (!pqs.snapToSurface) { // Offset = Distance from the radius of the planet @@ -108,9 +101,7 @@ void City2Fixer(PQSCity2 pqs) double groundLevel = body.pqsController.GetSurfaceHeight(pqs.PlanetRelativePosition) - body.Radius; if (body.ocean && groundLevel < 0) - { groundLevel = 0; - } double builtInOffset = pqs.alt - groundLevel / (resize * landscape); pqs.alt = groundLevel + builtInOffset * resizeBuildings; @@ -118,6 +109,7 @@ void City2Fixer(PQSCity2 pqs) else { // Offset = Distance from the surface of the planet + pqs.snapHeightOffset *= resizeBuildings; } } @@ -129,6 +121,7 @@ void GroupFixer(object mod, Vector3 REFvector) { PQSCity KSC = body.GetComponentsInChildren().First(m => m.name == "KSC"); MoveGroup(mod, KSC.repositionRadial, KSC.reorientFinalAngle - (-15), 0, 64.7846885412); + REFvector = KSC.repositionRadial; } else if (body.Has("PQSCityGroupsMove")) { @@ -139,9 +132,11 @@ void GroupFixer(object mod, Vector3 REFvector) if (vectors != null) { MoveGroup(mod, vectors[1], (float)MovesInfo[vectors][0], MovesInfo[vectors][1], MovesInfo[vectors][2]); + REFvector = vectors[1]; } } + // Spread or Shrinks the group to account for Resize Vector3 PQSvector = ((Vector3)GetPosition(mod)).normalized; Vector3 NEWvector = Vector3.LerpUnclamped(REFvector.normalized, PQSvector, (float)(resizeBuildings / resize)); @@ -184,8 +179,9 @@ void MoveGroup(object mod, Vector3 moveTo, float angle = 0, double fixAltitude = // Fix Altitude if (originalAltitude == double.NegativeInfinity) - originalAltitude = body.pqsController.GetSurfaceHeight(origin.vector) - body.Radius; + originalAltitude = (body.pqsController.GetSurfaceHeight(origin.vector) - body.Radius) / (resize * landscape); FixAltitude(mod, (body.pqsController.GetSurfaceHeight(target.vector) - body.Radius) / (resize * landscape) - originalAltitude + fixAltitude); + Debug.Log("SigmaLog: mod altitude = " + ((PQSCity)mod).repositionRadiusOffset); } Vector3? GetPosition(object mod) @@ -279,15 +275,15 @@ void Update() v = Utility.LLAtoECEF(data[0], data[1], 0, data[2]); } - public LatLon() //LLA() + public LatLon() { } - public LatLon(Vector3 input)//LLA(Vector3 input) + public LatLon(Vector3 input) { vector = input; } - public LatLon(LatLon input)//LLA(LatLon input) + public LatLon(LatLon input) { data[0] = input.lat; data[1] = input.lon; From aa3296b879c0daa3d913ab13f99c6ad6231b12ac Mon Sep 17 00:00:00 2001 From: Sigma88 Date: Sat, 6 May 2017 19:26:01 +0200 Subject: [PATCH 06/23] dlls --- .../Dimensions/Plugins/SigmaDimensions.dll | Bin 24576 -> 25088 bytes [Source]/Distribution/SigmaDimensions.dll | Bin 24576 -> 25088 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/GameData/Sigma/Dimensions/Plugins/SigmaDimensions.dll b/GameData/Sigma/Dimensions/Plugins/SigmaDimensions.dll index bcfe0c2af7682f094253a872cc2525eae9a618a4..c4509b36fe82f46ee23009f8bc316faec5f5481a 100644 GIT binary patch delta 2690 zcmaKu3s6+&703VI-QDlIciG+HB~ack*#%a_qPz(x4^fPuw3LH3D2h1!5nB3o76xyIn#4{ls zNxf`X-kY@66_#O^15tMQc2cb)DqrA`OiEtIdga~8Tf%vSJ+K9E4kiM26pzd4rn!fwJQOYw6#q> zl~$Y4bB7(>w!SoK4Ln1$jFwX5J3)~zUO$H%n&#uQHzQ9{#@3fkrnakwjKP=XWcs9b ziqiJ3=D}0);f$K#?}-AZNqUy(qXy1U=vxHjBBvj||G8z~>AJt^M&;YEg7zB?M8F)? zI%0)2E8PJg6r*B|NHb4d0so+&y@;kGX2CkfOX(BZ%Flpg!e zk^25b(q@&sW~SvMS>CAsQ!b~nvexOXR=FOw&TE|)wl-U!4>K=pZSKmTgQL$(rSElF z=&g=@gDM8;*4h={c|Ft@OZ${#-bLT)o%ZH@tM`>xR;ZCc#$KS0t|vVdH}>^(?!2p4 zpV&{2)7&Jw+loZ7A(hrF|Ll(n zdZ}iLo&aDNyWM%hhAQKnhcRRG3J2C%)NWfL1U6)vl^yB|p`n}(LGPOsRU!;W=m>P` z5?2c;|o8Yv8YwMAeJC{rRjZU`#>zkfJOH?E{kQjWY9?5b54!|#H`XQN7Q~X8x#dt zZs864tXPhX7IlWriWTU#Xs>ft6ymr=$HhNH5#BWDZ!E);jp8|KAS%H-W~DJqY#j2}t z)uJR<0?{ptc4@J+yI_p|L#KPOM@t~|Tl6tC)}YR!Yt&eSc8kt9>m9Y|v*>ka6VZdU z`Y6Nbb#T<-C4;YZH%PX|6Fuuz;rPr|KBCvSaS;e3|l|dnX^q`@DzW(pCPr zC_6a9FR|aKXW5r{!Sk;D66W97nke&r-&Xqxdc9 z^Ekn?A#uBwhcMKud5FRfNE6Uant^*sbMaHs0-PW%!x_?QBW}R?AVH%6ZMaTx2ZUCQ z9Z1pE(4gD24kPZQcu0Gg^pJL#GTGWuieJ&r8txSYP@vgZFD(mmLPA0ZW6(S<&A z(swuUHp)~WRepGTL-><_FYo+UsD0Hh4t8(<_knZgLdEMhaqfWPNlXllZW^-X(SJni z#ZaMVDUksa{q&_*zKxAFjpw(wz4q5n-e`F6=7&8a)q^Zl+^jOs7kl)_&iq6U$n`Dp fihV%d-7+3Z-Q3MWp4OW-C9^mbvH3H$KVSR@dTlEQ delta 2577 zcmaKu4Nw&48OQ(c?%lq-_f?LI2q@}tz#ZRbi6RFCnQkjUcpyQdZ(1=C!YZu>UrL05zng!Vw@dnG!>5H4itLY%Yj_#Gf6O{lH{#bQ- zgY;}J(}X>*mko$-=6%WIM!*~o_-qib=QVSR!W;u4XTe&wO>A3m?|dv1`fLdYVC(6U zu{)FvIDB@my==dDZ$UL{5+w_xBC&9l-4|9+n!dDfoUvkY*dG*Q{$^GpO7maOJVP~d zUp_5G+tox(?tfmm0;AelO53{I_n#Gi3^a9(5G8&?(o=53ZaHy|!q6O`6eW8R`oyjM zT-W_+*B6$tgnGCG@PcL)se-I6pUhT{&pQ`0+!yqfWEm@Qpd?=kou>p!Dtf<2y`(be z(&)(-jpPY-$fa||5HLeX+_0zdG$jdE?RI9CYJ6-HoHTMOMfxJ-OSY zrjC%Fl63tiA5oT~N_v}SW0;~DeyZIdO?qyUo@TnXx^#V&eUPNXIr)ZBz<3t2Vdo4- zB@bzrdq`H0b_~h-beZIKAd7EUL~Y<8!fu78@1|aLy4&ujigCJCblT$%aT&{vjX8)3 z+0X4*Ytd%8l5=b*Fh?dk)k?0RjxLK{ILag3i4#R8b#p&=ValRhPl$Wa7c{+pC`~*A zQx*mIdhW%;A=BFmYS2S(}qQ?VqV_UJRc{F+++ATKTUMSpd;BQ9Z!oR70t;roZ7B6 zt0Io`ya3sCCN(=Q@IsuZH|fXPWgf&t!}R>T3>%l5)S+GA<+y0kb@@-c5@jn)Z=e0I zd@&9gG?@LQLqQc@F-hIaCzHGiQx@K^P4YXTH0p(e>JH~5UxEUQ4mc+HQf#&86n~dj zW5A#{S-?|_Wz)2Vs0M@PNaKVNe9s`GX&%9`8D27i;|31U6X*R;nYB1)dB@1BomE(e zYnC^Ok9gfIuO9DO-u+Bg>t}g);bY7D1ACv}m7HZZATz3WKY;Jhqz$OF=q1SNa;!DT z>|({Nx)o@*M*87US0H83pgPCpRU7dmi}GA^h@P=%m*!QYNWNlWT$@8UVbR~IunD&; zdWQ;|kfA>wXk%V*thP5JWYI-O8&Peu?j1z0UBOD+XOOwuEAiMgwb@tV@-*eDt8gr8 zTnuyQYShphRqy`ySfsATmkl!eZJE_?3u4yDPP$IRk1kef*>;WXaHo_S>41As`4CgKkfP#F z{E&1RenMJ@Va0`?QO1p@aDwz#IHeRrV3k$@CmPiX_^^g_9_}LzpqI21kC0a36lpEa zkVcJo4aSoMtp;qu+Z1=wi#v+@k)yTHq+iuKjd%ye`?N<$k7>h{320AId{!GX+_#WG zxhAt-T4L1DPD2L_9X52#(6vTE!>2 z*0p4OBXvu>GxkLEp+nm~2!HI@lpbBTQAy{vrR1{PA8Qir{d`8Rr@i!}kF~p7n_8X! z?TmNq?rA)nzPhJud(ms@i|s1&Y`4C|^t+`$F5ZacN_}y0D|S5X*?dcu9<5G$@4e2B Hg!%sfElCgo diff --git a/[Source]/Distribution/SigmaDimensions.dll b/[Source]/Distribution/SigmaDimensions.dll index bcfe0c2af7682f094253a872cc2525eae9a618a4..c4509b36fe82f46ee23009f8bc316faec5f5481a 100644 GIT binary patch delta 2690 zcmaKu3s6+&703VI-QDlIciG+HB~ack*#%a_qPz(x4^fPuw3LH3D2h1!5nB3o76xyIn#4{ls zNxf`X-kY@66_#O^15tMQc2cb)DqrA`OiEtIdga~8Tf%vSJ+K9E4kiM26pzd4rn!fwJQOYw6#q> zl~$Y4bB7(>w!SoK4Ln1$jFwX5J3)~zUO$H%n&#uQHzQ9{#@3fkrnakwjKP=XWcs9b ziqiJ3=D}0);f$K#?}-AZNqUy(qXy1U=vxHjBBvj||G8z~>AJt^M&;YEg7zB?M8F)? zI%0)2E8PJg6r*B|NHb4d0so+&y@;kGX2CkfOX(BZ%Flpg!e zk^25b(q@&sW~SvMS>CAsQ!b~nvexOXR=FOw&TE|)wl-U!4>K=pZSKmTgQL$(rSElF z=&g=@gDM8;*4h={c|Ft@OZ${#-bLT)o%ZH@tM`>xR;ZCc#$KS0t|vVdH}>^(?!2p4 zpV&{2)7&Jw+loZ7A(hrF|Ll(n zdZ}iLo&aDNyWM%hhAQKnhcRRG3J2C%)NWfL1U6)vl^yB|p`n}(LGPOsRU!;W=m>P` z5?2c;|o8Yv8YwMAeJC{rRjZU`#>zkfJOH?E{kQjWY9?5b54!|#H`XQN7Q~X8x#dt zZs864tXPhX7IlWriWTU#Xs>ft6ymr=$HhNH5#BWDZ!E);jp8|KAS%H-W~DJqY#j2}t z)uJR<0?{ptc4@J+yI_p|L#KPOM@t~|Tl6tC)}YR!Yt&eSc8kt9>m9Y|v*>ka6VZdU z`Y6Nbb#T<-C4;YZH%PX|6Fuuz;rPr|KBCvSaS;e3|l|dnX^q`@DzW(pCPr zC_6a9FR|aKXW5r{!Sk;D66W97nke&r-&Xqxdc9 z^Ekn?A#uBwhcMKud5FRfNE6Uant^*sbMaHs0-PW%!x_?QBW}R?AVH%6ZMaTx2ZUCQ z9Z1pE(4gD24kPZQcu0Gg^pJL#GTGWuieJ&r8txSYP@vgZFD(mmLPA0ZW6(S<&A z(swuUHp)~WRepGTL-><_FYo+UsD0Hh4t8(<_knZgLdEMhaqfWPNlXllZW^-X(SJni z#ZaMVDUksa{q&_*zKxAFjpw(wz4q5n-e`F6=7&8a)q^Zl+^jOs7kl)_&iq6U$n`Dp fihV%d-7+3Z-Q3MWp4OW-C9^mbvH3H$KVSR@dTlEQ delta 2577 zcmaKu4Nw&48OQ(c?%lq-_f?LI2q@}tz#ZRbi6RFCnQkjUcpyQdZ(1=C!YZu>UrL05zng!Vw@dnG!>5H4itLY%Yj_#Gf6O{lH{#bQ- zgY;}J(}X>*mko$-=6%WIM!*~o_-qib=QVSR!W;u4XTe&wO>A3m?|dv1`fLdYVC(6U zu{)FvIDB@my==dDZ$UL{5+w_xBC&9l-4|9+n!dDfoUvkY*dG*Q{$^GpO7maOJVP~d zUp_5G+tox(?tfmm0;AelO53{I_n#Gi3^a9(5G8&?(o=53ZaHy|!q6O`6eW8R`oyjM zT-W_+*B6$tgnGCG@PcL)se-I6pUhT{&pQ`0+!yqfWEm@Qpd?=kou>p!Dtf<2y`(be z(&)(-jpPY-$fa||5HLeX+_0zdG$jdE?RI9CYJ6-HoHTMOMfxJ-OSY zrjC%Fl63tiA5oT~N_v}SW0;~DeyZIdO?qyUo@TnXx^#V&eUPNXIr)ZBz<3t2Vdo4- zB@bzrdq`H0b_~h-beZIKAd7EUL~Y<8!fu78@1|aLy4&ujigCJCblT$%aT&{vjX8)3 z+0X4*Ytd%8l5=b*Fh?dk)k?0RjxLK{ILag3i4#R8b#p&=ValRhPl$Wa7c{+pC`~*A zQx*mIdhW%;A=BFmYS2S(}qQ?VqV_UJRc{F+++ATKTUMSpd;BQ9Z!oR70t;roZ7B6 zt0Io`ya3sCCN(=Q@IsuZH|fXPWgf&t!}R>T3>%l5)S+GA<+y0kb@@-c5@jn)Z=e0I zd@&9gG?@LQLqQc@F-hIaCzHGiQx@K^P4YXTH0p(e>JH~5UxEUQ4mc+HQf#&86n~dj zW5A#{S-?|_Wz)2Vs0M@PNaKVNe9s`GX&%9`8D27i;|31U6X*R;nYB1)dB@1BomE(e zYnC^Ok9gfIuO9DO-u+Bg>t}g);bY7D1ACv}m7HZZATz3WKY;Jhqz$OF=q1SNa;!DT z>|({Nx)o@*M*87US0H83pgPCpRU7dmi}GA^h@P=%m*!QYNWNlWT$@8UVbR~IunD&; zdWQ;|kfA>wXk%V*thP5JWYI-O8&Peu?j1z0UBOD+XOOwuEAiMgwb@tV@-*eDt8gr8 zTnuyQYShphRqy`ySfsATmkl!eZJE_?3u4yDPP$IRk1kef*>;WXaHo_S>41As`4CgKkfP#F z{E&1RenMJ@Va0`?QO1p@aDwz#IHeRrV3k$@CmPiX_^^g_9_}LzpqI21kC0a36lpEa zkVcJo4aSoMtp;qu+Z1=wi#v+@k)yTHq+iuKjd%ye`?N<$k7>h{320AId{!GX+_#WG zxhAt-T4L1DPD2L_9X52#(6vTE!>2 z*0p4OBXvu>GxkLEp+nm~2!HI@lpbBTQAy{vrR1{PA8Qir{d`8Rr@i!}kF~p7n_8X! z?TmNq?rA)nzPhJud(ms@i|s1&Y`4C|^t+`$F5ZacN_}y0D|S5X*?dcu9<5G$@4e2B Hg!%sfElCgo From 2b016baa8347d88c1eef4ffde45d82af22131a37 Mon Sep 17 00:00:00 2001 From: Sigma88 Date: Sat, 6 May 2017 23:05:35 +0200 Subject: [PATCH 07/23] new dictionary for move and debug tools --- [Source]/Distribution/SigmaDimensions.dll | Bin 25088 -> 28160 bytes .../SigmaDimensions/PQSCityGroupsLoader.cs | 81 ++++++++++++------ [Source]/SigmaDimensions/SigmaDimensions.cs | 53 +++++++++--- 3 files changed, 95 insertions(+), 39 deletions(-) diff --git a/[Source]/Distribution/SigmaDimensions.dll b/[Source]/Distribution/SigmaDimensions.dll index c4509b36fe82f46ee23009f8bc316faec5f5481a..55f90999089d0e3169f6076b018978cbc2c5976d 100644 GIT binary patch literal 28160 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 OK0DHXfBwI-!2bo;Q9{oE diff --git a/[Source]/SigmaDimensions/PQSCityGroupsLoader.cs b/[Source]/SigmaDimensions/PQSCityGroupsLoader.cs index 5ff4a59..b7c2183 100644 --- a/[Source]/SigmaDimensions/PQSCityGroupsLoader.cs +++ b/[Source]/SigmaDimensions/PQSCityGroupsLoader.cs @@ -11,6 +11,7 @@ public class PQSCityGroups : MonoBehaviour { Dictionary GroupsList = new Dictionary(); public static Dictionary>> ExternalGroups = new Dictionary>>(); + public static List debug = new List(); void Start() { @@ -40,9 +41,20 @@ void SaveGroups() // LOAD SD GROUPS foreach (ConfigNode Group in GroupsList.Values) { + Debug.debug = false; + if (Group.HasValue("debug")) + { + NumericParser log = new NumericParser(); + log.SetFromString(Group.GetValue("debug")); + if (log.value) + Debug.debug = true; + } + string name = Group.GetValue("name"); CelestialBody body = FlightGlobals.Bodies.First(b => b.name == Group.GetValue("body")); if (string.IsNullOrEmpty(name) || body == null) continue; + Debug.Log("Planet name = " + body.name + (body.name != body.transform.name ? (", (A.K.A.: " + body.transform.name + ")") : "")); + Debug.Log("Group name = " + name); // FIND GROUP CENTER @@ -70,42 +82,47 @@ void SaveGroups() { ConfigNode M = Group.GetNode("MODS"); + if (center == null) + center = GetCenter(M, body); + if (center == null) continue; + if (Debug.debug && !debug.Contains(center)) debug.Add(center); + Debug.Log("Center position = " + center + ", (LAT: " + new SigmaDimensions.LatLon(center).lat + ", LON: " + new SigmaDimensions.LatLon(center).lon + ")"); + + // ADD PQS MODS TO THE GROUP + foreach (string city in M.GetValues("PQSCity")) { PQSCity mod = body.GetComponentsInChildren(true).First(m => m.name == city); if (mod != null) { - if (center == null) - center = mod.repositionRadial; - if (!PQSList.ContainsKey(mod)) - PQSList.Add(mod, center); + if (PQSList.ContainsKey(mod)) continue; + + PQSList.Add(mod, center); + Debug.Log(" PQSCity >>> " + mod.name); } } foreach (string city2 in M.GetValues("PQSCity2")) { PQSCity2 mod = body.GetComponentsInChildren(true).First(m => m.name == city2); - if (mod != null) - { - if (center == null) - center = (Vector3)mod.PlanetRelativePosition; - if (!PQSList.ContainsKey(mod)) - PQSList.Add(mod, center); - } + if (PQSList.ContainsKey(mod)) continue; + + PQSList.Add(mod, center); + Debug.Log(" PQSCity2 >>> " + mod.name); } } - if (center == null) continue; - // ADD EXTERNAL MODS TO THIS GROUP if (ExternalGroups.ContainsKey(body.name) && ExternalGroups[body.name].ContainsKey(name)) { foreach (object mod in ExternalGroups[body.name][name]) { - if (!PQSList.ContainsKey(mod)) - PQSList.Add(mod, center); + if (PQSList.ContainsKey(mod)) continue; + + PQSList.Add(mod, center); + Debug.Log(" external >>> " + mod); } } @@ -119,27 +136,29 @@ void SaveGroups() Vector3? newCenter = GetCenter(C2, body); if (newCenter == null) continue; - Vector3[] keys = new Vector3[] { center, (Vector3)newCenter }; - + Debug.Log("Move Group to position = " + newCenter.Value + ", (LAT: " + new SigmaDimensions.LatLon(newCenter.Value).lat + ", LON: " + new SigmaDimensions.LatLon(newCenter.Value).lon + ")"); - NumericParser[] values = new[] { 0, 0, new NumericParser() }; - values[2].SetFromString("-Infinity"); + var info = new KeyValuePair[]>(new[] { center.value, (Vector3)newCenter }, new[] { 0, 0, new NumericParser() }); if (C2.HasValue("Rotate")) - values[0].SetFromString(C2.GetValue("Rotate")); + info.Value[0].SetFromString(C2.GetValue("Rotate")); Debug.Log("Rotate group = " + info.Value[0].value); if (C2.HasValue("fixAltitude")) - values[1].SetFromString(C2.GetValue("fixAltitude")); + info.Value[1].SetFromString(C2.GetValue("fixAltitude")); Debug.Log("Fix group altitude = " + info.Value[1].value); if (C2.HasValue("originalAltitude")) - values[2].SetFromString(C2.GetValue("originalAltitude")); - + info.Value[2].SetFromString(C2.GetValue("originalAltitude")); + else + info.Value[2].SetFromString("-Infinity"); Debug.Log("Original group altitude = " + (info.Value[2].value == double.NegativeInfinity ? "[Not Specified]" : info.Value[2].value.ToString())); + if (!body.Has("PQSCityGroupsMove")) - body.Set("PQSCityGroupsMove", new Dictionary[]>()); - Dictionary[]> MoveList = body.Get[]>>("PQSCityGroupsMove"); + body.Set("PQSCityGroupsMove", new Dictionary[]>>>()); + var MoveList = body.Get[]>>>>("PQSCityGroupsMove"); - if (!MoveList.ContainsKey(keys)) - MoveList.Add(keys, values); + if (!MoveList.ContainsKey(body.name)) + MoveList.Add(body.name, new Dictionary[]>>()); + if (!MoveList[body.name].ContainsKey(name)) + MoveList[body.name].Add(name, info); body.Set("PQSCityGroupsMove", MoveList); } @@ -199,6 +218,14 @@ void SaveGroups() LON.SetFromString(node.GetValue("CentralLON")); return Utility.LLAtoECEF(LAT, LON, 1, 1); } + else if (node.HasValue("PQSCity")) + { + return body.GetComponentsInChildren(true).FirstOrDefault(p => p.name == node.GetValue("PQSCity")).repositionRadial; + } + else if (node.HasValue("PQSCity2")) + { + return body.GetComponentsInChildren(true).First(p => p.name == node.GetValue("PQSCity2")).PlanetRelativePosition; + } else return null; } diff --git a/[Source]/SigmaDimensions/SigmaDimensions.cs b/[Source]/SigmaDimensions/SigmaDimensions.cs index 1c3fcd1..80f3885 100644 --- a/[Source]/SigmaDimensions/SigmaDimensions.cs +++ b/[Source]/SigmaDimensions/SigmaDimensions.cs @@ -17,9 +17,14 @@ public class SigmaDimensions : MonoBehaviour void Start() { - foreach (CelestialBody cb in FlightGlobals.Bodies) + Debug.debug = false; // Reset Debug + Debug.debug = (PQSCityGroups.debug.Count > 0); Debug.Log(">>> Sigma Dimensions Log <<<"); + + foreach (CelestialBody body in FlightGlobals.Bodies) { - body = cb; + Debug.debug = (PQSCityGroups.debug.Count > 0); + Debug.Log("> Planet: " + body.name); + resize = body.Has("resize") ? body.Get("resize") : 1; landscape = body.Has("landscape") ? body.Get("landscape") : 1; resizeBuildings = body.Has("resizeBuildings") ? body.Get("resizeBuildings") : 1; @@ -31,6 +36,7 @@ void Start() foreach (PQSCity2 mod in body.GetComponentsInChildren(true)) { + Debug.Log(" > PQSCity2: " + mod.name); City2Fixer(mod); } } @@ -38,6 +44,9 @@ void Start() void CityFixer(PQSCity pqs) { + Debug.debug = PQSCityGroups.debug.Contains(pqs.repositionRadial); + Debug.Log(" > PQSCity: " + pqs.name); + // Resize the Building pqs.transform.localScale *= (float)resizeBuildings; @@ -47,12 +56,17 @@ void CityFixer(PQSCity pqs) { Dictionary PQSList = body.Get>("PQSCityGroups"); if (PQSList.ContainsKey(pqs)) + { + Debug.debug = PQSCityGroups.debug.Contains(PQSList[pqs]); + Debug.Log(" > PQSCity: " + pqs.name); GroupFixer(pqs, PQSList[pqs]); + } } // Fix Altitude double groundLevel = body.pqsController.GetSurfaceHeight(pqs.repositionRadial) - body.Radius; + Debug.Log(" > Ground Level at Mod = " + groundLevel); if (!pqs.repositionToSphere && !pqs.repositionToSphereSurface) { @@ -76,10 +90,12 @@ void CityFixer(PQSCity pqs) pqs.repositionRadiusOffset *= resizeBuildings; } + Debug.Log(" > PQSCity Offset = " + pqs.repositionRadiusOffset); } void City2Fixer(PQSCity2 pqs) { + // Resize the Building pqs.transform.localScale *= (float)resizeBuildings; @@ -89,7 +105,11 @@ void City2Fixer(PQSCity2 pqs) { Dictionary PQSList = body.Get>("PQSCityGroups"); if (PQSList.ContainsKey(pqs)) + { + Debug.debug = PQSCityGroups.debug.Contains(PQSList[pqs]); + Debug.Log(" > PQSCity2: " + pqs.name); GroupFixer(pqs, PQSList[pqs]); + } } @@ -99,18 +119,22 @@ void City2Fixer(PQSCity2 pqs) // Offset = Distance from the radius of the planet double groundLevel = body.pqsController.GetSurfaceHeight(pqs.PlanetRelativePosition) - body.Radius; + Debug.Log(" > Ground Level at Mod = " + groundLevel); if (body.ocean && groundLevel < 0) groundLevel = 0; double builtInOffset = pqs.alt - groundLevel / (resize * landscape); pqs.alt = groundLevel + builtInOffset * resizeBuildings; + + Debug.Log(" > PQSCity2 Alt = " + pqs.alt); } else { // Offset = Distance from the surface of the planet pqs.snapHeightOffset *= resizeBuildings; + Debug.Log(" > PQSCity2 Offset = " + pqs.snapHeightOffset); } } @@ -121,18 +145,17 @@ void GroupFixer(object mod, Vector3 REFvector) { PQSCity KSC = body.GetComponentsInChildren().First(m => m.name == "KSC"); MoveGroup(mod, KSC.repositionRadial, KSC.reorientFinalAngle - (-15), 0, 64.7846885412); - REFvector = KSC.repositionRadial; + REFvector = KSC.repositionRadial; // Change the REFvector the the new position for Lerping } else if (body.Has("PQSCityGroupsMove")) { - Dictionary[]> MovesInfo = body.Get[]>>("PQSCityGroupsMove"); + var MovesInfo = body.Get[]>>>> ("PQSCityGroupsMove"); - Vector3[] vectors = MovesInfo.Keys.FirstOrDefault(k => k[0] == REFvector); - - if (vectors != null) + if (MovesInfo.ContainsKey(body.name) && MovesInfo[body.name].ContainsKey(name)) { - MoveGroup(mod, vectors[1], (float)MovesInfo[vectors][0], MovesInfo[vectors][1], MovesInfo[vectors][2]); - REFvector = vectors[1]; + var info = MovesInfo[body.name][name]; + MoveGroup(mod, info.Key[1], (float)info.Value[0], info.Value[1], info.Value[2]); + REFvector = info.Key[1]; // Change the REFvector the the new position for Lerping } } @@ -141,6 +164,7 @@ void GroupFixer(object mod, Vector3 REFvector) Vector3 PQSvector = ((Vector3)GetPosition(mod)).normalized; Vector3 NEWvector = Vector3.LerpUnclamped(REFvector.normalized, PQSvector, (float)(resizeBuildings / resize)); SetPosition(mod, NEWvector); + Debug.Log(" > Mod lerped position = " + (Vector3)GetPosition(mod) + ", (LAT: " + new LatLon((Vector3)GetPosition(mod)).lat + ", LON: " + new LatLon((Vector3)GetPosition(mod)).lon + ")"); } void MoveGroup(object mod, Vector3 moveTo, float angle = 0, double fixAltitude = 0, double originalAltitude = double.NegativeInfinity) @@ -154,6 +178,9 @@ void MoveGroup(object mod, Vector3 moveTo, float angle = 0, double fixAltitude = LatLon origin = new LatLon(body.Get>("PQSCityGroups")[mod].normalized); Vector3 north = Vector3.ProjectOnPlane(Vector3.up, origin.vector); Vector3 east = QuaternionD.AngleAxis(90, origin.vector) * north; + Debug.Log(" > Group center position = " + origin.vector + ", (LAT: " + origin.lat + ", LON: " + origin.lon + ")"); + Debug.Log(" > Final center position = " + target.vector + ", (LAT: " + target.lat + ", LON: " + target.lon + ")"); + Debug.Log(" > Mod original position = " + (Vector3)GetPosition(mod) + ", (LAT: " + new LatLon((Vector3)GetPosition(mod)).lat + ", LON: " + new LatLon((Vector3)GetPosition(mod)).lon + ")"); // PQS Vectors (PQS, North, East) Vector3 oldPQS = Vector3.ProjectOnPlane(((Vector3)GetPosition(mod)).normalized, origin.vector); @@ -176,12 +203,14 @@ void MoveGroup(object mod, Vector3 moveTo, float angle = 0, double fixAltitude = // Calculate final position by adding the north and east distances to the target position // then rotate the new vector by as many degrees as it is necessary to account for the PQS model rotation SetPosition(mod, rotation * (target.vector + newNorth * northward + newEast * eastward)); + Debug.Log(" > Mod final position = " + (Vector3)GetPosition(mod) + ", (LAT: " + new LatLon((Vector3)GetPosition(mod)).lat + ", LON: " + new LatLon((Vector3)GetPosition(mod)).lon + ")"); // Fix Altitude if (originalAltitude == double.NegativeInfinity) originalAltitude = (body.pqsController.GetSurfaceHeight(origin.vector) - body.Radius) / (resize * landscape); + Debug.Log(" > Mod original altitude = " + originalAltitude); + FixAltitude(mod, (body.pqsController.GetSurfaceHeight(target.vector) - body.Radius) / (resize * landscape) - originalAltitude + fixAltitude); - Debug.Log("SigmaLog: mod altitude = " + ((PQSCity)mod).repositionRadiusOffset); } Vector3? GetPosition(object mod) @@ -213,9 +242,9 @@ void FixAltitude(object mod, double fixAltitude) if (type == "PQSCity") ((PQSCity)mod).repositionRadiusOffset += fixAltitude; else if (type == "PQSCity2") - { ((PQSCity2)mod).alt += fixAltitude; - } + + Debug.Log(" > Mod Fixed Altitude = " + fixAltitude); } void Rotate(object mod, float angle) From 9af016753680abb56be7daecc6a81b5335d84141 Mon Sep 17 00:00:00 2001 From: Sigma88 Date: Sun, 7 May 2017 00:05:11 +0200 Subject: [PATCH 08/23] stupid! --- [Source]/SigmaDimensions/SigmaDimensions.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/[Source]/SigmaDimensions/SigmaDimensions.cs b/[Source]/SigmaDimensions/SigmaDimensions.cs index 80f3885..6334b82 100644 --- a/[Source]/SigmaDimensions/SigmaDimensions.cs +++ b/[Source]/SigmaDimensions/SigmaDimensions.cs @@ -20,8 +20,9 @@ void Start() Debug.debug = false; // Reset Debug Debug.debug = (PQSCityGroups.debug.Count > 0); Debug.Log(">>> Sigma Dimensions Log <<<"); - foreach (CelestialBody body in FlightGlobals.Bodies) + foreach (CelestialBody cb in FlightGlobals.Bodies) { + body = cb; // DON'T CHANGE THIS (body is public and required by other methods) Debug.debug = (PQSCityGroups.debug.Count > 0); Debug.Log("> Planet: " + body.name); @@ -36,7 +37,6 @@ void Start() foreach (PQSCity2 mod in body.GetComponentsInChildren(true)) { - Debug.Log(" > PQSCity2: " + mod.name); City2Fixer(mod); } } From 745a2c1c5d42872acc8533b5c9a7dd7a8d4ddc36 Mon Sep 17 00:00:00 2001 From: Sigma88 Date: Sun, 7 May 2017 00:30:10 +0200 Subject: [PATCH 09/23] stupid! #2 --- [Source]/SigmaDimensions/SigmaDimensions.cs | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/[Source]/SigmaDimensions/SigmaDimensions.cs b/[Source]/SigmaDimensions/SigmaDimensions.cs index 6334b82..e2f2a0e 100644 --- a/[Source]/SigmaDimensions/SigmaDimensions.cs +++ b/[Source]/SigmaDimensions/SigmaDimensions.cs @@ -44,8 +44,7 @@ void Start() void CityFixer(PQSCity pqs) { - Debug.debug = PQSCityGroups.debug.Contains(pqs.repositionRadial); - Debug.Log(" > PQSCity: " + pqs.name); + Debug.debug = false; // Resize the Building pqs.transform.localScale *= (float)resizeBuildings; @@ -149,7 +148,7 @@ void GroupFixer(object mod, Vector3 REFvector) } else if (body.Has("PQSCityGroupsMove")) { - var MovesInfo = body.Get[]>>>> ("PQSCityGroupsMove"); + var MovesInfo = body.Get[]>>> ("PQSCityGroupsMove"); if (MovesInfo.ContainsKey(body.name) && MovesInfo[body.name].ContainsKey(name)) { From 12a9a55aa580de920dc77629e35c0e8392cdd496 Mon Sep 17 00:00:00 2001 From: Sigma88 Date: Sun, 7 May 2017 00:46:38 +0200 Subject: [PATCH 10/23] better dictionary --- [Source]/SigmaDimensions/PQSCityGroupsLoader.cs | 16 +++++++--------- [Source]/SigmaDimensions/SigmaDimensions.cs | 15 ++++++++------- 2 files changed, 15 insertions(+), 16 deletions(-) diff --git a/[Source]/SigmaDimensions/PQSCityGroupsLoader.cs b/[Source]/SigmaDimensions/PQSCityGroupsLoader.cs index b7c2183..20aa229 100644 --- a/[Source]/SigmaDimensions/PQSCityGroupsLoader.cs +++ b/[Source]/SigmaDimensions/PQSCityGroupsLoader.cs @@ -138,7 +138,8 @@ void SaveGroups() if (newCenter == null) continue; Debug.Log("Move Group to position = " + newCenter.Value + ", (LAT: " + new SigmaDimensions.LatLon(newCenter.Value).lat + ", LON: " + new SigmaDimensions.LatLon(newCenter.Value).lon + ")"); - var info = new KeyValuePair[]>(new[] { center.value, (Vector3)newCenter }, new[] { 0, 0, new NumericParser() }); + + var info = new KeyValuePair[]>((Vector3)newCenter, new[] { 0, 0, new NumericParser() }); if (C2.HasValue("Rotate")) info.Value[0].SetFromString(C2.GetValue("Rotate")); Debug.Log("Rotate group = " + info.Value[0].value); @@ -151,14 +152,11 @@ void SaveGroups() if (!body.Has("PQSCityGroupsMove")) - body.Set("PQSCityGroupsMove", new Dictionary[]>>>()); - var MoveList = body.Get[]>>>>("PQSCityGroupsMove"); - - - if (!MoveList.ContainsKey(body.name)) - MoveList.Add(body.name, new Dictionary[]>>()); - if (!MoveList[body.name].ContainsKey(name)) - MoveList[body.name].Add(name, info); + body.Set("PQSCityGroupsMove", new Dictionary[]>>()); + var MoveList = body.Get[]>>>("PQSCityGroupsMove"); + + if (!MoveList.ContainsKey(center.value)) + MoveList.Add(center.value, info); body.Set("PQSCityGroupsMove", MoveList); } diff --git a/[Source]/SigmaDimensions/SigmaDimensions.cs b/[Source]/SigmaDimensions/SigmaDimensions.cs index e2f2a0e..db3ddaf 100644 --- a/[Source]/SigmaDimensions/SigmaDimensions.cs +++ b/[Source]/SigmaDimensions/SigmaDimensions.cs @@ -140,6 +140,8 @@ void City2Fixer(PQSCity2 pqs) void GroupFixer(object mod, Vector3 REFvector) { // Moves the group + Vector3 PQSposition = ((Vector3)GetPosition(mod)); + if (body == FlightGlobals.GetHomeBody() && REFvector == new Vector3(157000, -1000, -570000)) { PQSCity KSC = body.GetComponentsInChildren().First(m => m.name == "KSC"); @@ -148,20 +150,19 @@ void GroupFixer(object mod, Vector3 REFvector) } else if (body.Has("PQSCityGroupsMove")) { - var MovesInfo = body.Get[]>>> ("PQSCityGroupsMove"); + var MovesInfo = body.Get[]>>>("PQSCityGroupsMove"); - if (MovesInfo.ContainsKey(body.name) && MovesInfo[body.name].ContainsKey(name)) + if (MovesInfo.ContainsKey(PQSposition)) { - var info = MovesInfo[body.name][name]; - MoveGroup(mod, info.Key[1], (float)info.Value[0], info.Value[1], info.Value[2]); - REFvector = info.Key[1]; // Change the REFvector the the new position for Lerping + var info = MovesInfo[PQSposition]; + MoveGroup(mod, info.Key, (float)info.Value[0], info.Value[1], info.Value[2]); + REFvector = info.Key; // Change the REFvector the the new position for Lerping } } // Spread or Shrinks the group to account for Resize - Vector3 PQSvector = ((Vector3)GetPosition(mod)).normalized; - Vector3 NEWvector = Vector3.LerpUnclamped(REFvector.normalized, PQSvector, (float)(resizeBuildings / resize)); + Vector3 NEWvector = Vector3.LerpUnclamped(REFvector.normalized, PQSposition.normalized, (float)(resizeBuildings / resize)); SetPosition(mod, NEWvector); Debug.Log(" > Mod lerped position = " + (Vector3)GetPosition(mod) + ", (LAT: " + new LatLon((Vector3)GetPosition(mod)).lat + ", LON: " + new LatLon((Vector3)GetPosition(mod)).lon + ")"); } From 5c099d6dafc0cc3b6525b922cacfcd50765e384b Mon Sep 17 00:00:00 2001 From: Sigma88 Date: Sun, 7 May 2017 02:13:46 +0200 Subject: [PATCH 11/23] fix for moving groups --- [Source]/SigmaDimensions/SigmaDimensions.cs | 48 +++++++++++++-------- 1 file changed, 31 insertions(+), 17 deletions(-) diff --git a/[Source]/SigmaDimensions/SigmaDimensions.cs b/[Source]/SigmaDimensions/SigmaDimensions.cs index db3ddaf..2095aa2 100644 --- a/[Source]/SigmaDimensions/SigmaDimensions.cs +++ b/[Source]/SigmaDimensions/SigmaDimensions.cs @@ -23,7 +23,7 @@ void Start() foreach (CelestialBody cb in FlightGlobals.Bodies) { body = cb; // DON'T CHANGE THIS (body is public and required by other methods) - Debug.debug = (PQSCityGroups.debug.Count > 0); + Debug.debug = (body.Has("PQSCityGroups")); Debug.Log("> Planet: " + body.name); resize = body.Has("resize") ? body.Get("resize") : 1; @@ -65,31 +65,36 @@ void CityFixer(PQSCity pqs) // Fix Altitude double groundLevel = body.pqsController.GetSurfaceHeight(pqs.repositionRadial) - body.Radius; - Debug.Log(" > Ground Level at Mod = " + groundLevel); + Debug.Log(" > Ground Level at Mod = " + groundLevel); if (!pqs.repositionToSphere && !pqs.repositionToSphereSurface) { // Offset = Distance from the center of the planet + Debug.Log(" > Original Absolute Offset = " + pqs.repositionRadiusOffset); double fromRadius = pqs.repositionRadiusOffset - (body.Radius / resize); double builtInOffset = fromRadius - groundLevel / (resize * landscape); pqs.repositionRadiusOffset = body.Radius + groundLevel + builtInOffset * resizeBuildings; + Debug.Log(" > Fixed Absolute Offset = " + pqs.repositionRadiusOffset); } else if (pqs.repositionToSphere && !pqs.repositionToSphereSurface) { // Offset = Distance from the radius of the planet + Debug.Log(" > Original Altitude = " + pqs.repositionRadiusOffset); double builtInOffset = pqs.repositionRadiusOffset - groundLevel / (resize * landscape); pqs.repositionRadiusOffset = groundLevel + builtInOffset * resizeBuildings; + Debug.Log(" > Fixed Altitude = " + pqs.repositionRadiusOffset); } else if (pqs.repositionToSphereSurface && pqs.repositionToSphereSurfaceAddHeight) { // Offset = Distance from the surface of the planet + Debug.Log(" > Original Offset = " + pqs.repositionRadiusOffset); pqs.repositionRadiusOffset *= resizeBuildings; + Debug.Log(" > Fixed Offset = " + pqs.repositionRadiusOffset); } - Debug.Log(" > PQSCity Offset = " + pqs.repositionRadiusOffset); } void City2Fixer(PQSCity2 pqs) @@ -118,7 +123,7 @@ void City2Fixer(PQSCity2 pqs) // Offset = Distance from the radius of the planet double groundLevel = body.pqsController.GetSurfaceHeight(pqs.PlanetRelativePosition) - body.Radius; - Debug.Log(" > Ground Level at Mod = " + groundLevel); + Debug.Log(" > Ground Level at Mod = " + groundLevel); if (body.ocean && groundLevel < 0) groundLevel = 0; @@ -126,14 +131,14 @@ void City2Fixer(PQSCity2 pqs) double builtInOffset = pqs.alt - groundLevel / (resize * landscape); pqs.alt = groundLevel + builtInOffset * resizeBuildings; - Debug.Log(" > PQSCity2 Alt = " + pqs.alt); + Debug.Log(" > PQSCity2 Alt = " + pqs.alt); } else { // Offset = Distance from the surface of the planet pqs.snapHeightOffset *= resizeBuildings; - Debug.Log(" > PQSCity2 Offset = " + pqs.snapHeightOffset); + Debug.Log(" > PQSCity2 Offset = " + pqs.snapHeightOffset); } } @@ -141,6 +146,8 @@ void GroupFixer(object mod, Vector3 REFvector) { // Moves the group Vector3 PQSposition = ((Vector3)GetPosition(mod)); + Debug.Log(" > Group center position = " + REFvector + ", (LAT: " + new LatLon(REFvector).lat + ", LON: " + new LatLon(REFvector).lon + ")"); + Debug.Log(" > Mod original position = " + PQSposition + ", (LAT: " + new LatLon(PQSposition).lat + ", LON: " + new LatLon(PQSposition).lon + ")"); if (body == FlightGlobals.GetHomeBody() && REFvector == new Vector3(157000, -1000, -570000)) { @@ -160,11 +167,13 @@ void GroupFixer(object mod, Vector3 REFvector) } } + // Update PQSposition + PQSposition = ((Vector3)GetPosition(mod)); // Spread or Shrinks the group to account for Resize Vector3 NEWvector = Vector3.LerpUnclamped(REFvector.normalized, PQSposition.normalized, (float)(resizeBuildings / resize)); SetPosition(mod, NEWvector); - Debug.Log(" > Mod lerped position = " + (Vector3)GetPosition(mod) + ", (LAT: " + new LatLon((Vector3)GetPosition(mod)).lat + ", LON: " + new LatLon((Vector3)GetPosition(mod)).lon + ")"); + Debug.Log(" > Mod lerped position = " + (Vector3)GetPosition(mod) + ", (LAT: " + new LatLon((Vector3)GetPosition(mod)).lat + ", LON: " + new LatLon((Vector3)GetPosition(mod)).lon + ")"); } void MoveGroup(object mod, Vector3 moveTo, float angle = 0, double fixAltitude = 0, double originalAltitude = double.NegativeInfinity) @@ -178,9 +187,6 @@ void MoveGroup(object mod, Vector3 moveTo, float angle = 0, double fixAltitude = LatLon origin = new LatLon(body.Get>("PQSCityGroups")[mod].normalized); Vector3 north = Vector3.ProjectOnPlane(Vector3.up, origin.vector); Vector3 east = QuaternionD.AngleAxis(90, origin.vector) * north; - Debug.Log(" > Group center position = " + origin.vector + ", (LAT: " + origin.lat + ", LON: " + origin.lon + ")"); - Debug.Log(" > Final center position = " + target.vector + ", (LAT: " + target.lat + ", LON: " + target.lon + ")"); - Debug.Log(" > Mod original position = " + (Vector3)GetPosition(mod) + ", (LAT: " + new LatLon((Vector3)GetPosition(mod)).lat + ", LON: " + new LatLon((Vector3)GetPosition(mod)).lon + ")"); // PQS Vectors (PQS, North, East) Vector3 oldPQS = Vector3.ProjectOnPlane(((Vector3)GetPosition(mod)).normalized, origin.vector); @@ -203,12 +209,13 @@ void MoveGroup(object mod, Vector3 moveTo, float angle = 0, double fixAltitude = // Calculate final position by adding the north and east distances to the target position // then rotate the new vector by as many degrees as it is necessary to account for the PQS model rotation SetPosition(mod, rotation * (target.vector + newNorth * northward + newEast * eastward)); - Debug.Log(" > Mod final position = " + (Vector3)GetPosition(mod) + ", (LAT: " + new LatLon((Vector3)GetPosition(mod)).lat + ", LON: " + new LatLon((Vector3)GetPosition(mod)).lon + ")"); + Debug.Log(" > Group final position = " + target.vector + ", (LAT: " + target.lat + ", LON: " + target.lon + ")"); + Debug.Log(" > Mod final position = " + (Vector3)GetPosition(mod) + ", (LAT: " + new LatLon((Vector3)GetPosition(mod)).lat + ", LON: " + new LatLon((Vector3)GetPosition(mod)).lon + ")"); // Fix Altitude if (originalAltitude == double.NegativeInfinity) originalAltitude = (body.pqsController.GetSurfaceHeight(origin.vector) - body.Radius) / (resize * landscape); - Debug.Log(" > Mod original altitude = " + originalAltitude); + Debug.Log(" > Mod original altitude = " + originalAltitude); FixAltitude(mod, (body.pqsController.GetSurfaceHeight(target.vector) - body.Radius) / (resize * landscape) - originalAltitude + fixAltitude); } @@ -220,7 +227,7 @@ void MoveGroup(object mod, Vector3 moveTo, float angle = 0, double fixAltitude = return ((PQSCity)mod).repositionRadial; else if (type == "PQSCity2") return ((PQSCity2)mod).PlanetRelativePosition; - else return null; + return null; } void SetPosition(object mod, Vector3 position) @@ -240,11 +247,18 @@ void FixAltitude(object mod, double fixAltitude) { string type = mod.GetType().ToString(); if (type == "PQSCity") - ((PQSCity)mod).repositionRadiusOffset += fixAltitude; + { + PQSCity pqs = (PQSCity)mod; + if (!pqs.repositionToSphereSurface || !pqs.repositionToSphereSurfaceAddHeight) + pqs.repositionRadiusOffset += fixAltitude; + Debug.Log(" > Fixed repositionRadiusOffset = " + pqs.repositionRadiusOffset); + } else if (type == "PQSCity2") - ((PQSCity2)mod).alt += fixAltitude; - - Debug.Log(" > Mod Fixed Altitude = " + fixAltitude); + { + PQSCity2 pqs = (PQSCity2)mod; + if (!pqs.snapToSurface) + pqs.alt += fixAltitude; + } } void Rotate(object mod, float angle) From d7b1d454311f7b5cd6f67bef461b50431206abed Mon Sep 17 00:00:00 2001 From: Sigma88 Date: Sun, 7 May 2017 02:34:11 +0200 Subject: [PATCH 12/23] debug and center calculation --- [Source]/Distribution/SigmaDimensions.dll | Bin 28160 -> 28672 bytes .../SigmaDimensions/PQSCityGroupsLoader.cs | 14 ++++++++------ 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/[Source]/Distribution/SigmaDimensions.dll b/[Source]/Distribution/SigmaDimensions.dll index 55f90999089d0e3169f6076b018978cbc2c5976d..66091e036131c363ff555a7650b84cfd63669742 100644 GIT binary patch delta 9849 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 T^>;~pYUB~)x=)4Ob=rRe?nVLp diff --git a/[Source]/SigmaDimensions/PQSCityGroupsLoader.cs b/[Source]/SigmaDimensions/PQSCityGroupsLoader.cs index 20aa229..334018b 100644 --- a/[Source]/SigmaDimensions/PQSCityGroupsLoader.cs +++ b/[Source]/SigmaDimensions/PQSCityGroupsLoader.cs @@ -53,8 +53,8 @@ void SaveGroups() string name = Group.GetValue("name"); CelestialBody body = FlightGlobals.Bodies.First(b => b.name == Group.GetValue("body")); if (string.IsNullOrEmpty(name) || body == null) continue; - Debug.Log("Planet name = " + body.name + (body.name != body.transform.name ? (", (A.K.A.: " + body.transform.name + ")") : "")); - Debug.Log("Group name = " + name); + Debug.Log("> Planet: " + body.name + (body.name != body.transform.name ? (", (A.K.A.: " + body.transform.name + ")") : "")); + Debug.Log(" > Group: " + name); // FIND GROUP CENTER @@ -84,9 +84,11 @@ void SaveGroups() if (center == null) center = GetCenter(M, body); + if (ExternalGroups.ContainsKey(body.name) && ExternalGroups[body.name].ContainsKey(name)) + center = GetPosition(ExternalGroups[body.name][name][0]); if (center == null) continue; if (Debug.debug && !debug.Contains(center)) debug.Add(center); - Debug.Log("Center position = " + center + ", (LAT: " + new SigmaDimensions.LatLon(center).lat + ", LON: " + new SigmaDimensions.LatLon(center).lon + ")"); + Debug.Log(" > Center position = " + center + ", (LAT: " + new SigmaDimensions.LatLon(center).lat + ", LON: " + new SigmaDimensions.LatLon(center).lon + ")"); // ADD PQS MODS TO THE GROUP @@ -99,7 +101,7 @@ void SaveGroups() if (PQSList.ContainsKey(mod)) continue; PQSList.Add(mod, center); - Debug.Log(" PQSCity >>> " + mod.name); + Debug.Log(" > PQSCity: " + mod.name); } } foreach (string city2 in M.GetValues("PQSCity2")) @@ -109,7 +111,7 @@ void SaveGroups() if (PQSList.ContainsKey(mod)) continue; PQSList.Add(mod, center); - Debug.Log(" PQSCity2 >>> " + mod.name); + Debug.Log(" > PQSCity2: " + mod.name); } } @@ -122,7 +124,7 @@ void SaveGroups() if (PQSList.ContainsKey(mod)) continue; PQSList.Add(mod, center); - Debug.Log(" external >>> " + mod); + Debug.Log(" > external: " + mod); } } From b31a905a8b0521dcc21dfbe037396729a4d10644 Mon Sep 17 00:00:00 2001 From: Sigma88 Date: Sun, 7 May 2017 03:35:02 +0200 Subject: [PATCH 13/23] stuff --- [Source]/Distribution/SigmaDimensions.dll | Bin 28672 -> 29696 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/[Source]/Distribution/SigmaDimensions.dll b/[Source]/Distribution/SigmaDimensions.dll index 66091e036131c363ff555a7650b84cfd63669742..65ebe5b13e47e3704c5de0e59c171a637214c385 100644 GIT binary patch delta 9804 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 delta 9022 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 L)1TSyA^QIUzg33# From 7767cd998d264d08cba4c414e80a80b03b3469de Mon Sep 17 00:00:00 2001 From: Sigma88 Date: Sun, 7 May 2017 03:35:09 +0200 Subject: [PATCH 14/23] reorder --- .../SigmaDimensions/PQSCityGroupsLoader.cs | 44 +++++++++++++------ 1 file changed, 31 insertions(+), 13 deletions(-) diff --git a/[Source]/SigmaDimensions/PQSCityGroupsLoader.cs b/[Source]/SigmaDimensions/PQSCityGroupsLoader.cs index 334018b..09b1eec 100644 --- a/[Source]/SigmaDimensions/PQSCityGroupsLoader.cs +++ b/[Source]/SigmaDimensions/PQSCityGroupsLoader.cs @@ -84,17 +84,32 @@ void SaveGroups() if (center == null) center = GetCenter(M, body); - if (ExternalGroups.ContainsKey(body.name) && ExternalGroups[body.name].ContainsKey(name)) - center = GetPosition(ExternalGroups[body.name][name][0]); - if (center == null) continue; - if (Debug.debug && !debug.Contains(center)) debug.Add(center); - Debug.Log(" > Center position = " + center + ", (LAT: " + new SigmaDimensions.LatLon(center).lat + ", LON: " + new SigmaDimensions.LatLon(center).lon + ")"); + } + + foreach (string planet in ExternalGroups.Keys) + { + UnityEngine.Debug.Log("SigmaLog: EXTERNAL PLANET - " + planet); + foreach (string group in ExternalGroups[planet].Keys) + { + UnityEngine.Debug.Log("SigmaLog: EXTERNAL GROUP - " + group); + UnityEngine.Debug.Log("SigmaLog: EXTERNAL MODS COUNT - " + ExternalGroups[planet][group].Count); + } + } + if (center == null && ExternalGroups.ContainsKey(body.name) && ExternalGroups[body.name].ContainsKey(name)) + center = GetPosition(ExternalGroups[body.name][name][0]); + if (center == null) continue; + if (Debug.debug && !debug.Contains(center)) debug.Add(center); + Debug.Log(" > Center position = " + center.value + ", (LAT: " + new SigmaDimensions.LatLon(center).lat + ", LON: " + new SigmaDimensions.LatLon(center).lon + ")"); + - // ADD PQS MODS TO THE GROUP + // ADD PQS MODS TO THE GROUP + if (Group.HasNode("MODS")) + { + ConfigNode M = Group.GetNode("MODS"); foreach (string city in M.GetValues("PQSCity")) { - PQSCity mod = body.GetComponentsInChildren(true).First(m => m.name == city); + PQSCity mod = body.GetComponentsInChildren(true).FirstOrDefault(m => m.name == city); if (mod != null) { @@ -106,12 +121,15 @@ void SaveGroups() } foreach (string city2 in M.GetValues("PQSCity2")) { - PQSCity2 mod = body.GetComponentsInChildren(true).First(m => m.name == city2); + PQSCity2 mod = body.GetComponentsInChildren(true).FirstOrDefault(m => m.name == city2); - if (PQSList.ContainsKey(mod)) continue; + if (mod != null) + { + if (PQSList.ContainsKey(mod)) continue; - PQSList.Add(mod, center); - Debug.Log(" > PQSCity2: " + mod.name); + PQSList.Add(mod, center); + Debug.Log(" > PQSCity2: " + mod.name); + } } } @@ -151,12 +169,12 @@ void SaveGroups() info.Value[2].SetFromString(C2.GetValue("originalAltitude")); else info.Value[2].SetFromString("-Infinity"); Debug.Log("Original group altitude = " + (info.Value[2].value == double.NegativeInfinity ? "[Not Specified]" : info.Value[2].value.ToString())); - + if (!body.Has("PQSCityGroupsMove")) body.Set("PQSCityGroupsMove", new Dictionary[]>>()); var MoveList = body.Get[]>>>("PQSCityGroupsMove"); - + if (!MoveList.ContainsKey(center.value)) MoveList.Add(center.value, info); From dd6ad955171281e30850046812923436643ad186 Mon Sep 17 00:00:00 2001 From: Sigma88 Date: Sun, 7 May 2017 03:57:35 +0200 Subject: [PATCH 15/23] refvector --- [Source]/Distribution/SigmaDimensions.dll | Bin 29696 -> 29696 bytes [Source]/SigmaDimensions/SigmaDimensions.cs | 4 ++-- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/[Source]/Distribution/SigmaDimensions.dll b/[Source]/Distribution/SigmaDimensions.dll index 65ebe5b13e47e3704c5de0e59c171a637214c385..58bc8c723999c3c97ebcad6fa39d819097bd0cd7 100644 GIT binary patch delta 6107 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 delta 6228 zcmZ`-33$`Tm4EZUB}>MC$@oCVmt^~IOE$jnjqyb|4P*@_+%$#~Fd&c}OluPX=FA0T zO0r4F*FYe^h9u1=*qo#Rn&#NBEG^B3Z@t-t(k)3ybCk{2oBhnbng8Fiol``_{c#&)906C_?)E0Qef}WLjrT4633C&}++?F&cCd@dbM%~m;Ll|YT{6}q zD`eBX7+a9)`JsFTCo~)T?qa<-;Bk#JwjxM)YEZZO6P zRuD@W)4mp|i}&4DEMAev{BIhHFjx>)QpRqZU0(U~EU?mqRfsp5F$5u(cO# zAwS~`7L@V&cvestuVV)@bC?B%D>>QLFVqWlse32Ng1eBgB`(v;0(z9Kj|=Wb0d6E_ zq!*el09;^TiM3Z9`|kGbPe)NLDLq_X@g|<#jw-fiD)b6hxzUCin{f|G))CMvx*6hU zAh-gB!5<@WS5_=XLszA-lA$Uvu*}*~HxYHS^2cQB=xso$M!y|%P?F`Y-ONOKtr5%S zP_0+T8?6w=Baq2Y+VElYD)X$ZLPMOLpCq~`>JxDfe~a78RWmRe)8G;QmRUkDh;{~! zrnqZdHPK^Gr`Ms2m(hh@Jy^qWe3rg?y*}WwxWlUWpq|Pio?uplJH^RsLW94+)nL|y zM$jkdjl3o>?@f9WE)H@q7IA6W!%js02Ur6dM$`anV10sF0$7^cQL}2_09!a$ zFGP{9CPv^7jxX-dln67(Ty9zgv`c6S2&Cz5&C;{64qu*FZ93!X;-%gfv$0p|zt zE}Mb;H?g%0I3Jf9mSHjP!0&K=pB(^K91^iY59eP%y)N7>O+VoO%!Zl$XB6B^PmBpH z8wT+58jYlDvWqzOTlwt7-ov(b~ibnl>5z-9S4I>_;p1h=9qfgtd@xe@Oc!h3Eu9Ou#j1d|Okc3d{XzG0O4ZWRO zM9OJVTA|?A=m%*Y)@(_O7b-bQs?^X8ZVCTpTsKJ&x^dYgX3bQw`LDEV-sl?$*J>eH zDx8U<`W>2xSNa#}X+pC`9U0BST8%EuC?=esdRRx zPk7nnKAM>#^s{a|Z!=4WhP5kq7&b;_!%p?42|Mg`wReGV%uavpU8jCw zhxKB2gk2kSrY}j&h++5?$6I{b__H`!yu@@6M8k*qcDMw7Q0>wCaxq%ql_m|lDd`zs zvS!_n5>3xb&K|lPqjpD4J7u`t*sQ3X!t6)~y(eq2gYA#3E%*kI3>!V0RU5_92{th<-dp%^856SHD#5#kxGA9sKI0D?cUYFqrfVw- zx6|eP>vvGxQ23?-i$8v3{FcC+Kvmux@-E$**E!;h7Ss9uRL1#<-@{JrxaCJV7!Nk?tULhh@I5G zEoJ3kgw$Oq!g$QO zk0ELTysEl5Z6XRhG;8k0<5bc)I zx+Nko`nh^bDTDDsHhLqFhaL{uijnS%Ekk;QFuKT5R*20nNhQ*^#bT8iG@?NgOjZdz zA>o^7IaYMbhS8y51%u2y5AGsl$OPi#*Z4!aFg z*d-iPU2qZ~25g9J!ZFniDSi_zR)2v(cSX^wY7#sgMd#Epa4L#Ep!wyw;eSz6p)X)s zzZRoF8fcX!DzyKrng(&~L4f1TwEaQNfUO+uOnTm~KqegEXn)d4``2nFoaE?nIHBG` zba|M}3w<1Ig-WLaURYjZ`n+FO!U$dXKmahEdLh8kpz3wJ|Jm?AviGZAm{M<|Dm!RC z_@u!^lkBRN1;;0u=owqAmIF7Zn23cPfMrunw7{ln`Ec1n--tEV(KRYN>`=Rq&*L|OF+yBa96 zWN$&ORx?620m4m|a3-0gO&B4pg?X0jV^X2jj*v}+)s}1{I-Ll+EOZhkX?1YKLbaq; ztB11|`ZbQw0H1PXPOuUF93D2qM)=%P&43wNBg8kG$xn5(XiZRHp=`%IL`@b7+FG

t#`}T7PFV19WE8xC_DKNm1 zxf7;9-Yl+(%XChj0?VRkkv0`BaAeMD+K4<&gDYIt3vHMuwzUXWG4`C_YiIrYA{VQ= z#c-TB1ODFb73YB0Stg!=WJ!8IZ z3fIxIPnZKMoloN=?KsH{az%YxT7#Mb`G%C(K9l-MpW`d3-?C+?xr~$iABhNS1yTM0 zQsi{{)kN>wa(OEGZ?y^OMkk}sX^h?!nq-@>S8A3|5WCze-$FmrAy-%-u9fS_7-<0N ziBH-lpMr7D58)6gkWR~2!H9iBK13!+=j2YFpC>`Ezb~^$F33f~tB&8%a9#D>Ooe45 zPst#Mq$c?~*X#p`?SiW?OJsh&6N;3p@VIR$(u>k^|;1i^Em}v(bMUE3U%r&Gh!WT*|P}pWGfEd`U6@VL0LIHT-C{i!H zgwzkeLRtbhkygXEVQd;Xm=3qG-@^L~Aq`!$L5-~u+F_1uDms12*2ep*uz%XN2kFPQ z=a93+b^`miZ0EW3_s|XZ*+kNTAvSW_#%V97&vAO5)8BI%BMMxVQQFerUwBS($k}q9 zJXzi)AC~*%n{u`CkV2J1$}7rgMa2`QN{}+8@zQK*nY3D3FZD`~Nz3FF z@^QMMF^7CepKP3k^s~nK<5!7i;RUe-zn{T0=>`0L1`DuVAf1I{QVD)XlU3qqGEFKW zwQ?irk=K%Gk?yABI{nd-BwnYrU#k6`FV`>)Awg2knNF4YYvb| T?7IIIg(FoFJ@ggXU#R{+$MWJO diff --git a/[Source]/SigmaDimensions/SigmaDimensions.cs b/[Source]/SigmaDimensions/SigmaDimensions.cs index 2095aa2..cfd3f7e 100644 --- a/[Source]/SigmaDimensions/SigmaDimensions.cs +++ b/[Source]/SigmaDimensions/SigmaDimensions.cs @@ -159,9 +159,9 @@ void GroupFixer(object mod, Vector3 REFvector) { var MovesInfo = body.Get[]>>>("PQSCityGroupsMove"); - if (MovesInfo.ContainsKey(PQSposition)) + if (MovesInfo.ContainsKey(REFvector)) { - var info = MovesInfo[PQSposition]; + var info = MovesInfo[REFvector]; MoveGroup(mod, info.Key, (float)info.Value[0], info.Value[1], info.Value[2]); REFvector = info.Key; // Change the REFvector the the new position for Lerping } From bf9aa5896ee91d2dae92a04e272d9619bd999009 Mon Sep 17 00:00:00 2001 From: Sigma88 Date: Sun, 7 May 2017 04:24:01 +0200 Subject: [PATCH 16/23] terrainshift --- [Source]/Distribution/SigmaDimensions.dll | Bin 29696 -> 29696 bytes [Source]/SigmaDimensions/SigmaDimensions.cs | 20 +++++++++++++++----- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/[Source]/Distribution/SigmaDimensions.dll b/[Source]/Distribution/SigmaDimensions.dll index 58bc8c723999c3c97ebcad6fa39d819097bd0cd7..aee964a2c1062108691d5a531aa736bfe3622f05 100644 GIT binary patch delta 2494 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 Mod original altitude = " + originalAltitude); - FixAltitude(mod, (body.pqsController.GetSurfaceHeight(target.vector) - body.Radius) / (resize * landscape) - originalAltitude + fixAltitude); + FixAltitude(mod, (body.pqsController.GetSurfaceHeight(target.vector) - body.Radius) / (resize * landscape) - originalAltitude, fixAltitude); } Vector3? GetPosition(object mod) @@ -243,21 +243,31 @@ void SetPosition(object mod, Vector3 position) } } - void FixAltitude(object mod, double fixAltitude) + void FixAltitude(object mod, double terrainShift , double fixAltitude) { string type = mod.GetType().ToString(); if (type == "PQSCity") { PQSCity pqs = (PQSCity)mod; if (!pqs.repositionToSphereSurface || !pqs.repositionToSphereSurfaceAddHeight) - pqs.repositionRadiusOffset += fixAltitude; + pqs.repositionRadiusOffset += terrainShift; + + pqs.repositionRadiusOffset += fixAltitude; Debug.Log(" > Fixed repositionRadiusOffset = " + pqs.repositionRadiusOffset); } else if (type == "PQSCity2") { PQSCity2 pqs = (PQSCity2)mod; - if (!pqs.snapToSurface) - pqs.alt += fixAltitude; + if (pqs.snapToSurface) + { + pqs.snapHeightOffset += fixAltitude; + Debug.Log(" > Fixed snapHeightOffset = " + pqs.snapHeightOffset); + } + else + { + pqs.alt += terrainShift + fixAltitude; + Debug.Log(" > Fixed PQSCity2.alt = " + pqs.alt); + } } } From 856ff5df081cfe869c4a5c0b605c9f35df92d7e4 Mon Sep 17 00:00:00 2001 From: Sigma88 Date: Sun, 7 May 2017 04:28:32 +0200 Subject: [PATCH 17/23] plugin --- .../Dimensions/Plugins/SigmaDimensions.dll | Bin 25088 -> 29696 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/GameData/Sigma/Dimensions/Plugins/SigmaDimensions.dll b/GameData/Sigma/Dimensions/Plugins/SigmaDimensions.dll index c4509b36fe82f46ee23009f8bc316faec5f5481a..aee964a2c1062108691d5a531aa736bfe3622f05 100644 GIT binary patch literal 29696 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 OK0DHXfBwI-!2bo;Q9{oE From 9d227006e9731ef866f927f57904f5d7a9afdb33 Mon Sep 17 00:00:00 2001 From: Sigma88 Date: Sun, 7 May 2017 17:24:14 +0200 Subject: [PATCH 18/23] Do not move KSC Kopernicus can take care of that --- [Source]/SigmaDimensions/PQSCityGroupsLoader.cs | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/[Source]/SigmaDimensions/PQSCityGroupsLoader.cs b/[Source]/SigmaDimensions/PQSCityGroupsLoader.cs index 09b1eec..7ffb2fd 100644 --- a/[Source]/SigmaDimensions/PQSCityGroupsLoader.cs +++ b/[Source]/SigmaDimensions/PQSCityGroupsLoader.cs @@ -146,6 +146,14 @@ void SaveGroups() } } + + // REMOVE KSC FROM THE LIST + + PQSCity ksc = FlightGlobals.GetHomeBody().GetComponentsInChildren(true).FirstOrDefault(m => m.name == "KSC"); + if (PQSList.ContainsKey(ksc)) + PQSList.Remove(ksc); + + body.Set("PQSCityGroups", PQSList); @@ -207,6 +215,14 @@ void SaveGroups() PQSList.Add(mod, (Vector3)center); } + + // REMOVE KSC FROM THE LIST + + PQSCity ksc = FlightGlobals.GetHomeBody().GetComponentsInChildren(true).FirstOrDefault(m => m.name == "KSC"); + if (PQSList.ContainsKey(ksc)) + PQSList.Remove(ksc); + + body.Set("PQSCityGroups", PQSList); } } From 23bffab65e54e44c3ef31e59de0fc86319f5143a Mon Sep 17 00:00:00 2001 From: Sigma88 Date: Sun, 7 May 2017 18:39:58 +0200 Subject: [PATCH 19/23] better debugging tools --- [Source]/Distribution/SigmaDimensions.dll | Bin 29696 -> 30208 bytes .../SigmaDimensions/PQSCityGroupsLoader.cs | 1 + [Source]/SigmaDimensions/SigmaDimensions.cs | 2 +- 3 files changed, 2 insertions(+), 1 deletion(-) diff --git a/[Source]/Distribution/SigmaDimensions.dll b/[Source]/Distribution/SigmaDimensions.dll index aee964a2c1062108691d5a531aa736bfe3622f05..f6d9c8665bf812e4a9948c56581863acb095d7ea 100644 GIT binary patch delta 12973 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

    5wo-SI{cFq{l&O;6L4eS#-N%T=w_W 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°Ei$IjY7e{7w*=T$5Bmc1rqg|M@S_#q!#`u>vH7fc^7aF1elfv7AZTJTXsf%uE`d!A_|&X-x*Z(zt|vDKK|Qv-&J) z7M-7m_iDatD-kHZoecSp|2gL_KOe6_olTFk=_^CM^#0?t2A_B(b2a=IYOAY_5tmQH zE~Ix`qH>s&#ov$8lV1>%UDfXR4&jPBc9pv0vjMK|1+)T^aGlXQj2Q)k9KI{KF64BH zy2ZlWvF*#rk!?Dums8^u;Mh_fpW&kb{{U|gfR9^xKq$CW?+*DsS9@)I{lD*bi~i_UcxisKtS|ZfH|nU z95xF$Nx+%5cw8#r5&^FU%%imeZU!u-mjE?d!j9mt&}-RU$P8=Q9e|rb$w7ZGGcXP% z{)m4TUjHhL#efg^uSIjv7`l=6u=D<{fYXCJ=m4G8_W}C#`vJ!R;@_EU2|Y;r*+!h| z1N5l|21^>!>`7xbfhr`cP6}5zZ1{e-9Pzr)?(2v?z+V7;qO*5d00> zF7%vd_sJi!^K4k)Q^>apct*2T=>&T@?3daoFI)h)z$lT9(p^|h8`e<;%EEvt&xVUt z@(-$XgM63A+G{u7NW8yv`9XR$R*?x>^S0gl#a_SnDw;$ZFxI8 z6SC#=klZPMMIQw3u;mT(588wHmv<_5Yl~32hs_Eemba1`d{y2F!x!YeA~suvbN2}P zcLe=WLBB`PkBM#K@u*cE6;a$P;8wA)djvctHia7=s+^>I0|kp!OV`1wa)EL6WIR4){Y%Gp_cys`mYiG9LG_Qm;7I{Z>6d6b2TFBDlRA@qp-%9%X*@a`kgen?FRLu|Zq zO5Gy1-~dVf(<*oL4Rx6Ga`0E`0qQ|pTh8j#Hdf9y;mnt_l|fE91cz$bZd+W2T?R*3 zXdl(Go54O$hr^W`--wt7QDv(7o-ptZg~B(2J5T23zm$e+=jlG*Re=Abv}>2L&cG(X zQQ@0FnHX#bJSF!){meGL>K+i1X>&ThaWdJM3V{uVGsuL6#s zj{wKf=YUhhcos3tS|G;Ds2t;!G{HB8*3)IanNa#2-%2rFi}5qQJ%GRVJp#&AzM~j_ z={qI37br#ReB))-0UxIbxKh9!0zM+(DFH7CC`&?8K!(=|{P5}QnNqpzloC>hs4;bh zx?6oj{f+tuwME;j-J>1W{!V*Z(@|thyx0)lc2=R}e5r7_F~H$1eh#0}Hv-lLZvagB zIAkFXU-#ea=xyb88{XI$-poR%pVRP9EEr7(l<+TVO^j#q-@oV*gpc7@gDB~=oXP>O zL=fBPQo4>#(PH*(b|)Jk70W~AN%Cy@Zuy}6wEVXGG5%g2PzsbvWwf$LX;%`;^~!GL ze&uR)wR+R-{2%%%UF1C0Hels@9${^o+}j4 z70@wWCqDsv1e>T%VV&wmHcxqi=5;?g^%>?|m}XXupq2^ED^}n!y?x7+_Dx&blM}8H z_=2l%XrG=;Tz_4M^U(BI_y0^kr*xm6{d>Lp=L>gA-9Nm1pTe4*Y0DeC?^&L!;kQux zNbBpH-wIBC;QM#~Z0fe^?q{xPkY-%ar{$U7mco%mk$5;VC(@Z0*(ep8o29%+*LEi1 z6Ile1XLjvkpmGf3JEbs}1DMK+!<^tWw&%t6OHxVLh>VPM-7DtIWW~jNiZ>gN1CqJ9 zgsXNow?}7eXCZDusPCgP(v&vB^+)EU6}Y}({zFn^jysXtaNcYm#kM=z>iKM!bNT8~ z^Y=(myx!+Pa8I_Ufie<$U1q;!_T;Jbf@8 zB`)H;bZxFr><$-n&Ru(xy5ESv%Vlep*9kfhsQjj3t~ukgbAHX>;Hi6U-{oT5QDqOl>+uuhg0=-4Z@vGs1uLJL_rj9W)$!dQJl(BqG+1N?(n9)k4Ih{7 gFVB}2-rhZW)61+oeBB>qY0KDdbIZqUf202Y03MaQUH||9 diff --git a/[Source]/SigmaDimensions/PQSCityGroupsLoader.cs b/[Source]/SigmaDimensions/PQSCityGroupsLoader.cs index 7ffb2fd..a480cb2 100644 --- a/[Source]/SigmaDimensions/PQSCityGroupsLoader.cs +++ b/[Source]/SigmaDimensions/PQSCityGroupsLoader.cs @@ -53,6 +53,7 @@ void SaveGroups() string name = Group.GetValue("name"); CelestialBody body = FlightGlobals.Bodies.First(b => b.name == Group.GetValue("body")); if (string.IsNullOrEmpty(name) || body == null) continue; + Debug.Log(">>> Sigma Dimensions Log: PQSCityGroupsLoader <<<"); Debug.Log("> Planet: " + body.name + (body.name != body.transform.name ? (", (A.K.A.: " + body.transform.name + ")") : "")); Debug.Log(" > Group: " + name); diff --git a/[Source]/SigmaDimensions/SigmaDimensions.cs b/[Source]/SigmaDimensions/SigmaDimensions.cs index 045df04..d46e5c9 100644 --- a/[Source]/SigmaDimensions/SigmaDimensions.cs +++ b/[Source]/SigmaDimensions/SigmaDimensions.cs @@ -18,7 +18,7 @@ public class SigmaDimensions : MonoBehaviour void Start() { Debug.debug = false; // Reset Debug - Debug.debug = (PQSCityGroups.debug.Count > 0); Debug.Log(">>> Sigma Dimensions Log <<<"); + Debug.debug = (PQSCityGroups.debug.Count > 0); Debug.Log(">>> Sigma Dimensions Log: PQSCityGroups <<<"); foreach (CelestialBody cb in FlightGlobals.Bodies) { From f3ce35ab4bf750e0fd0e02484efdb83d6455b243 Mon Sep 17 00:00:00 2001 From: Sigma88 Date: Sat, 27 May 2017 01:50:15 +0200 Subject: [PATCH 20/23] changed references and updated to 1.3 --- [Source]/Distribution/SigmaDimensions.dll | Bin 30208 -> 30208 bytes .../SigmaDimensions/SigmaDimensions.csproj | 12 ++++++------ 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/[Source]/Distribution/SigmaDimensions.dll b/[Source]/Distribution/SigmaDimensions.dll index f6d9c8665bf812e4a9948c56581863acb095d7ea..05ca664869dce22f4ada4dca28d86e84313bc48d 100644 GIT binary patch delta 75 zcmZp8!`SeKaY6?(`+kj$-OetI44cop+>{lNFWI=fz_iYBgMQv`cd@(Kn|CBBaDfy} fzMUf};Qnpi>d20GpQYQEJ(#=xeZgjy+&>%utk)r8 delta 75 zcmZp8!`SeKaY6_49#{U2-OetIjGNE9+>{kKecF4?bpE%lt>1$lo>pGxx_L*E0vAZp f%u False - ..\..\..\Sigma-Binary\[Source]\KerbalSpaceProgram\KSP_Data\Managed\Assembly-CSharp.dll + ..\..\..\[References]\KerbalSpaceProgram\Assembly-CSharp.dll False - ..\..\..\Sigma-Binary\[Source]\Kopernicus\Kopernicus.dll + ..\..\..\[References]\Kopernicus\Kopernicus.dll False - ..\..\..\Sigma-Binary\[Source]\Kopernicus\Kopernicus.Components.dll + ..\..\..\[References]\Kopernicus\Kopernicus.Components.dll False - ..\..\..\Sigma-Binary\[Source]\Kopernicus\Kopernicus.OnDemand.dll + ..\..\..\[References]\Kopernicus\Kopernicus.OnDemand.dll False - ..\..\..\Sigma-Binary\[Source]\Kopernicus\Kopernicus.Parser.dll + ..\..\..\[References]\Kopernicus\Kopernicus.Parser.dll False - ..\..\..\Sigma-Binary\[Source]\KerbalSpaceProgram\KSP_Data\Managed\UnityEngine.dll + ..\..\..\[References]\KerbalSpaceProgram\UnityEngine.dll From 728b41f95d400084b8e5f1688c78c243f7a6aebf Mon Sep 17 00:00:00 2001 From: Sigma88 Date: Sat, 27 May 2017 16:48:21 +0200 Subject: [PATCH 21/23] readme, reindent and recompile --- .../Dimensions/Plugins/SigmaDimensions.dll | Bin 29696 -> 30208 bytes README.md | 2 +- [Source]/Distribution/SigmaDimensions.dll | Bin 30208 -> 30208 bytes [Source]/SigmaDimensions/SigmaDimensions.cs | 2 +- 4 files changed, 2 insertions(+), 2 deletions(-) diff --git a/GameData/Sigma/Dimensions/Plugins/SigmaDimensions.dll b/GameData/Sigma/Dimensions/Plugins/SigmaDimensions.dll index aee964a2c1062108691d5a531aa736bfe3622f05..aa846a3762949e58aeb1e84003d8ea220161f67a 100644 GIT binary patch delta 12974 zcmb_@dwf*Ywg1}ZJx_9G@`5Df4JVmNgb*Y^AOXUg02M(VT11FI2@XsUYKJgM6)YAi zc(lEMRY9$yXtlxKs)$u={i!XzUg>SMsO47t*dNyVqyF@At>J$6K4&JADE;-1-{g~Z z_ImEM*V=pSbtcgD0qgpZ?fFjG^?R$9ko)-~m6iC|2%;N6&>Z5|ckO*-QP97OXdWlr zNA!ujw>0ekIguausoRJO?NTXfFJZ&ITiZb@!S494>&!-a>GG0Xy2GsksM?WidIUd-(%&%`EXV!%en?4 zHF9>ukMY+rwyp*UE98l<;}-IP<@U0$X_`^fp>-_hV#r`5C8T2Z5*CRP$Qm28;IHnX`i;eWyz+9o4Gu@#s&b{+RGr{QkID3oKZjZZg zXymAvxv^DTsf~l{FXzH}ky)WUYc(I{Q~Wiqm!F{*_bIeNOy}yF`S!2P!sQD>14Br%%XS? zW{8c2dU$AVxHyvRK&Z8FiCJO}HH-ImB3#%}c`=-wh*{FBjRCh~GoQ`Fw@#^9nr(fP zl29)*%cA4SRL#=ZP260$Sss-l)tr!u$+tkK_zBDiA%5C2juequoVPe!Y!;hCzqht& zGg89cyO4ITA~#$K_Zql+!^~l3g;}}3Gskf+8N;@Tn8SKCtVHWbaMM2S-*9s{_Ydw^ zrscRd+;OkUta9BO-rqf+3ipP8g?p87uhOhED^l)>z2=EcBC?NXmnEys>L_OJqk6>- zHezcqe{3svA`)o|MXXLfjPg)L9ban98u(Jd3H^PU#C?fc-++RXU4r^HU^PF(evS0z zVtb`_bCN_!aZeI&YJ4o3n) zT~Hi&BwX^Pk3>HKek79ap-G*Iz9SK;bA<=*M)fYJ%q@rO;$wAVYB({Fkl*ob&aiF< zG)Kgr;wu-$d$c(^S`ezUZUG~Ae~Kk;o}BHVVRu6|Es)q@KUo%@0J%S*&qCgQ$3hZf!?lzXW6UwpB6p5_Zb7j6EJU)?%=k>M<=DLj!!#qY1KzsJ z{`g{TPMWcmGpt(yB5K@*3O}Pscl&wbJ)DxdS{lp-ezkB~$9K4zA7>6%ix3L%^Eb*I z<<`8|P6+U=FxDI!HPd9XE_NFju97**F@Xz$tnY$8?!ixaX||30lH|As75k?HrBMry zH^+y@i7TWN_aW-8Q}@RwIF@;Fz(%;S;c?WzP@{8oOdtzAgV!9N$b)QU&5&Uxto3T+ z`4PDioXYUzPR=qXTS2~tiRQ#?YZ0$;HDzC##+=|B@3m0G>LM&JJjI-Xz23;DZ0gNH z7z(6IspZCE(6ca`7H$ePrH@OC*#Z+6ut&{_soNa$^YBeIr$$3AHRC={$?4qV<}ZgM z<)6$6bQi>{K0|Fn)25o7O9C=Var6%X^%2 zdH?kb!5-I}YxWhxYNAO;ct=U}Jit|W=E_8a@Z=v(M<+->#ke@wc^-={~bNO8)%)~iiQ1zChQu?rFF*bU$po8Hy_9ZskyU;$6GmMg>M z2$Uyt7=&bf%GMB7?45cfbkL5RX)q zYf29+yKjxCKB+Z|R!Ee2yf{RMWdwN&WUlCIdorRNnd`bB8Wo|;-!>u{L2kKZknJB8 zRwnO+FR{A-yqajnMC*?vhviKr=mIn6s@Ft6BqWf@e0ftPBnGA}5(p_y-7yt^gpBIB zQpfjUzY}{-ku0pmOVx`yet>6}j2)(Q{EI!es8pJw+Z&52**^ORMWy~FNQwo8$hxp% zzfn}<_f#hCfrhCp?YzhSqG($6y}+#d05%oj+-(DJ&OUluG#p5V)^QNr%B~`N{m{Iq zFvu?szY#5$5;_-;-Op_-1&H^}w>0*E{lw5o!3ROk?UlMzNXBonFAg12IqbEJ0#lK*bX`%auSMUoOYY6|Ayk`f;87yn|^k6>R);2
    @*_8PCrnd(8Fb{t6JUvU$5pg{ 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 delta 12398 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 diff --git a/README.md b/README.md index c76402e..1b2cc41 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ **The Universal Rescale Mod for KSP** -KSP Forum Thread: http://forum.kerbalspaceprogram.com/index.php?/topic/126548-0 +KSP Forum Thread: http://forum.kerbalspaceprogram.com/index.php?/topic/126548-0/ Download Latest Release: https://github.com/Sigma88/Sigma-Dimensions/releases/latest diff --git a/[Source]/Distribution/SigmaDimensions.dll b/[Source]/Distribution/SigmaDimensions.dll index 05ca664869dce22f4ada4dca28d86e84313bc48d..aa846a3762949e58aeb1e84003d8ea220161f67a 100644 GIT binary patch delta 68 zcmZp8!`SeKaY6@k+C_r|#3O51V%+DR6;gC*RJI6qvJU Ys`tGp2mc0{4{XA7C;Z&ZlKY1P07V2Je*gdg delta 68 zcmZp8!`SeKaY6?(`+kj$-Lgpn@+BLW7ns&LZqU#B?JjmVd-IMY1ul^6 Date: Sat, 27 May 2017 16:48:28 +0200 Subject: [PATCH 22/23] changelog and version --- Changelog.txt | 7 +++++++ GameData/Sigma/Dimensions/Configs/Sigma-Dimensions.version | 6 +++--- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/Changelog.txt b/Changelog.txt index dff3dff..0b3d192 100644 --- a/Changelog.txt +++ b/Changelog.txt @@ -1,3 +1,10 @@ +**v0.7.8** + +- Updated to KSP 1.3 and Kopernicus 1.3.0-1 +- Improved PQSCityGroups feature +- Improved debugging tools + + **v0.7.7** - Added the parameter groundTiling diff --git a/GameData/Sigma/Dimensions/Configs/Sigma-Dimensions.version b/GameData/Sigma/Dimensions/Configs/Sigma-Dimensions.version index ead8407..e4827a3 100644 --- a/GameData/Sigma/Dimensions/Configs/Sigma-Dimensions.version +++ b/GameData/Sigma/Dimensions/Configs/Sigma-Dimensions.version @@ -13,13 +13,13 @@ { "MAJOR": 0, "MINOR": 7, - "PATCH": 7, + "PATCH": 8, "BUILD": 0 }, "KSP_VERSION": { "MAJOR": 1, - "MINOR": 2, - "PATCH": 2 + "MINOR": 3, + "PATCH": 0 } } From 13120550a6f352c0edea306281f9446b25abc6f4 Mon Sep 17 00:00:00 2001 From: Sigma88 Date: Sat, 27 May 2017 16:49:36 +0200 Subject: [PATCH 23/23] fix changelog --- Changelog.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Changelog.txt b/Changelog.txt index 0b3d192..49104ce 100644 --- a/Changelog.txt +++ b/Changelog.txt @@ -1,6 +1,6 @@ **v0.7.8** -- Updated to KSP 1.3 and Kopernicus 1.3.0-1 +- Updated to KSP 1.3.0 and Kopernicus 1.3.0-1 - Improved PQSCityGroups feature - Improved debugging tools