Source code for BaseMod.props.propModule
from BaseMod.props.propRenderable import PropRenderable
from RWS.Modify import Module
[docs]
class PropModule(Module):
[docs]
def __init__(self, mod):
super().__init__(mod)
self.props: list[PropRenderable] = []
mod.propsview.ui.ShowProps.toggled.connect(self.set_visibility)
mod.propsview.ui.Outline.toggled.connect(lambda x: self.set_outline(x, mod.propsview.outline_color.value))
mod.propsview.ui.OutlineColor.colorPicked.connect(lambda x: self.set_outline(True, x))
# self.group = QGraphicsItemGroup()
# prop = QPixmap.fromImage(self.manager.props.find_prop("Big Brick").images[0])
# for x in range(0, 5000, 50):
# for y in range(0, 5000, 50):
# item = QGraphicsPixmapItem(prop)
# item.setPos(x, y)
# self.group.addToGroup(item)
# Handle(self)
[docs]
def move_event(self):
super().move_event()
# self.group.setPos(self.viewport.topleft.pos())
[docs]
def init_scene_items(self, viewport):
self.render_props()
super().init_scene_items(viewport)
# self.viewport.scene().addItem(self.group)
[docs]
def render_props(self):
for i in self.props:
i.remove_myself()
self.props = []
for i in self.level.l_props:
self.props.append(PropRenderable(self, i))
self.set_visibility(self.mod.propsview.showprops.value)
self.set_outline(self.mod.propsview.showoutline.value, self.mod.propsview.outline_color.value)
[docs]
def render_prop(self, index: int):
p = PropRenderable(self, self.level.l_props[index])
#p.poly.init_graphics(self.viewport) # because
if p.prop.rope:
for i in p.rope_graphics:
self.viewport.workscene.addItem(i)
self.props.insert(index, p)
#p.init_graphics(self.viewport)
p.set_visible(self.mod.propsview.showprops.value)
p.set_outline(self.mod.propsview.showoutline.value, self.mod.propsview.outline_color.value)
[docs]
def remove_render_prop(self, index: int):
p = self.props.pop(index)
p.remove_graphics(self.viewport)
p.remove_myself()
[docs]
def remove_prop(self, index: int):
self.remove_render_prop(index)
self.level.l_props.pop(index)
[docs]
def pop_prop(self):
self.remove_prop(len(self.props) - 1)
[docs]
def add_prop(self, index: int, prop):
self.level.l_props.insert(index, prop)
self.render_prop(index)
[docs]
def append_prop(self, prop):
self.add_prop(len(self.props), prop)
[docs]
def move_prop(self, index: int, newindex: int):
self.props.insert(newindex, self.props.pop(index))
self.level.l_props.insert(newindex, self.level.l_props.pop(index))
[docs]
def level_resized(self, rect):
self.render_props()
[docs]
def set_visibility(self, state):
for i in self.props:
i.set_visible(state)
[docs]
def set_outline(self, state, color):
for i in self.props:
i.set_outline(state, color)