-
Notifications
You must be signed in to change notification settings - Fork 46
Expand file tree
/
Copy pathMapBuilder.java
More file actions
83 lines (68 loc) · 2.38 KB
/
MapBuilder.java
File metadata and controls
83 lines (68 loc) · 2.38 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
package edu.nd.sarec.railwaycrossing.model.infrastructure;
import java.awt.Point;
import java.util.Collection;
import java.util.HashMap;
import edu.nd.sarec.railwaycrossing.model.infrastructure.gate.CrossingGate;
/**
* Creates all infrastructure for the simulation
* @author jane
*
*/
public class MapBuilder {
HashMap<String, Road> roads;
HashMap<String, CrossingGate> gates;
HashMap<String, RailwayTracks> tracks;
public MapBuilder(){
roads = new HashMap<String,Road>();
gates = new HashMap<String,CrossingGate>();
tracks = new HashMap<String,RailwayTracks>();
buildRoads();
buildCrossingGates();
buildTracks();
assignGatesToRoads();
buildCarFactories();
}
private void buildRoads(){
roads.put("Western Highway",new Road(new Point(800,0),new Point (800,1000),Direction.SOUTH,true,false));
roads.put("Skyway",new Road(new Point(400,0),new Point (400,1000),Direction.SOUTH,true,false));
roads.put("EastWest",new Road(new Point(415,620),new Point (785,620),Direction.EAST,true,true));
}
public CrossingGate setGate(String gate) {
return gates.get(gate);
}
private void buildCrossingGates(){
gates.put("Gate1", new CrossingGate(780,280, "Gate1"));
gates.put("Gate2", new CrossingGate(380,280, "Gate2"));
gates.put("Gate3", new CrossingGate(780,510, "Gate3"));
gates.put("Gate4", new CrossingGate(380,510, "Gate4"));
}
private void buildTracks(){
tracks.put("Royal", new RailwayTracks(new Point(0,300),new Point(1200,300)));
tracks.put("Gold", new RailwayTracks(new Point(0,530),new Point(1200,530)));
}
private void assignGatesToRoads(){
roads.get("Western Highway").assignGate(gates.get("Gate1"));
roads.get("Skyway").assignGate(gates.get("Gate2"));
roads.get("Western Highway").assignGate(gates.get("Gate3"));
roads.get("Skyway").assignGate(gates.get("Gate4"));
}
private void buildCarFactories(){
roads.get("Western Highway").addCarFactory();
roads.get("Skyway").addCarFactory();
}
public Collection<CrossingGate> getAllGates(){
return gates.values();
}
public Collection<RailwayTracks> getTracks(){
return tracks.values();
}
public Collection<Road> getRoads(){
return roads.values();
}
public RailwayTracks getTrack(String name){
return tracks.get("Royal");
}
public RailwayTracks getTrack2(String name){
return tracks.get("Gold");
}
}