def getSurfaceFromContact(contact, battleZone=None): if not battleZone: battleZone = base hitNode = contact.getNode() if not isinstance(hitNode, BulletRigidBodyNode): return Surfaces["default"] if hasattr(contact, 'getTriangleIndex'): triangleIdx = contact.getTriangleIndex() if battleZone.bspLoader.hasBrushCollisionNode(hitNode): if battleZone.bspLoader.hasBrushCollisionTriangle( hitNode, triangleIdx): surfaceProp = battleZone.bspLoader.getBrushTriangleMaterial( hitNode, triangleIdx) return Surfaces.get(surfaceProp, Surfaces["default"]) hitNp = NodePath(hitNode) return Surfaces.get(hitNp.getSurfaceProp(), Surfaces["default"])