public override PairFoundResult PairFound(int pairId, int attributes0, FilterData filterData0, Actor a0, Shape s0, int attributes1, FilterData filterData1, Actor a1, Shape s1, PairFlag pairFlags) { // Check if the two colliding actors are ones we want to disable collision on // a0 and a1 can be in either order, so we need to check [a0, a1] and [a1, a0] bool disableCollision = this.DisableCollisionBetweenActors.Any(d => (d.Item1 == a0 || d.Item2 == a0) && (d.Item1 == a1 || d.Item2 == a1)); return(new PairFoundResult { FilterFlags = disableCollision ? FilterFlag.Suppress : FilterFlag.Default, PairFlags = PairFlag.ContactDefault }); }
public override StatusChangeResult?StatusChange(int pairId, PairFlag pairFlags, FilterFlag filterFlags) { return(null); }