1 using System.Collections.Generic;
2 using OpenBveApi.Routes;
3 using RouteManager2.Climate;
4 
5 namespace CsvRwRouteParser
6 {
7 	/// <summary>A single parsed block of data from a routefile</summary>
8 	/// <remarks>Default block length is 25m</remarks>
9 	internal class Block
10 	{
11 		internal int Background;
12 		internal Brightness[] BrightnessChanges;
13 		internal Fog Fog;
14 		internal bool FogDefined;
15 		internal int[] Cycle;
16 		internal RailCycle[] RailCycles;
17 		internal double Height;
18 		internal Dictionary<int, Rail> Rails;
19 		internal int[] RailType;
20 		internal Dictionary<int, WallDike> RailWall;
21 		internal Dictionary<int, WallDike> RailDike;
22 		internal Pole[] RailPole;
23 		internal Dictionary<int,List<FreeObj>> RailFreeObj;
24 		internal List<FreeObj> GroundFreeObj;
25 		internal Form[] Forms;
26 		internal Crack[] Cracks;
27 		internal Signal[] Signals;
28 		internal Section[] Sections;
29 		internal Limit[] Limits;
30 		internal Stop[] StopPositions;
31 		internal Sound[] SoundEvents;
32 		internal Transponder[] Transponders;
33 		internal DestinationEvent[] DestinationChanges;
34 		internal PointOfInterest[] PointsOfInterest;
35 		internal HornBlowEvent[] HornBlows;
36 		internal TrackElement CurrentTrackState;
37 		internal double Pitch;
38 		internal double Turn;
39 		internal int Station;
40 		internal bool StationPassAlarm;
41 		internal double Accuracy;
42 		internal double AdhesionMultiplier;
43 		internal int SnowIntensity;
44 		internal int RainIntensity;
45 		internal int WeatherObject;
46 		internal LightDefinition LightDefinition;
47 		internal int DynamicLightDefinition;
48 		internal LightingChange[] LightingChanges;
49 		internal Dictionary<int, PatternObj> PatternObjs;
50 
Block(bool PreviewOnly)51 		internal Block(bool PreviewOnly)
52 		{
53 			Rails = new Dictionary<int, Rail>();
54 			Limits = new Limit[] { };
55 			StopPositions = new Stop[] { };
56 			Station = -1;
57 			StationPassAlarm = false;
58 			if (!PreviewOnly)
59 			{
60 				BrightnessChanges = new Brightness[] { };
61 				Forms = new Form[] { };
62 				Cracks = new Crack[] { };
63 				Signals = new Signal[] { };
64 				Sections = new Section[] { };
65 				SoundEvents = new Sound[] { };
66 				Transponders = new Transponder[] { };
67 				DestinationChanges = new DestinationEvent[] { };
68 				HornBlows = new HornBlowEvent[] { };
69 				RailFreeObj = new Dictionary<int, List<FreeObj>>();
70 				GroundFreeObj = new List<FreeObj>();
71 				PointsOfInterest = new PointOfInterest[] { };
72 				DynamicLightDefinition = -1;
73 				LightDefinition = new LightDefinition();
74 				LightingChanges = new LightingChange[] { };
75 				PatternObjs = new Dictionary<int, PatternObj>();
76 			}
77 		}
78 	}
79 }
80