Пример #1
0
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"])