From ac56754db287e97aa0df31c117566c0718e406e2 Mon Sep 17 00:00:00 2001 From: Nympfonic Date: Mon, 8 Apr 2024 07:09:43 +0000 Subject: [PATCH] I am destroying any instances of GameObject.Find() to save the world (#5) lgtm Co-authored-by: Nympfonic Co-committed-by: Nympfonic --- project/Terkoiz.Freecam/FreecamController.cs | 27 ++++++++----------- project/Terkoiz.Freecam/FreecamPlugin.cs | 2 +- .../Terkoiz.Freecam/Terkoiz.Freecam.csproj | 2 +- 3 files changed, 13 insertions(+), 18 deletions(-) diff --git a/project/Terkoiz.Freecam/FreecamController.cs b/project/Terkoiz.Freecam/FreecamController.cs index f8e0e2b..d287bd4 100644 --- a/project/Terkoiz.Freecam/FreecamController.cs +++ b/project/Terkoiz.Freecam/FreecamController.cs @@ -13,7 +13,7 @@ namespace Terkoiz.Freecam private GameObject _mainCamera; private Freecam _freeCamScript; - private BattleUIScreen _playerUi; + private EftBattleUIScreen _playerUi; private bool _uiHidden; private GamePlayerOwner _gamePlayerOwner; @@ -24,14 +24,22 @@ namespace Terkoiz.Freecam [UsedImplicitly] public void Start() { - // Find Main Camera - _mainCamera = GameObject.Find("FPS Camera"); + // Get Main Camera + _mainCamera = GetLocalPlayerFromWorld().GetComponent().Camera.gameObject; if (_mainCamera == null) { FreecamPlugin.Logger.LogError("Failed to locate main camera"); return; } + // Get Player UI + _playerUi = Singleton.Instance.EftBattleUIScreen; + if (_playerUi == null) + { + FreecamPlugin.Logger.LogError("Failed to locate player UI"); + return; + } + // Add Freecam script to main camera in scene _freeCamScript = _mainCamera.AddComponent(); if (_freeCamScript == null) @@ -124,18 +132,6 @@ namespace Terkoiz.Freecam if (GetLocalPlayerFromWorld() == null) return; - // If we don't have the UI Component cached, go look for it in the scene - if (_playerUi == null) - { - _playerUi = GameObject.Find("BattleUIScreen").GetComponent(); - - if (_playerUi == null) - { - FreecamPlugin.Logger.LogError("Failed to locate player UI"); - return; - } - } - _playerUi.gameObject.SetActive(_uiHidden); _uiHidden = !_uiHidden; } @@ -240,7 +236,6 @@ namespace Terkoiz.Freecam { // Destroy FreeCamScript before FreeCamController if exists Destroy(_freeCamScript); - Destroy(this); } } } \ No newline at end of file diff --git a/project/Terkoiz.Freecam/FreecamPlugin.cs b/project/Terkoiz.Freecam/FreecamPlugin.cs index 1701eec..6479332 100644 --- a/project/Terkoiz.Freecam/FreecamPlugin.cs +++ b/project/Terkoiz.Freecam/FreecamPlugin.cs @@ -7,7 +7,7 @@ using KeyboardShortcut = BepInEx.Configuration.KeyboardShortcut; namespace Terkoiz.Freecam { - [BepInPlugin("com.terkoiz.freecam", "Terkoiz.Freecam", "1.4.2")] + [BepInPlugin("com.terkoiz.freecam", "Terkoiz.Freecam", "1.4.3")] public class FreecamPlugin : BaseUnityPlugin { internal new static ManualLogSource Logger { get; private set; } diff --git a/project/Terkoiz.Freecam/Terkoiz.Freecam.csproj b/project/Terkoiz.Freecam/Terkoiz.Freecam.csproj index d889f98..30f56ab 100644 --- a/project/Terkoiz.Freecam/Terkoiz.Freecam.csproj +++ b/project/Terkoiz.Freecam/Terkoiz.Freecam.csproj @@ -1,7 +1,7 @@  - net472 + net471 1.4.2 Terkoiz, Kobrakon, CWX https://dev.sp-tarkov.com/Terkoiz/Freecam