@@ -28,7 +28,7 @@ public static bool Available
2828 _type = AssemblyLoader . loadedAssemblies
2929 . Select ( a => a . assembly . GetExportedTypes ( ) )
3030 . SelectMany ( t => t )
31- . FirstOrDefault ( t => t . FullName == "CrewQueue.CrewQueue " ) ;
31+ . FirstOrDefault ( t => t . FullName == "CrewQueue.CrewQueueProxy " ) ;
3232
3333 _available = _type != null ;
3434 }
@@ -43,7 +43,7 @@ public static IEnumerable<ProtoCrewMember> AvailableCrew
4343 {
4444 get
4545 {
46- return ( IEnumerable < ProtoCrewMember > ) getProperty ( "CrewQueueRoster" , " AvailableCrew") ;
46+ return ( IEnumerable < ProtoCrewMember > ) getProperty ( "AvailableCrew" ) ;
4747 }
4848 }
4949
@@ -54,29 +54,29 @@ public static IEnumerable<ProtoCrewMember> UnavailableCrew
5454 {
5555 get
5656 {
57- return ( IEnumerable < ProtoCrewMember > ) getProperty ( "CrewQueueRoster" , " UnavailableCrew") ;
57+ return ( IEnumerable < ProtoCrewMember > ) getProperty ( "UnavailableCrew" ) ;
5858 }
5959 }
6060
6161 /// <summary>
6262 /// Returns the Kerbals who are allowed to go on missions, sorted inexperienced first.
6363 /// </summary>
64- public static IOrderedEnumerable < ProtoCrewMember > NewbieCrew
64+ public static IOrderedEnumerable < ProtoCrewMember > LeastExperiencedCrew
6565 {
6666 get
6767 {
68- return ( IOrderedEnumerable < ProtoCrewMember > ) getProperty ( "CrewQueueRoster" , " LeastExperiencedCrew") ;
68+ return ( IOrderedEnumerable < ProtoCrewMember > ) getProperty ( "LeastExperiencedCrew" ) ;
6969 }
7070 }
7171
7272 /// <summary>
7373 /// Returns the Kerbals who are allowed to go on missions, sorted veterans first.
7474 /// </summary>
75- public static IOrderedEnumerable < ProtoCrewMember > VeteranCrew
75+ public static IOrderedEnumerable < ProtoCrewMember > MostExperiencedCrew
7676 {
7777 get
7878 {
79- return ( IOrderedEnumerable < ProtoCrewMember > ) getProperty ( "CrewQueueRoster" , " MostExperiencedCrew") ;
79+ return ( IOrderedEnumerable < ProtoCrewMember > ) getProperty ( "MostExperiencedCrew" ) ;
8080 }
8181 }
8282
@@ -86,9 +86,9 @@ public static IOrderedEnumerable<ProtoCrewMember> VeteranCrew
8686 /// <param name="partPrefab">A reference to the Part in question.</param>
8787 /// <param name="preferVeterans">Check if veterans should be prioritized over newbies</param>
8888 /// <returns></returns>
89- public IEnumerable < ProtoCrewMember > GetCrewForPart ( Part partPrefab , bool preferVeterans = false )
89+ public IEnumerable < ProtoCrewMember > GetCrewForPart ( Part partPrefab , IEnumerable < ProtoCrewMember > exemptList , bool preferVeterans = false )
9090 {
91- return ( IEnumerable < ProtoCrewMember > ) invokeMethod ( "CrewQueue" , " GetCrewForPart", new object [ ] { partPrefab , preferVeterans } ) ;
91+ return ( IEnumerable < ProtoCrewMember > ) invokeMethod ( "GetCrewForPart" , new object [ ] { partPrefab , exemptList , preferVeterans } ) ;
9292 }
9393
9494 // Generic accessors
@@ -103,44 +103,34 @@ internal static object Instance
103103 }
104104 else
105105 {
106- throw new Exception ( "Attempted to access CrewQ without that mod installed." ) ;
106+ throw new Exception ( "Attempted to access CrewQueue without that mod installed." ) ;
107107 }
108108 }
109109 }
110110
111- internal static object getProperty ( string target , string name , object [ ] indexes = null )
111+ internal static object getProperty ( string name , object [ ] indexes = null )
112112 {
113113 if ( Available )
114114 {
115- Type type = AssemblyLoader . loadedAssemblies
116- . Select ( a => a . assembly . GetExportedTypes ( ) )
117- . SelectMany ( t => t )
118- . FirstOrDefault ( t => t . FullName == "CrewQueue." + target ) ;
119-
120- System . Reflection . PropertyInfo _property = type . GetProperty ( name , BindingFlags . NonPublic | BindingFlags . Instance ) ;
115+ System . Reflection . PropertyInfo _property = _type . GetProperty ( name , BindingFlags . NonPublic | BindingFlags . Static ) ;
121116 return _property . GetValue ( Instance , indexes ) ;
122117 }
123118 else
124119 {
125- throw new Exception ( "Attempted to access CrewQ without that mod installed." ) ;
120+ throw new Exception ( "Attempted to access CrewQueue without that mod installed." ) ;
126121 }
127122 }
128123
129- internal static object invokeMethod ( string target , string name , object [ ] parameters = null )
124+ internal static object invokeMethod ( string name , object [ ] parameters = null )
130125 {
131126 if ( Available )
132- {
133- Type type = AssemblyLoader . loadedAssemblies
134- . Select ( a => a . assembly . GetExportedTypes ( ) )
135- . SelectMany ( t => t )
136- . FirstOrDefault ( t => t . FullName == "CrewQueue." + target ) ;
137-
138- MethodInfo _method = type . GetMethod ( name , BindingFlags . NonPublic | BindingFlags . Instance ) ;
127+ {
128+ MethodInfo _method = _type . GetMethod ( name , BindingFlags . NonPublic | BindingFlags . Static ) ;
139129 return _method . Invoke ( Instance , parameters ) ;
140130 }
141131 else
142132 {
143- throw new Exception ( "Attempted to access CrewQ without that mod installed." ) ;
133+ throw new Exception ( "Attempted to access CrewQueue without that mod installed." ) ;
144134 }
145135 }
146136 }
0 commit comments