new-horizons/NewHorizons/Patches/PlayerPatches/PlayerSpawnerPatches.cs
2023-03-25 15:15:24 -04:00

31 lines
1.2 KiB
C#

using HarmonyLib;
using NewHorizons.Utility;
using NewHorizons.Utility.OWML;
namespace NewHorizons.Patches.PlayerPatches
{
[HarmonyPatch(typeof(PlayerSpawner))]
public static class PlayerSpawnerPatches
{
[HarmonyPrefix]
[HarmonyPatch(nameof(PlayerSpawner.SpawnPlayer))]
public static bool PlayerSpawner_SpawnPlayer(PlayerSpawner __instance)
{
if (Main.Instance.IsWarpingFromVessel || Main.Instance.DidWarpFromVessel)
{
NHLogger.LogWarning("Abort player spawn. Vessel will handle it.");
return false;
}
else if (Main.SystemDict[Main.Instance.CurrentStarSystem].SpawnPoint != null)
{
NHLogger.LogVerbose($"Player spawning at {Main.SystemDict[Main.Instance.CurrentStarSystem].SpawnPoint.transform.GetPath()}");
__instance.SetInitialSpawnPoint(Main.SystemDict[Main.Instance.CurrentStarSystem].SpawnPoint);
} else if (Main.Instance.CurrentStarSystem != "SolarSystem" && Main.Instance.CurrentStarSystem != "EyeOfTheUniverse")
{
NHLogger.LogWarning("No player spawn point set.");
}
return true;
}
}
}