From 6b22e16a516add9862686df208093bd851680643 Mon Sep 17 00:00:00 2001 From: Gyedo Jeon Date: Tue, 26 Jan 2010 01:21:23 +0000 Subject: [PATCH] Made LE data can be loaded outside of LE --- direct/src/leveleditor/FileMgr.py | 19 +- direct/src/leveleditor/LayerEditorUI.py | 509 ++++++++++++------------ direct/src/leveleditor/ObjectHandler.py | 3 +- direct/src/leveleditor/ObjectMgr.py | 29 +- direct/src/leveleditor/testData.py | 119 +++--- 5 files changed, 356 insertions(+), 323 deletions(-) diff --git a/direct/src/leveleditor/FileMgr.py b/direct/src/leveleditor/FileMgr.py index 1b7fde2eb4..0a103ffa4d 100755 --- a/direct/src/leveleditor/FileMgr.py +++ b/direct/src/leveleditor/FileMgr.py @@ -1,6 +1,10 @@ import os import imp +from ObjectMgr import ObjectMgr +from ObjectHandler import ObjectHandler +from ObjectPalette import ObjectPalette + import ObjectGlobals as OG class FileMgr: @@ -13,9 +17,12 @@ class FileMgr: try: f = open(fileName, 'w') f.write("from pandac.PandaModules import *\n") - f.write("\nobjectMgr = base.le.objectMgr\n") - f.write('ui = base.le.ui\n') - f.write('\nui.sceneGraphUI.reset()\n\n') + f.write("\nhasattr(base, 'le'):\n") + f.write("\tobjectMgr = base.le.objectMgr\n") + f.write('\tui = base.le.ui\n') + f.write('\tui.sceneGraphUI.reset()\n\n') + f.write("else:\n") + f.write("\tobjectMgr = base.objectMgr\n") f.write("# temporary place holder for nodepath\n") f.write("objects = {}\n") saveData = self.editor.objectMgr.getSaveData() @@ -36,9 +43,13 @@ class FileMgr: dirname, moduleName = os.path.split(fileName) if moduleName.endswith('.py'): moduleName = moduleName[:-3] - file, pathname, description = imp.find_module(moduleName, [dirname]) try: + if self.editor is None: # when loaded outside of LE + base.objectPalette = ObjectPalette() + base.objectHandler = ObjectHandler(None) + base.objectMgr = ObjectMgr(None) + module = imp.load_module(moduleName, file, pathname, description) except: print 'failed to load %s'%fileName diff --git a/direct/src/leveleditor/LayerEditorUI.py b/direct/src/leveleditor/LayerEditorUI.py index 07b83906e2..62768f4087 100644 --- a/direct/src/leveleditor/LayerEditorUI.py +++ b/direct/src/leveleditor/LayerEditorUI.py @@ -1,254 +1,255 @@ -""" -Defines Layer UI -""" -import wx -import sys -import cPickle as pickle -from pandac.PandaModules import * - -import ObjectGlobals as OG - -class LayerEditorUI(wx.Panel): - def __init__(self, parent, editor): - wx.Panel.__init__(self, parent) - - self.editor = editor - self.editorTxt = "Layer Editor" - self.saveData = [] - self.layersDataDict = dict() - self.layersDataDictNextKey = 0 - self.llist = wx.ListCtrl(self, -1, style=wx.LC_REPORT|wx.LC_EDIT_LABELS|wx.LC_NO_HEADER) - self.llist.InsertColumn(0, "Layers") - - sizer = wx.BoxSizer(wx.VERTICAL) - sizer.Add(self.llist, 1, wx.EXPAND, 0) - self.SetSizer(sizer); self.Layout() - - parentSizer = wx.BoxSizer(wx.VERTICAL) - parentSizer.Add(self, 1, wx.EXPAND, 0) - parent.SetSizer(parentSizer); parent.Layout() - - self.opAdd = "Add Layer" - self.opDelete = "Delete Layer" - self.opRename = "Rename Layer" - self.opAddObj = "Add Selected Object" - self.opRemoveObj = "Remove Selected Object" - self.opShowObj = "Show Layer Objects" - self.opHideObj = "Hide Layer Objects" - - self.menuItemsGen = list() - self.menuItemsGen.append(self.opAdd) - #self.menuItems.append(self.opRename) - - self.menuItemsObj = list() - self.menuItemsObj.append(self.opAddObj) - self.menuItemsObj.append(self.opRemoveObj) - self.menuItemsObj.append(self.opShowObj) - self.menuItemsObj.append(self.opHideObj) - self.menuItemsObj.append(self.opDelete) - - self.popupmenu = wx.Menu() - for item in self.menuItemsGen: - menuItem = self.popupmenu.Append(-1, item) - self.Bind(wx.EVT_MENU, self.onPopupItemSelected, menuItem) - - self.Bind(wx.EVT_CONTEXT_MENU, self.onShowPopup) - self.llist.Bind(wx.EVT_LIST_ITEM_ACTIVATED, self.onShowMembers) - - def menuAppendGenItems(self): - for item in self.menuItemsGen: - menuItem = self.popupmenu.Append(-1, item) - self.Bind(wx.EVT_MENU, self.onPopupItemSelected, menuItem) - - def menuAppendObjItems(self): - for item in self.menuItemsObj: - menuItem = self.popupmenu.Append(-1, item) - self.Bind(wx.EVT_MENU, self.onPopupItemSelected, menuItem) - - def onShowPopup(self, event): - pos = event.GetPosition() - pos = self.ScreenToClient(pos) - - for menuItem in self.popupmenu.GetMenuItems(): - self.popupmenu.RemoveItem(menuItem) - - #import pdb;set_trace() - hitItem, flags = self.llist.HitTest(pos) - if hitItem == -1: - self.menuAppendGenItems() - else: - self.menuAppendObjItems() - self.PopupMenu(self.popupmenu, pos) - - def onPopupItemSelected(self, event): - menuItem = self.popupmenu.FindItemById(event.GetId()) - text = menuItem.GetText() - if text == self.opAddObj: - self.addObj() - elif text == self.opRemoveObj: - self.removeObj() - elif text == self.opShowObj: - self.HideObj(False) - elif text == self.opHideObj: - self.HideObj(True) - elif text == self.opAdd: - self.addLayer() - elif text == self.opDelete: - self.deleteLayer() - elif text == self.opRename: - self.renameLayer() - else: - wx.MessageBox("You selected item '%s'" % text) - - def reset(self): - #import pdb;set_trace() - self.layersDataDict.clear() - self.layersDataDictNextKey = 0 - self.llist.DeleteAllItems() - - def findLabel(self, text): - found = False - for index in range(self.llist.GetItemCount()): - itemtext = self.llist.GetItemText(index) - if itemtext == text: - return True - return found - - def addLayerData(self, idx, objUID): - self.removeObjData(objUID) - layerData = self.layersDataDict[idx] - layerData.append(objUID) - - def addLayerEntry(self, name, idx): - index = self.llist.InsertStringItem(self.llist.GetItemCount(), name) - self.llist.SetItemData(index, idx) - layersData = list() - self.layersDataDict[idx] = layersData - if idx > self.layersDataDictNextKey: - self.layersDataDictNextKey = idx - - def addLayer(self): - #import pdb;set_trace() - count = self.llist.GetItemCount() - i = 1 - text = "Layer%s"%(count + i) - found = self.findLabel(text) - while found: - i = i + 1 - text = "Layer%s"%(count + i) - found = self.findLabel(text) - - self.layersDataDictNextKey = self.layersDataDictNextKey + 1 - self.addLayerEntry(text, self.layersDataDictNextKey) - - def deleteLayer(self): - index = self.llist.GetFirstSelected() - if index != -1: - key = self.llist.GetItemData(index) - del(self.layersDataDict[key]) - item = self.llist.DeleteItem(index) - - def renameLayer(self): - index = self.llist.GetFirstSelected() - if index != -1: - self.llist.SetItemState(index, wx.LIST_STATE_SELECTED, wx.LIST_STATE_SELECTED) - self.llist.SetItemState(index, wx.LIST_STATE_FOCUSED, wx.LIST_STATE_FOCUSED) - - def removeObjData(self, objUID): - layersDataDictKeys = self.layersDataDict.keys() - for i in range(len(layersDataDictKeys)): - layersData = self.layersDataDict[layersDataDictKeys[i]] - for j in range(len(layersData)): - if layersData[j] == objUID: - del(layersData[j]) - - def removeObj(self): - objNodePath = base.direct.selected.last - if objNodePath is None: - wx.MessageBox("No object was selected.", self.editorTxt, wx.OK|wx.ICON_EXCLAMATION) - return - obj = self.editor.objectMgr.findObjectByNodePath(objNodePath) - if obj is not None: - self.removeObjData(obj[OG.OBJ_UID]) - - def addObj(self): - index = self.llist.GetFirstSelected() - if index == -1: - wx.MessageBox("No layer was selected.", self.editorTxt, wx.OK|wx.ICON_EXCLAMATION) - return - objNodePath = base.direct.selected.last - if objNodePath is None: - wx.MessageBox("No object was selected.", self.editorTxt, wx.OK|wx.ICON_EXCLAMATION) - return - - # Checking if the object was laready added to the layer - obj = self.editor.objectMgr.findObjectByNodePath(objNodePath) - if obj is not None: - i = self.llist.GetItemData(index) - layersData = self.layersDataDict[i] - for j in range(len(layersData)): - if layersData[j] == obj[OG.OBJ_UID]: - wx.MessageBox("Selected object already is this layer", self.editorTxt, wx.OK|wx.ICON_EXCLAMATION) - return - # Looking for the object in the other layers - # If the object is found - delete it. - self.removeObj() - - layersData.append(obj[OG.OBJ_UID]) - - def onShowMembers(self, event): - item = event.GetItem() - layerMembers = list() - layerName = item.GetText() - key = item.GetData() - layerData = self.layersDataDict[key] - for i in range(len(layerData)): - obj = self.editor.objectMgr.findObjectById(layerData[i]) - namestr = "%s_%s"%(obj[OG.OBJ_DEF].name, obj[OG.OBJ_UID]) - layerMembers.append(namestr) - dialog = wx.SingleChoiceDialog(None, layerName, self.editorTxt, layerMembers) - if dialog.ShowModal() == wx.ID_OK: - #do something here - dialog.GetStringSelection() - dialog.Destroy() - - def HideObj(self, hide): - index = self.llist.GetFirstSelected() - if index == -1: - wx.MessageBox("No layer was selected.", self.editorTxt, wx.OK|wx.ICON_EXCLAMATION) - return - - key = self.llist.GetItemData(index) - layerData = self.layersDataDict[key] - if len(layerData) == 0: - return - for i in range(len(layerData)): - obj = self.editor.objectMgr.findObjectById(layerData[i]) - if hide: - obj[OG.OBJ_NP].hide() - else: - obj[OG.OBJ_NP].show() - - font = wx.Font - font = self.llist.GetItemFont(index) - if hide: - font.SetWeight(wx.FONTWEIGHT_BOLD) - else: - font.SetWeight(wx.FONTWEIGHT_NORMAL) - self.llist.SetItemFont(index, font) - - def traverse(self): - self.saveData.append("ui.layerEditorUI.reset()") - for index in range(self.llist.GetItemCount()): - self.saveData.append("ui.layerEditorUI.addLayerEntry('%s', %s )"%(self.llist.GetItemText(index), self.llist.GetItemData(index))) - layersDataDictKeys = self.layersDataDict.keys() - for i in range(len(layersDataDictKeys)): - layerData = self.layersDataDict[layersDataDictKeys[i]] - for j in range(len(layerData)): - self.saveData.append("ui.layerEditorUI.addLayerData(%s, '%s')"%(layersDataDictKeys[i], layerData[j])) - - def getSaveData(self): - self.saveData = [] - self.traverse() - return self.saveData - +""" +Defines Layer UI +""" +import wx +import sys +import cPickle as pickle +from pandac.PandaModules import * + +import ObjectGlobals as OG + +class LayerEditorUI(wx.Panel): + def __init__(self, parent, editor): + wx.Panel.__init__(self, parent) + + self.editor = editor + self.editorTxt = "Layer Editor" + self.saveData = [] + self.layersDataDict = dict() + self.layersDataDictNextKey = 0 + self.llist = wx.ListCtrl(self, -1, style=wx.LC_REPORT|wx.LC_EDIT_LABELS|wx.LC_NO_HEADER) + self.llist.InsertColumn(0, "Layers") + + sizer = wx.BoxSizer(wx.VERTICAL) + sizer.Add(self.llist, 1, wx.EXPAND, 0) + self.SetSizer(sizer); self.Layout() + + parentSizer = wx.BoxSizer(wx.VERTICAL) + parentSizer.Add(self, 1, wx.EXPAND, 0) + parent.SetSizer(parentSizer); parent.Layout() + + self.opAdd = "Add Layer" + self.opDelete = "Delete Layer" + self.opRename = "Rename Layer" + self.opAddObj = "Add Selected Object" + self.opRemoveObj = "Remove Selected Object" + self.opShowObj = "Show Layer Objects" + self.opHideObj = "Hide Layer Objects" + + self.menuItemsGen = list() + self.menuItemsGen.append(self.opAdd) + #self.menuItems.append(self.opRename) + + self.menuItemsObj = list() + self.menuItemsObj.append(self.opAddObj) + self.menuItemsObj.append(self.opRemoveObj) + self.menuItemsObj.append(self.opShowObj) + self.menuItemsObj.append(self.opHideObj) + self.menuItemsObj.append(self.opDelete) + + self.popupmenu = wx.Menu() + for item in self.menuItemsGen: + menuItem = self.popupmenu.Append(-1, item) + self.Bind(wx.EVT_MENU, self.onPopupItemSelected, menuItem) + + self.Bind(wx.EVT_CONTEXT_MENU, self.onShowPopup) + self.llist.Bind(wx.EVT_LIST_ITEM_ACTIVATED, self.onShowMembers) + + def menuAppendGenItems(self): + for item in self.menuItemsGen: + menuItem = self.popupmenu.Append(-1, item) + self.Bind(wx.EVT_MENU, self.onPopupItemSelected, menuItem) + + def menuAppendObjItems(self): + for item in self.menuItemsObj: + menuItem = self.popupmenu.Append(-1, item) + self.Bind(wx.EVT_MENU, self.onPopupItemSelected, menuItem) + + def onShowPopup(self, event): + pos = event.GetPosition() + pos = self.ScreenToClient(pos) + + for menuItem in self.popupmenu.GetMenuItems(): + self.popupmenu.RemoveItem(menuItem) + + #import pdb;set_trace() + hitItem, flags = self.llist.HitTest(pos) + if hitItem == -1: + self.menuAppendGenItems() + else: + self.menuAppendObjItems() + self.PopupMenu(self.popupmenu, pos) + + def onPopupItemSelected(self, event): + menuItem = self.popupmenu.FindItemById(event.GetId()) + text = menuItem.GetText() + if text == self.opAddObj: + self.addObj() + elif text == self.opRemoveObj: + self.removeObj() + elif text == self.opShowObj: + self.HideObj(False) + elif text == self.opHideObj: + self.HideObj(True) + elif text == self.opAdd: + self.addLayer() + elif text == self.opDelete: + self.deleteLayer() + elif text == self.opRename: + self.renameLayer() + else: + wx.MessageBox("You selected item '%s'" % text) + + def reset(self): + #import pdb;set_trace() + self.layersDataDict.clear() + self.layersDataDictNextKey = 0 + self.llist.DeleteAllItems() + + def findLabel(self, text): + found = False + for index in range(self.llist.GetItemCount()): + itemtext = self.llist.GetItemText(index) + if itemtext == text: + return True + return found + + def addLayerData(self, idx, objUID): + self.removeObjData(objUID) + layerData = self.layersDataDict[idx] + layerData.append(objUID) + + def addLayerEntry(self, name, idx): + index = self.llist.InsertStringItem(self.llist.GetItemCount(), name) + self.llist.SetItemData(index, idx) + layersData = list() + self.layersDataDict[idx] = layersData + if idx > self.layersDataDictNextKey: + self.layersDataDictNextKey = idx + + def addLayer(self): + #import pdb;set_trace() + count = self.llist.GetItemCount() + i = 1 + text = "Layer%s"%(count + i) + found = self.findLabel(text) + while found: + i = i + 1 + text = "Layer%s"%(count + i) + found = self.findLabel(text) + + self.layersDataDictNextKey = self.layersDataDictNextKey + 1 + self.addLayerEntry(text, self.layersDataDictNextKey) + + def deleteLayer(self): + index = self.llist.GetFirstSelected() + if index != -1: + key = self.llist.GetItemData(index) + del(self.layersDataDict[key]) + item = self.llist.DeleteItem(index) + + def renameLayer(self): + index = self.llist.GetFirstSelected() + if index != -1: + self.llist.SetItemState(index, wx.LIST_STATE_SELECTED, wx.LIST_STATE_SELECTED) + self.llist.SetItemState(index, wx.LIST_STATE_FOCUSED, wx.LIST_STATE_FOCUSED) + + def removeObjData(self, objUID): + layersDataDictKeys = self.layersDataDict.keys() + for i in range(len(layersDataDictKeys)): + layersData = self.layersDataDict[layersDataDictKeys[i]] + for j in range(len(layersData)): + if layersData[j] == objUID: + del(layersData[j]) + + def removeObj(self): + objNodePath = base.direct.selected.last + if objNodePath is None: + wx.MessageBox("No object was selected.", self.editorTxt, wx.OK|wx.ICON_EXCLAMATION) + return + obj = self.editor.objectMgr.findObjectByNodePath(objNodePath) + if obj is not None: + self.removeObjData(obj[OG.OBJ_UID]) + + def addObj(self): + index = self.llist.GetFirstSelected() + if index == -1: + wx.MessageBox("No layer was selected.", self.editorTxt, wx.OK|wx.ICON_EXCLAMATION) + return + objNodePath = base.direct.selected.last + if objNodePath is None: + wx.MessageBox("No object was selected.", self.editorTxt, wx.OK|wx.ICON_EXCLAMATION) + return + + # Checking if the object was laready added to the layer + obj = self.editor.objectMgr.findObjectByNodePath(objNodePath) + if obj is not None: + i = self.llist.GetItemData(index) + layersData = self.layersDataDict[i] + for j in range(len(layersData)): + if layersData[j] == obj[OG.OBJ_UID]: + wx.MessageBox("Selected object already is this layer", self.editorTxt, wx.OK|wx.ICON_EXCLAMATION) + return + # Looking for the object in the other layers + # If the object is found - delete it. + self.removeObj() + + layersData.append(obj[OG.OBJ_UID]) + + def onShowMembers(self, event): + item = event.GetItem() + layerMembers = list() + layerName = item.GetText() + key = item.GetData() + layerData = self.layersDataDict[key] + for i in range(len(layerData)): + obj = self.editor.objectMgr.findObjectById(layerData[i]) + namestr = "%s_%s"%(obj[OG.OBJ_DEF].name, obj[OG.OBJ_UID]) + layerMembers.append(namestr) + dialog = wx.SingleChoiceDialog(None, layerName, self.editorTxt, layerMembers) + if dialog.ShowModal() == wx.ID_OK: + #do something here + dialog.GetStringSelection() + dialog.Destroy() + + def HideObj(self, hide): + index = self.llist.GetFirstSelected() + if index == -1: + wx.MessageBox("No layer was selected.", self.editorTxt, wx.OK|wx.ICON_EXCLAMATION) + return + + key = self.llist.GetItemData(index) + layerData = self.layersDataDict[key] + if len(layerData) == 0: + return + for i in range(len(layerData)): + obj = self.editor.objectMgr.findObjectById(layerData[i]) + if hide: + obj[OG.OBJ_NP].hide() + else: + obj[OG.OBJ_NP].show() + + font = wx.Font + font = self.llist.GetItemFont(index) + if hide: + font.SetWeight(wx.FONTWEIGHT_BOLD) + else: + font.SetWeight(wx.FONTWEIGHT_NORMAL) + self.llist.SetItemFont(index, font) + + def traverse(self): + self.saveData.append("\nif hasattr(base, 'le'):") + self.saveData.append("\tui.layerEditorUI.reset()") + for index in range(self.llist.GetItemCount()): + self.saveData.append("\tui.layerEditorUI.addLayerEntry('%s', %s )"%(self.llist.GetItemText(index), self.llist.GetItemData(index))) + layersDataDictKeys = self.layersDataDict.keys() + for i in range(len(layersDataDictKeys)): + layerData = self.layersDataDict[layersDataDictKeys[i]] + for j in range(len(layerData)): + self.saveData.append("\tui.layerEditorUI.addLayerData(%s, '%s')"%(layersDataDictKeys[i], layerData[j])) + + def getSaveData(self): + self.saveData = [] + self.traverse() + return self.saveData + diff --git a/direct/src/leveleditor/ObjectHandler.py b/direct/src/leveleditor/ObjectHandler.py index 25c569b4c8..967cae37da 100755 --- a/direct/src/leveleditor/ObjectHandler.py +++ b/direct/src/leveleditor/ObjectHandler.py @@ -45,7 +45,8 @@ class ObjectHandler: def updateSmiley(self, val, obj): objNP = obj[OG.OBJ_NP] - base.direct.deselectAll() + if base.direct: + base.direct.deselectAll() for child in objNP.findAllMatches("+GeomNode"): child.removeNode() diff --git a/direct/src/leveleditor/ObjectMgr.py b/direct/src/leveleditor/ObjectMgr.py index 45f256ac15..ee5f453d69 100755 --- a/direct/src/leveleditor/ObjectMgr.py +++ b/direct/src/leveleditor/ObjectMgr.py @@ -63,9 +63,12 @@ class ObjectMgr: if parent is None: parent = render - objDef = self.editor.objectPalette.findItem(typeName) - if objDef is None: - objDef = self.editor.protoPalette.findItem(typeName) + if self.editor: + objDef = self.editor.objectPalette.findItem(typeName) + if objDef is None: + objDef = self.editor.protoPalette.findItem(typeName) + else: + objDef = base.objectPalette.findItem(typeName) newobj = None if objDef and type(objDef) != dict: if objDef.createFunction: @@ -73,7 +76,10 @@ class ObjectMgr: funcArgs = objDef.createFunction[OG.FUNC_ARGS] if funcName.startswith('.'): # when it's using default objectHandler - func = Functor(eval("base.le.objectHandler%s"%funcName)) + if self.editor: + func = Functor(eval("base.le.objectHandler%s"%funcName)) + else: + func = Functor(eval("base.objectHandler%s"%funcName)) else: # when it's not using default objectHandler, whole name of the handling obj # should be included in function name @@ -125,10 +131,10 @@ class ObjectMgr: self.objects[uid] = [uid, newobj, objDef, model, anim, properties] self.npIndex[NodePath(newobj)] = uid - if fSelectObject: - base.direct.select(newobj) - - self.editor.ui.sceneGraphUI.add(newobj) + if self.editor: + if fSelectObject: + base.direct.select(newobj) + self.editor.ui.sceneGraphUI.add(newobj) return newobj @@ -397,7 +403,10 @@ class ObjectMgr: funcArgs = propDef[OG.PROP_FUNC][OG.FUNC_ARGS] if funcName.startswith('.'): - func = Functor(eval("base.le.objectHandler%s"%funcName)) + if self.editor: + func = Functor(eval("base.le.objectHandler%s"%funcName)) + else: + func = Functor(eval("base.objectHandler%s"%funcName)) else: func = Functor(eval(funcName)) @@ -414,7 +423,7 @@ class ObjectMgr: # finally call update function func(**kwargs) - if fSelectObject: + if self.editor and fSelectObject: base.direct.select(obj[OG.OBJ_NP]) def updateObjectProperties(self, nodePath, propValues): diff --git a/direct/src/leveleditor/testData.py b/direct/src/leveleditor/testData.py index 9adbcca075..fb6b4268ac 100755 --- a/direct/src/leveleditor/testData.py +++ b/direct/src/leveleditor/testData.py @@ -1,54 +1,65 @@ -from pandac.PandaModules import * - -objectMgr = base.le.objectMgr -# temporary place holder for nodepath -objects = {} - -objects['1252538687.73gjeon'] = objectMgr.addNewObject('Smiley', '1252538687.73gjeon', 'models/smiley.egg', None) -if objects['1252538687.73gjeon']: - objects['1252538687.73gjeon'].setPos(Point3(8.66381, 0, 7.13246)) - objects['1252538687.73gjeon'].setHpr(VBase3(180, 0, 0)) - objects['1252538687.73gjeon'].setScale(VBase3(1, 1, 1)) - objectMgr.updateObjectProperties(objects['1252538687.73gjeon'], {'123': 1, 'Abc': 'a', 'Number': 1, 'Happy': True}) - -objects['1252538690.2gjeon'] = objectMgr.addNewObject('H Double Smiley', '1252538690.2gjeon', None, objects['1252538687.73gjeon']) -if objects['1252538690.2gjeon']: - objects['1252538690.2gjeon'].setPos(Point3(0, 0, 2.12046)) - objects['1252538690.2gjeon'].setHpr(VBase3(0, 0, 0)) - objects['1252538690.2gjeon'].setScale(VBase3(1, 1, 1)) - objectMgr.updateObjectProperties(objects['1252538690.2gjeon'], {'Distance': 2.0, 'Abc': 'a'}) - -objects['1252539696.69gjeon'] = objectMgr.addNewObject('H Double Smiley', '1252539696.69gjeon', None, objects['1252538687.73gjeon']) -if objects['1252539696.69gjeon']: - objects['1252539696.69gjeon'].setPos(Point3(-9.53674e-006, 0, 0)) - objects['1252539696.69gjeon'].setHpr(VBase3(0, 0, 0)) - objects['1252539696.69gjeon'].setScale(VBase3(1, 1, 1)) - objectMgr.updateObjectProperties(objects['1252539696.69gjeon'], {'Distance': 2.0, 'Abc': 'a'}) - -objects['1252539897.22gjeon'] = objectMgr.addNewObject('H Double Smiley', '1252539897.22gjeon', None, objects['1252538687.73gjeon']) -if objects['1252539897.22gjeon']: - objects['1252539897.22gjeon'].setPos(Point3(0.06987, 0, -2.12046)) - objects['1252539897.22gjeon'].setHpr(VBase3(0, 0, 0)) - objects['1252539897.22gjeon'].setScale(VBase3(1, 1, 1)) - objectMgr.updateObjectProperties(objects['1252539897.22gjeon'], {'Distance': 2.0, 'Abc': 'a'}) - -objects['1252538689.13gjeon'] = objectMgr.addNewObject('V Double Smiley', '1252538689.13gjeon', None, objects['1252538687.73gjeon']) -if objects['1252538689.13gjeon']: - objects['1252538689.13gjeon'].setPos(Point3(6.07152, 0, -0.863791)) - objects['1252538689.13gjeon'].setHpr(VBase3(0, 0, 0)) - objects['1252538689.13gjeon'].setScale(VBase3(1, 1, 1)) - objectMgr.updateObjectProperties(objects['1252538689.13gjeon'], {'Distance': 1.0, 'Abc': 'a'}) - -objects['1252539974.19gjeon'] = objectMgr.addNewObject('Smiley', '1252539974.19gjeon', 'models/frowney.egg', objects['1252538689.13gjeon']) -if objects['1252539974.19gjeon']: - objects['1252539974.19gjeon'].setPos(Point3(0.06987, 0, 3.09209)) - objects['1252539974.19gjeon'].setHpr(VBase3(0, 0, 0)) - objects['1252539974.19gjeon'].setScale(VBase3(1, 1, 1)) - objectMgr.updateObjectProperties(objects['1252539974.19gjeon'], {'123': 1, 'Abc': 'a', 'Number': 1, 'Happy': True}) - -objects['1252623762.9gjeon'] = objectMgr.addNewObject('Panda', '1252623762.9gjeon', None, None) -if objects['1252623762.9gjeon']: - objects['1252623762.9gjeon'].setPos(Point3(0, 0, 0)) - objects['1252623762.9gjeon'].setHpr(VBase3(172.8, 0, 0)) - objects['1252623762.9gjeon'].setScale(VBase3(0.005, 0.005, 0.005)) - objectMgr.updateObjectProperties(objects['1252623762.9gjeon'], {'Distance': 1.0, 'Abc': 'a'}) +from pandac.PandaModules import * + +hasattr(base, 'le'): + objectMgr = base.le.objectMgr + ui = base.le.ui + ui.sceneGraphUI.reset() + +else: + objectMgr = base.objectMgr +# temporary place holder for nodepath +objects = {} + +objects['1252538687.73gjeon'] = objectMgr.addNewObject('Smiley', '1252538687.73gjeon', 'models/smiley.egg', None) +if objects['1252538687.73gjeon']: + objects['1252538687.73gjeon'].setPos(Point3(8.66381, 0, 7.13246)) + objects['1252538687.73gjeon'].setHpr(VBase3(-180, 0, 0)) + objects['1252538687.73gjeon'].setScale(VBase3(1, 1, 1)) + objectMgr.updateObjectProperties(objects['1252538687.73gjeon'], {'123': 1, 'Abc': 'a', 'Number': 1, 'Happy': True}) + +objects['1252538690.2gjeon'] = objectMgr.addNewObject('H Double Smiley', '1252538690.2gjeon', None, objects['1252538687.73gjeon']) +if objects['1252538690.2gjeon']: + objects['1252538690.2gjeon'].setPos(Point3(0, 0, 2.12046)) + objects['1252538690.2gjeon'].setHpr(VBase3(0, 0, 0)) + objects['1252538690.2gjeon'].setScale(VBase3(1, 1, 1)) + objectMgr.updateObjectProperties(objects['1252538690.2gjeon'], {'Distance': 2.0, 'Abc': 'a'}) + +objects['1252539696.69gjeon'] = objectMgr.addNewObject('H Double Smiley', '1252539696.69gjeon', None, objects['1252538687.73gjeon']) +if objects['1252539696.69gjeon']: + objects['1252539696.69gjeon'].setPos(Point3(-9.53674e-006, 0, 0)) + objects['1252539696.69gjeon'].setHpr(VBase3(0, 0, 0)) + objects['1252539696.69gjeon'].setScale(VBase3(1, 1, 1)) + objectMgr.updateObjectProperties(objects['1252539696.69gjeon'], {'Distance': 2.0, 'Abc': 'a'}) + +objects['1252539897.22gjeon'] = objectMgr.addNewObject('H Double Smiley', '1252539897.22gjeon', None, objects['1252538687.73gjeon']) +if objects['1252539897.22gjeon']: + objects['1252539897.22gjeon'].setPos(Point3(0.06987, 0, -2.12046)) + objects['1252539897.22gjeon'].setHpr(VBase3(0, 0, 0)) + objects['1252539897.22gjeon'].setScale(VBase3(1, 1, 1)) + objectMgr.updateObjectProperties(objects['1252539897.22gjeon'], {'Distance': 2.0, 'Abc': 'a'}) + +objects['1252538689.13gjeon'] = objectMgr.addNewObject('V Double Smiley', '1252538689.13gjeon', None, objects['1252538687.73gjeon']) +if objects['1252538689.13gjeon']: + objects['1252538689.13gjeon'].setPos(Point3(6.07152, 0, -0.863791)) + objects['1252538689.13gjeon'].setHpr(VBase3(0, 0, 0)) + objects['1252538689.13gjeon'].setScale(VBase3(1, 1, 1)) + objectMgr.updateObjectProperties(objects['1252538689.13gjeon'], {'Distance': 1.0, 'Abc': 'a'}) + +objects['1252539974.19gjeon'] = objectMgr.addNewObject('Smiley', '1252539974.19gjeon', 'models/frowney.egg', objects['1252538689.13gjeon']) +if objects['1252539974.19gjeon']: + objects['1252539974.19gjeon'].setPos(Point3(0.06987, 0, 3.09209)) + objects['1252539974.19gjeon'].setHpr(VBase3(0, 0, 0)) + objects['1252539974.19gjeon'].setScale(VBase3(1, 1, 1)) + objectMgr.updateObjectProperties(objects['1252539974.19gjeon'], {'123': 1, 'Abc': 'a', 'Number': 1, 'Happy': True}) + +objects['1252623762.9gjeon'] = objectMgr.addNewObject('Panda', '1252623762.9gjeon', None, None) +if objects['1252623762.9gjeon']: + objects['1252623762.9gjeon'].setPos(Point3(0, 0, 0)) + objects['1252623762.9gjeon'].setHpr(VBase3(172.8, 0, 0)) + objects['1252623762.9gjeon'].setScale(VBase3(0.005, 0.005, 0.005)) + objectMgr.updateObjectProperties(objects['1252623762.9gjeon'], {}) + +if hasattr(base, 'le'): + ui.layerEditorUI.reset() + ui.layerEditorUI.addLayerEntry('Layer1', 1 ) + ui.layerEditorUI.addLayerData(1, '1252538687.73gjeon')