internal static void UpdatePluginSections(TrainManager.Train train) {
if (train.Plugin != null) {
OpenBveApi.Runtime.SignalData[] data = new OpenBveApi.Runtime.SignalData[16];
int count = 0;
int start = train.CurrentSectionIndex >= 0 ? train.CurrentSectionIndex : 0;
for (int i = start; i < Sections.Length; i++) {
OpenBveApi.Runtime.SignalData signal = GetPluginSignal(train, i);
if (data.Length == count) {
Array.Resize<OpenBveApi.Runtime.SignalData>(ref data, data.Length << 1);
}
data[count] = signal;
count++;
if (signal.Aspect == 0 | count == 16) {
break;
}
}
Array.Resize<OpenBveApi.Runtime.SignalData>(ref data, count);
train.Plugin.UpdateSignals(data);
}
}