internal void Destroy() { #if DEBUG if (ShapeType == ShapeType.Polygon) { ((PolygonShape)Shape).Vertices.AttachedToBody = false; } #endif // The proxies must be destroyed before calling this. Debug.Assert(ProxyCount == 0); // Free the proxy array. Proxies = null; Shape = null; //FPE: We set the userdata to null here to help prevent bugs related to stale references in GC UserData = null; BeforeCollision = null; OnCollision = null; OnSeparation = null; AfterCollision = null; if (Body.World.FixtureRemoved != null) { Body.World.FixtureRemoved(this); } Body.World.FixtureAdded = null; Body.World.FixtureRemoved = null; OnSeparation = null; OnCollision = null; }
internal void Destroy() { // The proxies must be destroyed before calling this. Debug.Assert(ProxyCount == 0); // Free the proxy array. Proxies = null; Shape = null; BeforeCollision = null; OnCollision = null; OnSeparation = null; AfterCollision = null; if (Body.World.FixtureRemoved != null) { Body.World.FixtureRemoved(this); } //GW: Wtf were this 2 lines present? FixtureAdded is a global callback //Body.World.FixtureAdded = null; //Body.World.FixtureRemoved = null; OnSeparation = null; OnCollision = null; }
internal void destroy() { #if DEBUG if (shape.shapeType == ShapeType.Polygon) { ((PolygonShape)shape).vertices.attachedToBody = false; } #endif // The proxies must be destroyed before calling this. Debug.Assert(proxyCount == 0); // Free the proxy array. proxies = null; shape = null; //FPE: We set the userdata to null here to help prevent bugs related to stale references in GC userData = null; beforeCollision = null; onCollision = null; onSeparation = null; afterCollision = null; if (body._world.onFixtureRemoved != null) { body._world.onFixtureRemoved(this); } body._world.onFixtureAdded = null; body._world.onFixtureRemoved = null; onSeparation = null; onCollision = null; }
internal void Destroy() { bool flag = this.Shape.ShapeType == ShapeType.Polygon; if (flag) { ((PolygonShape)this.Shape).Vertices.AttachedToBody = false; } Debug.Assert(this.ProxyCount == 0); this.Proxies = null; this.Shape = null; this.UserData = null; this.BeforeCollision = null; this.OnCollision = null; this.OnSeparation = null; this.AfterCollision = null; bool flag2 = this.Body._world.FixtureRemoved != null; if (flag2) { this.Body._world.FixtureRemoved(this); } this.Body._world.FixtureAdded = null; this.Body._world.FixtureRemoved = null; this.OnSeparation = null; this.OnCollision = null; }
public BodyConstructor WithAfterCollision(string fixtureName, AfterCollisionEventHandler handler) { if (fixtureBuilderData.ContainsKey(fixtureName)) { var newData = new FixtureData { AfterCollision = handler }; fixtureBuilderData.Add(fixtureName, newData); } else { fixtureBuilderData[fixtureName].AfterCollision = handler; } return(this); }
protected override void Recycle(bool isReleasing) { if (isReleasing) { BroadphaseProxy.Recycle(); } WorldTransform = Matrix3.Identity; RemoveNextUpdate = false; Owner = null; Shape = null; BeforeCollision = null; OnCollision = null; AfterCollision = null; OnSeparation = null; base.Recycle(isReleasing); }
internal void Destroy() { // The proxies must be destroyed before calling this. Debug.Assert(ProxyCount == 0); // Free the proxy array. Proxies = null; Shape = null; BeforeCollision = null; OnCollision = null; OnSeparation = null; AfterCollision = null; if (Body.World.FixtureRemoved != null) { Body.World.FixtureRemoved(this); } }
protected override void Recycle(bool isReleasing) { if (isReleasing) BroadphaseProxy.Recycle(); WorldTransform = Matrix3.Identity; RemoveNextUpdate = false; Owner = null; Shape = null; BeforeCollision = null; OnCollision = null; AfterCollision = null; OnSeparation = null; base.Recycle(isReleasing); }
internal void Destroy() { // The proxies must be destroyed before calling this. Debug.Assert(ProxyCount == 0); // Free the proxy array. Proxies = null; Shape = null; BeforeCollision = null; OnCollision = null; OnSeparation = null; AfterCollision = null; if (Body.World.FixtureRemoved != null) { Body.World.FixtureRemoved(this); } Body.World.FixtureAdded = null; Body.World.FixtureRemoved = null; OnSeparation = null; OnCollision = null; }
internal void Destroy() { #if DEBUG if (ShapeType == ShapeType.Polygon) ((PolygonShape)Shape).Vertices.AttachedToBody = false; #endif // The proxies must be destroyed before calling this. Debug.Assert(ProxyCount == 0); // Free the proxy array. Proxies = null; Shape = null; //FPE: We set the userdata to null here to help prevent bugs related to stale references in GC UserData = null; BeforeCollision = null; OnCollision = null; OnSeparation = null; AfterCollision = null; if (Body.World.FixtureRemoved != null) { Body.World.FixtureRemoved(this); } Body.World.FixtureAdded = null; Body.World.FixtureRemoved = null; OnSeparation = null; OnCollision = null; }
public BodyConstructor WithAfterCollision(string fixtureName, AfterCollisionEventHandler handler) { if (fixtureBuilderData.ContainsKey(fixtureName)) { var newData = new FixtureData { AfterCollision = handler }; fixtureBuilderData.Add(fixtureName, newData); } else fixtureBuilderData[fixtureName].AfterCollision = handler; return this; }
public BodyConstructor WithAfterCollision(AfterCollisionEventHandler handler) { anonymousFixtureData.AfterCollision = handler; return this; }
public CollisionComponentBuilder AddAfterCollisionEventHandler(AfterCollisionEventHandler afterCollisionEventHandler) { _collisionComponent.AddAfterCollisionEventHandler(afterCollisionEventHandler); return(this); }
public BodyConstructor WithAfterCollision(AfterCollisionEventHandler handler) { anonymousFixtureData.AfterCollision = handler; return(this); }