public void Remove(Entity entity, Path path)
        {
            bool success = _Entities.Remove(entity);

            if (success && EntityLeft != null)
                EntityLeft(this, new EntityMovedEventArgs(entity, path));
        }
        public void Add(Entity entity, Path path)
        {
            _Entities.Add(entity);

            if (EntityEntered != null)
                EntityEntered(this, new EntityMovedEventArgs(entity, path));
        }
 public EntityMovedEventArgs(Entity entity, Path path)
 {
     Entity = entity;
     Path = path;
 }
        public void MoveEntity(Entity entity, Path path)
        {
            if (path.From != null)
                path.From.Remove(entity, path);

            path.To.Add(entity, path);
        }
        public bool UsePath(Path path)
        {
            World.Map.MoveEntity(this, path);

            if (Moved != null)
                Moved(this, new EntityMovedEventArgs(this, path));

            return true;
        }