// Normalize predicted future locations by parent position override public void HandlePostMoveDraws() { // Clear old draws. foreach (LineRenderer line in lookAheadLines) { Destroy(line.gameObject); } lookAheadLines.Clear(); // Get flyBys *BEFORE* position normalization. List <bool> flyBys = FindAllPredictedFlybys(); // Normalize drawn display positions to primary parent's position SystemObject parent = PrimaryGravityParent(0).GetComponent <SystemObject>(); for (int i = 0; i < frames_lookahead; i++) { projectedLocations[i] -= parent.NetDelta(i); } // Find all flyBys and draw them in a different color than non-flyBys. bool flyByInProgress = flyBys[0]; List <Vector2> flyBy = new List <Vector2> { }; for (int i = 0; i < frames_lookahead; i++) { flyBy.Add(projectedLocations[i]); // Flyby status changed, time to start a new line. if (flyByInProgress != flyBys[i]) { LineBetweenPositions(flyBy, flyByInProgress); flyBy = new List <Vector2> { }; flyByInProgress = !flyByInProgress; } } LineBetweenPositions(flyBy, flyByInProgress); }