Skip to content

Commit 072d0c3

Browse files
committed
v0.4
v0.4 -0.24.2 update -AnimatedRCS stays retracted if particular RCS thruster is disabled -Removed Looped Kethane converter (sorry!) -Animated containers update in editor -Fixed stuttering bug in AnimatedEngine -AnimatedThrusts's disableGimbalToggle combines multiple gimbals into one button and action group -Added MouseAimLight
1 parent 05b9be9 commit 072d0c3

8 files changed

Lines changed: 555 additions & 131 deletions

BDAnimationModules/AnimatedContainer.cs

Lines changed: 17 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -59,17 +59,15 @@ public override void OnUpdate()
5959
resMax = animatedResource.maxAmount;
6060
normalizedRes = resAmount/resMax;
6161

62-
63-
6462
foreach (var cs in containerStates)
6563
{
6664
cs.normalizedTime = (float)normalizedRes;
6765
}
68-
69-
7066
}
7167

7268

69+
70+
7371
public static AnimationState[] SetUpAnimation(string animationName, Part part) //Thanks Majiir!
7472
{
7573
var states = new List<AnimationState>();
@@ -85,40 +83,27 @@ public static AnimationState[] SetUpAnimation(string animationName, Part part)
8583
return states.ToArray();
8684
}
8785

88-
//for some reason OnSave causes nullReferenceExceptions...
8986

90-
/**public override void OnSave(ConfigNode node)
91-
{
92-
resAmount = animatedResource.amount;
93-
resMax = animatedResource.maxAmount;
94-
normalizedRes = resAmount/resMax;
95-
96-
97-
98-
foreach (var cs in containerStates)
99-
{
100-
cs.normalizedTime = (float)normalizedRes;
101-
}
102-
}
103-
**/
10487

105-
/**private void updateAnim()
88+
89+
}
90+
91+
[KSPAddon(KSPAddon.Startup.EditorAny, false)]
92+
public class AnimContainerEditorUpdate : MonoBehaviour
93+
{
94+
void Update()
10695
{
107-
resAmount = animatedResource.amount;
108-
resMax = animatedResource.maxAmount;
109-
normalizedRes = resAmount/resMax;
110-
111-
112-
113-
foreach (var cs in containerStates)
96+
if(HighLogic.LoadedSceneIsEditor)
11497
{
115-
cs.normalizedTime = (float)normalizedRes;
98+
foreach(Part p in EditorLogic.fetch.ship.Parts)
99+
{
100+
foreach(AnimatedContainer ac in p.FindModulesImplementing<AnimatedContainer>())
101+
{
102+
ac.OnUpdate();
103+
}
104+
}
116105
}
117-
118106
}
119-
**/
120-
121-
122107
}
123108
}
124109

BDAnimationModules/AnimatedEngine.cs

Lines changed: 53 additions & 82 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,10 @@ public class AnimatedEngine : PartModule
1919
private ModuleEngines modEng = null;
2020
private ModuleEnginesFX modEngFX = null;
2121
private AnimationState[] engineStates;
22-
private bool userActivated = false;
2322
private bool engineIsFX = false;
23+
24+
private float oMaxThrust;
25+
private float oMinThrust;
2426

2527
public override void OnStart(PartModule.StartState state)
2628
{
@@ -30,85 +32,57 @@ public override void OnStart(PartModule.StartState state)
3032
}catch(NullReferenceException e){Debug.Log ("NRE while setting up animation: "+e);}
3133

3234

33-
try{
34-
foreach (var me in this.part.FindModulesImplementing<ModuleEngines>())
35-
{
36-
engineIsOn = me.EngineIgnited;
37-
modEng = me;
38-
engineIsFX = false;
39-
}
40-
}catch(NullReferenceException e){Debug.Log ("NRE while finding ModuleEngines: "+e);}
35+
36+
foreach (var me in this.part.FindModulesImplementing<ModuleEngines>())
37+
{
38+
engineIsOn = me.EngineIgnited;
39+
modEng = me;
40+
engineIsFX = false;
41+
}
42+
4143

42-
try{
43-
foreach (var me in this.part.FindModulesImplementing<ModuleEnginesFX>())
44-
{
45-
engineIsOn = me.EngineIgnited;
46-
modEngFX = me;
47-
engineIsFX = true;
48-
}
49-
}catch(NullReferenceException e){Debug.Log ("NRE while finding ModuleEnginesFX: "+e);}
44+
45+
foreach (var me in this.part.FindModulesImplementing<ModuleEnginesFX>())
46+
{
47+
engineIsOn = me.EngineIgnited;
48+
modEngFX = me;
49+
engineIsFX = true;
50+
}
51+
5052

