FOP-2425-Marathon/solution/H05/src/main/java/h05/TankerPlane.java

35 lines
1.1 KiB
Java

package h05;
public class TankerPlane extends Plane implements Refuelling{
private final double[] availableAmount = new double[FuelType.values().length];
public TankerPlane(String aircraftRegistration, int baseWeight, FuelType fuelType, double maxFuelLevel) {
super(aircraftRegistration, baseWeight, fuelType, maxFuelLevel);
}
public void loadFuel(FuelType fuelType, double amount){
availableAmount[fuelType.ordinal()] += amount;
}
@Override
protected double mass() {
double totalAmount = 0;
for (int i = 0; i < FuelType.values().length; i++){
totalAmount += availableAmount[i];
}
return baseWeight + totalAmount;
}
@Override
public void refuelPlane(Plane plane) {
double missingFuel = plane.getFuelCapacity() - plane.getCurrentFuelLevel();
double actualAmount = Math.min(availableAmount[plane.getFuelType().ordinal()], missingFuel);
availableAmount[plane.getFuelType().ordinal()] -= actualAmount;
plane.refuel(actualAmount);
}
}