16 public static class FleetStatsSnapshot
implements Cloneable {
17 private float fleetPoints;
18 private float cargoOnBoard;
19 private float cargoCapacity;
20 private float fuelOnBoard;
21 private float fuelCapacity;
22 private float numShips;
23 private float fleetSizeNum;
25 public void update() {
27 fleetPoints = pf.getFleetPoints();
28 cargoOnBoard = pf.getCargo().getSpaceUsed();
29 cargoCapacity = pf.getCargo().getMaxCapacity();
30 fuelOnBoard = pf.getCargo().getFuel();
31 fuelCapacity = pf.getCargo().getMaxFuel();
32 numShips = pf.getFleetData().getMembersListCopy().size();
33 fleetSizeNum = pf.getFleetSizeCount();
36 public FleetStatsSnapshot clone() {
38 return (FleetStatsSnapshot) super.clone();
39 }
catch (CloneNotSupportedException e) {
40 throw new RuntimeException(e);
44 public float getFleetPoints() {
47 public void setFleetPoints(
float fleetPoints) {
48 this.fleetPoints = fleetPoints;
50 public float getCargoOnBoard() {
53 public void setCargoOnBoard(
float cargoOnBoard) {
54 this.cargoOnBoard = cargoOnBoard;
56 public float getCargoCapacity() {
59 public void setCargoCapacity(
float cargoCapacity) {
60 this.cargoCapacity = cargoCapacity;
62 public float getFuelOnBoard() {
65 public void setFuelOnBoard(
float fuelOnBoard) {
66 this.fuelOnBoard = fuelOnBoard;
68 public float getFuelCapacity() {
71 public void setFuelCapacity(
float fuelCapacity) {
72 this.fuelCapacity = fuelCapacity;
74 public float getNumShips() {
77 public void setNumShips(
float numShips) {
78 this.numShips = numShips;
80 public float getFleetSizeNum() {
83 public void setFleetSizeNum(
float fleetSizeNum) {
84 this.fleetSizeNum = fleetSizeNum;
89 private Map<MarketAPI, Long> lastVisit =
new HashMap<MarketAPI, Long>();
90 private Map<SubmarketAPI, PlayerTradeDataForSubmarket> submarketTradeData =
new LinkedHashMap<SubmarketAPI, PlayerTradeDataForSubmarket>();
93 private FleetStatsSnapshot playerFleetStats =
new FleetStatsSnapshot();
96 if (profitabilityData ==
null) {
99 if (repChangeTracker ==
null) {
102 if (playerFleetStats ==
null) {
103 playerFleetStats =
new FleetStatsSnapshot();
110 List<SubmarketAPI>
remove =
new ArrayList<SubmarketAPI>();
114 MarketAPI market =
Global.
getSector().getEconomy().getMarket(data.getMarket().getId());
115 if (market ==
null || market.getSubmarket(data.getSubmarket().getSpecId()) ==
null ||
116 market.getSubmarket(data.getSubmarket().getSpecId()) != data.getSubmarket()) {
117 remove.add(data.getSubmarket());
121 for (SubmarketAPI sub :
remove) {
122 submarketTradeData.remove(sub);
125 List<MarketAPI> remove2 =
new ArrayList<MarketAPI>();
126 for (MarketAPI curr : lastVisit.keySet()) {
127 if (curr.getPrimaryEntity() ==
null || !curr.getPrimaryEntity().isAlive()) {
131 for (MarketAPI curr : remove2) {
132 lastVisit.remove(curr);
135 profitabilityData.
advance(days);
137 repChangeTracker.
advance(days);
139 playerFleetStats.update();
143 return repChangeTracker;
148 return profitabilityData;
153 lastVisit.put(market, timestamp);
157 Long timestamp = lastVisit.get(market);
158 if (timestamp ==
null)
return 10000f;
167 submarketTradeData.put(submarket, data);
174 return playerFleetStats;
178 return submarketTradeData;