Source code for BaseMod.grid.gridModule

import os

from PySide6.QtCore import Slot, QRect, Qt, QPoint
from PySide6.QtGui import QBrush, QPen, QPixmap

from BaseMod.grid.gridRenderTexture import GridRenderLevelImage
from RWS.Core import CELLSIZE, PATH_FILES_IMAGES, wladd
from RWS.Modify import Module
from RWS.Renderable import RenderRect


[docs] class GridModule(Module):
[docs] def __init__(self, mod): super().__init__(mod) self.ui = mod.gridui self.gridtexture = GridRenderLevelImage(self, -100) self.rect = RenderRect(self, 1000, QRect(QPoint(0, 0), QPoint(1, 1)), Qt.GlobalColor.transparent, QBrush(self.ui.backgroundcolor.value)) self.border = RenderRect(self, 0, QRect(QPoint(0, 0), QPoint(1, 1)), self.ui.borderpen.value) self.water = RenderRect(self, 80, QRect(0, 0, 100, 100), QPen(Qt.PenStyle.NoPen), self.ui.watercolor.value) self.ui.watercolor.valueChanged.connect(self.water.drawrect.setBrush) self.ui.enablewater.valueChanged.connect(self.update_water) self.ui.enablegrid.valueChanged.connect(self.check_change) #self.ui.gridopacity.valueChanged.connect(self.check_change) self.ui.enableborder.valueChanged.connect(self.change_border) self.ui.backgroundcolor.valueChanged.connect(self.rect.drawrect.setBrush) self.ui.borderpen.valueChanged.connect(self.border.drawrect.setPen) # self.ui.bordercolor.valueChanged.connect(lambda x: self.border.drawrect.setPen(QPen(x, 5, Qt.PenStyle.DashLine))) self.wh = QPixmap(os.path.join(PATH_FILES_IMAGES, "wh.png")) self.render_module()
[docs] @Slot() def check_change(self): self.gridtexture.renderedtexture.setOpacity(1 if self.ui.enablegrid.value else 0)
[docs] def change_border(self): self.border.drawrect.setOpacity(1 if self.ui.enableborder.value else 0)
[docs] def render_module(self): self.check_change() self.change_border() self.gridtexture.draw_layer()
[docs] def init_scene_items(self, viewport): self.ui.more_funny.valueChanged.connect(lambda x: self.viewport.setBackgroundBrush(self.wh if x else QBrush())) self.viewport.setBackgroundBrush(self.wh if self.ui.more_funny.value else QBrush()) super().init_scene_items(viewport) self.level_resized(self.level.level_rect) self.update_water()
[docs] def level_resized(self, rect): self.rect.setRect(QRect(QPoint(0, 0), CELLSIZE * self.level.level_size)) borders = self.level.extra_tiles topleft = QPoint(borders[0], borders[1]) bottomright = self.level.level_size - QPoint(borders[2], borders[3]) self.border.setRect(QRect(topleft * CELLSIZE, bottomright * CELLSIZE)) super().level_resized(rect) self.update_water()
[docs] def update_water(self): self.water.setOpacity(0 if self.level.l_info.water_level == -1 or not self.ui.enablewater.value else 1) self.water.drawrect.setZValue(-80 if self.level.l_info.water_in_front == 1 else -180) top = self.level.level_height * CELLSIZE - (wladd + self.level.l_info.water_level) * CELLSIZE waterrect = QRect.span(QPoint(0, top), QPoint(self.level.level_width, self.level.level_height) * CELLSIZE) self.water.setRect(waterrect)