mirror of
https://github.com/sp-tarkov/modules.git
synced 2025-02-13 09:50:43 -05:00
Should make the BTR work again. I've also switched named methods to use "nameof" where it made sense. And removed an unnecessary method call and fixed an incorrect async on one of my patches Co-authored-by: DrakiaXYZ <565558+TheDgtl@users.noreply.github.com> Reviewed-on: SPT-AKI/Modules#59 Co-authored-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com> Co-committed-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
47 lines
1.4 KiB
C#
47 lines
1.4 KiB
C#
using System.Reflection;
|
|
using Aki.Reflection.Patching;
|
|
using Comfort.Common;
|
|
using EFT;
|
|
using EFT.UI;
|
|
using HarmonyLib;
|
|
|
|
namespace Aki.Debugging.BTR.Patches
|
|
{
|
|
/// <summary>
|
|
/// Adds a BTRManager component to the GameWorld game object when raid starts.
|
|
/// </summary>
|
|
public class BTRPatch : ModulePatch
|
|
{
|
|
protected override MethodBase GetTargetMethod()
|
|
{
|
|
return AccessTools.Method(typeof(GameWorld), nameof(GameWorld.OnGameStarted));
|
|
}
|
|
|
|
[PatchPostfix]
|
|
public static void PatchPostfix()
|
|
{
|
|
try
|
|
{
|
|
var gameWorld = Singleton<GameWorld>.Instance;
|
|
if (gameWorld.MainPlayer.Location.ToLower() != "tarkovstreets")
|
|
{
|
|
// only run patch on streets
|
|
return;
|
|
}
|
|
|
|
if (gameWorld.LocationId.IsNullOrEmpty())
|
|
{
|
|
// GameWorld's LocationId needs to be set otherwise BTR doesn't get spawned in automatically
|
|
gameWorld.LocationId = gameWorld.MainPlayer.Location;
|
|
}
|
|
|
|
gameWorld.gameObject.AddComponent<BTRManager>();
|
|
}
|
|
catch (System.Exception)
|
|
{
|
|
ConsoleScreen.LogError("[AKI-BTR]: Exception thrown, check logs.");
|
|
throw;
|
|
}
|
|
}
|
|
}
|
|
} |