示例#1
0
        public int DoCollision(ObjCollisionProfile prof, ObjectGuid guid, PhysicsObj target)
        {
            var wo = WorldObject;

            if (wo == null)
            {
                return(-1);
            }

            var targetWO = target.WeenieObj.WorldObject;

            if (targetWO == null)
            {
                return(-1);
            }

            // no collision with self
            if (wo.Guid.Equals(targetWO.Guid))
            {
                return(-1);
            }

            /*Console.WriteLine("ObjCollisionProfile");
             * Console.WriteLine("Source: " + WorldObject.Name);
             * Console.WriteLine("Target: " + obj.WeenieObj.WorldObject.Name);*/

            wo.OnCollideObject(targetWO);

            return(0);
        }
示例#2
0
        public void InqCollisionProfile(ObjCollisionProfile prof)
        {
            if (WorldObject == null)
            {
                return;
            }

            prof.WCID     = ID;
            prof.ItemType = WorldObject.ItemType;

            if (WorldObject is Creature)
            {
                prof.Flags |= ObjCollisionProfileFlags.Creature;
            }

            if (WorldObject is Player)
            {
                prof.Flags |= ObjCollisionProfileFlags.Player;
            }

            if (WorldObject.Attackable)
            {
                prof.Flags |= ObjCollisionProfileFlags.Attackable;
            }

            if (WorldObject is Door)
            {
                prof.Flags |= ObjCollisionProfileFlags.Door;
            }
        }