diff --git a/NodeController/LifeCycle/SerializableDataExtension.cs b/NodeController/LifeCycle/SerializableDataExtension.cs index d91fbf1..cbee32f 100644 --- a/NodeController/LifeCycle/SerializableDataExtension.cs +++ b/NodeController/LifeCycle/SerializableDataExtension.cs @@ -97,8 +97,9 @@ public static void BeforeNetMangerAfterDeserialize() { public static void Load() { try { Log.Called(); - Log.Info(Helpers.WhatIsCurrentThread()); + Log.Debug(Helpers.WhatIsCurrentThread()); Log.Debug("SimulationPaused=" + SimulationManager.instance.SimulationPaused); + Log.Debug($"[before] NetManger to update {NodeManager.CountUpdatingNodes()} nodes and {SegmentEndManager.CountUpdatingSegments()} segments."); byte[] data = SerializableData.LoadData(DATA_ID); if (data != null) { LoadingVersion = 2; @@ -114,7 +115,7 @@ public static void Load() { NodeManager.ValidateAndHeal(true); NodeManager.Instance.OnLoad(); SegmentEndManager.Instance.OnLoad(); - + Log.Info($"[after] NetManger to update {NodeManager.CountUpdatingNodes()} nodes and {SegmentEndManager.CountUpdatingSegments()} segments."); NCLifeCycle.LoadingStage = NCLifeCycle.Stage.DataLoaded; Log.Succeeded(); } catch(Exception ex) { ex.Log(); } diff --git a/NodeController/Manager/NodeManager.cs b/NodeController/Manager/NodeManager.cs index 4ec9c34..7155861 100644 --- a/NodeController/Manager/NodeManager.cs +++ b/NodeController/Manager/NodeManager.cs @@ -235,5 +235,15 @@ public static void ValidateAndHeal(bool showError1) { Instance.Validate(m2, true); SegmentEndManager.Instance.Validate(m2, true); } + + public static int CountUpdatingNodes() { + int ret = 0; + if (NetManager.instance.m_nodesUpdated) { + foreach (var block in NetManager.instance.m_updatedNodes) { + ret += EnumBitMaskExtensions.CountOnes(block); + } + } + return ret; + } } } diff --git a/NodeController/Manager/SegmentEndManager.cs b/NodeController/Manager/SegmentEndManager.cs index 35c8102..1f0f6db 100644 --- a/NodeController/Manager/SegmentEndManager.cs +++ b/NodeController/Manager/SegmentEndManager.cs @@ -180,5 +180,14 @@ public void Heal() { buffer[i] = null; } } + public static int CountUpdatingSegments() { + int ret = 0; + if (NetManager.instance.m_segmentsUpdated) { + foreach (var block in NetManager.instance.m_updatedSegments) { + ret += EnumBitMaskExtensions.CountOnes(block); + } + } + return ret; + } } } \ No newline at end of file diff --git a/NodeController/Patches/NetManager/UpdateNodeSegmentPatch.cs b/NodeController/Patches/NetManager/UpdateNodeSegmentPatch.cs new file mode 100644 index 0000000..34135a4 --- /dev/null +++ b/NodeController/Patches/NetManager/UpdateNodeSegmentPatch.cs @@ -0,0 +1,28 @@ +#if DEBUG +namespace NodeController.Patches._NetManager; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using HarmonyLib; +using KianCommons; +using KianCommons.Patches; + +//[HarmonyPatch2(typeof(NetManager), typeof(UpdateNode))] +static class UpdateNodePatch { + delegate void UpdateNode(ushort node, ushort fromSegment, int level); + static void Prefix(ushort node, ushort fromSegment, int level) { + Log.Called("node:" + node, "fromSegment:" + fromSegment, "level:" + level); + Log.Stack(); + } +} + +//[HarmonyPatch2(typeof(NetManager), typeof(UpdateSegment))] +static class UpdateSegmentPatch { + delegate void UpdateSegment(ushort segment); + static void Prefix(ushort segment) { + Log.Called("segment:" + segment); + Log.Stack(); + } +} +#endif \ No newline at end of file