Beispiel #1
0
    UpdateSlider(SpeciesSlider speciesSlider, int id, float portion, Color colour)
    {
        Slider slider = speciesSlider.GetComponent <Slider> ();

        slider.value = portion;

        speciesSlider.SetFillColour(colour);

        if (portion == 0.0f)
        {
            ColorBlock colours     = slider.colors;
            Color      transparent = Color.white;
            transparent.a                   = 0;
            colours.disabledColor           = transparent;
            slider.colors                   = colours;
            speciesSlider.speciesID.enabled = false;
        }
        else
        {
            ColorBlock colours = slider.colors;
            colours.disabledColor = Color.white;
            slider.colors         = colours;
            speciesSlider.SetSpeciesID(id);
            speciesSlider.speciesID.enabled = true;
        }
    }
Beispiel #2
0
    UpdateBar(Dictionary <int, int> distributions)
    {
        if (distributions == null || distributions.Count == 0)
        {
            return;
        }

        this.distributions = distributions.Values.ToList();

        AddSliders();

        /*
         * The sum of all species members should be equal to the total amount
         * of genomes spawned.
         */
        int   total      = CalculateTotal();
        float numColours = 1.0f / distributions.Count;
        float portion    = 1.0f;

        for (int i = 0; i < distributions.Count; i++)
        {
            SpeciesSlider speciesSlider = sliders[i];
            int           id            = distributions.Keys.ElementAt(i);
            int           memberCount   = distributions.Values.ElementAt(i);
            float         ratio         = (float)memberCount / (float)total;

            UpdateSlider(speciesSlider, id, portion, new Color(numColours * i, 1.0f, 255 - numColours * i));

            portion -= ratio;
        }
    }
Beispiel #3
0
 AddSliders()
 {
     while (distributions.Count != sliders.Count)
     {
         if (sliders.Count > distributions.Count)
         {
             Destroy(sliders[sliders.Count - 1].gameObject);
             sliders.RemoveAt(sliders.Count - 1);
         }
         else
         {
             SpeciesSlider newSlider = Instantiate(sliderPrefab, transform).GetComponent <SpeciesSlider> ();
             sliders.Add(newSlider);
         }
     }
 }