@@ -21,27 +21,19 @@ public class AnimatedEngine : PartModule
2121 private AnimationState [ ] engineStates ;
2222 private bool engineIsFX = false ;
2323
24- private float oMaxThrust ;
25- private float oMinThrust ;
2624
2725 public override void OnStart ( PartModule . StartState state )
2826 {
2927
30- try {
31- engineStates = SetUpAnimation ( EngineAnimationName , this . part ) ;
32- } catch ( NullReferenceException e ) { Debug . Log ( "NRE while setting up animation: " + e ) ; }
33-
34-
35-
28+ engineStates = SetUpAnimation ( EngineAnimationName , this . part ) ;
29+
3630 foreach ( var me in this . part . FindModulesImplementing < ModuleEngines > ( ) )
3731 {
3832 engineIsOn = me . EngineIgnited ;
3933 modEng = me ;
4034 engineIsFX = false ;
4135 }
4236
43-
44-
4537 foreach ( var me in this . part . FindModulesImplementing < ModuleEnginesFX > ( ) )
4638 {
4739 engineIsOn = me . EngineIgnited ;
@@ -62,21 +54,6 @@ public override void OnStart(PartModule.StartState state)
6254 }
6355 }
6456
65- if ( modEng != null )
66- {
67- oMaxThrust = modEng . maxThrust ;
68- oMinThrust = modEng . minThrust ;
69- modEng . maxThrust = 0 ;
70- modEng . minThrust = 0 ;
71- }
72- if ( modEngFX != null )
73- {
74- oMaxThrust = modEngFX . maxThrust ;
75- oMinThrust = modEngFX . minThrust ;
76- modEngFX . maxThrust = 0 ;
77- modEngFX . minThrust = 0 ;
78- }
79-
8057 }
8158
8259
@@ -91,59 +68,46 @@ public override void OnUpdate()
9168 {
9269 engineIsOn = modEngFX . EngineIgnited ;
9370 }
94-
71+
9572
9673 foreach ( var anim in engineStates )
9774 {
98- if ( anim . normalizedTime >= 1 )
75+
76+
77+ if ( engineIsOn && anim . normalizedTime < WaitForAnimation )
9978 {
100- anim . speed = 0 ;
101- anim . normalizedTime = 1 ;
79+ anim . speed = 1 ;
80+ if ( engineIsFX ) modEngFX . Shutdown ( ) ;
81+ else modEng . Shutdown ( ) ;
82+
10283 }
103- if ( anim . normalizedTime <= 0 )
84+
85+
86+ if ( anim . normalizedTime >= WaitForAnimation && anim . speed > 0 )
10487 {
105- anim . speed = 0 ;
106- anim . normalizedTime = 0 ;
88+ if ( engineIsFX ) modEngFX . Activate ( ) ;
89+ else modEng . Activate ( ) ;
10790 }
108-
109-
110- if ( engineIsOn )
91+
92+ if ( anim . normalizedTime >= 1 )
11193 {
112- anim . speed = 1 ;
94+ anim . speed = 0 ;
95+ anim . normalizedTime = 1 ;
11396 }
114- else
97+
98+ if ( anim . normalizedTime >= 1 && ! engineIsOn )
11599 {
116100 anim . speed = - 1 ;
101+
117102 }
118103
119-
120- if ( anim . normalizedTime < WaitForAnimation && anim . normalizedTime > 0 )
104+ if ( anim . normalizedTime < 0 )
121105 {
122- if ( ! engineIsFX )
123- {
124- modEng . maxThrust = 0 ;
125- modEng . minThrust = 0 ;
126- }
127- else
128- {
129- modEngFX . maxThrust = 0 ;
130- modEng . minThrust = 0 ;
131- }
132- }
133- if ( anim . normalizedTime >= WaitForAnimation )
134- {
135- if ( ! engineIsFX )
136- {
137- modEng . maxThrust = oMaxThrust ;
138- modEng . minThrust = oMinThrust ;
139- }
140- else
141- {
142- modEngFX . maxThrust = oMaxThrust ;
143- modEngFX . minThrust = oMinThrust ;
144- }
106+ anim . speed = 0 ;
107+ anim . normalizedTime = 0 ;
145108 }
146109
110+
147111 }
148112
149113 }
0 commit comments