public void SetCollisionLayer(FixturesComponent component, Fixture fixture, int layer) { if (fixture.CollisionLayer == layer) { return; } DebugTools.Assert(component.Fixtures.ContainsKey(fixture.ID)); fixture._collisionLayer = layer; if (TryComp <PhysicsComponent>(component.Owner, out var body)) { _fixtures.FixtureUpdate(component, body); } _broadphaseSystem.Refilter(fixture); }
public void RemoveCollisionMask(FixturesComponent component, Fixture fixture, int mask) { if ((fixture.CollisionMask & mask) == 0x0) { return; } DebugTools.Assert(component.Fixtures.ContainsKey(fixture.ID)); fixture._collisionMask &= ~mask; if (TryComp <PhysicsComponent>(component.Owner, out var body)) { _fixtures.FixtureUpdate(component, body); } _broadphaseSystem.Refilter(fixture); }