Skip to content

Commit

Permalink
fixed activation state not updated on load
Browse files Browse the repository at this point in the history
  • Loading branch information
DaMichel committed Nov 29, 2014
1 parent f48fb78 commit 64fc333
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 18 deletions.
Binary file modified GameData/KerbalFlightData/Plugins/KerbalFlightData.dll
Binary file not shown.
47 changes: 29 additions & 18 deletions KerbalFlightData.cs
Expand Up @@ -255,6 +255,7 @@ class DataFAR : DataSource
private bool farDataIsObtainedOkay = false;
private FieldInfo fieldControlSys; // of FARControlSys
private FieldInfo fieldQ, fieldMach, fieldAir, fieldStall;
public bool obtainIntakeData = true;

public DataFAR(Type FARControlSys_)
: base()
Expand Down Expand Up @@ -288,10 +289,10 @@ bool GetFARData(Data data)
// any error here though, is a real error. It would probably mean that the assumptions about FARControlSys were invalidated by version updates.
data.q = (double)fieldQ.GetValue(instance);
data.machNumber = (double)fieldMach.GetValue(instance);
data.airAvailability = (double)fieldAir.GetValue(null);
data.airAvailability = obtainIntakeData ? (double)fieldAir.GetValue(null) : 1.0;
data.stallPercentage = (double)fieldStall.GetValue(null);
data.hasAerodynamics = true;
data.hasAirAvailability = true;
data.hasAirAvailability = obtainIntakeData;
}
return true;
}
Expand Down Expand Up @@ -525,12 +526,7 @@ public override void Update(Data data, Vessel vessel)
dreTempThreshold *= 0.975f;
else
dreTempThreshold *= 0.85f;
//if (p.temperature > data.highestRelativeTemp * dreTempThreshold)
//{
// data.highestTemp = p.temperature;
// data.highestRelativeTemp = p.temperature / dreTempThreshold;
//}
if (dreTempThreshold - p.temperature < data.smallestTempDifferenceFromCritical)
if (dreTempThreshold - p.temperature < data.smallestTempDifferenceFromCritical)
{
data.smallestTempDifferenceFromCritical = dreTempThreshold - p.temperature;
data.highestTemp = p.temperature;
Expand Down Expand Up @@ -623,7 +619,7 @@ public void UpdateText(Data data)
{
if (hasChanged_(data))
{
DMDebug.Log2(name + " has changed");
//DMDebug.Log2(name + " has changed");
KFDContent c = getContent_(data);

if (this.styleId_ != c.styleId) // careful because of potentially costly update
Expand Down Expand Up @@ -1085,7 +1081,8 @@ static class TxtIdx
{
DMDebug.Log2(name + " Awake!");
dataSources.Clear();
bool hasFar = false;
DataFAR farData = null;
bool hasAJE = false;
foreach (var assembly in AssemblyLoader.loadedAssemblies)
{
//DMDebug.Log2(assembly.name);
Expand All @@ -1097,18 +1094,26 @@ static class TxtIdx
//DMDebug.Log2(t.FullName);
if (t.FullName.Equals("ferram4.FARControlSys"))
{
dataSources.Add(new DataFAR(t));
hasFar = true;
farData = new DataFAR(t);
}
}
}
if (assembly.name == "DeadlyReentry")
else if (assembly.name == "DeadlyReentry")
{
dataSources.Add(new DataTemperature());
}
else if (assembly.name == "AJE")
{
hasAJE = true;
}
}
if (hasFar == false)
if (farData == null)
dataSources.Add(new DataIntakeAirStock());
else
{
farData.obtainIntakeData = hasAJE == false;
dataSources.Add(farData);
}
dataSources.Add(new DataOrbitAndAltitude());
dataSources.Add(new DataSetupWarnings());

Expand All @@ -1124,27 +1129,34 @@ static class TxtIdx
toolbarButton.OnClick += (e) =>
{
displayUIByToolbarClick = !displayUIByToolbarClick;
enabled = displayUIByToolbarClick && displayUIByGuiEvent;
UpdateEnabling();
};
}

GameEvents.onHideUI.Add(OnHideUI);
GameEvents.onShowUI.Add(OnShowUI);

LoadSettings();
UpdateEnabling(); // might start with it disabled
}


void OnHideUI()
{
displayUIByGuiEvent = false;
enabled = displayUIByToolbarClick && displayUIByGuiEvent;
UpdateEnabling();
}


void OnShowUI()
{
displayUIByGuiEvent = true;
UpdateEnabling();
}


void UpdateEnabling()
{
enabled = displayUIByToolbarClick && displayUIByGuiEvent;
}

Expand All @@ -1162,8 +1174,7 @@ void SaveSettings()
void LoadSettings()
{
ConfigNode settings = new ConfigNode();
settings = ConfigNode.Load(AssemblyLoader.loadedAssemblies.GetPathByType(typeof(DMFlightData)) + @"\settings.cfg".Replace('/', '\\'));

settings = ConfigNode.Load(AssemblyLoader.loadedAssemblies.GetPathByType(typeof(DMFlightData)) + "/settings.cfg");
if (settings != null)
{
if (settings.HasValue("active")) displayUIByToolbarClick = bool.Parse(settings.GetValue("active"));
Expand Down

0 comments on commit 64fc333

Please sign in to comment.