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)
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')
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
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()
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")