Exemplo n.º 1
0
def create_plants(map, plant_count, size=2):
    for l in range(plant_count):
        current = map.randomTile()

        for i in range(size):
            neighbors = map.getNeighbors(current.point.x, current.point.y)

            if current.terrain.passable and pygsty.models.model_repository.is_vacant((current.x, current.y)):
                models.statics.Flower((current.x, current.y))
                current = random.choice(neighbors)
Exemplo n.º 2
0
 def test_it_returns_a_list_of_neighbors(self):
     map = TileMap(10, 10)
     expected = [
         map.getTile(2,3),
         map.getTile(3,3),
         map.getTile(4,3),
         map.getTile(2,4),
         map.getTile(4,4),
         map.getTile(2,5),
         map.getTile(3,5),
         map.getTile(4,5)
     ]
     neighbors = map.getNeighbors(3, 4)
     self.assertEqual(len(expected), len(neighbors), 'Lists should be the same size')
     for e in expected:
         self.assert_(e in neighbors, 'Expected item wasn\'t in neighbors list')
Exemplo n.º 3
0
def create_lakes(map, lake_count, size):
    for l in range(lake_count):
        cx = random.randint(0, map.array_width)
        cy = random.randint(0, map.array_height)
        nt = map.getTile(cx, cy)
        nt._terrain = models.map.terrains["water"]
        for i in range(size):
            nt = None
            while not nt:
                nx = random.randint(-2, 2)
                ny = random.randint(-2, 2)
                nt = map.getTile(cx + nx, cy + ny)

            nt._terrain = models.map.terrains["water"]
            nb = map.getNeighbors(cx, cy)
            for ne in nb:
                ne._terrain = models.map.terrains["water"]
            cx = nt.point.x
            cy = nt.point.y
Exemplo n.º 4
0
def create_forest(map, forest_count, size):
    for l in range(forest_count):
        forest_type = random.choice(models.statics.tree_types)
        current = map.randomTile()
        while not current.terrain.passable:
            current = map.randomTile()

        for i in range(size):
            if current.terrain.passable and pygsty.models.model_repository.is_vacant((current.x, current.y)):
                pygsty.logger.info("Adding tree to {}".format(current))
                models.statics.Tree((current.x, current.y), forest_type)
            neighbors = map.getNeighbors(current.point.x, current.point.y)
            current = random.choice(neighbors)

    def find_trees(test_obj):
        return type(test_obj) is models.statics.Tree

    trees = pygsty.models.model_repository.find_all(find_trees)
    for t in trees:
        t.update_sprite()
Exemplo n.º 5
0
 def test_it_does_not_return_tiles_that_go_off_the_edge(self):
     map = TileMap(1,1)
     expected = []
     neighbors = map.getNeighbors(0,0)
     self.assertEqual(expected, neighbors, "1x1 map has no neighbors to it's single tile")