Example usage for com.badlogic.gdx.physics.box2d Fixture getFilterData

List of usage examples for com.badlogic.gdx.physics.box2d Fixture getFilterData

Introduction

In this page you can find the example usage for com.badlogic.gdx.physics.box2d Fixture getFilterData.

Prototype

public Filter getFilterData() 

Source Link

Usage

From source file:com.agateau.pixelwheels.racer.SpinningComponent.java

License:Open Source License

@Override
public void beginContact(Contact contact, Fixture otherFixture) {
    if (!mActive) {
        return;/*  w  ww. j  a  v  a  2 s .  co  m*/
    }
    // If we hit something, stop spinning: we may not be able to do a full circle at all if we
    // are blocked by a wall
    if ((otherFixture.getFilterData().categoryBits & CollisionCategories.SOLID_BODIES) != 0) {
        stopSpinning();
    }
}

From source file:com.agateau.pixelwheels.utils.Box2DUtils.java

License:Open Source License

public static void setCollisionInfo(Body body, int categoryBits, int maskBits) {
    for (Fixture fixture : body.getFixtureList()) {
        Filter filter = fixture.getFilterData();
        filter.categoryBits = (short) categoryBits;
        filter.maskBits = (short) maskBits;
        fixture.setFilterData(filter);//from w w  w. j a  v a 2 s. c  o  m
    }
}

From source file:com.stercore.code.net.dermetfan.utils.libgdx.box2d.Box2DUtils.java

License:Apache License

/** @param fixture the fixture for which to setup a new {@link FixtureDef}
 *  @return a new {@link FixtureDef} instance that can be used to clone the given fixture */
public static FixtureDef createDef(Fixture fixture) {
    FixtureDef fixtureDef = new FixtureDef();
    fixtureDef.density = fixture.getDensity();
    Filter filter = fixture.getFilterData();
    fixtureDef.filter.categoryBits = filter.categoryBits;
    fixtureDef.filter.groupIndex = filter.groupIndex;
    fixtureDef.filter.maskBits = filter.maskBits;
    fixtureDef.friction = fixture.getFriction();
    fixtureDef.isSensor = fixture.isSensor();
    fixtureDef.restitution = fixture.getRestitution();
    fixtureDef.shape = fixture.getShape();
    return fixtureDef;
}

From source file:DungeonCleanerGame.DungeonCollissions.java

@Override
public void beginContact(Contact contact) {
    Fixture fixA = contact.getFixtureA();
    Fixture fixB = contact.getFixtureB();
    Body Player;//from ww w  .j  a  va2 s.  c  o  m
    Body Monster;
    if ((fixA.getFilterData().groupIndex == gPW && fixB.getFilterData().groupIndex == gM)
            || (fixA.getFilterData().groupIndex == gM && fixB.getFilterData().groupIndex == gPW)) {
        ++numPlyHits;
        eng.gameRender().addDebugString("PlayerHits = " + numPlyHits, 1);
        if (fixB.getFilterData().groupIndex == gM) {
            Monster = fixB.getBody();
            Player = fixA.getBody();
        } else {
            Monster = fixA.getBody();
            Player = fixB.getBody();
        }
        WorldManifold mani = contact.getWorldManifold();
        combat.computeStrikeToMonster(Player, Monster, mani);
    } else if ((fixA.getFilterData().groupIndex == gP && fixB.getFilterData().groupIndex == gM)
            || (fixA.getFilterData().groupIndex == gM && fixB.getFilterData().groupIndex == gP)) {
        ++numMonHits;
        eng.gameRender().addDebugString("MonsterHits = " + numMonHits, 2);
        if (fixB.getFilterData().groupIndex == gP) {
            Player = fixB.getBody();
            Monster = fixA.getBody();
        } else {
            Player = fixA.getBody();
            Monster = fixB.getBody();
        }
        WorldManifold mani = contact.getWorldManifold();
        combat.computeStrikeToPlayer(Monster, Player, mani);
    } else if ((fixA.getFilterData().groupIndex == gP && fixB.getFilterData().groupIndex == gMV)
            || (fixA.getFilterData().groupIndex == gMV && fixB.getFilterData().groupIndex == gP)) {
        ++numMonDetect;
        eng.gameRender().addDebugString("MonsterDetection = " + numMonDetect, 3);
        if (fixB.getFilterData().groupIndex == gP) {
            Player = fixB.getBody();
            Monster = fixA.getBody();
        } else {
            Player = fixA.getBody();
            Monster = fixB.getBody();
        }

        int monsterID = (Integer) Monster.getUserData();
        gmap.getEnemy(monsterID).getIA().actAlert(Player);

    } else if ((fixA.getFilterData().groupIndex == gP && fixB.getFilterData().groupIndex == gB)
            || (fixA.getFilterData().groupIndex == gB && fixB.getFilterData().groupIndex == gP)) {
        if (fixB.getFilterData().groupIndex == gP) {
            Player = fixB.getBody();
            Monster = fixA.getBody();
        } else {
            Player = fixA.getBody();
            Monster = fixB.getBody();
        }
        WorldManifold mani = contact.getWorldManifold();
        combat.computeStrikeToPlayer(Monster, Player, mani);

        //SE 
        //eng.gamePhysics().getWorld().
    }
}

From source file:headmade.arttag.ArtTagContactListener.java

License:Apache License

private boolean isHint(Fixture fixOther) {
    return fixOther.getFilterData().categoryBits == ArtTag.CAT_HINT;
}

From source file:headmade.arttag.ArtTagContactListener.java

License:Apache License

private boolean isArtTrigger(Fixture fixOther) {
    return fixOther.getFilterData().categoryBits == ArtTag.CAT_ARTTRIGGER;
}

From source file:headmade.arttag.ArtTagContactListener.java

License:Apache License

private boolean isPlayer(Fixture fix) {
    return fix.getFilterData().categoryBits == ArtTag.CAT_PLAYER;
}

From source file:headmade.arttag.ArtTagContactListener.java

License:Apache License

private boolean isPlayerLight(Fixture fix) {
    return fix.getFilterData().categoryBits == ArtTag.CAT_PLAYERLIGHT;
}

From source file:headmade.arttag.ArtTagContactListener.java

License:Apache License

private boolean isGuardLight(Fixture fix) {
    return fix.getFilterData().categoryBits == ArtTag.CAT_GUARDLIGHT;
}

From source file:headmade.arttag.ArtTagContactListener.java

License:Apache License

private boolean isGuard(Fixture fix) {
    return fix.getFilterData().categoryBits == ArtTag.CAT_GUARD;
}