Skip to content

Commit

Permalink
Showing 2 changed files with 43 additions and 8 deletions.
Binary file modified GameData/RP-0/Plugins/RP0.dll
Binary file not shown.
51 changes: 43 additions & 8 deletions Source/Crew/CrewHandler.cs
Original file line number Diff line number Diff line change
@@ -4,6 +4,7 @@
using System.Text;
using KSP;
using UnityEngine;
using System.Reflection;

namespace RP0
{
@@ -24,7 +25,9 @@ public class CrewHandler : ScenarioModule

protected int countAvailable, countAssigned, countKIA;

public bool firstLoad = true;
protected bool firstLoad = true;

protected FieldInfo cliTooltip;

#region Instance

@@ -56,6 +59,8 @@ public override void OnAwake()
GameEvents.OnCrewmemberHired.Add(OnCrewHired);
GameEvents.onGUIAstronautComplexSpawn.Add(ACSpawn);
GameEvents.onGUIAstronautComplexDespawn.Add(ACDespawn);

cliTooltip = typeof(KSP.UI.CrewListItem).GetField("tooltipController", BindingFlags.NonPublic | BindingFlags.Instance);
}

public override void OnLoad(ConfigNode node)
@@ -160,11 +165,11 @@ public void Update()


// UI fixing
/*if (inAC)
if (inAC)
{
if (astronautComplex == null)
{
KSP.UI.Screens.AstronautComplex[] mbs = Resources.FindObjectsOfTypeAll<KSP.UI.Screens.AstronautComplex>();
KSP.UI.Screens.AstronautComplex[] mbs = GameObject.FindObjectsOfType<KSP.UI.Screens.AstronautComplex>();
int maxCount = -1;
foreach (KSP.UI.Screens.AstronautComplex c in mbs)
{
@@ -193,15 +198,45 @@ public void Update()
KSP.UI.CrewListItem cli = u.listItem.GetComponent<KSP.UI.CrewListItem>();
if (cli != null)
{
ProtoCrewMember pcm = cli.GetCrewRef();
double retTime;
if(kerbalRetireTimes.TryGetValue(pcm.name, out retTime))
AddRetireTime(cli);
}
}

foreach (KSP.UI.UIListData<KSP.UI.UIListItem> u in astronautComplex.ScrollListAssigned)
{
KSP.UI.CrewListItem cli = u.listItem.GetComponent<KSP.UI.CrewListItem>();
if (cli != null)
{
AddRetireTime(cli);
}
}

foreach (KSP.UI.UIListData<KSP.UI.UIListItem> u in astronautComplex.ScrollListKia)
{
KSP.UI.CrewListItem cli = u.listItem.GetComponent<KSP.UI.CrewListItem>();
if (cli != null)
{
if (retirees.Contains(cli.GetName()))
{
cli.SetTooltip(
cli.SetLabel("Retired");
cli.MouseoverEnabled = false;
}
}
}
}
}*/
}
}

protected void AddRetireTime(KSP.UI.CrewListItem cli)
{
ProtoCrewMember pcm = cli.GetCrewRef();
double retTime;
if (kerbalRetireTimes.TryGetValue(pcm.name, out retTime))
{
cli.SetTooltip(pcm);
KSP.UI.TooltipTypes.TooltipController_CrewAC ttc = cliTooltip.GetValue(cli) as KSP.UI.TooltipTypes.TooltipController_CrewAC;
ttc.descriptionString += "\n\nRetires no earlier than " + KSPUtil.PrintDate(retTime, false);
}
}

public void OnDestroy()

0 comments on commit e66e74a

Please sign in to comment.