Aura.Channel.World.DynamicRegion.DynamicRegion C# (CSharp) Method

DynamicRegion() public method

Creates new dynamic region.
public DynamicRegion ( int baseRegionId, string variationFile = "", RegionMode mode = RegionMode.RemoveWhenEmpty ) : Aura.Channel.Network.Sending
baseRegionId int
variationFile string
mode RegionMode
return Aura.Channel.Network.Sending
		public DynamicRegion(int baseRegionId, string variationFile = "", RegionMode mode = RegionMode.RemoveWhenEmpty)
			: base(baseRegionId)
		{
			this.BaseId = baseRegionId;

			var baseRegionInfoData = AuraData.RegionInfoDb.Find(this.BaseId);
			if (baseRegionInfoData == null)
				throw new Exception("DynamicRegion: No region info data found for '" + this.BaseId + "'.");

			var baseRegionData = AuraData.RegionDb.Find(this.BaseId);
			if (baseRegionData == null)
				throw new Exception("DynamicRegion: No region data found for '" + this.BaseId + "'.");

			var baseRegion = ChannelServer.Instance.World.GetRegion(baseRegionId);
			if (baseRegion != null)
				this.Properties.Load(baseRegion.Properties.GetList());

			this.BaseName = baseRegionInfoData.Name;
			this.Id = ChannelServer.Instance.World.DynamicRegions.GetFreeDynamicRegionId();
			this.Name = "DynamicRegion" + this.Id;
			this.Variation = variationFile;
			this.Mode = mode;
			this.IsIndoor = baseRegionData.Indoor;

			this.Data = CreateVariation(baseRegionInfoData, this.Id, variationFile);

			this.InitializeFromData();

			ChannelServer.Instance.World.DynamicRegions.Add(this);
		}