open_toontown_panda3d/tests/collide/test_collision_handlers.py

109 lines
3.4 KiB
Python

from direct.stdpy.pickle import dumps, loads
from panda3d.core import NodePath, CollisionNode
def test_collision_handler_event_pickle():
from panda3d.core import CollisionHandlerEvent
handler = CollisionHandlerEvent()
handler.add_in_pattern("abcdefg")
handler.add_in_pattern("test")
handler.add_again_pattern("again pattern")
handler.add_again_pattern("another again pattern")
handler.add_out_pattern("out pattern")
handler = loads(dumps(handler, -1))
assert tuple(handler.in_patterns) == ("abcdefg", "test")
assert tuple(handler.again_patterns) == ("again pattern", "another again pattern")
assert tuple(handler.out_patterns) == ("out pattern",)
def test_collision_handler_queue_pickle():
from panda3d.core import CollisionHandlerQueue
handler = CollisionHandlerQueue()
handler = loads(dumps(handler, -1))
assert type(handler) == CollisionHandlerQueue
def test_collision_handler_floor_pickle():
from panda3d.core import CollisionHandlerFloor
collider1 = NodePath(CollisionNode("collider1"))
collider2 = NodePath(CollisionNode("collider2"))
target1 = NodePath("target1")
target2 = NodePath("target2")
center = NodePath("center")
handler = CollisionHandlerFloor()
handler.add_out_pattern("out pattern")
handler.add_collider(collider1, target1)
handler.add_collider(collider2, target2)
handler.center = center
handler.offset = 1.0
handler.reach = 2.0
handler.max_velocity = 3.0
handler = loads(dumps(handler, -1))
assert tuple(handler.in_patterns) == ()
assert tuple(handler.again_patterns) == ()
assert tuple(handler.out_patterns) == ("out pattern",)
assert handler.center.name == "center"
assert handler.offset == 1.0
assert handler.reach == 2.0
assert handler.max_velocity == 3.0
def test_collision_handler_gravity_pickle():
from panda3d.core import CollisionHandlerGravity
collider1 = NodePath(CollisionNode("collider1"))
collider2 = NodePath(CollisionNode("collider2"))
target1 = NodePath("target1")
target2 = NodePath("target2")
handler = CollisionHandlerGravity()
handler.add_out_pattern("out pattern")
handler.add_collider(collider1, target1)
handler.add_collider(collider2, target2)
handler.offset = 1.0
handler.reach = 2.0
handler.max_velocity = 3.0
handler.gravity = -4.0
handler = loads(dumps(handler, -1))
assert tuple(handler.in_patterns) == ()
assert tuple(handler.again_patterns) == ()
assert tuple(handler.out_patterns) == ("out pattern",)
assert handler.center == None
assert handler.offset == 1.0
assert handler.reach == 2.0
assert handler.max_velocity == 3.0
assert handler.gravity == -4.0
def test_collision_handler_pusher_pickle():
from panda3d.core import CollisionHandlerPusher
collider1 = NodePath(CollisionNode("collider1"))
collider2 = NodePath(CollisionNode("collider2"))
target1 = NodePath("target1")
target2 = NodePath("target2")
handler = CollisionHandlerPusher()
handler.add_again_pattern("again pattern")
handler.add_collider(collider1, target1)
handler.add_collider(collider2, target2)
handler.horizontal = True
handler = loads(dumps(handler, -1))
assert tuple(handler.in_patterns) == ()
assert tuple(handler.again_patterns) == ("again pattern",)
assert tuple(handler.out_patterns) == ()
assert not handler.has_center()
assert handler.horizontal