Source code for BaseMod.tiles.tileModule
import os
from PySide6.QtCore import Slot
from PySide6.QtGui import QColor, QPixmap
from BaseMod.tiles.tileRenderTexture import TileRenderLevelImage
from RWS.Core import PATH_FILES_IMAGES
from RWS.Modify import Module
[docs]
class TileModule(Module):
[docs]
def __init__(self, mod):
super().__init__(mod)
from BaseMod.baseMod import BaseMod
self.mod: BaseMod
self.ui = self.mod.tileview
self.tilehead = QPixmap(os.path.join(PATH_FILES_IMAGES, "tileHead.png"))
self.tilebody = QPixmap(os.path.join(PATH_FILES_IMAGES, "tileBody.png"))
self.l1 = TileRenderLevelImage(self, 100, 0)
self.l2 = TileRenderLevelImage(self, 200, 1)
self.l3 = TileRenderLevelImage(self, 300, 2)
self.ui.drawprendered.valueChanged.connect(self.check_layers_change)
self.ui.drawpnotrendered.valueChanged.connect(self.check_layers_change)
self.ui.drawsrendered.valueChanged.connect(self.check_layers_change)
self.ui.drawsnotrendered.valueChanged.connect(self.check_layers_change)
self.ui.renderall.valueChanged.connect(self.check_layers_change)
self.ui.drawtiles.valueChanged.connect(self.check_layers_change)
self.ui.drawl1.valueChanged.connect(self.check_layers_change)
self.ui.drawl2.valueChanged.connect(self.check_layers_change)
self.ui.drawl3.valueChanged.connect(self.check_layers_change)
self.ui.drawoption.valueChanged.connect(self.redraw_option)
self.ui.render.connect(self.render_module)
self.ui.matborder.valueChanged.connect(self.change_border)
self.ui.drawheads.valueChanged.connect(self.redraw_option)
self.ui.drawbodies.valueChanged.connect(self.redraw_option)
self.ui.drawmats.valueChanged.connect(self.change_border)
self.manager.layer.valueChanged.connect(self.check_layers_change)
[docs]
def change_border(self):
self.l1.change_material_border(self.ui.matborder.value)
self.l2.change_material_border(self.ui.matborder.value)
self.l3.change_material_border(self.ui.matborder.value)
[docs]
def redraw_option(self):
self.render_module(True)
[docs]
def init_module_textures(self):
self.check_layers_change()
[docs]
@Slot()
def check_layers_change(self):
if not self.ui.drawtiles.value:
self.l1.setOpacity(0)
self.l2.setOpacity(0)
self.l3.setOpacity(0)
return
if self.ui.drawoption.value > 2:
self.l1.setOpacity(self.ui.drawprendered.value if self.layer == 0 else self.ui.drawsrendered.value)
self.l2.setOpacity(self.ui.drawprendered.value if self.layer == 1 else self.ui.drawsrendered.value)
self.l3.setOpacity(self.ui.drawprendered.value if self.layer == 2 else self.ui.drawsrendered.value)
self.l1.setOpacity(self.l1.opacity if self.ui.drawl1.value else 0)
self.l2.setOpacity(self.l2.opacity if self.ui.drawl2.value else 0)
self.l3.setOpacity(self.l3.opacity if self.ui.drawl3.value else 0)
return
self.l1.setOpacity(self.ui.drawpnotrendered.value if self.layer == 0 else self.ui.drawsnotrendered.value)
if self.layer == 1 and not self.ui.renderall.value:
self.l1.setOpacity(0)
self.l2.setOpacity(self.ui.drawpnotrendered.value if self.layer == 1 else self.ui.drawsnotrendered.value)
if self.layer == 2 and not self.ui.renderall.value:
self.l1.setOpacity(0)
self.l2.setOpacity(0)
self.l3.setOpacity(self.ui.drawpnotrendered.value if self.layer == 2 else self.ui.drawsnotrendered.value)
self.l1.setOpacity(self.l1.opacity if self.ui.drawl1.value else 0)
self.l2.setOpacity(self.l2.opacity if self.ui.drawl2.value else 0)
self.l3.setOpacity(self.l3.opacity if self.ui.drawl3.value else 0)
[docs]
def render_module(self, clear=False):
self.l1.draw_layer(clear)
self.l2.draw_layer(clear)
self.l3.draw_layer(clear)
self.init_module_textures()
if self.ui.drawoption.value == 6:
self.mod.gridui.backgroundcolor.update_value(self.ui.colortable[4])
# self.mod.gridmodule.rect.drawrect.setBrush(self.ui.colortable[4])
elif self.ui.drawoption.value in [4, 5]:
self.mod.gridui.backgroundcolor.update_value(self.ui.colortable[3])
# self.mod.gridmodule.rect.drawrect.setBrush(self.ui.colortable[3])
elif self.ui.drawoption.value == 3:
self.mod.gridui.backgroundcolor.update_value(QColor(255, 255, 255))
# self.mod.gridmodule.rect.drawrect.setBrush(QColor(255, 255, 255))
else:
self.mod.gridui.backgroundcolor.update_value(self.mod.gridui.backgroundcolor.default)
# self.mod.gridmodule.rect.drawrect.setBrush(self.mod.gridmodule.backgroundcolor.value)
[docs]
def get_layer(self, layer: int) -> TileRenderLevelImage:
return [self.l1, self.l2, self.l3][layer]
[docs]
def init_scene_items(self, viewport):
super().init_scene_items(viewport)
self.render_module()