22 lines
940 B
C#
22 lines
940 B
C#
using System.Reflection;
|
|
using System.Reflection.Metadata;
|
|
using System.Reflection.PortableExecutable;
|
|
string path = "/home/dazed/.local/share/Steam/steamapps/common/worldbox/worldbox_Data/Managed/Assembly-CSharp.dll";
|
|
using var fs = File.OpenRead(path);
|
|
using var pe = new PEReader(fs);
|
|
var md = pe.GetMetadataReader();
|
|
foreach (var typeName in new[]{"FamilyManager","PlotManager","ArmyManager","AllianceManager","ClanManager"}) {
|
|
Console.WriteLine("== "+typeName+" ==");
|
|
foreach (var th in md.TypeDefinitions) {
|
|
var t = md.GetTypeDefinition(th);
|
|
if (md.GetString(t.Name)!=typeName) continue;
|
|
foreach (var mh in t.GetMethods()) {
|
|
var m = md.GetMethodDefinition(mh);
|
|
var n = md.GetString(m.Name);
|
|
if (n.StartsWith("get_")||n.StartsWith("set_")||n is ".ctor") continue;
|
|
var attrs = m.Attributes;
|
|
if ((attrs & MethodAttributes.Public) == 0) continue;
|
|
Console.WriteLine(" "+n);
|
|
}
|
|
}
|
|
}
|