ya2 · news · projects · code · about

domino+box: end condition
[pmachines.git] / pmachines / items / box.py
1 from panda3d.bullet import BulletBoxShape, BulletRigidBodyNode, BulletGhostNode
2 from pmachines.items.item import Item
3
4
5 class Box(Item):
6
7 def __init__(self, world, plane_node, cb_inst, curr_bottom, repos, mass=1, pos=(0, 0, 0), r=0, count=0):
8 super().__init__(world, plane_node, cb_inst, curr_bottom, repos, 'assets/gltf/box/box.gltf', mass=mass, pos=pos, r=r, count=count)
9
10 def _set_shape(self):
11 self.node.add_shape(BulletBoxShape((.5, .5, .5)))
12
13
14 class HitStrategy:
15
16 def __init__(self, hit_by, node, world):
17 self._hit_by = hit_by
18 self._node = node
19 self._world = world
20
21 def end_condition(self):
22 for contact in self._world.contact_test(self._node).get_contacts():
23 other = contact.get_node1() if contact.get_node0() == self._node else contact.get_node0()
24 if other == self._hit_by.node:
25 return True