Пример #1
0
        private void ConsumePower(int timeDelta)
        {
            if (!SourceComp.HasCapacityRemaining)
            {
                return;
            }

            float consumptionPerMillisecond = SourceComp.CurrentOutput / (SourceComp.ProductionToCapacityMultiplier * 1000);
            float consumedPower             = timeDelta * consumptionPerMillisecond;

            if (consumedPower == 0)
            {
                return;
            }

            if ((CurrentStoredPower - consumedPower) <= 0)
            {
                SourceComp.SetMaxOutput(0);
                SourceComp.SetOutput(0);
                CurrentStoredPower = 0;
                TimeRemaining      = 0;
            }
            else
            {
                CurrentStoredPower -= consumedPower;
                if (m_isFull)
                {
                    m_isFull = false;
                    SyncObject.IsFullChange(m_isFull);
                }
            }
            SyncObject.CapacityChange(CurrentStoredPower);
        }