27 lines
1.3 KiB
C#
27 lines
1.3 KiB
C#
using System;
|
|
using System.Linq;
|
|
using System.Reflection;
|
|
class Program {
|
|
static void Main() {
|
|
var a = Assembly.LoadFrom("/home/dazed/.local/share/Steam/steamapps/common/worldbox/worldbox_Data/Managed/Assembly-CSharp.dll");
|
|
foreach (var name in new[]{"Family","FamilyManager","Actor"}) {
|
|
var t = a.GetType(name);
|
|
Console.WriteLine("==== "+name+" ====");
|
|
if (t==null) { Console.WriteLine("missing"); continue; }
|
|
Console.WriteLine("Base="+t.BaseType);
|
|
foreach (var m in t.GetMembers(BindingFlags.Instance|BindingFlags.Public|BindingFlags.DeclaredOnly)
|
|
.Where(x => x.Name.IndexOf("alpha", StringComparison.OrdinalIgnoreCase)>=0
|
|
|| x.Name.IndexOf("unit", StringComparison.OrdinalIgnoreCase)>=0
|
|
|| x.Name.IndexOf("family", StringComparison.OrdinalIgnoreCase)>=0
|
|
|| x.Name=="name" || x.Name=="getName" || x.Name=="getID" || x.Name=="isAlive")
|
|
.OrderBy(x=>x.Name))
|
|
Console.WriteLine(" "+m.MemberType+": "+m);
|
|
}
|
|
var w = a.GetType("World");
|
|
if (w!=null) {
|
|
foreach (var m in w.GetMembers(BindingFlags.Instance|BindingFlags.Public|BindingFlags.Static)
|
|
.Where(x => x.Name.IndexOf("famil", StringComparison.OrdinalIgnoreCase)>=0))
|
|
Console.WriteLine("World: "+m);
|
|
}
|
|
}
|
|
}
|