def paintEvent(self, event: QPaintEvent): painter = QPainter(self) bg_color = bg_color_for_object_set(self.object_set, 0) painter.setBrush(QBrush(bg_color)) painter.drawRect(QRect(QPoint(0, 0), self.size())) pattern_table = PatternTable(self.object_set) palette = load_palette(self.object_set, 0) tsa_data = ROM.get_tsa_data(self.object_set) horizontal = self.sprites_horiz block_length = Block.WIDTH * self.zoom for i in range(self.sprites): block = Block(i, palette, pattern_table, tsa_data) x = (i % horizontal) * block_length y = (i // horizontal) * block_length block.draw(painter, x, y, block_length) return
def __init__( self, data: bytearray, object_set: int, palette_group: PaletteGroup, graphics_set: GraphicsSet, objects_ref: List["LevelObject"], is_vertical: bool, index: int, size_minimal: bool = False, ): self.object_set = ObjectSet(object_set) self.graphics_set = graphics_set self.tsa_data = ROM.get_tsa_data(object_set) self.x_position = 0 self.y_position = 0 self.rendered_base_x = 0 self.rendered_base_y = 0 self.palette_group = palette_group self.index_in_level = index self.objects_ref = objects_ref self.vertical_level = is_vertical self.data = data self.selected = False self.size_minimal = size_minimal if self.size_minimal: self.ground_level = 0 else: self.ground_level = GROUND self._length = 0 self.secondary_length = 0 self._setup()
def __init__(self, world_index): self._internal_world_map = _WorldMap.from_world_number(ROM(), world_index) super(WorldMap, self).__init__(0, self._internal_world_map.layout_address) self.name = f"World {world_index} - Overworld" self.pattern_table = PatternTable(OVERWORLD_GRAPHIC_SET) self.palette_group = load_palette(WORLD_MAP_OBJECT_SET, 0) self.object_set = WORLD_MAP_OBJECT_SET self.tsa_data = ROM.get_tsa_data(self.object_set) self.world = 0 self.level_number = 0 self.objects = [] self._load_objects() self._calc_size()