protected bool Equals(LegacySegmentData other)
 {
     return(Features == other.Features &&
            string.Equals(TreeLeft, other.TreeLeft) &&
            string.Equals(TreeMiddle, other.TreeMiddle) &&
            string.Equals(TreeRight, other.TreeRight) &&
            string.Equals(StreetLight, other.StreetLight) &&
            (Features.IsFlagSet(FeatureFlags.RepeatDistances)
         ? Vector4.Equals(RepeatDistances, other.RepeatDistances)
         : !other.Features.IsFlagSet(FeatureFlags.RepeatDistances)));
 }
        public LegacySegmentData(LegacySegmentData segmentData)
        {
            if (segmentData == null)
            {
                return;
            }

            Features        = segmentData.Features;
            TreeLeft        = segmentData.TreeLeft;
            TreeMiddle      = segmentData.TreeMiddle;
            TreeRight       = segmentData.TreeRight;
            StreetLight     = segmentData.StreetLight;
            RepeatDistances = segmentData.RepeatDistances;

            TreeLeftPrefab    = segmentData.TreeLeftPrefab;
            TreeMiddlePrefab  = segmentData.TreeMiddlePrefab;
            TreeRightPrefab   = segmentData.TreeRightPrefab;
            StreetLightPrefab = segmentData.StreetLightPrefab;
        }