Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* The UserData#set(Body, Object) method is not necessary. It's just meant to make it a bit easier because you don't have to check if a UserData instance already exists in the Body/Fixture/Joint's user data. The method sure needs some improvements, but I guess it's enough for you to get the idea. */
- /** holds a {@link Box2DSprite} and {@link Breakable} for use with the according {@link Accessor Accessors}
- * @author dermetfan */
- public class UserData {
- public Box2DSprite sprite;
- public Breakable breakable;
- public UserData() {
- }
- public UserData(Box2DSprite sprite, Breakable breakable) {
- this.sprite = sprite;
- this.breakable = breakable;
- }
- /** creates a new {@link UserData} instance if the body's {@link Body#getUserData() user data} does not already hold one and puts the given object in (if it's a {@link Breakable} or {@link Box2DSprite})
- * @param data the {@link Box2DSprite} or {@link Breakable} to put in the body's user data */
- public static void set(Body body, Object data) {
- UserData userData = body.getUserData() instanceof UserData ? (UserData) body.getUserData() : new UserData();
- if(data instanceof Box2DSprite)
- userData.sprite = (Box2DSprite) data;
- else if(data instanceof Breakable)
- userData.breakable = (Breakable) data;
- }
- }
- ///////////////////////////////////////////////////////////////////////////////////////////
- Box2DSprite.setUserDataAccessor(new Accessor<Box2DSprite, Object>() {
- @Override
- public Box2DSprite access(Object object) {
- if(object instanceof Box2DSprite)
- return (Box2DSprite) object;
- if(object instanceof UserData)
- return ((UserData) object).sprite;
- return null;
- }
- });
- Breakable.Manager manager = new Breakable.Manager();
- manager.setUserDataAccessor(new Accessor<Breakable, Object>() {
- @Override
- public Breakable access(Object object) {
- if(object instanceof Breakable)
- return (Breakable) object;
- if(object instanceof UserData)
- return ((UserData) object).breakable;
- return null;
- }
- });
- UserData.set(body, sprite);
- UserData.set(body, breakable);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement