Beispiel #1
0
 def place_tile(self, point: Point, label: TileType, region: int):
     tile = Tile.from_label(point, label)
     x, y = point
     self.dungeon.label_grid[x, y] = label.value
     self.dungeon.walkable[x, y] = tile.walkable
     self.dungeon.transparent[x, y] = tile.transparent
     self.dungeon.region_grid[x, y] = region
Beispiel #2
0
    def carve(self,
              point: Point,
              region: int,
              label: TileType = TileType.FLOOR):

        tile = Tile.from_label(point, label)
        self.dungeon.place(point, tile, region)
Beispiel #3
0
    def get_tile(self, point: Point, fov_map: tcod.map.Map) -> Optional[Tile]:
        if not self.in_bounds(point):
            return None

        label = TileType(self.tile_map[point.x, point.y])
        tile = Tile.from_label(point=point, label=label)
        tile.visible = fov_map.fov[point.x, point.y]
        return tile
Beispiel #4
0
 def tiles(self) -> Iterator[Tile]:
     for i in range(self.height):
         for j in range(self.width):
             point = Point(x=j, y=i)
             if self.cave_map[j, i]:
                 label = TileType.CAVE
             else:
                 label = TileType.FLOOR
             tile = Tile.from_label(point=point, label=label)
             yield tile
Beispiel #5
0
    def from_json(cls, json_data) -> GameMap:
        game_map = cls(width=json_data["width"], height=json_data["height"])

        for i in range(game_map.height):
            for j in range(game_map.width):
                point = Point(x=j, y=i)
                label = TileType(int(json_data["tile_map"][j][i]))
                tile = Tile.from_label(point=point, label=label)
                game_map.place_tile(point=point, tile=tile)
                if json_data["explored"][j][i]:
                    game_map.explore(point)

        game_map.dungeon_level = json_data["dungeon_level"]

        return game_map
Beispiel #6
0
 def set_tile(self, point: Point, label: TileType):
     self.tile_grid[point.y, point.x] = Tile.from_label(point, label)
Beispiel #7
0
def test_tile_from_label(zeros, wall, empty, cave, floor):
    assert wall == Tile.from_label(point=zeros, label=TileType.WALL)
    assert empty == Tile.from_label(point=zeros, label=TileType.EMPTY)
    assert cave == Tile.from_label(point=zeros, label=TileType.CAVE)
    assert floor == Tile.from_label(point=zeros, label=TileType.FLOOR)