Keep track of time used on every street on route
This commit is contained in:
		
							parent
							
								
									ff5c7753ff
								
							
						
					
					
						commit
						51534a5d2b
					
				@ -12,6 +12,7 @@ public class Campaign {
 | 
			
		||||
    private Route route;
 | 
			
		||||
 | 
			
		||||
    private ArrayList<Vehicle> vehicles = new ArrayList<>();
 | 
			
		||||
    private ArrayList<Vehicle> arrivedVehicles = new ArrayList<>();
 | 
			
		||||
 | 
			
		||||
    private Date timeToLeaveToDest;
 | 
			
		||||
    private Date timeToLeaveToHousing;
 | 
			
		||||
@ -32,8 +33,8 @@ public class Campaign {
 | 
			
		||||
 | 
			
		||||
    public void busArived(Bus bus) {
 | 
			
		||||
        if(numberOfAriivedBuses < vehicles.size())
 | 
			
		||||
            arrivedVehicles.add(bus);
 | 
			
		||||
            numberOfAriivedBuses++;
 | 
			
		||||
        //Check if it is in list before increment?
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public boolean isDone() {
 | 
			
		||||
@ -49,7 +50,8 @@ public class Campaign {
 | 
			
		||||
        for (Vehicle vehicle : vehicles) {
 | 
			
		||||
            vehicle.setRoute(route);
 | 
			
		||||
        }
 | 
			
		||||
        //since a route is set, reset buses.
 | 
			
		||||
        //since a route is set, reset buses and clear arrivedBussesList
 | 
			
		||||
        this.arrivedVehicles.clear();
 | 
			
		||||
        this.numberOfAriivedBuses = 0;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@ -83,6 +85,15 @@ public class Campaign {
 | 
			
		||||
        return busses;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public int getNumberOfArrivedBuses() {
 | 
			
		||||
        return getArrivedVehicles().size();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    //Use this in Makkah to optimize later
 | 
			
		||||
    public ArrayList<Vehicle> getArrivedVehicles() {
 | 
			
		||||
        return arrivedVehicles;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public ArrayList<Vehicle> getVehicles() {
 | 
			
		||||
		return vehicles;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
@ -1,4 +1,5 @@
 | 
			
		||||
import java.util.Date;
 | 
			
		||||
import java.util.HashMap;
 | 
			
		||||
 | 
			
		||||
public abstract class Vehicle {
 | 
			
		||||
 | 
			
		||||
@ -11,6 +12,10 @@ public abstract class Vehicle {
 | 
			
		||||
    private boolean moving;
 | 
			
		||||
    private Date timeStartedMoving;
 | 
			
		||||
    private Date timeOfArrival;
 | 
			
		||||
    private Date timeStartedOnCurrentStreet;
 | 
			
		||||
 | 
			
		||||
    //Map Street to Minutes
 | 
			
		||||
    private HashMap<Street, Long> routeTimeHistory = new HashMap<>();
 | 
			
		||||
 | 
			
		||||
    public abstract int getMaxSpeed();
 | 
			
		||||
 | 
			
		||||
@ -84,6 +89,7 @@ public abstract class Vehicle {
 | 
			
		||||
        this.currentStreet = currentStreet;
 | 
			
		||||
        if (this.currentStreet != null)
 | 
			
		||||
            this.currentStreet.addVehicle(this);
 | 
			
		||||
        this.timeStartedOnCurrentStreet = MakkahCity.getTimeMan().getCurrentTime();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setCurrentLocation(double currentLocation) {
 | 
			
		||||
@ -131,6 +137,7 @@ public abstract class Vehicle {
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    public void moveToNextStreet() {
 | 
			
		||||
        this.routeTimeHistory.put(this.currentStreet, MakkahCity.getTimeMan().getCurrentTime().getTime() - timeStartedOnCurrentStreet.getTime());
 | 
			
		||||
    	int nxtIndex = route.indexOf(this.getCurrentStreet()) + 1;
 | 
			
		||||
		if (nxtIndex <= route.getStreets().length - 1) {
 | 
			
		||||
			if (this.getRoute().getStreets()[nxtIndex].capcityPoint(0, 1000) < 1) {
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user