51-
try{
53+
foreach(var anim in engineStates)
54+
{
5255
if (engineIsOn)
5356
{
54-
foreach (var anim in engineStates)
55-
{
5657
anim.normalizedTime = 1;
57-
}
5858
}
5959
else
6060
{
61-
foreach (var anim in engineStates)
62-
{
6361
anim.normalizedTime = 0;
64-
}
6562
}
66-
}catch(NullReferenceException e){Debug.Log ("NRE on anim initial state set: "+e);}
67-
68-
69-
}
70-
71-
//Original OnUpdate (0.1)
72-
/**
73-
public override void OnUpdate()
74-
{
75-
bool engineWas = engineIsOn;
76-
engineIsOn = modEng.EngineIgnited;
77-
if(engineStates.All(s => s.normalizedTime>=1) || engineStates.All (s => s.normalizedTime<=0))
78-
{
79-
foreach(var anim in engineStates){anim.speed = 0;}
8063
}
8164

82-
if (engineWas != engineIsOn)
65+
if(modEng!=null)
8366
{
84-
if (engineIsOn)
85-
{
86-
foreach (var anim in engineStates)
87-
{
88-
anim.normalizedTime = 0;
89-
anim.speed = 1;
90-
//Debug.Log ("played forward");
91-
}
92-
}
93-
else
94-
{
95-
foreach (var anim in engineStates)
96-
{
97-
anim.normalizedTime = 1;
98-
anim.speed = -1;
99-
//Debug.Log ("played reverse");
100-
}
101-
}
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;
10278
}
79+
10380
}
10481

105-
**/
10682

107-
//New OnUpdate (waits till animation before activating Engine)
10883

10984
public override void OnUpdate()
11085
{
111-
Debug.Log ("engineIsFX = "+engineIsFX);
11286
if(!engineIsFX)
11387
{
11488
engineIsOn = modEng.EngineIgnited;
@@ -131,48 +105,45 @@ public override void OnUpdate()
131105
anim.speed = 0;
132106
anim.normalizedTime = 0;
133107
}
134-
}
135-
136-
137108

138-
if(engineIsOn)
139-
{
140-
userActivated = true;
141-
foreach(var anim in engineStates)
109+
110+
if(engineIsOn)
142111
{
143112
anim.speed = 1;
144113
}
145-
}
146-
foreach(var anim in engineStates)
147-
{
148-
if (anim.normalizedTime < WaitForAnimation)
114+
else
115+
{
116+
anim.speed = -1;
117+
}
118+
119+
120+
if (anim.normalizedTime < WaitForAnimation && anim.normalizedTime > 0)
149121
{
150122
if(!engineIsFX)
151123
{
152-
modEng.Shutdown();
124+
modEng.maxThrust = 0;
125+
modEng.minThrust = 0;
153126
}
154127
else
155128
{
156-
modEngFX.Shutdown ();
129+
modEngFX.maxThrust = 0;
130+
modEng.minThrust = 0;
157131
}
158132
}
159-
if (anim.normalizedTime >= WaitForAnimation && userActivated)
133+
if (anim.normalizedTime >= WaitForAnimation)
160134
{
161135
if(!engineIsFX)
162136
{
163-
modEng.Activate();
137+
modEng.maxThrust = oMaxThrust;
138+
modEng.minThrust = oMinThrust;
164139
}
165140
else
166141
{
167-
modEngFX.Activate();
142+
modEngFX.maxThrust = oMaxThrust;
143+
modEngFX.minThrust = oMinThrust;
168144
}
169-
userActivated = false;
170-
}
171-
if (anim.normalizedTime >= WaitForAnimation && !engineIsOn)
172-
{
173-
//userActivated = false;
174-
anim.speed = -1;
175145
}
146+
176147
}
177148

178149
}

BDAnimationModules/AnimatedRCS.cs

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,29 +13,32 @@ public class AnimatedRCS : PartModule
1313

1414
private AnimationState[] rcsStates;
1515
private bool rcsIsOn;
16+
private bool rcsPartActive;
1617

1718
public override void OnStart(PartModule.StartState state)
1819
{
1920
rcsStates = Utils.SetUpAnimation (AnimationName, this.part);
20-
21-
2221
}
2322

2423
public override void OnUpdate()
2524
{
2625
rcsIsOn = this.vessel.ActionGroups.groups[3];
26+
foreach(ModuleRCS rcs in part.FindModulesImplementing<ModuleRCS>())
27+
{
28+
rcsPartActive = rcs.isEnabled;
29+
}
2730

2831

2932
foreach (AnimationState anim in rcsStates)
3033
{
31-
if(rcsIsOn && anim.normalizedTime<1){anim.speed = 1;}
32-
if(rcsIsOn && anim.normalizedTime>=1)
34+
if(rcsIsOn && rcsPartActive && anim.normalizedTime<1){anim.speed = 1;}
35+
if(rcsIsOn && rcsPartActive && anim.normalizedTime>=1)
3336
{
3437
anim.speed = 0;
3538
anim.normalizedTime = 1;
3639
}
37-
if(!rcsIsOn && anim.normalizedTime>0){anim.speed = -1;}
38-
if(!rcsIsOn && anim.normalizedTime<=0)
40+
if((!rcsIsOn||!rcsPartActive) && anim.normalizedTime>0){anim.speed = -1;}
41+
if((!rcsIsOn||!rcsPartActive) && anim.normalizedTime<=0)
3942
{
4043
anim.speed = 0;
4144
anim.normalizedTime = 0;

0 commit comments

Comments
 (0)