LDEngine.EntityPools.EntityPool.CheckCollisions C# (CSharp) Метод

CheckCollisions() приватный Метод

private CheckCollisions ( Entity e ) : void
e Entity
Результат void
        private void CheckCollisions(Entity e)
        {
            foreach (object o in BoxCollidesWith)
            {
                if (o is EntityPool)
                {
                    foreach (Entity collEnt in ((EntityPool)o).Entities)
                    {
                        if (!collEnt.Active) continue;
                        if (collEnt == e) continue;

                        Rectangle intersect = Rectangle.Intersect(e.HitBox, collEnt.HitBox);
                        if (intersect.IsEmpty) continue;

                        e.OnBoxCollision(collEnt, intersect);
                    }
                }

                if (o is Entity)
                {
                    Entity collEnt = (Entity)o;

                    if (!collEnt.Active) continue;
                    if (collEnt == e) continue;

                    Rectangle intersect = Rectangle.Intersect(e.HitBox, collEnt.HitBox);
                    if (intersect.IsEmpty) continue;

                    e.OnBoxCollision(collEnt, intersect);
                    collEnt.OnBoxCollision(e, intersect);
                }
            }

            foreach (object o in PolyCollidesWith)
            {
                if (o is EntityPool)
                {
                    foreach (Entity collEnt in ((EntityPool)o).Entities)
                    {
                        if (!collEnt.Active) continue;
                        if (collEnt == e) continue;

                        bool collides = false;
                        foreach (Vector2 vector2 in e.HitPolyPoints)
                            if (Helper.IsPointInShape(vector2, collEnt.HitPolyPoints)) collides = true;
                        if (!collides) continue;

                        e.OnPolyCollision(collEnt);
                    }
                }

                if (o is Entity)
                {
                    Entity collEnt = (Entity)o;

                    if (!collEnt.Active) continue;
                    if (collEnt == e) continue;

                    bool collides = false;
                    foreach (Vector2 vector2 in e.HitPolyPoints)
                        if (Helper.IsPointInShape(vector2, collEnt.HitPolyPoints)) collides = true;
                    if (!collides) continue;

                    e.OnPolyCollision(collEnt);
                    collEnt.OnPolyCollision(e);
                }
            }
        }