From 4f3b7a5123d0239ff4fe87aebaa00037762068fd Mon Sep 17 00:00:00 2001 From: Gyedo Jeon Date: Mon, 5 Apr 2010 20:18:19 +0000 Subject: [PATCH] Added replace feature --- direct/src/leveleditor/LevelEditorUIBase.py | 26 +++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/direct/src/leveleditor/LevelEditorUIBase.py b/direct/src/leveleditor/LevelEditorUIBase.py index ae8faedf16..acb402cd24 100755 --- a/direct/src/leveleditor/LevelEditorUIBase.py +++ b/direct/src/leveleditor/LevelEditorUIBase.py @@ -531,6 +531,32 @@ class LevelEditorUIBase(WxAppShell): for menuItem in self.contextMenu.GetMenuItems(): self.contextMenu.RemoveItem(menuItem) + self.contextMenu.addItem('Replace This', call=lambda\ + p0=None, p1=False:self.replaceObject(p0, p1)) + + self.contextMenu.addItem('Replace All', call=lambda\ + p0=None, p1=True:self.replaceObject(p0, p1)) + self.contextMenu.AppendSeparator() + + def replaceObject(self, evt, all=False): + currObj = self.editor.objectMgr.findObjectByNodePath(base.direct.selected.last) + if currObj is None: + print 'No valid object is selected for replacement' + return + + targetType = self.editor.ui.objectPaletteUI.getSelected() + if targetType is None: + print 'No valid target type is selected for replacement' + return + + if all: + typeName = currObj[OG.OBJ_DEF].name + objs = self.editor.objectMgr.findObjectsByTypeName(typeName) + for obj in objs: + self.editor.objectMgr.replaceObjectWithTypeName(obj, targetType) + else: + self.editor.objectMgr.replaceObjectWithTypeName(currObj, targetType) + class GridSizeUI(wx.Dialog): def __init__(self, parent, id, title, gridSize, gridSpacing): wx.Dialog.__init__(self, parent, id, title, size=(250, 240))