001package com.fs.starfarer.api.fleet;
002
003import com.fs.starfarer.api.campaign.CampaignFleetAPI;
004
005
006public interface FleetLogisticsAPI {
007        
008        /**
009         * Total supply use per day, including what's actually consumed by ship maintenance.
010         * @return
011         */
012        float getTotalSuppliesPerDay();
013                
014        float getFuelCostPerLightYear();
015        float getBaseFuelCostPerLightYear();
016        
017//      /**
018//       * How much is actually needed for all repairs to proceed at the best possible rate.
019//       * @return
020//       */
021        //float getMaximumRepairSupplyConsumptionPerDay();
022        
023        
024        float getExcessCargoCapacitySupplyCost();
025        float getExcessFuelCapacitySupplyCost();
026        float getExcessPersonnelCapacitySupplyCost();
027        float getMarineSuppliesPerDay();
028        float getCrewSuppliesPerDay();
029        
030        /**
031         * @return getCrewSuppliesPerDay() + getMarineSuppliesPerDay()
032         */
033        float getPersonnelSuppliesPerDay();
034        
035        /**
036         * Added up monthly supply cost for ships, divided by 30 to get daily cost. Includes repairs and CR recovery.
037         * @return
038         */
039        float getShipMaintenanceSupplyCost();
040
041        CampaignFleetAPI getFleet();
042
043        float getTotalRepairAndRecoverySupplyCost();
044        
045        /**
046         * Also updates the logistics rating.
047         * Not particularly fast, should not be called often (i.e. every frame for every fleet = bad idea.)
048         */
049        void updateRepairUtilizationForUI();
050        float getExcessShipsSupplyCost();
051
052}