public static class Breakable.Manager
extends java.lang.Object
implements com.badlogic.gdx.physics.box2d.ContactListener
Breakables of the Contacts it receives. Do not forget to set as ContactListener and to call destroy() after every world step.| Modifier and Type | Field and Description |
|---|---|
com.badlogic.gdx.utils.Array<com.badlogic.gdx.physics.box2d.Body> |
brokenBodies
the bodies that broke in
strain(Contact, ContactImpulse) |
com.badlogic.gdx.utils.Array<com.badlogic.gdx.physics.box2d.Fixture> |
brokenFixtures
the fixtures that broke in
strain(Contact, ContactImpulse) |
com.badlogic.gdx.utils.Array<com.badlogic.gdx.physics.box2d.Joint> |
brokenJoints
the joints that broke in
strain(Joint, float) |
static net.dermetfan.utils.Accessor<Breakable,java.lang.Object> |
defaultUserDataAccessor
the
userDataAccessor used by default |
private com.badlogic.gdx.utils.Array<com.badlogic.gdx.physics.box2d.Joint> |
tmpJoints
used for
World.getJoints(Array) in strain(World, float) |
private net.dermetfan.utils.Accessor<Breakable,java.lang.Object> |
userDataAccessor
the
Accessor used to access a Breakable in user data (access must return a Breakable) |
| Constructor and Description |
|---|
Manager()
instantiates a new
Breakable.Manager |
Manager(net.dermetfan.utils.Accessor<Breakable,java.lang.Object> userDataAccessor)
instantiates a new
Breakable.Manager with the given userDataAccessor |
| Modifier and Type | Method and Description |
|---|---|
void |
beginContact(com.badlogic.gdx.physics.box2d.Contact contact)
does nothing
|
void |
destroy()
actually destroys all bodies in
brokenBodies and fixtures in brokenFixtures |
void |
destroy(com.badlogic.gdx.physics.box2d.Body body) |
void |
destroy(com.badlogic.gdx.physics.box2d.Fixture fixture)
destroys the given fixture (and its body depending on
Breakable.breakBodyWithoutFixtures and Breakable.breakBody) |
void |
destroy(com.badlogic.gdx.physics.box2d.Joint joint) |
void |
endContact(com.badlogic.gdx.physics.box2d.Contact contact)
does nothing
|
com.badlogic.gdx.utils.Array<com.badlogic.gdx.physics.box2d.Body> |
getBrokenBodies() |
com.badlogic.gdx.utils.Array<com.badlogic.gdx.physics.box2d.Fixture> |
getBrokenFixtures() |
net.dermetfan.utils.Accessor<Breakable,java.lang.Object> |
getUserDataAccessor() |
void |
postSolve(com.badlogic.gdx.physics.box2d.Contact contact,
com.badlogic.gdx.physics.box2d.ContactImpulse impulse)
|
void |
preSolve(com.badlogic.gdx.physics.box2d.Contact contact,
com.badlogic.gdx.physics.box2d.Manifold oldManifold)
does nothing
|
void |
setUserDataAccessor(net.dermetfan.utils.Accessor<Breakable,java.lang.Object> userDataAccessor) |
static boolean |
shouldBreak(Breakable breakable,
float normalImpulse,
float tangentImpulse,
com.badlogic.gdx.physics.box2d.Contact contact,
com.badlogic.gdx.physics.box2d.ContactImpulse impulse,
com.badlogic.gdx.physics.box2d.Fixture fixture) |
static boolean |
shouldBreak(Breakable breakable,
com.badlogic.gdx.math.Vector2 reactionForce,
float reactionTorque,
com.badlogic.gdx.physics.box2d.Joint joint) |
void |
strain(com.badlogic.gdx.physics.box2d.Contact contact,
com.badlogic.gdx.physics.box2d.ContactImpulse impulse)
|
void |
strain(com.badlogic.gdx.physics.box2d.Joint joint,
float delta)
|
void |
strain(com.badlogic.gdx.physics.box2d.World world,
float delta)
strains all joints in the given world |
public final com.badlogic.gdx.utils.Array<com.badlogic.gdx.physics.box2d.Fixture> brokenFixtures
strain(Contact, ContactImpulse)public final com.badlogic.gdx.utils.Array<com.badlogic.gdx.physics.box2d.Body> brokenBodies
strain(Contact, ContactImpulse)public final com.badlogic.gdx.utils.Array<com.badlogic.gdx.physics.box2d.Joint> brokenJoints
strain(Joint, float)public static final net.dermetfan.utils.Accessor<Breakable,java.lang.Object> defaultUserDataAccessor
userDataAccessor used by defaultprivate net.dermetfan.utils.Accessor<Breakable,java.lang.Object> userDataAccessor
Accessor used to access a Breakable in user data (access must return a Breakable)private final com.badlogic.gdx.utils.Array<com.badlogic.gdx.physics.box2d.Joint> tmpJoints
World.getJoints(Array) in strain(World, float)public Manager()
Breakable.Managerpublic Manager(net.dermetfan.utils.Accessor<Breakable,java.lang.Object> userDataAccessor)
Breakable.Manager with the given userDataAccessorpublic void destroy()
brokenBodies and fixtures in brokenFixturespublic void strain(com.badlogic.gdx.physics.box2d.Contact contact,
com.badlogic.gdx.physics.box2d.ContactImpulse impulse)
public void strain(com.badlogic.gdx.physics.box2d.World world,
float delta)
strains all joints in the given worldpublic void strain(com.badlogic.gdx.physics.box2d.Joint joint,
float delta)
public static boolean shouldBreak(Breakable breakable, float normalImpulse, float tangentImpulse, com.badlogic.gdx.physics.box2d.Contact contact, com.badlogic.gdx.physics.box2d.ContactImpulse impulse, com.badlogic.gdx.physics.box2d.Fixture fixture)
contact - for Breakable.Callback.strained(Fixture, Breakable, Contact, ContactImpulse, float, float)impulse - for Breakable.Callback.strained(Fixture, Breakable, Contact, ContactImpulse, float, float)fixture - for Breakable.Callback.strained(Fixture, Breakable, Contact, ContactImpulse, float, float)public static boolean shouldBreak(Breakable breakable, com.badlogic.gdx.math.Vector2 reactionForce, float reactionTorque, com.badlogic.gdx.physics.box2d.Joint joint)
reactionForce - the reaction forcereactionTorque - the reaction torquejoint - which circumstances to testpublic void destroy(com.badlogic.gdx.physics.box2d.Fixture fixture)
Breakable.breakBodyWithoutFixtures and Breakable.breakBody)fixture - the Fixture to destroypublic void destroy(com.badlogic.gdx.physics.box2d.Body body)
body - the Body to destroypublic void destroy(com.badlogic.gdx.physics.box2d.Joint joint)
joint - the Joint to destroypublic void beginContact(com.badlogic.gdx.physics.box2d.Contact contact)
beginContact in interface com.badlogic.gdx.physics.box2d.ContactListenerpublic void preSolve(com.badlogic.gdx.physics.box2d.Contact contact,
com.badlogic.gdx.physics.box2d.Manifold oldManifold)
preSolve in interface com.badlogic.gdx.physics.box2d.ContactListenerpublic void postSolve(com.badlogic.gdx.physics.box2d.Contact contact,
com.badlogic.gdx.physics.box2d.ContactImpulse impulse)
postSolve in interface com.badlogic.gdx.physics.box2d.ContactListenerpublic void endContact(com.badlogic.gdx.physics.box2d.Contact contact)
endContact in interface com.badlogic.gdx.physics.box2d.ContactListenerpublic com.badlogic.gdx.utils.Array<com.badlogic.gdx.physics.box2d.Fixture> getBrokenFixtures()
brokenFixturespublic com.badlogic.gdx.utils.Array<com.badlogic.gdx.physics.box2d.Body> getBrokenBodies()
brokenBodiespublic net.dermetfan.utils.Accessor<Breakable,java.lang.Object> getUserDataAccessor()
userDataAccessorpublic void setUserDataAccessor(net.dermetfan.utils.Accessor<Breakable,java.lang.Object> userDataAccessor)
userDataAccessor - the userDataAccessor to set