@@ -26,7 +26,7 @@ public class ExperimentManager : MonoBehaviour
26
26
27
27
string lastGoodBiome = string . Empty ; // if BiomeFilter tells us the biome it got is probably not real, then we can use
28
28
29
- AudioPlayer audio ;
29
+ AudioPlayer audio ;
30
30
31
31
// --------------------------------------------------------------------
32
32
// Events
@@ -115,71 +115,73 @@ private System.Collections.IEnumerator UpdateObservers()
115
115
if ( observers . Count == 0 )
116
116
{
117
117
ScienceAlert . Instance . SetUnlit ( ) ;
118
- } else
119
- for ( int i = observers . Count - 1 ; i >= 0 ; i -- )
120
- {
121
- ExperimentObserver observer = observers [ i ] ;
122
- try
118
+ }
119
+ else
120
+ for ( int i = observers . Count - 1 ; i >= 0 ; i -- )
121
+ {
122
+ ExperimentObserver observer = observers [ i ] ;
123
+ try
123
124
{
124
125
#if PROFILE
125
126
float start = Time . realtimeSinceStartup ;
126
127
#endif
127
- bool newReport = false ;
128
+ bool newReport = false ;
128
129
129
- // Is exciting new research available?
130
- if ( observer . UpdateStatus ( expSituation , out newReport ) )
131
- {
132
- // if we're timewarping, resume normal time if that setting was used
133
- if ( observer . StopWarpOnDiscovery || Settings . Instance . GlobalWarp == Settings . WarpSetting . GlobalOn )
134
- if ( Settings . Instance . GlobalWarp != Settings . WarpSetting . GlobalOff )
135
- if ( TimeWarp . CurrentRateIndex > 0 )
136
- {
137
- OrbitSnapshot snap = new OrbitSnapshot ( FlightGlobals . ActiveVessel . GetOrbitDriver ( ) . orbit ) ;
138
- TimeWarp . SetRate ( 0 , true ) ;
139
- FlightGlobals . ActiveVessel . GetOrbitDriver ( ) . orbit = snap . Load ( ) ;
140
- FlightGlobals . ActiveVessel . GetOrbitDriver ( ) . orbit . UpdateFromUT ( Planetarium . GetUniversalTime ( ) ) ;
141
- }
130
+ // Is exciting new research available?
131
+ if ( observer . UpdateStatus ( expSituation , out newReport ) )
132
+ {
133
+ // if we're timewarping, resume normal time if that setting was used
134
+ if ( observer . StopWarpOnDiscovery || Settings . Instance . GlobalWarp == Settings . WarpSetting . GlobalOn )
135
+ if ( Settings . Instance . GlobalWarp != Settings . WarpSetting . GlobalOff )
136
+ if ( TimeWarp . CurrentRateIndex > 0 )
137
+ {
138
+ //OrbitSnapshot snap = new OrbitSnapshot(FlightGlobals.ActiveVessel.GetOrbitDriver().orbit);
139
+ TimeWarp . fetch . CancelAutoWarp ( ) ;
140
+ TimeWarp . SetRate ( 0 , true ) ;
141
+ //FlightGlobals.ActiveVessel.GetOrbitDriver().orbit = snap.Load();
142
+ //FlightGlobals.ActiveVessel.GetOrbitDriver().orbit.UpdateFromUT(Planetarium.GetUniversalTime());
143
+ }
142
144
143
145
#if false
144
146
scienceAlert . Button . Important = true ;
145
147
#endif
146
148
147
- if ( observer . settings . AnimationOnDiscovery )
148
- ScienceAlert . Instance . PlayAnimation ( ) ;
149
- else ScienceAlert . Instance . SetLit ( ) ; // if (scienceAlert.Button.IsNormal) scienceAlert.Button.SetLit();
150
-
151
- switch ( Settings . Instance . SoundNotification )
152
- {
153
- case Settings . SoundNotifySetting . ByExperiment :
154
- if ( observer . settings . SoundOnDiscovery )
149
+ if ( observer . settings . AnimationOnDiscovery )
150
+ ScienceAlert . Instance . PlayAnimation ( ) ;
151
+ else ScienceAlert . Instance . SetLit ( ) ; // if (scienceAlert.Button.IsNormal) scienceAlert.Button.SetLit();
152
+
153
+ switch ( Settings . Instance . SoundNotification )
154
+ {
155
+ case Settings . SoundNotifySetting . ByExperiment :
156
+ if ( observer . settings . SoundOnDiscovery )
157
+ audio . PlayUI ( "bubbles" , 2f ) ;
158
+ break ;
159
+ case Settings . SoundNotifySetting . Always :
155
160
audio . PlayUI ( "bubbles" , 2f ) ;
156
- break ;
157
- case Settings . SoundNotifySetting . Always :
158
- audio . PlayUI ( "bubbles" , 2f ) ;
159
- break ;
161
+ break ;
162
+ }
163
+ OnExperimentAvailable ( observer . Experiment , observer . NextReportValue ) ;
160
164
}
161
- OnExperimentAvailable ( observer . Experiment , observer . NextReportValue ) ;
162
- }
163
- else if ( ! observers . Any ( ob => ob . Available ) )
164
- {
165
- ScienceAlert . Instance . SetUnlit ( ) ;
165
+ else if ( ! observers . Any ( ob => ob . Available ) )
166
+ {
167
+ ScienceAlert . Instance . SetUnlit ( ) ;
166
168
#if false
167
169
scienceAlert . Button . Important = false ;
168
170
#endif
169
171
170
- }
172
+ }
171
173
#if PROFILE
172
174
Log . Warning ( "Tick time ({1}): {0} ms" , ( Time . realtimeSinceStartup - start ) * 1000f , observer . ExperimentTitle ) ;
173
175
#endif
174
- }
175
- catch ( Exception e )
176
- {
177
- Log . Debug ( "ExperimentManager.UpdateObservers: exception {0}" , e ) ;
178
- }
176
+ }
177
+ catch ( Exception e )
178
+ {
179
+ Log . Debug ( "ExperimentManager.UpdateObservers: exception {0}" , e ) ;
180
+ }
179
181
180
- if ( TimeWarp . CurrentRate < Settings . Instance . TimeWarpCheckThreshold )
181
- yield return 0 ; // pause until next frame
182
- } // end observer loop
182
+ if ( TimeWarp . CurrentRate < Settings . Instance . TimeWarpCheckThreshold )
183
+ yield return 0 ; // pause until next frame
184
+ } // end observer loop
183
185
yield return 0 ;
184
186
} // end infinite while loop
185
187
}
@@ -204,7 +206,7 @@ public int RebuildObserverList()
204
206
{
205
207
var m = FlightGlobals . ActiveVessel . FindPartModulesImplementing < ModuleScienceExperiment > ( ) . Where ( mse => mse . experimentID == expid ) . ToList ( ) ;
206
208
if ( m . Count > 0 )
207
- {
209
+ {
208
210
if ( ! ExcludeFilters . IsExcluded ( m [ 0 ] ) )
209
211
{
210
212
observers . Add ( new ExperimentObserver ( vesselStorage , ProfileManager . ActiveProfile [ expid ] , biomeFilter , scanInterface , expid , m [ 0 ] ) ) ;
@@ -242,9 +244,9 @@ public int RebuildObserverList()
242
244
return observers . Count ;
243
245
}
244
246
245
- #endregion
247
+ #endregion
246
248
247
- #region Message handling functions
249
+ #region Message handling functions
248
250
249
251
private void OnScanInterfaceChanged ( )
250
252
{
@@ -256,7 +258,7 @@ private void OnToolbarButtonChanged()
256
258
RebuildObserverList ( ) ;
257
259
}
258
260
259
- #endregion
261
+ #endregion
260
262
261
263
public ReadOnlyCollection < ExperimentObserver > Observers => new ReadOnlyCollection < ExperimentObserver > ( observers ) ;
262
264
}
0 commit comments