Esempio n. 1
0
        private List <T4_occupant> get_colliders(T4_rect checkbox)
        {
            List <T4_occupant> colliders = new List <T4_occupant>();

            // nothing to look here and deeper, we're outside of rect
            if (!_rect.Is_intersects_with(checkbox))
            {
                return(colliders);
            }

            // add occupants from the deeper rooms
            if (_rooms != null)
            {
                foreach (T4 room in _rooms)
                {
                    colliders.AddRange(room.get_colliders(checkbox));
                }
            }

            // add own occupants
            foreach (T4_occupant occupant in _occupants)
            {
                if (occupant.Rect.Is_intersects_with(checkbox))
                {
                    colliders.Add(occupant);
                }
            }

            return(colliders);
        }
Esempio n. 2
0
        public List <T4_rect> Get_colliding_obj_rects(T4_rect checkbox)
        {
            List <T4_rect> rects = new List <T4_rect>();

            foreach (T4_occupant occupant in get_colliders(checkbox))
            {
                rects.Add(occupant.Rect);
            }

            return(rects);
        }
Esempio n. 3
0
        public List <T> Get_colliding_objects <T>(T4_rect checkbox)
        {
            List <T> objects = new List <T>();

            foreach (T4_occupant occupant in get_colliders(checkbox))
            {
                objects.Add((T)occupant.Obj);
            }

            return(objects);
        }
Esempio n. 4
0
 // maybe it's wrong. gotta check
 public bool Is_intersects_with(T4_rect he)
 {
     if (this.Xmax < he.Xmin)
     {
         return(false);
     }
     if (this.Xmin > he.Xmax)
     {
         return(false);
     }
     if (this.Ymax < he.Ymin)
     {
         return(false);
     }
     if (this.Ymin > he.Ymax)
     {
         return(false);
     }
     return(true);
 }
Esempio n. 5
0
 public T4(T4_rect rect)
 {
     _rect = rect;
 }
Esempio n. 6
0
 public void Add(T4_rect rect, object obj)
 {
     add(new T4_occupant(rect, obj));
 }
Esempio n. 7
0
 public T4_occupant(T4_rect rect, object obj)
 {
     this.Rect = rect;
     this.Obj  = obj;
 }