//currentblock function for position and variables to calculate speed public void currentBlock() { p = currSpeedms; if (block_distance >= p) { block_distance -= p; } else { double p = currSpeedms; p = p - block_distance; next_block = TrainSimulation.trackModelWindow.getNextBlock(prev_block, current_block); if (next_block == null) { next_block = current_block; } prev_block = current_block; current_block = next_block; int number = 0; if (current_block.switchBeacon != null) { number = current_block.switchBeacon.blockId; } TC.sendSwitchBeaconInfo(number); block_distance = current_block.length - p; if (lineId == 2) { if (TrackModelUI.redLineStationBeacons[current_block.blockNum] != null) { TC.getStationBeaconInfo(TrackModelUI.redLineStationBeacons[current_block.blockNum].isPreviousToNext, TrackModelUI.redLineStationBeacons[current_block.blockNum].distanceTo, TrackModelUI.redLineStationBeacons[current_block.blockNum].name, TrackModelUI.redLineStationBeacons[current_block.blockNum].isLeft); } } if (lineId == 1) { if (TrackModelUI.greenLineStationBeacons[current_block.blockNum] != null) { TC.getStationBeaconInfo(TrackModelUI.greenLineStationBeacons[current_block.blockNum].isPreviousToNext, TrackModelUI.greenLineStationBeacons[current_block.blockNum].distanceTo, TrackModelUI.greenLineStationBeacons[current_block.blockNum].name, TrackModelUI.greenLineStationBeacons[current_block.blockNum].isLeft); } } TrainSimulation.trackModelWindow.updateBlockStatus(prev_block.blockId, false); TrainSimulation.trackModelWindow.updateBlockStatus(current_block.blockId, true); // Train_Height_L.Text = current_block.blockNum.ToString() + " .."; } //If train door is open, move passengers between the track and train if (Train_Door != 0) { // Enter Passenger Code stationPassengers(current_block.station); train_width = 6; } //Check for train failures if (TC == null) { return; } if (TC.failureStatus == 0) { label26.ForeColor = Color.Green; label26.Text = "Train Engine - Good"; label27.ForeColor = Color.Green; label27.Text = "Signal Pickup - Good"; label28.ForeColor = Color.Green; label28.Text = "Brakes - Good"; } else if (TC.failureStatus == 1) { label26.ForeColor = Color.Red; label26.Text = "Train Engine Failure"; label27.ForeColor = Color.Green; label27.Text = "Signal Pickup - Good"; label28.ForeColor = Color.Green; label28.Text = "Brakes - Good"; } else if (TC.failureStatus == 2) { label26.ForeColor = Color.Green; label26.Text = "Train Engine - Good"; label27.ForeColor = Color.Red; label27.Text = "Signal Pickup Failure"; label28.ForeColor = Color.Green; label28.Text = "Brakes - Good"; } else if (TC.failureStatus == 3) { label26.ForeColor = Color.Green; label26.Text = "Train Engine - Good"; label27.ForeColor = Color.Green; label27.Text = "Signal Pickup - Good"; label28.ForeColor = Color.Red; label28.Text = "Brakes Failure"; } }