Something went wrong on our end
-
Brutzman, Don authoredBrutzman, Don authored
Ship.java 1.38 KiB
package SimkitOpenDis7Examples;
import simkit.Entity;
/**
* Model a ship that arrives at a pier for crane servicing
* @author abuss@nps.edu
*/
public class Ship extends Entity {
/**
* Remaining time to unload ship at unit rate
*/
protected double remainingUnloadingTime;
/**
* Model constructor
* @throws IllegalArgumentException if remainingUnloadingTime ≤ 0.0
* @param remainingUnloadingTime Given initial unloading time
*/
public Ship(double remainingUnloadingTime) {
super("Ship");
if (remainingUnloadingTime <= 0.0) {
throw new IllegalArgumentException(
"remainingUnloadingTime must be > 0.0: "
+ remainingUnloadingTime);
}
this.remainingUnloadingTime = remainingUnloadingTime;
}
/**
* Decrement remainingUnloadingTime by the elapsed time at the given rate
*
* @param rate Given rate of unloading
*/
public void work(double rate) {
remainingUnloadingTime -= getElapsedTime() * rate;
}
/**
* accessor method to get a state variable
* @return The remainingUnloadingTime
*/
public double getRemainingUnloadingTime() {
return remainingUnloadingTime;
}
@Override
public String toString() {
return super.toString() + String.format(" %.3f", getRemainingUnloadingTime());
}
}