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)); }
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)); }