use public thingies

This commit is contained in:
Mister_Nebula 2021-10-28 14:29:53 +01:00
parent e2b5c167be
commit 7b2e2e1a84
2 changed files with 10 additions and 16 deletions

View File

@ -116,14 +116,12 @@ namespace QSB.Animation.NPC.Patches
[HarmonyPrefix]
[HarmonyPatch(typeof(FacePlayerWhenTalking), nameof(FacePlayerWhenTalking.OnStartConversation))]
public static bool OnStartConversation(
FacePlayerWhenTalking __instance,
CharacterDialogueTree ____dialogueTree)
public static bool OnStartConversation(FacePlayerWhenTalking __instance)
{
var playerId = ConversationManager.Instance.GetPlayerTalkingToTree(____dialogueTree);
var playerId = ConversationManager.Instance.GetPlayerTalkingToTree(__instance._dialogueTree);
if (playerId == uint.MaxValue)
{
DebugLog.ToConsole($"Error - No player talking to {____dialogueTree.name}!", MessageType.Error);
DebugLog.ToConsole($"Error - No player talking to {__instance._dialogueTree.name}!", MessageType.Error);
return false;
}
@ -134,7 +132,7 @@ namespace QSB.Animation.NPC.Patches
var angle = Vector3.Angle(__instance.transform.forward, vector2) * Mathf.Sign(Vector3.Dot(vector2, __instance.transform.right));
var axis = __instance.transform.parent.InverseTransformDirection(__instance.transform.up);
var lhs = Quaternion.AngleAxis(angle, axis);
__instance.GetType().GetMethod("FaceLocalRotation", BindingFlags.NonPublic | BindingFlags.Instance).Invoke(__instance, new object[] { lhs * __instance.transform.localRotation });
__instance.FaceLocalRotation(lhs * __instance.transform.localRotation);
return false;
}
@ -173,22 +171,18 @@ namespace QSB.Animation.NPC.Patches
[HarmonyPrefix]
[HarmonyPatch(typeof(KidRockController), nameof(KidRockController.Update))]
public static bool UpdateReplacement(
KidRockController __instance,
bool ____throwingRock,
CharacterDialogueTree ____dialogueTree,
float ____nextThrowTime)
public static bool UpdateReplacement(KidRockController __instance)
{
if (!WorldObjectManager.AllReady)
{
return true;
}
var qsbObj = QSBWorldSync.GetWorldObjects<QSBCharacterAnimController>().First(x => x.GetDialogueTree() == ____dialogueTree);
var qsbObj = QSBWorldSync.GetWorldObjects<QSBCharacterAnimController>().First(x => x.GetDialogueTree() == __instance._dialogueTree);
if (!____throwingRock && !qsbObj.InConversation() && Time.time > ____nextThrowTime)
if (!__instance._throwingRock && !qsbObj.InConversation() && Time.time > __instance._nextThrowTime)
{
__instance.GetType().GetMethod("StartRockThrow", BindingFlags.NonPublic | BindingFlags.Instance).Invoke(__instance, null);
__instance.StartRockThrow();
}
return false;

View File

@ -5,9 +5,9 @@ namespace QSB.Animation.NPC.WorldObjects
internal class QSBTravelerController : NpcAnimController<TravelerController>
{
public override CharacterDialogueTree GetDialogueTree()
=> AttachedObject.GetValue<CharacterDialogueTree>("_dialogueSystem");
=> AttachedObject._dialogueSystem;
public override bool InConversation()
=> AttachedObject.GetValue<bool>("_talking");
=> AttachedObject._talking;
}
}