Esempio n. 1
0
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)
Esempio n. 2
0
    def refresh(self):
        self.clear()

        try:
            self._item = MapInfoPrototype(MapInfoPrototype._model_class.objects.order_by('-turn_number', '-id')[0])
        except IndexError:
            self._item = None

        self._version = settings[self.SETTINGS_KEY]
Esempio n. 3
0
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)))
Esempio n. 4
0
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)))
Esempio n. 5
0
    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()
Esempio n. 6
0
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)
Esempio n. 7
0
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)
Esempio n. 8
0
    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()
Esempio n. 9
0
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)