mirror of
https://github.com/panda3d/panda3d.git
synced 2025-10-03 10:22:45 -04:00
Added support for name in addNewObject function
This commit is contained in:
parent
d4bb6e276a
commit
87e588689f
@ -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
|
||||
|
@ -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()))
|
||||
|
@ -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:
|
||||
"""
|
||||
|
Loading…
x
Reference in New Issue
Block a user