/// <summary> /// Create a data holder without a LThing object. /// </summary> /// <param name="collisionGroup">The collision group of the object</param> /// <param name="name">The name of the object, excluding an ID</param> /// <param name="owner">The collision object this data holder is attached to</param> public CollisionObjectDataHolder(CollisionObject owner, PonykartCollisionGroups collisionGroup, string name) { this.Owner = owner; this.CollisionGroup = collisionGroup; this.Name = name; this.ID = IDs.Random; }
/// <summary> /// Is this bit flag set? /// </summary> /// <param name="other">The flag to test for</param> public static bool HasFlag(this PonykartCollisionGroups pcg, PonykartCollisionGroups other) { return (pcg & other) == other; }
public static void AddCollisionObject(this DynamicsWorld world, CollisionObject obj, PonykartCollisionGroups collisionGroup, PonykartCollidesWithGroups collidesWith) { world.AddCollisionObject(obj, collisionGroup.ToBullet(), collidesWith.ToBullet()); }
public static void AddRigidBody(this DynamicsWorld world, RigidBody body, PonykartCollisionGroups collisionGroup, PonykartCollidesWithGroups collidesWith) { world.AddRigidBody(body, collisionGroup.ToBullet(), collidesWith.ToBullet()); }
/// <summary> /// Hooks up an event handler to a collision event. /// /// The order of the two groups do not matter, as it will add them to both [a,b] and [b,a]. /// /// For example, to listen for the player colliding with the wall, you want to use Groups.PlayerID and Groups.WallID. /// </summary> /// <param name="handler">The method that will run when the event is fired</param> public void AddEvent(PonykartCollisionGroups firstType, PonykartCollisionGroups secondType, CollisionReportEvent handler) { AddEvent((int) firstType, (int) secondType, handler); }