refactor: register static-state resets on game end

This commit is contained in:
2026-06-23 22:20:04 +08:00
parent b74005282e
commit 647b130993
7 changed files with 105 additions and 1 deletions
@@ -4,11 +4,13 @@ using System.Linq;
using HarmonyLib;
using UnityEngine;
using UXAssist.Common;
using UXAssist.Common.ModFeatures;
using GameLogicProc = UXAssist.Common.GameLogic;
using UXAssist.Common.GameConstants;
namespace CheatEnabler.Patches.Factory;
[ModFeature("BeltSignalGenerator")]
internal class BeltSignalGenerator : PatchImpl<BeltSignalGenerator>
{
private static Dictionary<int, BeltSignal>[] _signalBelts;
@@ -17,6 +19,25 @@ internal class BeltSignalGenerator : PatchImpl<BeltSignalGenerator>
private static int _signalBeltsCapacity;
private static bool _initialized;
public static void Init()
{
GameLogicProc.OnGameEnd += ResetState;
}
public static void Uninit()
{
GameLogicProc.OnGameEnd -= ResetState;
}
private static void ResetState()
{
_initialized = false;
_signalBelts = null;
_portalFrom = null;
_portalTo = null;
_signalBeltsCapacity = 0;
}
private class BeltSignal
{
public int SignalId;