void updateServerElements() { for (RigidBody rb : rigidBodies) { ServerElement element = rigidBodyToServerElement.get(rb); if (rb != null && rb.getMotionState() != null) { rb.getMotionState().getWorldTransform(tmpTrans); element.setTransform(tmpTrans); } if (!rb.isActive()) { rb.activate(); } // log.debug(" "+element.getPosition()); } for (Integer id : serverGameArea.getGameState().getDynamicElements().keySet()) { ServerElement elem = serverGameArea.getGameState().getDynamicElements().get(id); elem.getCollidees().clear(); } Integer nbManifold = dynamicsWorld.getDispatcher().getNumManifolds(); for (Integer i = 0; i < nbManifold; i++) { PersistentManifold pm = dynamicsWorld.getDispatcher().getManifoldByIndexInternal(i); RigidBody rb0 = (RigidBody) pm.getBody0(); RigidBody rb1 = (RigidBody) pm.getBody1(); ServerElement elem0 = rigidBodyToServerElement.get(rb0); ServerElement elem1 = rigidBodyToServerElement.get(rb1); if ((elem0 instanceof ServerBullet) || (elem1 instanceof ServerBullet)) { log.info("coll " + elem0 + " " + elem1); } elem0.addCollidee(elem1); elem1.addCollidee(elem0); } }