diff --git a/Config/sounds.xml b/Config/sounds.xml new file mode 100644 index 0000000..9aa2479 --- /dev/null +++ b/Config/sounds.xml @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + diff --git a/HarmonySrc/FreezeProbe.cs b/HarmonySrc/FreezeProbe.cs deleted file mode 100644 index adf60d5..0000000 --- a/HarmonySrc/FreezeProbe.cs +++ /dev/null @@ -1,46 +0,0 @@ -using UnityEngine; - -namespace NecromancerTome -{ - /// - /// Замер фризов (жалоба 10.10: «в чертогах лагает... это были фризы»). Средний FPS из строк игры «Time: ... FPS» - /// их не показывает - он за минуту. Здесь каждый кадр дольше Threshold пишется в лог: длительность, сколько - /// сборок мусора прошло за этот кадр (GC поколения 0 - если растёт, фриз от сборки мусора: мод или игра много - /// выделяют), режим мода (чертоги/змея/одержимость) и сколько областей мира загружено. - /// Строки: «[NecromancerTome] FreezeProbe: ...». Ничего не хранит, кроме пары чисел. - /// - public static class FreezeProbe - { - public const float Threshold = 0.1f; - static int _gc = -1; - static float _skipUntil; - - public static void Init() - { - ModEvents.UnityUpdate.RegisterHandler(OnUnityUpdate); - } - - static void OnUnityUpdate(ref ModEvents.SUnityUpdateData _data) - { - int gc = System.GC.CollectionCount(0); - World world = GameManager.Instance?.World; - if (world == null || world.GetPrimaryPlayer() == null) - { - _gc = gc; - _skipUntil = Time.unscaledTime + 20f; // загрузка мира - фризы ожидаемы - return; - } - float dt = Time.unscaledDeltaTime; - int dgc = _gc < 0 ? 0 : gc - _gc; - _gc = gc; - if (dt < Threshold || Time.unscaledTime < _skipUntil || GameManager.Instance.IsPaused()) - { - return; - } - string mode = MindPalace.Active ? "чертоги" : SnakeMode.Active ? "змея" : Possession.Active ? "одержимость" : "тело"; - int obs = GameManager.Instance.World?.m_ChunkManager?.m_ObservedEntities?.Count ?? -1; - Debug.Log("[NecromancerTome] FreezeProbe: кадр " + Mathf.RoundToInt(dt * 1000f) + " мс, сборок мусора +" + dgc + - ", режим " + mode + ", наблюдателей областей " + obs + ", куча " + (System.GC.GetTotalMemory(false) >> 20) + " МБ"); - } - } -} diff --git a/HarmonySrc/ModEntry.cs b/HarmonySrc/ModEntry.cs index b0429bc..cea8aec 100644 --- a/HarmonySrc/ModEntry.cs +++ b/HarmonySrc/ModEntry.cs @@ -66,7 +66,6 @@ namespace NecromancerTome NecroMailbox.Init(); Possession.Init(); BloodTide.Init(); - FreezeProbe.Init(); RemainsDecay.Init(); // PyramidWardPatch.cs's TEFeaturePyramidWard needs no Init() call - it's discovered // automatically by the engine's own TileEntityCompositeData reflection scan (see that diff --git a/NecromancerHarmony.dll b/NecromancerHarmony.dll index b039645..cbeff0a 100644 Binary files a/NecromancerHarmony.dll and b/NecromancerHarmony.dll differ diff --git a/Resources/necroboneshiv b/Resources/necroboneshiv new file mode 100644 index 0000000..df4b2c5 Binary files /dev/null and b/Resources/necroboneshiv differ diff --git a/Resources/necropyramid b/Resources/necropyramid new file mode 100644 index 0000000..546d357 Binary files /dev/null and b/Resources/necropyramid differ diff --git a/Resources/necrosounds b/Resources/necrosounds new file mode 100644 index 0000000..c7adcd7 Binary files /dev/null and b/Resources/necrosounds differ