From dfe7c2f145189ea60586869c18240bbe3a18da7f Mon Sep 17 00:00:00 2001 From: David Vierra Date: Mon, 14 Sep 2015 17:53:07 -1000 Subject: [PATCH] NBT edits only create edit commands when the value is actually changed. --- src/mcedit2/widgets/nbttree/nbttreemodel.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/mcedit2/widgets/nbttree/nbttreemodel.py b/src/mcedit2/widgets/nbttree/nbttreemodel.py index 0ec34a4..2b6134f 100644 --- a/src/mcedit2/widgets/nbttree/nbttreemodel.py +++ b/src/mcedit2/widgets/nbttree/nbttreemodel.py @@ -270,8 +270,12 @@ class NBTTreeItem(object): def setValue(self, value): if self.tag.tagID == nbt.ID_LONG: value = long(value) - self.tag.value = value - return True + if value != self.tag.value: + log.info("Changing NBT tag %s because old %s != new %s", self.nbtPath, self.tag.value, value) + self.tag.value = value + return True + else: + return False def nbtPath(self): if self.parentItem is None: @@ -415,7 +419,7 @@ class NBTTreeModel(QtCore.QAbstractItemModel): item = self.getItem(index) column = index.column() if column == 0: - if item.parentItem.tag.tagID == nbt.ID_COMPOUND: + if item.parentItem.tag.tagID == nbt.ID_COMPOUND and item.tag.name != value: item.parentItem.tag[value] = item.tag item.tag.name = value result = True