Source code for BaseMod.props.propHistory
from BaseMod.LevelParts import PropLevelPart
from RWS.Modify import HistoryElement
from RWS.Core import CELLSIZE
[docs]
class PropPlace(HistoryElement):
[docs]
def __init__(self, history, prop: PropLevelPart.PlacedProp):
super().__init__(history)
self.prop = prop.copy()
self.module = history.level.viewport.modulenames["props"]
#self.index = len(history.level.props)
self.redo_changes()
[docs]
def undo_changes(self):
self.module.pop_prop()
# self.manager.viewport.workscene.update(0, 0, 10000, 10000) # good enough
[docs]
def redo_changes(self):
self.module.append_prop(self.prop)
[docs]
class PropRemove(HistoryElement):
[docs]
def __init__(self, history, index: int):
super().__init__(history)
self.prop = history.level.l_props[index].copy()
self.module = history.level.viewport.modulenames["props"]
self.index = index
self.redo_changes()
[docs]
def redo_changes(self):
self.module.remove_prop(self.index)
[docs]
def undo_changes(self):
self.module.add_prop(self.index, self.prop.copy())
[docs]
class PropsMove(HistoryElement):
[docs]
def __init__(self, history, indexes: list[int], offset):
super().__init__(history)
self.indexes = indexes
self.offset = offset
self.module = self.level.viewport.modulenames["props"]
self.redo_changes()
[docs]
def undo_changes(self):
for i in self.indexes:
prop = self.level.l_props.props[i]
self.module.remove_render_prop(i)
for q in range(4):
prop.quad[q] -= self.offset
self.module.render_prop(i)
[docs]
def redo_changes(self):
for i in self.indexes:
prop = self.level.l_props.props[i]
self.module.remove_render_prop(i)
for q in range(4):
prop.quad[q] += self.offset
self.module.render_prop(i)
[docs]
class LevelResizedProps(PropsMove):
[docs]
def __init__(self, history, changerect):
super().__init__(history, [i for i in range(len(history.level.l_props.props))], -changerect.topLeft() * CELLSIZE)