示例#1
0
    private IEnumerator UpdateRoutine()
    {
        while (m_IsRunning)
        {
            var items = m_Layer.UIItems;
            for (int i = 0; i < items.Count; i++)
            {
                var item = items[i].Origin;
                item.time = DateTime.Now;

                var maxEnergy          = 0.0f;
                var maxAngleToSouth    = 0.0f;
                var maxAngleToHorisont = 0.0f;

                SolarMathController.GetEnergyMaxNow(MIN_ANGLE_TO_HORISONT, MAX_ANGLE_TO_HORISONT,
                                                    MIN_ANGLE_TO_SOUTH, MAX_ANGLE_TO_SOUTH,
                                                    item,
                                                    out maxEnergy,
                                                    out maxAngleToSouth,
                                                    out maxAngleToHorisont);

                var energy = maxEnergy;

                var row = m_Table.CreateRow();
                row[COORDINATES_COLUMN_NAME].text = item.Coordinates.ToString();
                row[ENERGY_COLUMN_NAME].text      = energy.ToString();
                row[AREA_COLUMN_NAME].text        = item.square.ToString();
                row[ClOUDS_COLUMN_NAME].text      = (1 - item.cloudiness).ToString();
                row[POWER_COLUMN_NAME].text       = item.power.ToString();
            }
            yield return(new WaitForSeconds(UPDATE_RATE));

            m_Table.Clear();
        }
    }
    private IEnumerator TimerCoroutine()
    {
        while (isTimerOn)
        {
            UpdateStats();

            var time = DateTime.Now;
            m_Target.Origin.time = time;
            energyText.text      = SolarMathController.GetEnergyNow(m_Target.Origin).ToString("F2");
            timeText.text        = time.ToString("HH:mm:ss");
            yield return(new WaitForSeconds(1.0f));
        }
    }
    public void GetMaxUsefulAngles()
    {
        var maxEnergy          = 0f;
        var maxAngleToSouth    = 0f;
        var maxAngleToHorisont = 0f;

        SolarMathController.GetEnergyMaxNow((int)yRotationSlider.minValue,
                                            (int)yRotationSlider.maxValue,
                                            (int)zRotationSlider.minValue,
                                            (int)zRotationSlider.maxValue,
                                            m_Target.Origin,
                                            out maxEnergy,
                                            out maxAngleToSouth,
                                            out maxAngleToHorisont);
        zRotationSlider.value = maxAngleToHorisont;
        yRotationSlider.value = maxAngleToSouth;
        energyText.text       = maxEnergy.ToString();
    }