Example #1
0
        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;
        }
Example #2
0
        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;
        }
Example #3
0
        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;
        }
Example #4
0
        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);
 }
Example #6
0
 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);
 }
Example #7
0
        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);
            }
        }
Example #8
0
 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);
 }
Example #9
0
        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;
        }
Example #10
0
        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;
 }
Example #13
0
 public CollisionComponentBuilder AddAfterCollisionEventHandler(AfterCollisionEventHandler afterCollisionEventHandler)
 {
     _collisionComponent.AddAfterCollisionEventHandler(afterCollisionEventHandler);
     return(this);
 }
 public BodyConstructor WithAfterCollision(AfterCollisionEventHandler handler)
 {
     anonymousFixtureData.AfterCollision = handler;
     return(this);
 }