From bcf552d25933758ab2682b96706ef01be543c3e5 Mon Sep 17 00:00:00 2001 From: Mister_Nebula <41904486+misternebula@users.noreply.github.com> Date: Sat, 3 Jul 2021 21:51:13 +0100 Subject: [PATCH] add initial probe clone --- .../TransformSync/PlayerProbeSync.cs | 9 +--- QSB/Tools/PlayerToolsManager.cs | 52 +++++++++++++++++-- 2 files changed, 51 insertions(+), 10 deletions(-) diff --git a/QSB/ProbeSync/TransformSync/PlayerProbeSync.cs b/QSB/ProbeSync/TransformSync/PlayerProbeSync.cs index ac6221f1..0c57ef3a 100644 --- a/QSB/ProbeSync/TransformSync/PlayerProbeSync.cs +++ b/QSB/ProbeSync/TransformSync/PlayerProbeSync.cs @@ -18,13 +18,10 @@ namespace QSB.ProbeSync.TransformSync LocalInstance = this; } - private Transform GetProbe() => - Locator.GetProbe().transform.Find("CameraPivot").Find("Geometry"); - protected override Transform InitLocalTransform() { SectorSync.Init(Locator.GetProbe().GetSectorDetector(), this); - var body = GetProbe(); + var body = Locator.GetProbe().transform; Player.ProbeBody = body.gameObject; @@ -33,7 +30,7 @@ namespace QSB.ProbeSync.TransformSync protected override Transform InitRemoteTransform() { - var probe = GetProbe(); + var probe = Locator.GetProbe().transform; if (probe == null) { @@ -44,8 +41,6 @@ namespace QSB.ProbeSync.TransformSync var body = probe.InstantiateInactive(); body.name = "RemoteProbeTransform"; - Destroy(body.GetComponentInChildren()); - PlayerToolsManager.CreateProbe(body, Player); Player.ProbeBody = body.gameObject; diff --git a/QSB/Tools/PlayerToolsManager.cs b/QSB/Tools/PlayerToolsManager.cs index a1e80d52..63566c6f 100644 --- a/QSB/Tools/PlayerToolsManager.cs +++ b/QSB/Tools/PlayerToolsManager.cs @@ -4,6 +4,7 @@ using QSB.ProbeSync; using QSB.Utility; using System.Linq; using UnityEngine; +using UnityEngine.PostProcessing; namespace QSB.Tools { @@ -39,10 +40,55 @@ namespace QSB.Tools CreateTranslator(camera); } - public static void CreateProbe(Transform body, PlayerInfo player) + public static void CreateProbe(Transform newProbe, PlayerInfo player) { - var newProbe = body.gameObject.AddComponent(); - player.Probe = newProbe; + var qsbProbe = newProbe.gameObject.AddComponent(); + player.Probe = qsbProbe; + + // Probe_Body + Object.Destroy(newProbe.GetComponent()); + Object.Destroy(newProbe.GetComponent()); + Object.Destroy(newProbe.GetComponent()); + Object.Destroy(newProbe.GetComponent()); + Object.Destroy(newProbe.GetComponent()); + Object.Destroy(newProbe.GetComponent()); + Object.Destroy(newProbe.GetComponent()); + + // ProbeDetector + Object.Destroy(newProbe.Find("ProbeDetector")); + + // CameraPivot + var cameraPivot = newProbe.Find("CameraPivot"); + Object.Destroy(cameraPivot.GetComponent()); + + // TODO : Sync probe animations + + // CameraPivot/Geometry/Props_HEA_Probe_ANIM + var animRoot = cameraPivot.Find("Geometry").Find("Props_HEA_Probe_ANIM"); + Object.Destroy(animRoot.GetComponent()); + Object.Destroy(animRoot.GetComponent()); + + // TODO : Set up QSB cameras for these two cameras - that's why im not just destroying the GOs here + + // CameraPivot/ForwardCamera + var forwardCamera = cameraPivot.Find("ForwardCamera"); + Object.Destroy(forwardCamera.GetComponent()); + Object.Destroy(forwardCamera.GetComponent()); + Object.Destroy(forwardCamera.GetComponent()); + Object.Destroy(forwardCamera.GetComponent()); + Object.Destroy(forwardCamera.GetComponent()); + Object.Destroy(forwardCamera.GetComponent()); + + // CameraPivot/RotatingCameraPivot/RotatingCamera + var rotatingCamera = cameraPivot.Find("RotatingCameraPivot").Find("RotatingCamera"); + Object.Destroy(rotatingCamera.GetComponent()); + Object.Destroy(rotatingCamera.GetComponent()); + Object.Destroy(rotatingCamera.GetComponent()); + Object.Destroy(rotatingCamera.GetComponent()); + Object.Destroy(rotatingCamera.GetComponent()); + Object.Destroy(rotatingCamera.GetComponent()); + + Object.Destroy(newProbe.Find("PlaneOffsetMarker_Probe")); } private static void CreateStowTransforms(Transform cameraBody)