private List<Tile> getTilesAround(GameObject object) {
		List<Tile> tiles = new ArrayList<Tile>();

		Area objectArea = object.area();
		if (objectArea == null) {
			objectArea = new Area(object.tile().derive(-1, 1), object.tile().derive(1, -1));
		}

		final Room room = script.roomStorage.getRoom(object);
		if (room != null) {
			final Filter<GameObject> filter = new Filter<GameObject>() {
				@Override
				public boolean accept(GameObject gameObject) {
					final GameObject.Type type = gameObject.type();
					return type == GameObject.Type.BOUNDARY || type == GameObject.Type.INTERACTIVE;
				}
			};
			for (Tile tile : room.getArea().getTileArray()) {
				if (!objectArea.contains(tile)/* || tile.getMatrix(ctx).isReachable()*/) {
					if (ctx.movement.distance(object, tile) < 6) {
						if (ctx.objects.select().at(tile).select(filter).isEmpty()) {
							tiles.add(tile);
						}
					}
				}
			}
		}
		return tiles;
	}