mirror of
https://github.com/soarqin/DSP_Mods.git
synced 2026-08-05 15:20:15 +08:00
refactor: register static-state resets on game end
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user