Added support for name in addNewObject function

This commit is contained in:
Gyedo Jeon 2010-03-24 03:31:56 +00:00
parent d4bb6e276a
commit 87e588689f
3 changed files with 19 additions and 6 deletions

View File

@ -45,6 +45,7 @@ PROP_BLIND = 4 # blind type value
TYPE_CONV = {PROP_INT: int, PROP_BOOL: bool, PROP_FLOAT: float, PROP_STR: str}
# these dynamic args should be used in update function declaration
# these dynamic args should be used in create / update function declaration
ARG_NAME = '_arg_name'
ARG_VAL = '_arg_val' # value from UI
ARG_OBJ = '_arg_object' # obj information data structure

View File

@ -2,7 +2,7 @@
Defines ObjectMgrBase
"""
import os, time, wx, types
import os, time, wx, types, copy
from direct.task import Task
from direct.actor.Actor import Actor
@ -65,7 +65,7 @@ class ObjectMgrBase:
self.lastUidMod = 0
return newUid
def addNewObject(self, typeName, uid = None, model = None, parent=None, anim = None, fSelectObject=True, nodePath=None):
def addNewObject(self, typeName, uid = None, model = None, parent=None, anim = None, fSelectObject=True, nodePath=None, nameStr=None):
""" function to add new obj to the scene """
if parent is None:
parent = self.editor.NPParent
@ -83,7 +83,13 @@ class ObjectMgrBase:
if nodePath is None:
if objDef.createFunction:
funcName = objDef.createFunction[OG.FUNC_NAME]
funcArgs = objDef.createFunction[OG.FUNC_ARGS]
funcArgs = copy.deepcopy(objDef.createFunction[OG.FUNC_ARGS])
for pair in funcArgs.items():
if pair[1] == OG.ARG_NAME:
funcArgs[pair[0]] = nameStr
break;
if type(funcName) == types.StringType:
if funcName.startswith('.'):
# when it's using default objectHandler
@ -586,7 +592,12 @@ class ObjectMgrBase:
else:
animStr = "None"
self.saveData.append("\nobjects['%s'] = objectMgr.addNewObject('%s', '%s', %s, %s, %s, fSelectObject=False)"%(uid, objDef.name, uid, modelStr, parentStr, animStr))
if objDef.named:
nameStr = "'%s'"%np.getName()
else:
nameStr = "None"
self.saveData.append("\nobjects['%s'] = objectMgr.addNewObject('%s', '%s', %s, %s, '%s', False, None, %s)"%(uid, objDef.name, uid, modelStr, parentStr, animStr, nameStr))
self.saveData.append("if objects['%s']:"%uid)
self.saveData.append(" objects['%s'].setPos(%s)"%(uid, np.getPos()))
self.saveData.append(" objects['%s'].setHpr(%s)"%(uid, np.getHpr()))

View File

@ -9,7 +9,7 @@ class ObjectGen:
class ObjectBase(ObjectGen):
""" Base class for obj definitions """
def __init__(self, name='', createFunction = None, model = None, models= [], anims = [], animNames = [], properties={},
movable = True, actor = False):
movable = True, actor = False, named=False):
ObjectGen.__init__(self, name)
self.createFunction = createFunction
self.model = model
@ -19,6 +19,7 @@ class ObjectBase(ObjectGen):
self.properties = copy.deepcopy(properties)
self.movable = movable
self.actor = actor
self.named = named
class ObjectPaletteBase:
"""