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

RemoveCreature() public method

Removes creature from region, sends EntityDisappears.
public RemoveCreature ( Creature creature ) : void
creature Aura.Channel.World.Entities.Creature
return void
		public virtual void RemoveCreature(Creature creature)
		{
			_creaturesRWLS.EnterWriteLock();
			try
			{
				_creatures.Remove(creature.EntityId);
			}
			finally
			{
				_creaturesRWLS.ExitWriteLock();
			}

			// TODO: Technically not required? Handled by LookAround.
			Send.EntityDisappears(creature);

			if (creature.IsPlayer)
			{
				ChannelServer.Instance.Events.OnPlayerLeavesRegion(creature);
				this.PlayerLeaves.Raise(creature);
			}

			// Update visible entities before leaving the region, so the client
			// gets and up-to-date list.
			var playerCreature = creature as PlayerCreature;
			if (playerCreature != null)
				playerCreature.LookAround();

			creature.Region = Region.Limbo;

			if (creature.Client.Controlling == creature)
				lock (_clients)
					_clients.Remove(creature.Client);
		}