Skip to content

Commit

Permalink
Merge pull request #16 from Li0n-0/DEV
Browse files Browse the repository at this point in the history
1.9
  • Loading branch information
Li0n-0 committed Sep 22, 2017
2 parents 5ea333b + 5c429c8 commit 1a011d8
Show file tree
Hide file tree
Showing 6 changed files with 43 additions and 2 deletions.
Binary file modified GameData/CrewLight/CrewLight.dll
Binary file not shown.
2 changes: 1 addition & 1 deletion GameData/CrewLight/CrewLight.version
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
"VERSION":
{
"MAJOR":1,
"MINOR":8,
"MINOR":9,
"PATCH":0,
"BUILD":0
},
Expand Down
8 changes: 8 additions & 0 deletions GameData/CrewLight/MMPatch/ModuleLightToggle.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,14 @@
}

@PART[*]:HAS[@MODULE[ModuleKELight],!MODULE[ModuleLightEVAToggle],!MODULE[ModuleStatusLight],~CrewCapacity[]]:NEEDS[KerbalElectric]:FOR[CrewLight]
{
MODULE
{
name = ModuleLightEVAToggle
}
}

@PART[*]:HAS[@MODULE[ModuleNavLight],!MODULE[ModuleLightEVAToggle],!MODULE[ModuleStatusLight],~CrewCapacity[]]:NEEDS[AviationLights]:FOR[CrewLight]
{
MODULE
{
Expand Down
7 changes: 7 additions & 0 deletions Source/CLSettings.cs
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@ public static class CLSettings
// Toggle vessel lights on EVA
public static bool useVesselLightsOnEVA = true;
public static bool lightSymLights = false;
public static bool onAviationLights = true;

// Transfer Crew
public static bool useTransferCrew = true;
Expand Down Expand Up @@ -288,6 +289,12 @@ static CLSettings ()
}
nodeVesselLightsOnEVA.SetValue ("toggle_symmetric_lights", lightSymLights,
"if true all symmetrical lights will respond to the toggle", true);

if (nodeVesselLightsOnEVA.HasValue ("enable_on_AviationLights_light")) {
onAviationLights = bool.Parse (nodeVesselLightsOnEVA.GetValue ("enable_on_AviationLights_light"));
}
nodeVesselLightsOnEVA.SetValue ("enable_on_AviationLights_lights", onAviationLights,
"AviationLights lights will use the preset defined below", true);
//
// Transfer Crew
//
Expand Down
15 changes: 14 additions & 1 deletion Source/ModuleLightEVAToggle.cs
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,9 @@ public class ModuleLightEVAToggle : PartModule

public override void OnStart (StartState state)
{
if ((part.Modules.Contains<ModuleLight> () || part.Modules.Contains ("ModuleKELight")) && CLSettings.useVesselLightsOnEVA) {
if ((part.Modules.Contains<ModuleLight> () || part.Modules.Contains ("ModuleKELight")
|| (part.Modules.Contains ("ModuleNavLight") && CLSettings.onAviationLights))
&& CLSettings.useVesselLightsOnEVA) {
ogSymPart = new List<Part> (part.symmetryCounterparts);
} else {
Destroy (this);
Expand Down Expand Up @@ -46,6 +48,17 @@ public void LightToggleEVA ()
}
}
}
if (part.Modules.Contains ("ModuleNavLight")) {
foreach (PartModule partM in part.Modules) {
if (partM.ClassName == "ModuleNavLight") {
if ((int)partM.GetType ().InvokeMember ("navLightSwitch", System.Reflection.BindingFlags.GetField, null, partM, null) != 0) {
SwitchLight.Off (part);
} else {
SwitchLight.On (part);
}
}
}
}

if (! CLSettings.lightSymLights) {
part.symmetryCounterparts = ogSymPart;
Expand Down
13 changes: 13 additions & 0 deletions Source/SwitchLight.cs
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,10 @@ public static void On (PartModule light)
light.GetType ().InvokeMember ("navLightSwitch", BindingFlags.SetField, null, light,
new object[] { CLSettings.strobeWhite });
break;
default:
light.GetType ().InvokeMember ("navLightSwitch", BindingFlags.SetField, null, light,
new object[] { 4 });
break;
}
} else {
light.GetType ().InvokeMember ("navLightSwitch", BindingFlags.SetField, null, light, new object[] {4});
Expand Down Expand Up @@ -159,13 +163,22 @@ private static List<PartModule> GetLightModule (Part part)
}
}
}
// Wild Blue Industry
if (part.Modules.Contains ("WBILight")) {
foreach (PartModule module in part.Modules) {
if (module.moduleName == "WBILight") {
lightList.Add (module);
}
}
}
// AviationLights
if (part.Modules.Contains ("ModuleNavLight")) {
foreach (PartModule module in part.Modules) {
if (module.moduleName == "ModuleNavLight") {
lightList.Add (module);
}
}
}
// Kerbal Electric Lights
if (part.Modules.Contains ("ModuleKELight")) {
foreach (PartModule module in part.Modules) {
Expand Down

0 comments on commit 1a011d8

Please sign in to comment.