Source code for RWESharp.Renderable.RenderTile

from RWESharp.Renderable.RenderImage import RenderImage
from RWESharp.Loaders.Tile import Tile
from RWESharp.info import CELLSIZE
from PySide6.QtCore import QSize, QPoint, QPointF
from PySide6.QtGui import QPixmap
from PySide6.QtWidgets import QGraphicsPixmapItem


[docs] class RenderTile(RenderImage):
[docs] def __init__(self, module, depth, layer: int, add_renderable: bool = True): super().__init__(module, depth, QSize(1, 1), add_renderable=False) self.colsimage = QPixmap(1, 1) self.colsimage_rendered = QGraphicsPixmapItem(self.colsimage) self.layer = layer self.tile = None self.drawoption = 0 if add_renderable: self.module.add_renderable(self)
[docs] def set_tile(self, tile: Tile, colortable, option: int = 0): self.drawoption = option self.image = tile.return_tile_pixmap(self.drawoption, self.layer, colortable, False) self.colsimage = tile.collisions_image() self.redraw() self.tile = tile self.zoom_event()
[docs] def redraw(self) -> None: super().redraw() self.colsimage_rendered.setPixmap(self.colsimage)
[docs] def init_graphics(self, viewport): super().init_graphics(viewport) self.viewport.workscene.addItem(self.colsimage_rendered)
[docs] def remove_graphics(self, viewport): super().remove_graphics(viewport) viewport.workscene.removeItem(self.colsimage_rendered)
[docs] def move_event(self): if self.tile is None: return super().move_event() self.setPos(self.offset)
[docs] def setPos(self, pos: QPointF): super().setPos(pos) self.colsimage_rendered.setPos(self.actual_offset) if self.drawoption == 0: self.renderedtexture.setPos(self.actual_offset) return self.renderedtexture.setPos(self.actual_offset - (QPoint(1, 1) * self.tile.bfTiles * CELLSIZE * self.zoom))
[docs] def zoom_event(self): self.colsimage_rendered.setScale(self.zoom) self.scale = (20 / 16) if self.drawoption == 0 else 1 super().zoom_event()