Room data for displaying in the lobby list, to be serialized to JSON
Пример #1
0
        public LobbyDataControl(Manager manager, LobbySaveData data)
            : base(manager)
        {
            //Setup
            Passive = false;
            Height = 60;
            ClientWidth = (700 / 2) - 16;
            Data = data;

            //Background "gradient" image
            //TODO: Make an actual control. not a statusbar
            Gradient = new StatusBar(manager);
            Gradient.Init();
            Gradient.Alpha = .8f;
            Add(Gradient);

            for (int i = 0; i < 5; i++)
            {
                imgRating[i] = new ImageBox(Manager) { Top = 4, Width = 16, Height = 16, Left = ClientWidth - (((4 - i) * 18) + 48) };
                imgRating[i].Init();
                bool half = data.Rating > i + .25 && data.Rating < i + .75;
                bool whole = data.Rating >= i + .75;
                imgRating[i].Image = whole ? ContentPack.Textures["gui\\icons\\full_star"] : half ? ContentPack.Textures["gui\\icons\\half_star"] : ContentPack.Textures["gui\\icons\\empty_star"];
                Add(imgRating[i]);
            }

            lblStats = new Label(Manager) { Width = 100, Left = ClientWidth - 100 - 16, Top = imgRating[0].Bottom + 4, Alignment = Alignment.TopLeft, TextColor = new Color(160,160,160) };
            lblStats.Init();
            lblStats.Text = string.Format("Online: {0}\nPlays: {1}", data.Online, "N/A" /*data.Plays*/);
            Add(lblStats);

            //Add controls
            lblName = new Label(Manager) { Width = 100, Text = data.Name, Left = 4, Top = 4, Font = FontSize.Default14, Alignment = Alignment.TopLeft };
            lblName.Init();
            Add(lblName);
            lblName.Text = data.Name;

            lblDescription = new Label(Manager) { Width = 200, Text = data.Name, Left = 4, Top = lblName.Bottom + 4, Alignment = Alignment.TopLeft };
            lblDescription.Init();
            Add(lblDescription);
            lblDescription.Text = data.Description;
        }