public override void Draw(Graphics g, double deltaTime)
        {
            base.Draw(g, deltaTime);

            Vector2 sub = Size * MMWMath.Lerp(0.95f, 1.0f, rate);

            var pos = WorldLocation + (Size - sub) * 0.5f;
            var add = (SelectedPanel == this ? 0.15f : 0.0f);
            var r   = MMWMath.Lerp(0.75f, 1.0f, rate);

            r += Connected ? 0.3f : 0.0f;

            Drawer.DrawTextureScaled(texImage, pos.X, pos.Y, sub.X, sub.Y, new Color4(backColor.R * r, backColor.G * r + add, backColor.B * r, 1.0f));

            if (texIcon != null && texIcon.Loaded)
            {
                var iconSize = texIcon.Size.ToVector2();
                iconSize = new Vector2(64.0f);
                var iconPos = WorldLocation + (Size - iconSize) * 0.5f;
                Drawer.DrawTextureScaled(texIcon, iconPos.X, WorldLocation.Y + 24.0f, iconSize.X, iconSize.Y, Color4.White);
            }

            var size = g.MeasureString(Info.WorldName, DefaultFont);

            g.DrawString(Info.WorldName, DefaultFont, Brushes.White, WorldLocation.X + (Size.X - size.Width) * 0.5f, WorldLocation.Y + (Size.Y - size.Height) * 0.5f + 24.0f);
            size = g.MeasureString(Info.HostName, DefaultFontS);
            g.DrawString(Info.HostName, DefaultFontS, Brushes.LightGray, WorldLocation.X + (Size.X - size.Width) * 0.5f, WorldLocation.Y + (Size.Y - size.Height) * 0.5f + 48.0f);

            Icons.DrawConnection(g, WorldLocation.X + Size.X - 50.0f, WorldLocation.Y + 20.0f, 20.0f, 20.0f, Connected ? 2 : 0);
        }