Пример #1
0
        public Explosive(long _uniqueID, Vector3 _position, Quaternion _rotation, String _model)
            : base(_uniqueID, _position, _rotation, _model)
        {
            Damage = 45.0f;

            CollisionBase = new CollisionSphere(_position, BASE_SIZE);
            CollisionBase.Active = false;
            CollisionBase.Parent = this;
            CollisionBase.addCollisionEvent(collisionEvent);

            ((Sphere)CollisionBase.getPhysicsCollider()).CollisionInformation.CollisionRules.Group = projectileGroup;

            explosionCollider = new CollisionSphere(_position, 3);
            explosionCollider.Active = false;
            explosionCollider.Parent = this;
            explosionCollider.addCollisionEvent(collisionEvent);

            ((Sphere)explosionCollider.getPhysicsCollider()).CollisionInformation.CollisionRules.Group = projectileGroup;

            ttl = EXPLOSIVE_TTL;
        }
 public void removeFromCollisionList(CollisionBase item)
 {
     if (item != null && item.OnCollisionList)
     {
         try
         {
             //using (new WriteLock(removeLock))
             {
                 toRemove.AddLast(item);
                 item.OnCollisionList = false;
             }
         }
         catch (ArgumentException e) { LogCat.updateValue("Error", e.Message); }
     /*#if DEBUG
         if (drawList.Contains(item))
         {
             drawList.Remove(item);
         }
         else { }
     #endif*/
     }
     else { }
     /*for (int i = 0; i < divisions; i++)
     {
         if (sectors[i].isColliding(item))
         {
             sectors[i].addCollisionItem(item);
         }
         else { }
     }*/
     if (item != null)
     {
         item.HasCollided = false;
     }
     else { }
 }
        public override bool isColliding(CollisionBase collider)
        {
            bool result = false;
            if (collider is CollisionSphere)
            {

            }
            else if (collider is CollisionBox)
            {

            }
            else if (collider is CollisionMesh)
            {

            }
            else { }

            return result;
        }
 public abstract bool isColliding(CollisionBase collider);
Пример #5
0
 public override bool isColliding(CollisionBase collider)
 {
     if (collider != null)
     {
         if (collider.Active && Active)
         {
             if (collider is CollisionBox)
             {
     #if DEBUG
                 if (boundingBox.Intersects(((CollisionBox)collider).BoundingBox))
                 {
                     HasCollided = true;
                     collider.HasCollided = true;
                 }
                 else { }
     #endif
                 return (boundingBox.Intersects(((CollisionBox)collider).BoundingBox));
             }
             else if (collider is CollisionSphere)
             {
     #if DEBUG
                 if (boundingBox.Intersects(((CollisionSphere)collider).BoundingSphere))
                 {
                     HasCollided = true;
                     collider.HasCollided = true;
                 }
                 else { }
     #endif
                 return (boundingBox.Intersects(((CollisionSphere)collider).BoundingSphere));
             }
             else if (collider is CollisionMesh)
             {
                 return (collider.isColliding(this));
             }
             else
             {
                 return false;
             }
         }
         else
         {
             return false;
         }
     }
     else
     {
         return false;
     }
 }