Aura.Channel.World.Region.GetNewPropEntityId C# (CSharp) Method

GetNewPropEntityId() private method

Generates entity id for prop.
private GetNewPropEntityId ( Prop prop ) : long
prop Aura.Channel.World.Entities.Prop
return long
		private long GetNewPropEntityId(Prop prop)
		{
			var regionId = this.Id;
			var areaId = this.GetAreaId((int)prop.Info.X, (int)prop.Info.Y);
			var propId = 0;

			lock (_propIds)
			{
				if (!_propIds.ContainsKey(areaId))
					_propIds[areaId] = 1;

				propId = _propIds[areaId]++;

				if (propId >= ushort.MaxValue)
					throw new Exception("Max prop id reached in region '" + regionId + "', area '" + areaId + "'.");
			}

			var result = MabiId.ServerProps;
			result |= (long)regionId << 32;
			result |= (long)areaId << 16;
			result |= (ushort)propId;

			return result;
		}