using BepInEx; using BepInEx.Configuration; using EFT; using UnityEngine; using Comfort.Common; namespace CameraResolutionScale { [BepInPlugin("com.notGreg.cameraScaleControl", "notGreg's Camera Resolution Settings", "1.0.0")] public class Plugin : BaseUnityPlugin { ConfigEntry cameraResolutionScale; ConfigEntry scopeCameraResolutionScale; void Awake() { cameraResolutionScale = Config.Bind("General", "Main camera scale %", 50, new ConfigDescription("Main camera resulution scae", new AcceptableValueRange(10,200))); scopeCameraResolutionScale = Config.Bind("General", "Scope camera scale %", 33, new ConfigDescription("Scope camera resulution scae", new AcceptableValueRange(10, 200))); } Rect defaultMainCameraRect; float rectScale; bool setupDone = false; Camera scopeCamera = null; bool isAiming = false; Utils utils = new Utils(); void Update() { if (!utils.gameIsReady()) { return; } if (Camera.allCamerasCount < 1) return; if (Camera.main == null || Camera.main.isActiveAndEnabled == false) { setupDone = false; return; } var handsController = ((Singleton.Instance.RegisteredPlayers[0].HandsController)); isAiming = handsController.IsAiming; if (isAiming) { if (Camera.main == null || Camera.allCamerasCount <= 1) return; if (!setupDone) { Logger.LogInfo("Storing default Camera.main.rect"); defaultMainCameraRect = Camera.main.rect; rectScale = defaultMainCameraRect.width; Logger.LogInfo($"Rect: {defaultMainCameraRect}"); setupDone = true; } if (scopeCamera == null) scopeCamera = Camera.allCameras[1]; scopeCamera.GetComponent().OpticCameraToMainCameraResolutionRatio = (float)(scopeCameraResolutionScale.Value / 100f); float scale = (float)cameraResolutionScale.Value / 100f; Camera.main.rect = new Rect(0, 0, rectScale * scale, rectScale * scale); //Logger.LogInfo($"Updating render resolutions: Main Camera: {cameraResolutionScale.Value}% Scope Camera: {scopeCameraResolutionScale.Value}%"); return; } if (Camera.main.rect != defaultMainCameraRect && setupDone) { Logger.LogInfo("Restoring default render resolution"); Camera.main.rect = defaultMainCameraRect; } } } }