62 var region = ScriptableObject.CreateInstance<M_Region>();
63 region.regionName = _name;
66 List<M_Region.SubregionGroup> subRegGroups = [];
67 foreach (var subregion
in _subregions)
69 subRegGroups.Add(
new M_Region.SubregionGroup(){subregions = [subregion]});
73 region.subregionGroups = subRegGroups;
75 if (_subregions.Count > 1 && _subregions[0].levelReferences.Count > 1)
77 region.transitionLevels =
79 new M_Region.TransitionLevels() {
81 levels = [_subregions[0].levelReferences[^1].level]
85 _subregions[0].levelReferences.RemoveAt(_subregions[0].levelReferences.Count - 1);
88 region.regionHeight = _subregions.Sum(sr => sr.subregionHeight);
92 var defaultPrefab = CL_AssetManager.GetFullCombinedAssetDatabase().levelAssets
93 .FirstOrDefault(pref => pref.level.levelName ==
"M1_Intro_01");
94 var defaultLevelComp = defaultPrefab?.level;
95 if (defaultLevelComp is not
null && _hasStartingLevel)
97 region.startLevels = [defaultLevelComp];
100 region.regionOrder = M_Region.RegionOrder.playlist;
101 region.introText = _name;
104 region.sessionEventLists = _subregions
105 .SelectMany(sr => sr.sessionEventLists)