Source code for BaseMod.properties.PropertiesHistory
from RWS.Modify import HistoryElement
[docs]
class BorderChange(HistoryElement):
[docs]
def __init__(self, history, border_tiles: list[int]):
super().__init__(history)
self.before = self.level.extra_tiles.copy()
self.after = border_tiles.copy()
self.redo_changes()
[docs]
def undo_changes(self):
self.level.l_info.extra_tiles = self.before.copy()
self.level.viewport.modulenames["grid"].level_resized(self.level.level_rect)
self.manager.basemod.propertieseditor.reposition_extra() # i can't believe stuff is so simple
[docs]
def redo_changes(self):
self.level.l_info.extra_tiles = self.after.copy()
self.level.viewport.modulenames["grid"].level_resized(self.level.level_rect)
self.manager.basemod.propertieseditor.reposition_extra()
[docs]
class TileSeedChange(HistoryElement):
[docs]
def __init__(self, history, seed: int):
super().__init__(history)
self.before = self.level.l_info.tile_seed
self.after = seed
self.redo_changes()
[docs]
def undo_changes(self):
self.level.l_info.tile_seed = self.before
self.manager.basemod.propertieseditor.update_params()
[docs]
def redo_changes(self):
self.level.l_info.tile_seed = self.after
self.manager.basemod.propertieseditor.update_params()
[docs]
class WaterChange(HistoryElement):
[docs]
def __init__(self, history, level: int, infront: int):
super().__init__(history)
self.before = [self.level.l_info.water_level, self.level.l_info.water_in_front]
self.after = [level, infront]
self.redo_changes()
[docs]
def undo_changes(self):
self.level.l_info.water_level = self.before[0]
self.level.l_info.water_in_front = self.before[1]
self.manager.basemod.propertieseditor.update_params()
self.level.viewport.modulenames["grid"].update_water()
[docs]
def redo_changes(self):
self.level.l_info.water_level = self.after[0]
self.level.l_info.water_in_front = self.after[1]
self.manager.basemod.propertieseditor.update_params()
self.level.viewport.modulenames["grid"].update_water()
[docs]
class LevelResizedProperties(HistoryElement):
[docs]
def undo_changes(self):
self.level.l_info.size = self.oldrect.copy()
[docs]
def redo_changes(self):
self.level.l_info.size = [self.newrect.width(), self.newrect.height()]
[docs]
def __init__(self, history, newrect):
super().__init__(history)
self.newrect = newrect
self.oldrect = self.level.l_info.size.copy()
self.redo_changes()