Source code for BaseMod.grid.gridRenderTexture
from PySide6.QtCore import QLine
from PySide6.QtGui import QColor
from RWS.Core import CELLSIZE
from RWS.Renderable import RenderLevelImage
[docs]
class GridRenderLevelImage(RenderLevelImage):
[docs]
def __init__(self, module, depth, add_renderable: bool = True):
super().__init__(module, depth, add_renderable=False)
module.ui.gridpen.valueChanged.connect(self.draw_layer)
module.ui.grid_size_X.valueChanged.connect(self.draw_layer)
module.ui.grid_size_Y.valueChanged.connect(self.draw_layer)
module.ui.grid_offset_X.valueChanged.connect(self.draw_layer)
module.ui.grid_offset_Y.valueChanged.connect(self.draw_layer)
if add_renderable:
self.module.add_renderable(self)
[docs]
def draw_layer(self) -> None:
self.painter.setPen(self.module.ui.gridpen.value)
self.image.fill(QColor(0, 0, 0, 0))
self.painter.drawLines([QLine(i, 0, i, self.image.height()) for i in range(CELLSIZE * self.module.ui.grid_offset_X.value, self.image.width(), CELLSIZE * self.module.ui.grid_size_X.value)])
self.painter.drawLines([QLine(0, i, self.image.width(), i) for i in range(CELLSIZE * self.module.ui.grid_offset_Y.value, self.image.height(), CELLSIZE * self.module.ui.grid_size_Y.value)])
self.redraw()
[docs]
def level_resized(self, rect):
super().level_resized(rect)
self.draw_layer()