Browse Source

added a ship flattening test function

Zachary Pavlov 19 years ago
parent
commit
b77514867b
1 changed files with 22 additions and 1 deletions
  1. 22 1
      direct/src/showbase/PythonUtil.py

+ 22 - 1
direct/src/showbase/PythonUtil.py

@@ -23,7 +23,7 @@ __all__ = ['enumerate', 'unique', 'indent', 'nonRepeatingRandomList',
 '_equal', '_notEqual', '_isNone', '_notNone', '_contains', '_notIn',
 '_equal', '_notEqual', '_isNone', '_notNone', '_contains', '_notIn',
 'ScratchPad', 'Sync', 'RefCounter', 'itype', 'getNumberedTypedString',
 'ScratchPad', 'Sync', 'RefCounter', 'itype', 'getNumberedTypedString',
 'printNumberedTyped', 'DelayedCall', 'DelayedFunctor',
 'printNumberedTyped', 'DelayedCall', 'DelayedFunctor',
-'FrameDelayedCallback', 'ArgumentEater', 'ClassTree', 'getBase',]
+'FrameDelayedCallback', 'ArgumentEater', 'ClassTree', 'getBase','superFlattenShip']
 
 
 import types
 import types
 import string
 import string
@@ -2435,6 +2435,27 @@ def getBase():
     except:
     except:
         return simbase
         return simbase
 
 
+def superFlattenShip(ship):
+
+    #PHASE 1: remove characters
+    characterNodes=ship.findAllMatches("**/+Character")
+    for i in range(characterNodes.getNumPaths()):
+        character=characterNodes.getPath(i)
+        children=character.getChildrenAsList()
+        for child in children:
+            child.copyTo(character.getParent())
+        character.reparentTo(hidden)
+
+    #PHASE 2: remove textures
+    tex=ship.findAllTextures().getTexture(0)
+    ship.setTexture(tex,1000)
+
+    #PHASE 3: stop rocking task
+    taskMgr.remove("shipRocking-%d"%(ship.getDoId()))
+
+    #PHASE 4: flatten strong!
+    return ship.flattenStrong()
+
 def exceptionLogged(f):
 def exceptionLogged(f):
     """decorator that prints the function name and all arguments if an
     """decorator that prints the function name and all arguments if an
     exception passes back through the stack frame
     exception passes back through the stack frame