public override void Awake(Scene scene)
        {
            List <SolidExtension> extensions = new List <SolidExtension>();

            FindExtensions(extensions);

            GroupOffset  = new Vector2(GroupBoundsMin.X, GroupBoundsMin.Y) - Position;
            Colliders    = new Hitbox[extensions.Count(ext => ext.HasHitbox) + 1];
            AllColliders = new Hitbox[extensions.Count + 1];

            int j = 0;

            for (int i = 0; i < extensions.Count; i++)
            {
                SolidExtension e      = extensions[i];
                Vector2        offset = e.Position - Position;
                Hitbox         hitbox = new Hitbox(e.Width, e.Height, offset.X, offset.Y);
                if (e.HasHitbox)
                {
                    Colliders[j] = hitbox;
                    j++;
                }
                AllColliders[i] = hitbox;
                e.RemoveSelf();
                // You don't want disabled Solids hanging around in the level, so you remove them.
            }

            int tWidth  = (int)((GroupBoundsMax.X - GroupBoundsMin.X) / 8);
            int tHeight = (int)((GroupBoundsMax.Y - GroupBoundsMin.Y) / 8);

            GroupTiles    = new bool[tWidth + 2, tHeight + 2];
            AllGroupTiles = new bool[tWidth + 2, tHeight + 2];

            Colliders[Colliders.Length - 1]       = (Hitbox)Collider;
            AllColliders[AllColliders.Length - 1] = (Hitbox)Collider;

            Collider = new ColliderList(AllColliders);
            for (int x = 0; x < tWidth + 2; x++)
            {
                for (int y = 0; y < tHeight + 2; y++)
                {
                    AllGroupTiles[x, y] = TileCollideWithGroup(x - 1, y - 1);
                }
            }

            Collider = new ColliderList(Colliders);
            for (int x = 0; x < tWidth + 2; x++)
            {
                for (int y = 0; y < tHeight + 2; y++)
                {
                    GroupTiles[x, y] = TileCollideWithGroup(x - 1, y - 1);
                }
            }

            scene.Add(BGRenderer = new BGTilesRenderer(this));

            base.Awake(scene);
        }