import org.jbox2d.common.Vec2; import org.jbox2d.dynamics.Body; import pulpfizz.physics.Actor; import pulpfizz.physics.BodyUtils; import pulpfizz.pulp.body.PhysicsLayer; public class BlokksHand extends Hand { GameScene scene; public BlokksHand(PhysicsLayer physics, GameScene game) { super(physics); this.scene = game; } @Override public boolean treadLightlyWithBody(Body b) { Actor a = (Actor) b.getUserData(); if (a.getID() == ToyBox.TOYBOX_GROUP) return false; else return super.treadLightlyWithBody(b); } @Override protected Body queryForBody(Vec2 physPoint) { Body[] bodies = BodyUtils.getAllBodiesAt(physics.getWorld(), physPoint); Body goodChoice = null; Body nextChoice = null; for (Body b : bodies) { Actor a = (Actor) b.getUserData(); if (a.isInGroup(ToyBox.TOYBOX_GROUP)) { goodChoice = b; break; } if (b != sensorBody) { nextChoice = b; continue; } } if (goodChoice == null) return nextChoice; return goodChoice; } }