patch changes
This commit is contained in:
@@ -12,7 +12,7 @@ namespace BoneSync.Patching
|
|||||||
[HarmonyPatch(typeof(SubBehaviourHealth))]
|
[HarmonyPatch(typeof(SubBehaviourHealth))]
|
||||||
internal class AIHealthPatches
|
internal class AIHealthPatches
|
||||||
{
|
{
|
||||||
[HarmonyPatch(nameof(SubBehaviourHealth.TakeDamage)), HarmonyPrefix]
|
/*[HarmonyPatch(nameof(SubBehaviourHealth.TakeDamage)), HarmonyPrefix]
|
||||||
private static bool DamagePrefix(SubBehaviourHealth __instance)
|
private static bool DamagePrefix(SubBehaviourHealth __instance)
|
||||||
{
|
{
|
||||||
if (!BoneSync.IsConnected) return true;
|
if (!BoneSync.IsConnected) return true;
|
||||||
@@ -20,6 +20,6 @@ namespace BoneSync.Patching
|
|||||||
Syncable syncable = __instance.behaviour.GetComponentInParent<Syncable>();
|
Syncable syncable = __instance.behaviour.GetComponentInParent<Syncable>();
|
||||||
if (syncable != null && syncable.Registered && !syncable.isOwner) return false;
|
if (syncable != null && syncable.Registered && !syncable.isOwner) return false;
|
||||||
return true;
|
return true;
|
||||||
}
|
}*/
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -82,7 +82,7 @@ namespace BoneSync.Patching
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
[HarmonyPatch(typeof(UnityEvent))]
|
/*[HarmonyPatch(typeof(UnityEvent))]
|
||||||
internal class UnityEventPatches
|
internal class UnityEventPatches
|
||||||
{
|
{
|
||||||
[HarmonyPatch(nameof(UnityEvent.Invoke)), HarmonyPrefix]
|
[HarmonyPatch(nameof(UnityEvent.Invoke)), HarmonyPrefix]
|
||||||
@@ -96,5 +96,5 @@ namespace BoneSync.Patching
|
|||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}*/
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -28,12 +28,7 @@ namespace BoneSync.Patching
|
|||||||
if (handPoses.ContainsKey(handPoseName))
|
if (handPoses.ContainsKey(handPoseName))
|
||||||
return handPoses[handPoseName];
|
return handPoses[handPoseName];
|
||||||
|
|
||||||
if (PlayerScripts.playerHandPoses == null)
|
if (PlayerScripts.playerHandPoses == null || PlayerScripts.playerHandPoses.Count == 0)
|
||||||
{
|
|
||||||
SyncLogger.Error("PlayerScripts.playerHandPoses is null!");
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
if (PlayerScripts.playerHandPoses.Count == 0)
|
|
||||||
{
|
{
|
||||||
SyncLogger.Msg("PlayerScripts.playerHandPoses is empty, getting hand poses...");
|
SyncLogger.Msg("PlayerScripts.playerHandPoses is empty, getting hand poses...");
|
||||||
PlayerScripts.GetHandPoses();
|
PlayerScripts.GetHandPoses();
|
||||||
|
|||||||
@@ -61,10 +61,10 @@ namespace BoneSync.Patching
|
|||||||
{
|
{
|
||||||
public static bool IsChildOfLocalRigRoot(Transform transform)
|
public static bool IsChildOfLocalRigRoot(Transform transform)
|
||||||
{
|
{
|
||||||
if (PlayerRig.localRigRoot == null) return false;
|
if (PlayerRig.localRigWorldRoot == null) return false;
|
||||||
return transform.IsChildOf(PlayerRig.localRigRoot);
|
return transform.root == PlayerRig.localRigWorldRoot;
|
||||||
}
|
}
|
||||||
/*[HarmonyPatch(nameof(SceneZone.OnTriggerEnter)), HarmonyPrefix]
|
[HarmonyPatch(nameof(SceneZone.OnTriggerEnter)), HarmonyPrefix]
|
||||||
public static bool EnterPrefix(SceneZone __instance, Collider other)
|
public static bool EnterPrefix(SceneZone __instance, Collider other)
|
||||||
{
|
{
|
||||||
if (other.CompareTag("Player"))
|
if (other.CompareTag("Player"))
|
||||||
@@ -73,7 +73,7 @@ namespace BoneSync.Patching
|
|||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}*/
|
}
|
||||||
|
|
||||||
[HarmonyPatch(nameof(SceneZone.OnTriggerExit)), HarmonyPrefix]
|
[HarmonyPatch(nameof(SceneZone.OnTriggerExit)), HarmonyPrefix]
|
||||||
public static bool ExitPrefix(SceneZone __instance, Collider other)
|
public static bool ExitPrefix(SceneZone __instance, Collider other)
|
||||||
@@ -90,18 +90,18 @@ namespace BoneSync.Patching
|
|||||||
[HarmonyPatch(typeof(PlayerTrigger))]
|
[HarmonyPatch(typeof(PlayerTrigger))]
|
||||||
public static class PlayerTriggerPatch
|
public static class PlayerTriggerPatch
|
||||||
{
|
{
|
||||||
/*
|
|
||||||
[HarmonyPatch(nameof(PlayerTrigger.OnTriggerEnter)), HarmonyPrefix]
|
[HarmonyPatch(nameof(PlayerTrigger.OnTriggerEnter)), HarmonyPrefix]
|
||||||
public static bool EnterPrefix(PlayerTrigger __instance, Collider other)
|
public static bool EnterPrefix(PlayerTrigger __instance, Collider other)
|
||||||
{
|
{
|
||||||
if (other.CompareTag("Player"))
|
if (other.CompareTag("Player"))
|
||||||
{
|
{
|
||||||
|
|
||||||
return other.transform.IsChildOf(PlayerRig.localRigRoot);
|
return SceneZonePatch.IsChildOfLocalRigRoot(other.transform);
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}*/
|
}
|
||||||
|
|
||||||
|
|
||||||
// only patch exit, as we want to allow activating a trigger always
|
// only patch exit, as we want to allow activating a trigger always
|
||||||
|
|||||||
@@ -110,7 +110,8 @@ namespace BoneSync.Player
|
|||||||
|
|
||||||
|
|
||||||
public static GameObject localPlayerRig;
|
public static GameObject localPlayerRig;
|
||||||
public static Transform localRigRoot;
|
public static Transform localRigSkeletonRoot;
|
||||||
|
public static Transform localRigWorldRoot;
|
||||||
|
|
||||||
private static Transform localRigHeadTransform;
|
private static Transform localRigHeadTransform;
|
||||||
private static Transform localRigLeftHandTransform;
|
private static Transform localRigLeftHandTransform;
|
||||||
@@ -119,11 +120,12 @@ namespace BoneSync.Player
|
|||||||
{
|
{
|
||||||
if (localPlayerRig != null) return;
|
if (localPlayerRig != null) return;
|
||||||
localPlayerRig = GameObject.Find("[RigManager (Default Brett)]/[SkeletonRig (GameWorld Brett)]");
|
localPlayerRig = GameObject.Find("[RigManager (Default Brett)]/[SkeletonRig (GameWorld Brett)]");
|
||||||
localRigRoot = localPlayerRig.transform;
|
localRigSkeletonRoot = localPlayerRig.transform;
|
||||||
|
localRigWorldRoot = localRigSkeletonRoot.root;
|
||||||
|
|
||||||
localRigHeadTransform = localRigRoot.Find("Head");
|
localRigHeadTransform = localRigSkeletonRoot.Find("Head");
|
||||||
localRigLeftHandTransform = localRigRoot.Find("Hand (left)");
|
localRigLeftHandTransform = localRigSkeletonRoot.Find("Hand (left)");
|
||||||
localRigRightHandTransform = localRigRoot.Find("Hand (right)");
|
localRigRightHandTransform = localRigSkeletonRoot.Find("Hand (right)");
|
||||||
}
|
}
|
||||||
|
|
||||||
public static PlayerSyncInfo? GetLocalSyncInfo()
|
public static PlayerSyncInfo? GetLocalSyncInfo()
|
||||||
@@ -145,7 +147,7 @@ namespace BoneSync.Player
|
|||||||
|
|
||||||
PlayerSyncInfo playerSyncInfo = new PlayerSyncInfo()
|
PlayerSyncInfo playerSyncInfo = new PlayerSyncInfo()
|
||||||
{
|
{
|
||||||
rootPos = localRigRoot.position,
|
rootPos = localRigSkeletonRoot.position,
|
||||||
headPos = new SimpleSyncTransform(localRigHeadTransform),
|
headPos = new SimpleSyncTransform(localRigHeadTransform),
|
||||||
leftHandPos = new SimpleSyncTransform(localRigLeftHandTransform),
|
leftHandPos = new SimpleSyncTransform(localRigLeftHandTransform),
|
||||||
rightHandPos = new SimpleSyncTransform(localRigRightHandTransform),
|
rightHandPos = new SimpleSyncTransform(localRigRightHandTransform),
|
||||||
|
|||||||
@@ -176,7 +176,7 @@ namespace BoneSync.Sync.Components
|
|||||||
/*ZoneTracker[] zoneTrackers = GetComponentsInChildren<ZoneTracker>(true);
|
/*ZoneTracker[] zoneTrackers = GetComponentsInChildren<ZoneTracker>(true);
|
||||||
foreach (ZoneTracker zoneTracker in zoneTrackers)
|
foreach (ZoneTracker zoneTracker in zoneTrackers)
|
||||||
{
|
{
|
||||||
//Destroy(zoneTracker);
|
Destroy(zoneTracker);
|
||||||
}*/
|
}*/
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -17,8 +17,8 @@ namespace BoneSync.Sync
|
|||||||
private static Dictionary<string, Syncable> _pathToSyncable = new Dictionary<string, Syncable>();
|
private static Dictionary<string, Syncable> _pathToSyncable = new Dictionary<string, Syncable>();
|
||||||
private static Dictionary<ushort, Syncable> _idToSyncable = new Dictionary<ushort, Syncable>();
|
private static Dictionary<ushort, Syncable> _idToSyncable = new Dictionary<ushort, Syncable>();
|
||||||
|
|
||||||
private static Dictionary<MonoBehaviour, Syncable> _componentToSyncable = new Dictionary<MonoBehaviour, Syncable>();
|
private static Dictionary<int, Syncable> _componentToSyncable = new Dictionary<int, Syncable>();
|
||||||
private static Dictionary<Syncable, MonoBehaviour[]> _syncableToComponent = new Dictionary<Syncable, MonoBehaviour[]>();
|
private static Dictionary<Syncable, Component[]> _syncableToComponent = new Dictionary<Syncable, Component[]>();
|
||||||
|
|
||||||
public static Dictionary<ushort, Syncable> CallbackIdToSyncable = new Dictionary<ushort, Syncable>();
|
public static Dictionary<ushort, Syncable> CallbackIdToSyncable = new Dictionary<ushort, Syncable>();
|
||||||
|
|
||||||
@@ -27,24 +27,18 @@ namespace BoneSync.Sync
|
|||||||
return component.GetType().Namespace;
|
return component.GetType().Namespace;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static bool IsCachableComponent(MonoBehaviour component)
|
private static bool IsCachableComponent(Component component)
|
||||||
{
|
{
|
||||||
if (component is InteractableHost) return true;
|
if (component is MonoBehaviour) return true;
|
||||||
if (component is Poolee) return true;
|
|
||||||
if (component is Plug) return true;
|
|
||||||
if (component is Socket) return true;
|
|
||||||
if (component is AlignPlug) return true;
|
|
||||||
if (component is Gun) return true;
|
|
||||||
if (component is Magazine) return true;
|
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
//string ns = GetComponentNamespace(component);
|
//string ns = GetComponentNamespace(component);
|
||||||
//return ns.StartsWith("StressLevelZero") || ns.StartsWith("BoneSync");
|
//return ns.StartsWith("StressLevelZero") || ns.StartsWith("BoneSync");
|
||||||
}
|
}
|
||||||
private static MonoBehaviour[] GetComponentsToCache(Syncable syncable)
|
private static Component[] GetComponentsToCache(Syncable syncable)
|
||||||
{
|
{
|
||||||
MonoBehaviour[] components = syncable.GetComponentsInChildren<MonoBehaviour>(true);
|
Component[] components = syncable.GetComponentsInChildren<Component>(true);
|
||||||
List<MonoBehaviour> slzComponents = new List<MonoBehaviour>();
|
List<Component> slzComponents = new List<Component>();
|
||||||
for (int i = 0; i < components.Length; i++)
|
for (int i = 0; i < components.Length; i++)
|
||||||
{
|
{
|
||||||
if (IsCachableComponent(components[i]))
|
if (IsCachableComponent(components[i]))
|
||||||
@@ -56,21 +50,21 @@ namespace BoneSync.Sync
|
|||||||
}
|
}
|
||||||
private static void _AddSyncableComponents(Syncable syncable)
|
private static void _AddSyncableComponents(Syncable syncable)
|
||||||
{
|
{
|
||||||
MonoBehaviour[] components = GetComponentsToCache(syncable);
|
Component[] components = GetComponentsToCache(syncable);
|
||||||
_syncableToComponent[syncable] = components;
|
_syncableToComponent[syncable] = components;
|
||||||
foreach (MonoBehaviour component in components)
|
foreach (Component component in components)
|
||||||
{
|
{
|
||||||
_componentToSyncable[component] = syncable;
|
_componentToSyncable[component.GetHashCode()] = syncable;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
private static void _RemoveSyncableComponents(Syncable syncable)
|
private static void _RemoveSyncableComponents(Syncable syncable)
|
||||||
{
|
{
|
||||||
if (_syncableToComponent.ContainsKey(syncable))
|
if (_syncableToComponent.ContainsKey(syncable))
|
||||||
{
|
{
|
||||||
MonoBehaviour[] components = _syncableToComponent[syncable];
|
Component[] components = _syncableToComponent[syncable];
|
||||||
foreach (MonoBehaviour component in components)
|
foreach (Component component in components)
|
||||||
{
|
{
|
||||||
_componentToSyncable.Remove(component);
|
_componentToSyncable.Remove(component.GetHashCode());
|
||||||
}
|
}
|
||||||
_syncableToComponent.Remove(syncable);
|
_syncableToComponent.Remove(syncable);
|
||||||
}
|
}
|
||||||
@@ -147,11 +141,11 @@ namespace BoneSync.Sync
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Syncable GetSyncable(MonoBehaviour component)
|
public static Syncable GetSyncable(Component component)
|
||||||
{
|
{
|
||||||
if (_componentToSyncable.ContainsKey(component))
|
if (_componentToSyncable.ContainsKey(component.GetHashCode()))
|
||||||
{
|
{
|
||||||
return _componentToSyncable[component];
|
return _componentToSyncable[component.GetHashCode()];
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@@ -160,7 +154,7 @@ namespace BoneSync.Sync
|
|||||||
{
|
{
|
||||||
foreach (Syncable syncable in Syncable.syncablesCache.Values)
|
foreach (Syncable syncable in Syncable.syncablesCache.Values)
|
||||||
{
|
{
|
||||||
syncable.DiscardSyncable();
|
syncable.DiscardSyncableImmediate(true, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user