Esempio n. 1
0
        void MagnetDetachObject(MagnetObjectItem item)
        {
            item.fixedJoint.Dispose();
            UnsubscribeToDeletionEvent(item.mapObject);

            magnetAttachedObjects.Remove(item);
        }
Esempio n. 2
0
        void CreateFixedJointForAttachedObject(MagnetObjectItem item)
        {
            FixedJoint fixedJoint = PhysicsWorld.Instance.CreateFixedJoint(magnetBody, item.body);

            fixedJoint.PushedToWorld = true;
            item.fixedJoint          = fixedJoint;
        }
Esempio n. 3
0
        void MagnetAttachObject(Body mapObjectBody)
        {
            if (mapObjectBody.IsDisposed)
            {
                return;
            }

            if (IsMagnetBodyAttached(mapObjectBody))
            {
                Log.Fatal("Crane: MagnetAttachObject: IsMagnetBodyAttached( mapObjectBody ).");
            }

            MapObject mapObject = MapSystemWorld.GetMapObjectByBody(mapObjectBody);

            if (mapObject != null && mapObject.PhysicsModel != null)
            {
                MagnetObjectItem item = new MagnetObjectItem();
                item.mapObject = mapObject;
                item.body      = mapObjectBody;
                item.bodyIndex = Array.IndexOf <Body>(mapObject.PhysicsModel.Bodies, mapObjectBody);

                SubscribeToDeletionEvent(mapObject);

                CreateFixedJointForAttachedObject(item);

                magnetAttachedObjects.Add(item);
            }
        }
Esempio n. 4
0
        void MagnetDetachObject(MagnetObjectItem item)
        {
            item.fixedJoint.Dispose();
            RemoveRelationship(item.mapObject);

            magnetAttachedObjects.Remove(item);
        }
Esempio n. 5
0
        void MagnetAttachObject(Body mapObjectBody)
        {
            if (mapObjectBody.IsDisposed)
            {
                return;
            }

            Trace.Assert(!IsMagnetBodyAttached(mapObjectBody));

            MapObject mapObject = MapSystemWorld.GetMapObjectByBody(mapObjectBody);

            if (mapObject == null)
            {
                return;
            }

            MagnetObjectItem item = new MagnetObjectItem();

            item.mapObject = mapObject;
            item.body      = mapObjectBody;
            item.bodyIndex = Array.IndexOf <Body>(mapObject.PhysicsModel.Bodies, mapObjectBody);

            AddRelationship(mapObject);

            CreateFixedJointForAttachedObject(item);

            magnetAttachedObjects.Add(item);
        }
Esempio n. 6
0
        void MagnetDetachObject( MagnetObjectItem item )
        {
            item.fixedJoint.Dispose();
            RemoveRelationship( item.mapObject );

            magnetAttachedObjects.Remove( item );
        }
Esempio n. 7
0
        void MagnetAttachObject( Body mapObjectBody )
        {
            if( mapObjectBody.IsDisposed )
                return;

            Trace.Assert( !IsMagnetBodyAttached( mapObjectBody ) );

            MapObject mapObject = MapSystemWorld.GetMapObjectByBody( mapObjectBody );
            if( mapObject == null )
                return;

            MagnetObjectItem item = new MagnetObjectItem();
            item.mapObject = mapObject;
            item.body = mapObjectBody;
            item.bodyIndex = Array.IndexOf<Body>( mapObject.PhysicsModel.Bodies, mapObjectBody );

            AddRelationship( mapObject );

            CreateFixedJointForAttachedObject( item );

            magnetAttachedObjects.Add( item );
        }
Esempio n. 8
0
 void CreateFixedJointForAttachedObject( MagnetObjectItem item )
 {
     FixedJoint fixedJoint = PhysicsWorld.Instance.CreateFixedJoint( magnetBody, item.body );
     fixedJoint.PushedToWorld = true;
     item.fixedJoint = fixedJoint;
 }
Esempio n. 9
0
		void MagnetDetachObject( MagnetObjectItem item )
		{
			item.fixedJoint.Dispose();
			UnsubscribeToDeletionEvent( item.mapObject );

			magnetAttachedObjects.Remove( item );
		}
Esempio n. 10
0
		void MagnetAttachObject( Body mapObjectBody )
		{
			if( mapObjectBody.IsDisposed )
				return;

			if( IsMagnetBodyAttached( mapObjectBody ) )
				Log.Fatal( "Crane: MagnetAttachObject: IsMagnetBodyAttached( mapObjectBody )." );

			MapObject mapObject = MapSystemWorld.GetMapObjectByBody( mapObjectBody );
			if( mapObject != null && mapObject.PhysicsModel != null )
			{
				MagnetObjectItem item = new MagnetObjectItem();
				item.mapObject = mapObject;
				item.body = mapObjectBody;
				item.bodyIndex = Array.IndexOf<Body>( mapObject.PhysicsModel.Bodies, mapObjectBody );

				SubscribeToDeletionEvent( mapObject );

				CreateFixedJointForAttachedObject( item );

				magnetAttachedObjects.Add( item );
			}
		}