예제 #1
0
        public CollisionRule(Objectmap objMap, CollisionAction action, Type[] objFilter = null, Action <PhysicalObject> method = null)
        {
            //validate objFilter
            foreach (Type objType in objFilter)
            {
                if (!objType.IsSubclassOf(typeof(PhysicalObject)))
                {
                    throw new InvalidObjectTypeException("objType in objFilter (" + objType.ToString() + ") is not a subclass of PhysicalObject");
                }
            }

            Type   = CollisionRuleType.Objectmap;
            Target = objMap;
            if (objFilter != null)
            {
                ObjectmapFilter = new List <Type>(objFilter);
                FilterEnabled   = true;
            }
            else
            {
                FilterEnabled = false;
            }
            Action = action;
            Method = method;
        }
예제 #2
0
 public CollisionRule(PhysicalObject obj, CollisionAction action, Action <PhysicalObject> method = null)
 {
     Type   = CollisionRuleType.Object;
     Target = obj;
     Action = action;
     Method = method;
 }
예제 #3
0
 public CollisionRule(Shape shape, CollisionAction action, Action <Shape> method = null)
 {
     Type   = CollisionRuleType.Shape;
     Target = shape;
     Action = action;
     Method = method;
 }
예제 #4
0
 public CollisionRule(PhysicalObject obj, CollisionAction action, Action<PhysicalObject> method = null)
 {
     Type = CollisionRuleType.Object;
     Target = obj;
     Action = action;
     Method = method;
 }
예제 #5
0
 public CollisionRule(Shape shape, CollisionAction action, Action<Shape> method = null)
 {
     Type = CollisionRuleType.Shape;
     Target = shape;
     Action = action;
     Method = method;
 }
예제 #6
0
        public CollisionRule(Type objType, CollisionAction action, Action<PhysicalObject> method = null)
        {
            //validate objType
            if (!objType.IsSubclassOf(typeof(PhysicalObject)))
                throw new InvalidObjectTypeException("objType (" + objType + ") is not a subclass of PhysicalObject");

            Type = CollisionRuleType.ObjectType;
            Target = objType;
            Action = action;
            Method = method;
        }
예제 #7
0
        public CollisionRule(Type objType, CollisionAction action, Action <PhysicalObject> method = null)
        {
            //validate objType
            if (!objType.IsSubclassOf(typeof(PhysicalObject)))
            {
                throw new InvalidObjectTypeException("objType (" + objType.ToString() + ") is not a subclass of PhysicalObject");
            }

            Type   = CollisionRuleType.ObjectType;
            Target = objType;
            Action = action;
            Method = method;
        }
예제 #8
0
 public CollisionRule(Spritemap spritemap, CollisionAction action, Sprite[] spriteFilter = null, Action <PhysicalObject> method = null)
 {
     Type   = CollisionRuleType.Spritemap;
     Target = spritemap;
     if (spriteFilter != null)
     {
         SpritemapFilter = new List <Sprite>(spriteFilter);
         FilterEnabled   = true;
     }
     else
     {
         FilterEnabled = false;
     }
     Action = action;
     Method = method;
 }
예제 #9
0
        public CollisionRule(GameObjectCollection objMap, CollisionAction action, Type[] objFilter = null, Action<PhysicalObject> method = null)
        {
            Type = CollisionRuleType.Objectmap;
            Target = objMap;
            Action = action;
            Method = method;

            if (objFilter != null)
            {
                //validate the filter
                foreach (Type objType in objFilter)
                {
                    if (!objType.IsSubclassOf(typeof (PhysicalObject)))
                        throw new InvalidObjectTypeException("objType in objFilter (" + objType +
                                                             ") is not a subclass of PhysicalObject");
                }

                ObjectmapFilter = new List<Type>(objFilter);

                FilterEnabled = true;
            }
            else
                FilterEnabled = false;
        }