Skip to content

Commit 55ef3de

Browse files
committed
Update Munk2D to 2.0.1, fixes #289
1 parent 843037b commit 55ef3de

File tree

2 files changed

+75
-2
lines changed

2 files changed

+75
-2
lines changed

pymunk/_version.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,9 @@
3232
cp = _chipmunk_cffi.lib
3333
ffi = _chipmunk_cffi.ffi
3434

35-
version = "7.0.1"
35+
version = "7.0.2"
3636

3737
chipmunk_version = "%s-%s" % (
3838
ffi.string(cp.cpVersionString).decode("utf-8"),
39-
"5ef7498946f0e956f294cb3fea283626921e4128",
39+
"ade7ed72849e60289eefb7a41e79ae6322fefaf3",
4040
)

pymunk/tests/test_space.py

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -858,6 +858,79 @@ def callback(
858858
]
859859
self.assertListEqual(callback_calls, expected_calls)
860860

861+
def testSameTypeCollisionHandler(self) -> None:
862+
s = p.Space()
863+
864+
callback_calls = []
865+
866+
def callback(
867+
name: str,
868+
types: tuple[Optional[int], Optional[int]],
869+
arb: p.Arbiter,
870+
space: p.Space,
871+
data: dict[Any, Any],
872+
) -> None:
873+
callback_calls.append(
874+
(
875+
name,
876+
types,
877+
(arb.shapes[0].friction, arb.shapes[1].friction),
878+
)
879+
)
880+
881+
handler_order = [
882+
(1, 1),
883+
(1, None),
884+
(None, None),
885+
]
886+
887+
for t1, t2 in handler_order:
888+
s.on_collision(
889+
t1,
890+
t2,
891+
begin=functools.partial(callback, "begin", (t1, t2)),
892+
pre_solve=functools.partial(callback, "pre_solve", (t1, t2)),
893+
post_solve=functools.partial(callback, "post_solve", (t1, t2)),
894+
separate=functools.partial(callback, "separate", (t1, t2)),
895+
)
896+
897+
b1 = p.Body(1, 30)
898+
c1 = p.Circle(b1, 10)
899+
b1.position = 5, 3
900+
c1.collision_type = 1
901+
c1.friction = 1
902+
903+
b2 = p.Body(body_type=p.Body.STATIC)
904+
c2 = p.Circle(b2, 10)
905+
c2.collision_type = 1
906+
c2.friction = 2
907+
908+
s.add(b1, c1, b2, c2)
909+
910+
s.step(0.1)
911+
b1.position = 100, 100
912+
s.step(0.1)
913+
914+
expected_calls = [
915+
("begin", (1, 1), (2, 1)),
916+
("begin", (1, None), (2, 1)),
917+
("begin", (1, None), (1, 2)),
918+
("begin", (None, None), (2, 1)),
919+
("pre_solve", (1, 1), (2, 1)),
920+
("pre_solve", (1, None), (2, 1)),
921+
("pre_solve", (1, None), (1, 2)),
922+
("pre_solve", (None, None), (2, 1)),
923+
("post_solve", (1, 1), (2, 1)),
924+
("post_solve", (1, None), (2, 1)),
925+
("post_solve", (1, None), (1, 2)),
926+
("post_solve", (None, None), (2, 1)),
927+
("separate", (1, 1), (2, 1)),
928+
("separate", (1, None), (2, 1)),
929+
("separate", (1, None), (1, 2)),
930+
("separate", (None, None), (2, 1)),
931+
]
932+
self.assertListEqual(callback_calls, expected_calls)
933+
861934
def testWildcardCollisionHandler(self) -> None:
862935
s = p.Space()
863936
b1 = p.Body(1, 1)

0 commit comments

Comments
 (0)