Source code for BaseMod.tiles.tilePin

from PySide6.QtCore import Qt, QPoint
from PySide6.QtGui import QPixmap

from BaseMod.tiles.ui.tilepin import Ui_TilePin
from RWS.Configurable import IntConfigurable
from RWS.Core import CELLSIZE, SPRITESIZE
from RWS.Widgets import ViewDockWidget


[docs] class TilePin(ViewDockWidget):
[docs] def __init__(self, tile, explorer, parent=None): super().__init__(parent) self.ui = Ui_TilePin() self.ui.setupUi(self) self.tile = tile parent.addDockWidget(Qt.DockWidgetArea.BottomDockWidgetArea, self) self.explorer = explorer self.layer = IntConfigurable(None, "layer", 1, "layer of tiles") self.drawoption = IntConfigurable(None, "option", explorer.synced_draw_option, "Drawing option") self.layer.link_spinbox(self.ui.Layer) self.drawoption.link_combobox(self.ui.RenderOption) self.layer.valueChanged.connect(self.change_preview) self.drawoption.valueChanged.connect(self.change_preview) self.setWindowTitle(self.tile.name) self.ui.Collisions.setChecked(explorer.tile_cols.value) self.ui.Collisions.toggled.connect(self.change_preview) self.ui.Select.clicked.connect(self.select_tile) self.preview = self.ui.Preview self.setFloating(True) self.tileimage = self.preview.workscene.addPixmap(QPixmap(1, 1)) self.tilecolsimage = self.preview.workscene.addPixmap(QPixmap(1, 1)) self.preview.items.append(self.tileimage) self.preview.items.append(self.tilecolsimage) self.change_preview()
[docs] def closeEvent(self, event): super().closeEvent(event) self.explorer.remove_pin(self)
[docs] def select_tile(self): self.explorer.mod.tileeditor.add_tile([self.tile])
[docs] def change_preview(self): #self.ui.Preview.preview_tile(self.tile, self.drawoption.value, self.layer.value - 1, self.explorer.colortable) #self.ui.Preview.tilecolsimage.setOpacity(self.ui.Collisions.isChecked()) self.tileimage.setOpacity(1) self.tilecolsimage.setOpacity(self.ui.Collisions.isChecked()) self.tileimage.setPixmap(self.tile.return_tile_pixmap(self.drawoption.value, self.layer.value - 1, self.explorer.tileview.colortable)) self.tilecolsimage.setPixmap(self.tile.collisions_image()) self.tileimage.setData(2, (CELLSIZE / SPRITESIZE) if self.drawoption.value == 0 else 1) self.tileimage.setData(1, QPoint(0, 0) if self.drawoption.value == 0 else (-QPoint(self.tile.bfTiles, self.tile.bfTiles) * CELLSIZE)) self.preview.set_zoom() self.preview.set_pos()