diff --git a/NewHorizons/External/Configs/StarSystemConfig.cs b/NewHorizons/External/Configs/StarSystemConfig.cs
index ce311174..5d3963aa 100644
--- a/NewHorizons/External/Configs/StarSystemConfig.cs
+++ b/NewHorizons/External/Configs/StarSystemConfig.cs
@@ -14,6 +14,11 @@ namespace NewHorizons.External.Configs
[JsonObject]
public class StarSystemConfig
{
+ ///
+ /// An override value for the far clip plane. Allows you to see farther.
+ ///
+ public float farClipPlaneOverride;
+
///
/// Whether this system can be warped to via the warp drive. If you set factRequiredForWarp, this will be true.
///
diff --git a/NewHorizons/Patches/OWCameraPatch.cs b/NewHorizons/Patches/OWCameraPatch.cs
index 863b56bd..ccdafafc 100644
--- a/NewHorizons/Patches/OWCameraPatch.cs
+++ b/NewHorizons/Patches/OWCameraPatch.cs
@@ -1,4 +1,4 @@
-using HarmonyLib;
+using HarmonyLib;
namespace NewHorizons.Patches
{
[HarmonyPatch]
@@ -8,25 +8,12 @@ namespace NewHorizons.Patches
[HarmonyPatch(typeof(OWCamera), nameof(OWCamera.Awake))]
public static void OnOWCameraAwake(OWCamera __instance)
{
- // var oldDist = __instance.farClipPlane;
- // var newDist = __instance.farClipPlane * 10f;
- // if (__instance.useFarCamera) Mathf.Clamp(newDist, oldDist, 50000f);
- // else newDist = Mathf.Clamp(newDist, oldDist, 10000000f);
- // __instance.farClipPlane = newDist;
- // __instance.farCameraDistance = newDist;
- // __instance.mainCamera.farClipPlane = newDist;
+ if (Main.SystemDict.TryGetValue(Main.Instance.CurrentStarSystem, out var system) && system?.Config?.farClipPlaneOverride != 0f)
+ {
+ __instance.farClipPlane = system.Config.farClipPlaneOverride;
+ __instance.farCameraDistance = system.Config.farClipPlaneOverride;
+ __instance.mainCamera.farClipPlane = system.Config.farClipPlaneOverride;
+ }
}
-
- // [HarmonyPrefix]
- // [HarmonyPatch(typeof(OWCamera), nameof(OWCamera.RebuildSkybox))]
- // public static bool OnOWCameraRebuildSkybox(OWCamera __instance)
- // {
- // __instance._skyboxCommandBuffer = new CommandBuffer();
- // __instance._skyboxCommandBuffer.name = "Skybox";
- // var camera = __instance._useFarCamera && !SystemInfo.usesReversedZBuffer ? __instance._farCamera : __instance._mainCamera;
- // CameraEvent evt = CameraEvent.BeforeSkybox;
- // camera.AddCommandBuffer(evt, __instance._skyboxCommandBuffer);
- // return false;
- // }
}
}