From e382fae8b7d1787fc57a7c0d0347fd4c1b9da8f5 Mon Sep 17 00:00:00 2001 From: Cymbalov Stanislav Date: Fri, 26 Oct 2012 03:48:58 +0400 Subject: [PATCH] Fix error while trying to undo player spawn move --- editortools/player.py | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/editortools/player.py b/editortools/player.py index d05f4d6..3cc844f 100644 --- a/editortools/player.py +++ b/editortools/player.py @@ -75,7 +75,12 @@ def positionValid(level, pos): return okayAt63(level, pos) and okayAboveSpawn(level, pos) -class PlayerSpawnMoveOperation(PlayerMoveOperation): +class PlayerSpawnMoveOperation(Operation): + undoPos = None + + def __init__(self, tool, pos): + self.tool, self.pos = tool, pos + def perform(self, recordUndo=True): level = self.tool.editor.level if isinstance(level, MCInfdevOldLevel): @@ -85,9 +90,14 @@ class PlayerSpawnMoveOperation(PlayerMoveOperation): self.undoPos = level.playerSpawnPosition() level.setPlayerSpawnPosition(self.pos) - self.tool.markerList.invalidate() + def undo(self): + if self.undoPos is not None: + level = self.tool.editor.level + level.setPlayerSpawnPosition(self.undoPos) + self.tool.markerList.invalidate() + class PlayerPositionPanel(Panel): def __init__(self, tool):