-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathModuleIgnitionPropellant.cs
More file actions
71 lines (58 loc) · 2.19 KB
/
ModuleIgnitionPropellant.cs
File metadata and controls
71 lines (58 loc) · 2.19 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
namespace Ignition
{
public class ModuleIgnitionPropellant : PartModule
{
[KSPField(isPersistant = true)]
public string moduleID;
[KSPField(isPersistant = true)]
public string resourceName;
[KSPField(isPersistant = true)]
public string resourceNameOriginal = null;
[KSPField(isPersistant = true)]
public double ratio = 0;
[KSPField(isPersistant = true)]
public bool drawStackGauge = false;
[KSPField(isPersistant = true)]
public bool ignoreForIsp = false;
public override void OnLoad(ConfigNode node)
{
base.OnLoad(node);
if (resourceName is null) return;
if (resourceNameOriginal is null) resourceNameOriginal = resourceName;
foreach (var controllerModule in part.FindModulesImplementing<ModuleIgnitionController>())
{
if (controllerModule.IsConnectedToPropellantModule(moduleID)) controllerModule.UpdateAndApply(false);
}
if (HighLogic.LoadedSceneIsEditor)
{
foreach (var module in part.Modules)
{
if (module.ClassName == "TweakScale" && module.Fields.GetValue<bool>("moduleIsEnabled"))
{
module.OnStart(StartState.Editor);
break;
}
}
}
}
}
public class ModuleIgnitionPropellantWrapper
{
private ModuleIgnitionPropellant Module;
private bool UseOriginalResourceNames;
public string moduleID => Module.moduleID;
public double ratio => Module.ratio;
public bool drawStackGauge => Module.drawStackGauge;
public bool ignoreForIsp => Module.ignoreForIsp;
public ModuleIgnitionPropellantWrapper(ModuleIgnitionPropellant module, bool useOriginalResourceNames)
{
Module = module;
UseOriginalResourceNames = useOriginalResourceNames;
}
public string GetResourceName()
{
if (UseOriginalResourceNames) return Module.resourceNameOriginal;
return Module.resourceName;
}
}
}