def update_map(index): generator = WorldInfoPrototype.get_by_id(map_info_storage.item.world_id).generator generator.clear_power_points() generator.clear_biomes() if generator.w != map_settings.WIDTH or generator.h != map_settings.HEIGHT: dx, dy = generator.resize(map_settings.WIDTH, map_settings.HEIGHT) places_storage.places.shift_all(dx, dy) places_storage.buildings.shift_all(dx, dy) for point in get_power_points(): generator.add_power_point(point) for terrain in TERRAIN.records: generator.add_biom(Biom(id_=terrain)) generator.do_step() biomes_map = generator.get_biomes_map() time = TimePrototype.get_current_time() draw_info = get_draw_info(biomes_map) terrain = [] for y in range(0, generator.h): row = [] terrain.append(row) for x in range(0, generator.w): row.append(biomes_map[y][x].id) map_info_storage.set_item(MapInfoPrototype.create(turn_number=time.turn_number, width=generator.w, height=generator.h, terrain=terrain, world=WorldInfoPrototype.create_from_generator(generator))) MapInfoPrototype.remove_old_infos() raw_draw_info = [] for row in draw_info: raw_draw_info.append([]) for cell in row: raw_draw_info[-1].append(cell.get_sprites()) data = {'width': generator.w, 'height': generator.h, 'map_version': map_info_storage.version, 'format_version': '0.1', 'draw_info': raw_draw_info, 'places': dict( (place.id, place.map_info() ) for place in places_storage.places.all() ), # 'buildings': dict( (building.id, building.map_info() ) for building in buildings_storage.all() ), 'roads': dict( (road.id, road.map_info() ) for road in roads_storage.all()) } models.MapRegion.objects.create(turn_number=time.turn_number, data=data)
def test_ui_cell_serialization(self): generator = WorldInfoPrototype.get_by_id(map_info_storage.item.world_id).generator world_cell = generator.cell_info(random.randint(0, generator.w-1), random.randint(0, generator.h-1)) ui_cell = UICell(world_cell) self.assertEqual(ui_cell.serialize(), UICell.deserialize(ui_cell.serialize()).serialize())
def test_ui_cells_serialization(self): generator = WorldInfoPrototype.get_by_id( map_info_storage.item.world_id).generator cells = UICells(generator) self.assertEqual(cells.serialize(), UICells.deserialize(cells.serialize()).serialize())
def handle(self, *args, **options): # pylint: disable=R0914 x = options['x'] y = options['y'] generator = WorldInfoPrototype.get_by_id( map_info_storage.item.world_id).generator cell = generator.cell_info(x, y) power_cell = generator.cell_power_info(x, y) print('----CELL--x=%d--y=%d--' % (x, y)) print('height: %.2f \t\t| %r ' % (cell.height, power_cell.height)) print('temperature: %.2f \t\t| %f ' % (cell.temperature, power_cell.temperature)) print('wind: (%.2f, %.2f) \t| %r ' % (cell.wind[0], cell.wind[1], power_cell.wind)) print('wetness: %.2f \t\t| %f ' % (cell.wetness, power_cell.wetness)) print('vegetation: %.2f \t\t| %r ' % (cell.vegetation, power_cell.vegetation)) print('soil: %.2f \t\t| %f ' % (cell.soil, power_cell.soil)) print('atmo_wind: (%.2f, %.2f) \t| ' % cell.atmo_wind) print('atmo_temperature: %.2f \t\t| ' % (cell.atmo_temperature, )) print('atmo_wetness: %.2f \t\t| ' % (cell.atmo_wetness, )) terrain_points = [] for terrain in TERRAIN.records: biom = Biom(id_=terrain) terrain_points.append( (terrain.text, biom.check(cell), biom.get_points(cell))) terrain_points = sorted(terrain_points, key=lambda x: -x[1]) print() print('----TERRAIN----') for biom_name, total_power, aspects in terrain_points[:5]: print('%.2f\t%s' % (total_power, biom_name)) for aspect_name, aspect_value in aspects: print('\t%.2f\t%s' % (aspect_value, aspect_name)) print() print('----POINTS----') points = [] for point in get_power_points(): value = point.log_powers_for(generator, x=x, y=y) if value: points.append((point.name, value)) points.sort() for name, value in points: print('%s %r' % (name.ljust(35), value))
def test_ui_cell_serialization(self): generator = WorldInfoPrototype.get_by_id( map_info_storage.item.world_id).generator world_cell = generator.cell_info(random.randint(0, generator.w - 1), random.randint(0, generator.h - 1)) ui_cell = UICell(world_cell) self.assertEqual(ui_cell.serialize(), UICell.deserialize(ui_cell.serialize()).serialize())
def create_test_map_info(): map_info_storage.set_item( MapInfoPrototype.create( turn_number=0, width=map_settings.WIDTH, height=map_settings.HEIGHT, terrain=[[ TERRAIN.PLANE_GREENWOOD for j in range(map_settings.WIDTH) ] for i in range(map_settings.HEIGHT)], # pylint: disable=W0612 world=WorldInfoPrototype.create(w=map_settings.WIDTH, h=map_settings.HEIGHT)))
def handle(self, *args, **options): # pylint: disable=R0914 x = options['x'] y = options['y'] generator = WorldInfoPrototype.get_by_id(map_info_storage.item.world_id).generator cell = generator.cell_info(x, y) power_cell = generator.cell_power_info(x, y) print '----CELL--x=%d--y=%d--' % (x, y) print 'height: %.2f \t\t| %r ' % (cell.height, power_cell.height) print 'temperature: %.2f \t\t| %f ' % (cell.temperature, power_cell.temperature) print 'wind: (%.2f, %.2f) \t| %r ' % (cell.wind[0], cell.wind[1], power_cell.wind) print 'wetness: %.2f \t\t| %f ' % (cell.wetness, power_cell.wetness) print 'vegetation: %.2f \t\t| %r ' % (cell.vegetation, power_cell.vegetation) print 'soil: %.2f \t\t| %f ' % (cell.soil, power_cell.soil) print 'atmo_wind: (%.2f, %.2f) \t| ' % cell.atmo_wind print 'atmo_temperature: %.2f \t\t| ' % (cell.atmo_temperature,) print 'atmo_wetness: %.2f \t\t| ' % (cell.atmo_wetness,) terrain_points = [] for terrain in TERRAIN.records: biom = Biom(id_=terrain) terrain_points.append((terrain.text, biom.check(cell), biom.get_points(cell))) terrain_points = sorted(terrain_points, key=lambda x: -x[1]) print print '----TERRAIN----' for biom_name, total_power, aspects in terrain_points[:5]: print '%.2f\t%s' % (total_power, biom_name) for aspect_name, aspect_value in aspects: print '\t%.2f\t%s' % (aspect_value, aspect_name) print print '----POINTS----' points = [] for point in get_power_points(): value = point.log_powers_for(generator, x=x, y=y) if value: points.append((point.name, value)) points.sort() for name, value in points: print '%s %r' % (name.ljust(35), value)
def create_test_my_info(): map_info_storage.set_item(MapInfoPrototype.create(turn_number=0, width=map_settings.WIDTH, height=map_settings.HEIGHT, terrain=[ [TERRAIN.PLANE_GREENWOOD for j in xrange(map_settings.WIDTH)] for i in xrange(map_settings.HEIGHT)], # pylint: disable=W0612 world=WorldInfoPrototype.create(w=map_settings.WIDTH, h=map_settings.HEIGHT)))
def create_map(self): # pylint: disable=R0914, R0915 Place.objects.all().delete() Road.objects.all().delete() p1x1 = self.create_place(1, 1, size=1) p14x1 = self.create_place(14, 1, size=1) p27x1 = self.create_place(27, 1, size=6) p5x3 = self.create_place(5, 3, size=5) p1x9 = self.create_place(1, 9, size=6) p5x12 = self.create_place(5, 12, size=1) p3x17 = self.create_place(3, 17, size=10) p10x18 = self.create_place(10, 18, size=3) p11x11 = self.create_place(11, 11, size=4) p11x6 = self.create_place(11, 6, size=4) p19x5 = self.create_place(19, 5, size=3) p20x8 = self.create_place(20, 8, size=9) p24x8 = self.create_place(24, 8, size=10) p17x12 = self.create_place(17, 12, size=2) p19x17 = self.create_place(19, 17, size=8) p24x13 = self.create_place(24, 13, size=1) p27x13 = self.create_place(27, 13, size=1) p28x19 = self.create_place(28, 19, size=3) self.create_road(p1x1, p5x3) self.create_road(p5x3, p1x9) self.create_road(p5x3, p11x6) self.create_road(p1x9, p5x12) self.create_road(p5x12, p3x17) self.create_road(p5x12, p11x11) self.create_road(p3x17, p10x18) self.create_road(p11x11, p10x18) self.create_road(p11x11, p11x6) self.create_road(p11x11, p19x17) self.create_road(p11x11, p17x12) self.create_road(p11x11, p20x8) self.create_road(p11x6, p14x1) self.create_road(p14x1, p27x1) self.create_road(p27x1, p24x8) self.create_road(p24x8, p20x8) self.create_road(p24x8, p24x13) self.create_road(p24x8, p27x13) self.create_road(p20x8, p19x5) self.create_road(p20x8, p17x12) self.create_road(p19x17, p24x13) self.create_road(p28x19, p24x13) self.create_road(p28x19, p27x13) places_storage.update_version() roads_storage.update_version() for place in places_storage.all(): place.sync_persons(force_add=True) persons_storage.update_version() terrain = [] for y in xrange(0, map_settings.HEIGHT): # pylint: disable=W0612 row = [] terrain.append(row) for x in xrange(0, map_settings.WIDTH): # pylint: disable=W0612 row.append(TERRAIN.PLANE_GREENWOOD) map_info_storage.set_item(MapInfoPrototype.create(turn_number=0, width=map_settings.WIDTH, height=map_settings.HEIGHT, terrain=terrain, world=WorldInfoPrototype.create(w=map_settings.WIDTH, h=map_settings.HEIGHT))) map_info_storage.update_version()
def test_ui_cells_serialization(self): generator = WorldInfoPrototype.get_by_id(map_info_storage.item.world_id).generator cells = UICells(generator) self.assertEqual(cells.serialize(), UICells.deserialize(cells.serialize()).serialize())
def update_map(index): generator = WorldInfoPrototype.get_by_id(map_info_storage.item.world_id).generator generator.clear_power_points() generator.clear_biomes() if generator.w != map_settings.WIDTH or generator.h != map_settings.HEIGHT: dx, dy = generator.resize(map_settings.WIDTH, map_settings.HEIGHT) places_storage.places.shift_all(dx, dy) places_storage.buildings.shift_all(dx, dy) for point in get_power_points(): generator.add_power_point(point) for terrain in TERRAIN.records: generator.add_biom(Biom(id_=terrain)) generator.do_step() biomes_map = generator.get_biomes_map() time = TimePrototype.get_current_time() draw_info = get_draw_info(biomes_map) terrain = [] for y in xrange(0, generator.h): row = [] terrain.append(row) for x in xrange(0, generator.w): row.append(biomes_map[y][x].id) map_info_storage.set_item(MapInfoPrototype.create(turn_number=time.turn_number, width=generator.w, height=generator.h, terrain=terrain, world=WorldInfoPrototype.create_from_generator(generator))) MapInfoPrototype.remove_old_infos() raw_draw_info = [] for row in draw_info: raw_draw_info.append([]) for cell in row: raw_draw_info[-1].append(cell.get_sprites()) data = {'width': generator.w, 'height': generator.h, 'map_version': map_info_storage.version, 'format_version': '0.1', 'draw_info': raw_draw_info, 'places': dict( (place.id, place.map_info() ) for place in places_storage.places.all() ), # 'buildings': dict( (building.id, building.map_info() ) for building in buildings_storage.all() ), 'roads': dict( (road.id, road.map_info() ) for road in roads_storage.all()) } region_js_file = map_settings.GEN_REGION_OUTPUT % map_info_storage.version output_dir_name = os.path.dirname(region_js_file) if not os.path.exists(output_dir_name): os.makedirs(output_dir_name, 0755) with open(region_js_file, 'w') as region_json_file: region_json_file.write(s11n.to_json(data).encode('utf-8')) if project_settings.DEBUG: deworld.draw_world(index, generator, catalog=map_settings.GEN_WORLD_PROGRESSION)
def update_map(index): generator = WorldInfoPrototype.get_by_id( map_info_storage.item.world_id).generator generator.clear_power_points() generator.clear_biomes() if generator.w != map_settings.WIDTH or generator.h != map_settings.HEIGHT: dx, dy = generator.resize(map_settings.WIDTH, map_settings.HEIGHT) places_storage.places.shift_all(dx, dy) places_storage.buildings.shift_all(dx, dy) for point in get_power_points(): generator.add_power_point(point) for terrain in TERRAIN.records: generator.add_biom(Biom(id_=terrain)) generator.do_step() biomes_map = generator.get_biomes_map() time = TimePrototype.get_current_time() draw_info = get_draw_info(biomes_map) terrain = [] for y in xrange(0, generator.h): row = [] terrain.append(row) for x in xrange(0, generator.w): row.append(biomes_map[y][x].id) map_info_storage.set_item( MapInfoPrototype.create( turn_number=time.turn_number, width=generator.w, height=generator.h, terrain=terrain, world=WorldInfoPrototype.create_from_generator(generator))) MapInfoPrototype.remove_old_infos() raw_draw_info = [] for row in draw_info: raw_draw_info.append([]) for cell in row: raw_draw_info[-1].append(cell.get_sprites()) data = { 'width': generator.w, 'height': generator.h, 'map_version': map_info_storage.version, 'format_version': '0.1', 'draw_info': raw_draw_info, 'places': dict((place.id, place.map_info()) for place in places_storage.places.all()), # 'buildings': dict( (building.id, building.map_info() ) for building in buildings_storage.all() ), 'roads': dict((road.id, road.map_info()) for road in roads_storage.all()) } region_js_file = map_settings.GEN_REGION_OUTPUT % map_info_storage.version output_dir_name = os.path.dirname(region_js_file) if not os.path.exists(output_dir_name): os.makedirs(output_dir_name, 0755) with open(region_js_file, 'w') as region_json_file: region_json_file.write(s11n.to_json(data).encode('utf-8')) if project_settings.DEBUG: deworld.draw_world(index, generator, catalog=map_settings.GEN_WORLD_PROGRESSION)
def create_map(self): # pylint: disable=R0914, R0915 places_models.Place.objects.all().delete() roads_models.Road.objects.all().delete() map_info_storage.set_item( MapInfoPrototype.create( turn_number=0, width=map_settings.WIDTH, height=map_settings.HEIGHT, terrain=[[ TERRAIN.PLANE_GREENWOOD for j in xrange(map_settings.WIDTH) ] for i in xrange(map_settings.HEIGHT)], world=WorldInfoPrototype.create(w=map_settings.WIDTH, h=map_settings.HEIGHT))) p1x1 = self.create_place(1, 1, size=1) p14x1 = self.create_place(14, 1, size=1) p27x1 = self.create_place(27, 1, size=6) p5x3 = self.create_place(5, 3, size=5) p1x9 = self.create_place(1, 9, size=6) p5x12 = self.create_place(5, 12, size=1) p3x17 = self.create_place(3, 17, size=10) p10x18 = self.create_place(10, 18, size=3) p11x11 = self.create_place(11, 11, size=4) p11x6 = self.create_place(11, 6, size=4) p19x5 = self.create_place(19, 5, size=3) p20x8 = self.create_place(20, 8, size=9) p24x8 = self.create_place(24, 8, size=10) p17x12 = self.create_place(17, 12, size=2) p19x17 = self.create_place(19, 17, size=8) p24x13 = self.create_place(24, 13, size=1) p27x13 = self.create_place(27, 13, size=1) p28x19 = self.create_place(28, 19, size=3) self.create_road(p1x1, p5x3) self.create_road(p5x3, p1x9) self.create_road(p5x3, p11x6) self.create_road(p1x9, p5x12) self.create_road(p5x12, p3x17) self.create_road(p5x12, p11x11) self.create_road(p3x17, p10x18) self.create_road(p11x11, p10x18) self.create_road(p11x11, p11x6) self.create_road(p11x11, p19x17) self.create_road(p11x11, p17x12) self.create_road(p11x11, p20x8) self.create_road(p11x6, p14x1) self.create_road(p14x1, p27x1) self.create_road(p27x1, p24x8) self.create_road(p24x8, p20x8) self.create_road(p24x8, p24x13) self.create_road(p24x8, p27x13) self.create_road(p20x8, p19x5) self.create_road(p20x8, p17x12) self.create_road(p19x17, p24x13) self.create_road(p28x19, p24x13) self.create_road(p28x19, p27x13) places_storage.places.update_version() roads_storage.update_version() for place in places_storage.places.all(): for i in xrange(random.randint(2, 6)): places_logic.add_person_to_place(place) persons_storage.persons.update_version() terrain = [] for y in xrange(0, map_settings.HEIGHT): # pylint: disable=W0612 row = [] terrain.append(row) for x in xrange(0, map_settings.WIDTH): # pylint: disable=W0612 row.append(TERRAIN.PLANE_GREENWOOD) map_info_storage.set_item( MapInfoPrototype.create(turn_number=0, width=map_settings.WIDTH, height=map_settings.HEIGHT, terrain=terrain, world=WorldInfoPrototype.create( w=map_settings.WIDTH, h=map_settings.HEIGHT))) map_info_storage.update_version()
def update_map(index): generator = WorldInfoPrototype.get_by_id(map_info_storage.item.world_id).generator generator.clear_power_points() generator.clear_biomes() if generator.w != map_settings.WIDTH or generator.h != map_settings.HEIGHT: dx, dy = generator.resize(map_settings.WIDTH, map_settings.HEIGHT) places_storage.places.shift_all(dx, dy) places_storage.buildings.shift_all(dx, dy) for point in get_power_points(): generator.add_power_point(point) for terrain in TERRAIN.records: generator.add_biom(Biom(id_=terrain)) generator.do_step() biomes_map = generator.get_biomes_map() time = TimePrototype.get_current_time() draw_info = get_draw_info(biomes_map) terrain = [] for y in range(0, generator.h): row = [] terrain.append(row) for x in range(0, generator.w): row.append(biomes_map[y][x].id) map_info_storage.set_item( MapInfoPrototype.create( turn_number=time.turn_number, width=generator.w, height=generator.h, terrain=terrain, world=WorldInfoPrototype.create_from_generator(generator), ) ) MapInfoPrototype.remove_old_infos() raw_draw_info = [] for row in draw_info: raw_draw_info.append([]) for cell in row: raw_draw_info[-1].append(cell.get_sprites()) data = { "width": generator.w, "height": generator.h, "map_version": map_info_storage.version, "format_version": "0.1", "draw_info": raw_draw_info, "places": dict((place.id, place.map_info()) for place in places_storage.places.all()), # 'buildings': dict( (building.id, building.map_info() ) for building in buildings_storage.all() ), "roads": dict((road.id, road.map_info()) for road in roads_storage.all()), } models.MapRegion.objects.create(turn_number=time.turn_number, data=data)