35 lines
1.1 KiB
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);
|
|
}
|
|
}
|