From 218138274b069e096d9665b49f0af3af88cf146d Mon Sep 17 00:00:00 2001 From: Gyedo Jeon Date: Mon, 5 Apr 2010 17:56:24 +0000 Subject: [PATCH] Added feature to replace objects --- direct/src/leveleditor/ObjectMgrBase.py | 25 +++++++++++++++++++++-- direct/src/leveleditor/ObjectPaletteUI.py | 3 +++ 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/direct/src/leveleditor/ObjectMgrBase.py b/direct/src/leveleditor/ObjectMgrBase.py index 1077ae88a7..7d9259fc24 100755 --- a/direct/src/leveleditor/ObjectMgrBase.py +++ b/direct/src/leveleditor/ObjectMgrBase.py @@ -204,6 +204,15 @@ class ObjectMgrBase: else: return self.objects[uid] + def findObjectsByTypeName(self, typeName): + results = [] + for uid in self.objects.keys(): + obj = self.objects[uid] + if obj[OG.OBJ_DEF].name == typeName: + results.append(obj) + + return results + def deselectAll(self): self.currNodePath = None taskMgr.remove('_le_updateObjectUITask') @@ -228,8 +237,6 @@ class ObjectMgrBase: if base.direct.widget.fActive: base.direct.widget.toggleWidget() - - def updateObjectPropertyUI(self, obj): objDef = obj[OG.OBJ_DEF] objProp = obj[OG.OBJ_PROP] @@ -703,3 +710,17 @@ class ObjectMgrBase: self.currLiveNP = obj[OG.OBJ_NP] self.currLiveNP.setColorScale(0, 1, 0, 1) + + def replaceObjectWithTypeName(self, obj, typeName): + uid = obj[OG.OBJ_UID] + objNP = obj[OG.OBJ_NP] + mat = objNP.getMat() + parentObj = self.findObjectByNodePath(objNP.getParent()) + if parentObj: + parentNP = parentObj[OG.OBJ_NP] + else: + parentNP = None + self.removeObjectById(uid) + self.editor.ui.sceneGraphUI.delete(uid) + newobj = self.addNewObject(typeName, uid, parent=parentNP, fSelectObject=False) + newobj.setMat(mat) diff --git a/direct/src/leveleditor/ObjectPaletteUI.py b/direct/src/leveleditor/ObjectPaletteUI.py index ce7ca88135..2b5dac3fc4 100755 --- a/direct/src/leveleditor/ObjectPaletteUI.py +++ b/direct/src/leveleditor/ObjectPaletteUI.py @@ -66,3 +66,6 @@ class ObjectPaletteUI(wx.Panel): index1 = self.palette.dataKeys.index(data1) index2 = self.palette.dataKeys.index(data2) return cmp(index1, index2) + + def getSelected(self): + return self.tree.GetItemPyData(self.tree.GetSelection())