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);
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; } }