public void SetTree(NetInfo prefab, LanePosition position, TreeInfo tree) { var newSegmentData = new SegmentData(SegmentDataManager.Instance.GetActiveOptions(prefab)); if (tree != GetDefaultTree(prefab, position)) { newSegmentData.SetPrefabFeature(position.ToTreeFeatureFlag(), tree); } else { newSegmentData.UnsetFeature(position.ToTreeFeatureFlag()); } SegmentDataManager.Instance.SetActiveOptions(prefab, newSegmentData); }
public TreeInfo GetActiveTree(NetInfo prefab, LanePosition position) { var segmentData = SegmentDataManager.Instance.GetActiveOptions(prefab); if (segmentData == null || !segmentData.Features.IsFlagSet(position.ToTreeFeatureFlag())) { return GetDefaultTree(prefab, position); } else { switch (position) { case LanePosition.Left: return segmentData.TreeLeftPrefab; case LanePosition.Middle: return segmentData.TreeMiddlePrefab; case LanePosition.Right: return segmentData.TreeRightPrefab; default: throw new ArgumentOutOfRangeException(nameof(position)); } } }
public TreeInfo GetActiveTree(NetInfo prefab, LanePosition position) { var segmentData = SegmentDataManager.Instance.GetActiveOptions(prefab); if (segmentData == null || !segmentData.Features.IsFlagSet(position.ToTreeFeatureFlag())) { return(GetDefaultTree(prefab, position)); } else { switch (position) { case LanePosition.Left: return(segmentData.TreeLeftPrefab); case LanePosition.Middle: return(segmentData.TreeMiddlePrefab); case LanePosition.Right: return(segmentData.TreeRightPrefab); default: throw new ArgumentOutOfRangeException(nameof(position)); } } }