def furniture(self):
self.furniture = []
for i in range(5): # Create 5 pieces of furniture
box = loader.loadModel("grass-block.glb") # Assuming you have a box model
box.reparentTo(render)
box.setScale(0.5) # Adjust the size as needed
box.setPos(i*2 - 4, i*2 - 4, 0.5) # Position them in the room
dragNode = CollisionNode('drag')
cBox = CollisionBox(Point3(-1, -1, -1), Point3(1, 1, 1))
dragNode.addSolid(cBox)
dragNode.setIntoCollideMask(BitMask32.bit(1))
dragNode.set_from_collide_mask(0)
dragNodePath = box.attachNewNode(dragNode)
self.picker.addCollider(dragNodePath, self.pq)
# Collision for furniture collision detection
cNode = CollisionNode('furniture')
cNode.addSolid(cBox)
cNode.setFromCollideMask(BitMask32.bit(2))
cNodePath = box.attachNewNode(cNode)
self.picker.addCollider(cNodePath, self.furnitureCollisionHandler)
proximityNode = CollisionNode('proximity')
proximityBox = CollisionBox(Point3(-2, -2, -1), Point3(2, 2, 1))
proximityNode.addSolid(proximityBox)
proximityNode.setIntoCollideMask(BitMask32.bit(3))
#proximityNode.set_from_collide_mask(0)
proximityNodePath = box.attachNewNode(proximityNode)
self.picker.addCollider(proximityNodePath, self.furnitureCollisionHandler)
def collition_setup(self):
self.picker = CollisionTraverser()
self.pq = CollisionHandlerQueue()
self.furnitureCollisionHandler = CollisionHandlerEvent()
self.furnitureCollisionHandler.setInPattern('furniture-into-furniture')
self.pickerNode = CollisionNode('mouseRay')
self.pickerNP = camera.attachNewNode(self.pickerNode)
self.pickerNode.setFromCollideMask(BitMask32.bit(1))
self.pickerRay = CollisionRay()
self.pickerNode.addSolid(self.pickerRay)
self.picker.addCollider(self.pickerNP, self.pq)
def handleCollision(self, entry):
movObject = entry.getFromNodePath().getParent()
if entry.getIntoNodePath().getName() == 'furniture':
movObject.setPos(entry.getSurfaceNormal(render) + movObject.getPos())
if entry.getIntoNodePath().getName() == 'proximity'
print(entry)
How come i always get into the function even with proximity collision even though i set the pattern to furniture-into-furniture