public LocoDriver(string name, TrainSet myTrain, RailRoad railroad) { this.name = name; this.trainSet = myTrain; this.railRoad = railroad; driverState = DriverState.Off; }
public void initPanels(RailRoad railroad) { lbTracks.Items.Clear(); lbTracks.Items.Add("ID: Occupied"); lbTracks.Items.Add(""); Dictionary<Track, TrainSet> tracks = railroad.getTrackStatus(); foreach (Track t in tracks.Keys) { string status = "Track #" + t.id; if (tracks[t] != null) status += " " + tracks[t].name + " "; else status += " "; if (t is SwitchLeft || t is SwitchRight) { if (t.turn) status += "Switched"; else status += "Through"; } lbTracks.Items.Add(status); } }
public void updatePanels(RailRoad railroad) { lbTrains.Items.Clear(); lbTrains.Items.Add("ID: Speed"); lbTrains.Items.Add(""); lbSignals.Items.Clear(); lbSignals.Items.Add("ID: Status"); lbSignals.Items.Add(""); lbSensors.Items.Clear(); lbSensors.Items.Add("ID: Status"); lbSensors.Items.Add(""); Dictionary<Track, TrainSet> tracks = railroad.getTrackStatus(); int count = 1; foreach(Track t in tracks.Keys) { count++; string status = "Track #" + t.id; if (tracks[t] != null) status += " " + tracks[t].name + " "; else status += " "; if(t is SwitchLeft || t is SwitchRight) { if (t.turn) status += "Switched"; else status += "Through"; } lbTracks.Items[count] = status; if (t.signal != null) { lbSignals.Items.Add(t.signal); } if (t.sensor != null) { status = ""; if (t.sensor.state == Sensor.State.On) status = " On"; else status = " Off"; lbSensors.Items.Add("Sensor #" + t.sensor.id + status); } } foreach (TrainSet train in railroad.trains) { lbTrains.Items.Add(train); } }
/// <summary> /// LoadContent will be called once per game and is the place to load /// all of your content. /// </summary> protected override void LoadContent() { RailRoadCtr rCtr = new RailRoadCtr(); railroad = rCtr.loadRailRoad("Railroad2.xml", Content); TrainSet train1; train1 = new TrainSet("Train #1", new List<TrainCart>(), new Engine(30)); TrainCart cart1 = new TrainCart(Content); cart1.currentTrack = railroad.tracks[0]; cart1.previousTrack = railroad.tracks[25]; cart1.position = 50; cart1.maxSpeed = 60; cart1.setCart(); train1.cartList.Add(cart1); railroad.trains.Add(train1); train1.locoDriver = new LocoDriver("Per", train1, railroad); TrainSet train2; train2 = new TrainSet("Train #2", new List<TrainCart>(), new Engine(20)); TrainCart cart2 = new TrainCart(Content); cart2.currentTrack = railroad.tracks[27]; cart2.previousTrack = railroad.tracks[26]; cart2.position = 50; cart2.maxSpeed = 60; cart2.rotation = MathHelper.ToRadians(0); cart2.setCart(); train2.cartList.Add(cart2); railroad.trains.Add(train2); train2.locoDriver = new LocoDriver("Ole", train2, railroad); //TrainCart cart2 = new TrainCart(Content); //cart2.currentTrack = railroad.tracks[1]; //cart2.previousTrack = railroad.tracks[0]; //cart2.position = 5; //cart2.maxSpeed = 60; //cart2.setCart(); //train1.cartList.Add(cart2); //TrainCart cart3 = new TrainCart(Content); //cart3.currentTrack = railroad.tracks[0]; //cart3.previousTrack = railroad.tracks[7]; //cart3.position = 30; //cart3.maxSpeed = 60; //cart3.setCart(); //train1.cartList.Add(cart3); whistle = Content.Load<SoundEffect>("train"); initPanels(railroad); // Create a new SpriteBatch, which can be used to draw textures. spriteBatch = new SpriteBatch(GraphicsDevice); }
/// <summary> /// LoadContent will be called once per game and is the place to load /// all of your content. /// </summary> protected override void LoadContent() { // Create a new SpriteBatch, which can be used to draw textures. spriteBatch = new SpriteBatch(GraphicsDevice); rr = new RailRoad(); // TODO: use this.Content to load your game content here }
public RailRoad loadXML(string path, ContentManager content) { XmlDocument doc = new XmlDocument(); //doc.Load(@"C:\Users\LasseSoerensen\Documents\Visual Studio 2010\Projects\RailRoadXML\RailRoadXML\RailRoad.xml"); doc.Load(path); XmlNodeList nodeList = doc.SelectNodes("RailRoad/Track"); RailRoad rr = new RailRoad(); foreach (XmlNode n in nodeList) { string type = n.Attributes.GetNamedItem("Type").Value.ToString(); Track t = new StraightTrack(); t = new StraightTrack(); t.gfx = content.Load<Texture2D>("StraightNB"); t.direction = Convert.ToBoolean(n.Attributes.GetNamedItem("Direction").Value.ToString()); if (type.Equals("CornerTrack")) { t = new CornerTrack(); t.direction = Convert.ToBoolean(n.Attributes.GetNamedItem("Direction").Value.ToString()); //if (t.direction) //{ t.gfx = content.Load<Texture2D>("rightTurnNB"); //} //else //{ // t.gfx = content.Load<Texture2D>("leftTurnNB"); //} } if (type.Equals("SwitchRight")) { t = new SwitchRight(); t.direction = Convert.ToBoolean(n.Attributes.GetNamedItem("Direction").Value.ToString()); t.turn = Convert.ToBoolean(n.Attributes.GetNamedItem("Switch").Value.ToString()); t.gfx = content.Load<Texture2D>("switchRight"); } if (type.Equals("SwitchLeft")) { t = new SwitchLeft(); t.direction = Convert.ToBoolean(n.Attributes.GetNamedItem("Direction").Value.ToString()); t.turn = Convert.ToBoolean(n.Attributes.GetNamedItem("Switch").Value.ToString()); t.gfx = content.Load<Texture2D>("switchLeft"); } t.rotation = MathHelper.ToRadians(Convert.ToInt32(n.Attributes.GetNamedItem("Rotation").Value)); t.position = new Vector2(Convert.ToInt32(n.Attributes.GetNamedItem("X").Value), Convert.ToInt32(n.Attributes.GetNamedItem("Y").Value)); t.id = Convert.ToInt32(n.Attributes.GetNamedItem("ID").Value); //foreach (XmlNode nn in n.ChildNodes) //{ //if (nn.Name == "Signal") //{ // Signal s = new Signal(Convert.ToInt32(nn.Attributes.GetNamedItem("ID").Value), content); // s.position = new Vector2(Convert.ToInt32(nn.Attributes.GetNamedItem("X").Value), Convert.ToInt32(nn.Attributes.GetNamedItem("Y").Value)); // switch (nn.Attributes.GetNamedItem("InitialState").Value) // { // case "Stop": s.state = Signal.State.Stop; break; // case "Go": s.state = Signal.State.Go; break; // case "Off": s.state = Signal.State.Off; break; // } // t.signal = s; // System.Diagnostics.Debug.WriteLine("Signal added"); //} //else //if (nn.Name == "Sensor") //{ // Sensor s = new Sensor(); // s.id = Convert.ToInt32(nn.Attributes.GetNamedItem("ID").Value); // s.mySignal = rr.findSignal(Convert.ToInt32(nn.Attributes.GetNamedItem("SignalID").Value)); // switch (nn.Attributes.GetNamedItem("InitialState").Value) // { // case "On": s.state = Sensor.State.On; break; // case "Off": s.state = Sensor.State.Off; break; // } // t.sensor = s; //} //} rr.tracks.Add(t); } foreach (XmlNode xml in nodeList) { int id = Convert.ToInt32(xml.Attributes.GetNamedItem("ID").Value); foreach (Track t in rr.tracks) { if (t.id == id) { t.prevTrack = rr.findTrack(Convert.ToInt32(xml.Attributes.GetNamedItem("PreviousTrack").Value)); t.nextTrack = rr.findTrack(Convert.ToInt32(xml.Attributes.GetNamedItem("NextTrack").Value)); if (t is SwitchLeft || t is SwitchRight) { t.switchTrack = rr.findTrack(Convert.ToInt32(xml.Attributes.GetNamedItem("SwitchTrackID").Value)); } foreach (XmlNode nn in xml.ChildNodes) { if (nn.Name == "Signal") { Signal s = new Signal(Convert.ToInt32(nn.Attributes.GetNamedItem("ID").Value), content); s.position = new Vector2(Convert.ToInt32(nn.Attributes.GetNamedItem("X").Value), Convert.ToInt32(nn.Attributes.GetNamedItem("Y").Value)); switch (nn.Attributes.GetNamedItem("InitialState").Value) { case "Stop": s.state = Signal.State.Stop; break; case "Go": s.state = Signal.State.Go; break; case "Off": s.state = Signal.State.Off; break; } t.signal = s; System.Diagnostics.Debug.WriteLine("Signal added"); } } } } } foreach (XmlNode xml in nodeList) { foreach (Track t in rr.tracks) { if (t.id == Convert.ToInt32(xml.Attributes.GetNamedItem("ID").Value)) { foreach (XmlNode nn in xml.ChildNodes) { if (nn.Name == "Sensor") { Sensor s = new Sensor(); s.id = Convert.ToInt32(nn.Attributes.GetNamedItem("ID").Value); s.mySignal = rr.findSignal(Convert.ToInt32(nn.Attributes.GetNamedItem("SignalID").Value)); switch (nn.Attributes.GetNamedItem("InitialState").Value) { case "On": s.state = Sensor.State.On; break; case "Off": s.state = Sensor.State.Off; break; } t.sensor = s; } } } } } return rr; }
public Dispatcher(RailRoad railroad, List<TrainSet> trains) { this.railroad = railroad; this.trains = trains; }