Exemple #1
0
        internal bool HasPowerModule(out DeepDrillModules module)
        {
            bool result = false;

            module = DeepDrillModules.None;

            for (int i = 0; i < EquipmentConfiguration.SlotIDs.Length; i++)
            {
                if (_equipment.GetTechTypeInSlot(EquipmentConfiguration.SlotIDs[i]) == TechTypeHelper.BatteryAttachmentTechType())
                {
                    module = DeepDrillModules.Battery;
                    result = true;
                    break;
                }

                if (_equipment.GetTechTypeInSlot(EquipmentConfiguration.SlotIDs[i]) == TechTypeHelper.SolarAttachmentTechType())
                {
                    module = DeepDrillModules.Solar;
                    result = true;
                    break;
                }
            }

            if (!result)
            {
                _mono.ComponentManager.HideAllPowerAttachments();
            }
            return(result);
        }
Exemple #2
0
        internal void DestroyPower(DeepDrillModules module)
        {
            switch (module)
            {
            case DeepDrillModules.Battery:
                for (int i = 0; i < Batteries.Count; i++)
                {
                    Batteries[i].Battery.charge = 0;
                }
                break;

            case DeepDrillModules.Solar:
                Solar.Battery.charge = 0;
                break;
            }
        }
Exemple #3
0
        internal void HideAttachment(DeepDrillModules module)
        {
            switch (module)
            {
            case DeepDrillModules.Solar:
                _solarPanelModule.SetActive(false);
                break;

            case DeepDrillModules.Battery:
                _batteryModule.SetActive(false);
                break;

            case DeepDrillModules.Focus:
                _focusModule.SetActive(false);
                break;
            }
        }
Exemple #4
0
        internal float GetCharge(DeepDrillModules module)
        {
            switch (module)
            {
            case DeepDrillModules.Battery:

                float count = 0;

                for (int i = 0; i < Batteries.Count; i++)
                {
                    count += Batteries[i].Battery.charge;
                }

                return(count);

            case DeepDrillModules.Solar:
                return(Solar.Battery.charge);

            default:
                return(0);
            }
        }
Exemple #5
0
        internal void ConsumePower(DeepDrillModules module)
        {
            var powerDraw = QPatch.Configuration.PowerDraw;

            switch (module)
            {
            case DeepDrillModules.Battery:

                foreach (var powerUnitData in Batteries)
                {
                    if (powerUnitData.Battery.charge >= powerDraw)
                    {
                        ModifyCharge(-Mathf.Abs(powerDraw), powerUnitData);
                        break;
                    }
                }

                break;

            case DeepDrillModules.Solar:
                ModifyCharge(-Mathf.Abs(powerDraw), Solar);
                break;
            }
        }
Exemple #6
0
        internal float GetCapacity(DeepDrillModules module)
        {
            //QuickLogger.Debug($"Module: {module}");

            switch (module)
            {
            case DeepDrillModules.Battery:

                float count = 0;

                for (int i = 0; i < Batteries.Count; i++)
                {
                    count += Batteries[i].Battery.capacity;
                }

                return(count);

            case DeepDrillModules.Solar:
                return(Solar.Battery.capacity);

            default:
                return(0);
            }
        }