Archived
0

save refill value in route entry

This commit is contained in:
iMoHax
2015-08-10 12:57:19 +03:00
parent 63282e68b0
commit 74bf560eb5
7 changed files with 69 additions and 65 deletions

View File

@@ -103,7 +103,7 @@ public class Route implements Comparable<Route> {
entries.remove(entries.size()-1);
} else {
LOG.trace("Is not connected route, set refill");
end.setRefill(true);
end.setRefill(end.getFuel());
}
entries.addAll(route.entries);
updateStats();

View File

@@ -12,10 +12,10 @@ public class RouteEntry {
private final double fuel;
private final List<Order> orders;
private boolean land;
private boolean refill;
private double refill;
private double score;
public RouteEntry(Vendor vendor, boolean refill, double fuel, double score) {
public RouteEntry(Vendor vendor, double refill, double fuel, double score) {
orders = new ArrayList<>();
this.vendor = vendor;
this.refill = refill;
@@ -32,10 +32,14 @@ public class RouteEntry {
}
public boolean isRefill() {
return refill > 0;
}
public double getRefill(){
return refill;
}
void setRefill(boolean refill) {
void setRefill(double refill) {
this.refill = refill;
}
@@ -72,7 +76,7 @@ public class RouteEntry {
}
public boolean isLand(){
return land || refill || !orders.isEmpty();
return land || isRefill() || !orders.isEmpty();
}
void setLand(boolean land) {
@@ -104,7 +108,7 @@ public class RouteEntry {
temp = Double.doubleToLongBits(fuel);
result = 31 * result + (int) (temp ^ (temp >>> 32));
result = 31 * result + (land ? 1 : 0);
result = 31 * result + (refill ? 1 : 0);
result = 31 * result + (isRefill() ? 1 : 0);
temp = Double.doubleToLongBits(score);
result = 31 * result + (int) (temp ^ (temp >>> 32));
return result;

View File

@@ -123,7 +123,7 @@ public class RouteSearcher {
for (int k = 0; k < transitEdges.size(); k++) {
ConnectibleEdge<Vendor> edge = transitEdges.get(k);
Vendor vendor = edge.getSource().getEntry();
RouteEntry entry = new RouteEntry(vendor, edge.isRefill(), edge.getFuelCost(), 0);
RouteEntry entry = new RouteEntry(vendor, edge.getRefill(), edge.getFuelCost(), 0);
if (buyer != null && vendor.equals(buyer)) {
entry.setLand(true);
buyer = null;
@@ -140,7 +140,7 @@ public class RouteSearcher {
}
}
if (vEdge != null) {
RouteEntry entry = new RouteEntry(vEdge.getTarget().getEntry(), false, 0, 0);
RouteEntry entry = new RouteEntry(vEdge.getTarget().getEntry(), 0, 0, 0);
if (buyer != null) entry.setLand(true);
entries.add(entry);
}
@@ -160,10 +160,10 @@ public class RouteSearcher {
for (int i = 0; i < edges.size(); i++) {
ConnectibleEdge<Place> edge = (ConnectibleEdge<Place>) edges.get(i);
Vendor vendor = i == 0 ? from : edge.getSource().getEntry().asTransit();
RouteEntry entry = new RouteEntry(vendor, edge.isRefill(), edge.getFuelCost(), 0);
RouteEntry entry = new RouteEntry(vendor, edge.getRefill(), edge.getFuelCost(), 0);
entries.add(entry);
if (i == edges.size()-1){
entry = new RouteEntry(to, false, 0, 0);
entry = new RouteEntry(to, 0, 0, 0);
entry.setLand(true);
entries.add(entry);
}