48 lines
1.4 KiB
C#
48 lines
1.4 KiB
C#
using System;
|
|
using System.Linq;
|
|
using Aki.Reflection.Patching;
|
|
using System.Reflection;
|
|
using Aki.Reflection.Utils;
|
|
using EFT;
|
|
using HarmonyLib;
|
|
|
|
namespace Chocster_mod
|
|
{
|
|
public class ChocPatch : ModulePatch
|
|
{
|
|
protected override MethodBase GetTargetMethod()
|
|
{
|
|
return PatchConstants.EftTypes.First(IsTargetType).GetMethod("OnModChanged", PatchConstants.PublicFlags);
|
|
}
|
|
|
|
private bool IsTargetType(Type type)
|
|
{
|
|
if (type.Name == "Class943")
|
|
{
|
|
return true;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
[PatchPrefix]
|
|
private static void PatchPrefix(ref object __instance)
|
|
{
|
|
Logger.LogError($"Get weaponPrefab");
|
|
var testTraverse = (Player.FirearmController) Traverse.Create(__instance).Field("firearmController_0").GetValue();
|
|
var testtest = (WeaponPrefab)Traverse.Create(testTraverse).Field("weaponPrefab_0").GetValue();
|
|
Logger.LogError($"Got weaponPrefab");
|
|
Logger.LogError($"Get weaponPrefab methods");
|
|
var methodsOnType = testtest.GetType().GetMethods().ToList();
|
|
Logger.LogError($"Log weaponPrefab methods");
|
|
foreach (var method in methodsOnType)
|
|
{
|
|
Logger.LogError(method.Name);
|
|
}
|
|
Logger.LogError($"End");
|
|
testtest.ResetStatesToDefault();
|
|
}
|
|
}
|
|
}
|
|
|