private void TransferResources(ResourceTransferSummary res) { if (res.TransferAmount > 0) { var fromMax = _broker.AmountAvailable(_fromVessel.ThisVessel.rootPart, res.ResourceName, TimeWarp.fixedDeltaTime, ResourceFlowMode.ALL_VESSEL); var toMax = _broker.StorageAvailable(_toVessel.ThisVessel.rootPart, res.ResourceName, TimeWarp.fixedDeltaTime, ResourceFlowMode.ALL_VESSEL, 1d); var xferMax = Math.Min(fromMax, toMax); var xferAmt = Math.Min(xferMax, res.TransferAmount); var xferFin = _broker.RequestResource(_fromVessel.ThisVessel.rootPart, res.ResourceName, xferAmt, TimeWarp.fixedDeltaTime, ResourceFlowMode.ALL_VESSEL); _broker.StoreResource(_toVessel.ThisVessel.rootPart, res.ResourceName, xferFin, TimeWarp.fixedDeltaTime, ResourceFlowMode.ALL_VESSEL); } else { var fromMax = _broker.AmountAvailable(_toVessel.ThisVessel.rootPart, res.ResourceName, TimeWarp.fixedDeltaTime, ResourceFlowMode.ALL_VESSEL); var toMax = _broker.StorageAvailable(_fromVessel.ThisVessel.rootPart, res.ResourceName, TimeWarp.fixedDeltaTime, ResourceFlowMode.ALL_VESSEL, 1d); var xferMax = Math.Min(fromMax, toMax); var xferAmt = Math.Min(xferMax, -res.TransferAmount); var xferFin = _broker.RequestResource(_toVessel.ThisVessel.rootPart, res.ResourceName, xferAmt, TimeWarp.fixedDeltaTime, ResourceFlowMode.ALL_VESSEL); _broker.StoreResource(_fromVessel.ThisVessel.rootPart, res.ResourceName, xferFin, TimeWarp.fixedDeltaTime, ResourceFlowMode.ALL_VESSEL); } }
private void TransferResources(ResourceTransferSummary res) { if (res.TransferAmount > 0) { var fromMax = _broker.AmountAvailable(_fromVessel.ThisVessel.rootPart, res.ResourceName, TimeWarp.fixedDeltaTime, ResourceFlowMode.ALL_VESSEL); var toMax = _broker.StorageAvailable(_toVessel.ThisVessel.rootPart, res.ResourceName, TimeWarp.fixedDeltaTime, ResourceFlowMode.ALL_VESSEL,1d); var xferMax = Math.Min(fromMax, toMax); var xferAmt = Math.Min(xferMax, res.TransferAmount); var xferFin = _broker.RequestResource(_fromVessel.ThisVessel.rootPart, res.ResourceName,xferAmt, TimeWarp.fixedDeltaTime, ResourceFlowMode.ALL_VESSEL); _broker.StoreResource(_toVessel.ThisVessel.rootPart, res.ResourceName, xferFin, TimeWarp.fixedDeltaTime, ResourceFlowMode.ALL_VESSEL); } else { var fromMax = _broker.AmountAvailable(_toVessel.ThisVessel.rootPart, res.ResourceName, TimeWarp.fixedDeltaTime, ResourceFlowMode.ALL_VESSEL); var toMax = _broker.StorageAvailable(_fromVessel.ThisVessel.rootPart, res.ResourceName, TimeWarp.fixedDeltaTime, ResourceFlowMode.ALL_VESSEL, 1d); var xferMax = Math.Min(fromMax, toMax); var xferAmt = Math.Min(xferMax, -res.TransferAmount); var xferFin = _broker.RequestResource(_toVessel.ThisVessel.rootPart, res.ResourceName, xferAmt, TimeWarp.fixedDeltaTime, ResourceFlowMode.ALL_VESSEL); _broker.StoreResource(_fromVessel.ThisVessel.rootPart, res.ResourceName, xferFin, TimeWarp.fixedDeltaTime, ResourceFlowMode.ALL_VESSEL); } }