Пример #1
0
        public static CargoCapacityCheckResult GetAvailableSpace(CargoStorageDB storeDB, Guid itemGuid, ICargoDefinitionsLibrary library)
        {
            var cargoDefinition = library.GetOther(itemGuid);

            if (cargoDefinition.Mass == 0)
            {
                return(new CargoCapacityCheckResult(itemGuid, long.MaxValue, long.MaxValue));
            }

            return(new CargoCapacityCheckResult(itemGuid,
                                                storeDB.StoredCargoTypes[cargoDefinition.CargoTypeID].FreeCapacityKg / cargoDefinition.Mass,
                                                storeDB.StoredCargoTypes[cargoDefinition.CargoTypeID].FreeCapacityKg));
        }
Пример #2
0
        public static CargoCapacityCheckResult GetAvailableSpace(VolumeStorageDB storeDB, Guid itemGuid, ICargoDefinitionsLibrary library)
        {
            var cargoDefinition = library.GetOther(itemGuid);

            if (cargoDefinition.MassPerUnit == 0)
            {
                return(new CargoCapacityCheckResult(itemGuid, long.MaxValue, long.MaxValue));
            }

            var  freeMass = storeDB.TypeStores[cargoDefinition.CargoTypeID].GetFreeMass(cargoDefinition);
            long count    = (long)(freeMass * cargoDefinition.MassPerUnit);

            return(new CargoCapacityCheckResult(
                       itemGuid,
                       count,
                       (long)freeMass));
        }