/// <summary> /// Creates new region by id. /// </summary> /// <param name="regionId"></param> public static Region CreateNormal(int regionId) { var region = new Region(regionId, RegionMode.Permanent); region.RegionInfoData = AuraData.RegionInfoDb.Find(region.Id); if (region.RegionInfoData == null) { throw new Exception("Region.CreateNormal: No region info data found for '" + region.Id + "'."); } region.InitializeFromData(); return(region); }
/// <summary> /// Creates new dynamic region, based on a region and variation file. /// Region is automatically added to the dynamic region manager. /// </summary> /// <param name="regionId"></param> /// <param name="variationFile"></param> public static Region CreateDynamic(int baseRegionId, string variationFile = "", RegionMode mode = RegionMode.RemoveWhenEmpty) { var region = new Region(baseRegionId, mode); region.Id = ChannelServer.Instance.World.DynamicRegions.GetFreeDynamicRegionId(); region.Variation = variationFile; var baseRegionInfoData = AuraData.RegionInfoDb.Find(region.BaseId); if (baseRegionInfoData == null) { throw new Exception("Region.CreateDynamic: No region info data found for '" + region.BaseId + "'."); } region.RegionInfoData = CreateVariation(baseRegionInfoData, region.Id, variationFile); region.InitializeFromData(); ChannelServer.Instance.World.DynamicRegions.Add(region); return(region); }