def _fill_rooms(M, nodes):
    """
    Fill map with rooms given from leaf nodes of BSP-tree.
    """

    for node in nodes:
        for y in range(node.room_y1, node.room_y2):
            for x in range(node.room_x1, node.room_x2):
                M[x, y] = C.floor()
Example #2
0
def _create_corridors(M, nodes, edges):
    """
    Create corridors between rooms that should be connected.
    """

    for edge in edges:
        n1 = nodes[edge[0]]
        n2 = nodes[edge[1]]
        if max(n1.room_x1, n2.room_x1) < min(n1.room_x2, n2.room_x2):
            x = random.randint(max(n1.room_x1, n2.room_x1),
                               min(n1.room_x2, n2.room_x2))
            for y in range(min(n2.room_y2, n1.room_y1),
                           max(n2.room_y2, n1.room_y1)):
                M[x, y] = C.floor()
        elif max(n1.room_y1, n2.room_y1) < min(n1.room_y2, n2.room_y2):
            y = random.randint(max(n1.room_y1, n2.room_y1),
                               min(n1.room_y2, n2.room_y2))
            for x in range(min(n2.room_x2, n1.room_x1),
                           max(n2.room_x2, n1.room_x1)):
                M[x, y] = C.floor()