Merge pull request #350 from misternebula/GetUnityObjects

Revert "revert GetUnityObjects thingy"
This commit is contained in:
Will Corby 2021-11-14 04:06:31 -08:00 committed by GitHub
commit 2364b2a6d5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
17 changed files with 41 additions and 32 deletions

View File

@ -1,7 +1,6 @@
using QSB.Animation.NPC.WorldObjects; using QSB.Animation.NPC.WorldObjects;
using QSB.WorldSync; using QSB.WorldSync;
using System.Linq; using System.Linq;
using UnityEngine;
namespace QSB.Animation.NPC namespace QSB.Animation.NPC
{ {
@ -16,7 +15,7 @@ namespace QSB.Animation.NPC
//MOVE : this is the wrong place to put this... move it to Conversations? //MOVE : this is the wrong place to put this... move it to Conversations?
QSBWorldSync.OldDialogueTrees.Clear(); QSBWorldSync.OldDialogueTrees.Clear();
QSBWorldSync.OldDialogueTrees = Resources.FindObjectsOfTypeAll<CharacterDialogueTree>().ToList(); QSBWorldSync.OldDialogueTrees = QSBWorldSync.GetUnityObjects<CharacterDialogueTree>().ToList();
} }
} }
} }

View File

@ -3,6 +3,7 @@ using OWML.Utils;
using QSB.Events; using QSB.Events;
using QSB.Player; using QSB.Player;
using QSB.Player.TransformSync; using QSB.Player.TransformSync;
using QSB.WorldSync;
using QSB.Utility; using QSB.Utility;
using System.Linq; using System.Linq;
using UnityEngine; using UnityEngine;
@ -75,7 +76,7 @@ namespace QSB.DeathSync
} }
else else
{ {
var allAstroobjects = Resources.FindObjectsOfTypeAll<AstroObject>().Where(x => x.GetAstroObjectName() != AstroObject.Name.None && x.GetAstroObjectType() != AstroObject.Type.Satellite); var allAstroobjects = QSBWorldSync.GetUnityObjects<AstroObject>().Where(x => x.GetAstroObjectName() != AstroObject.Name.None && x.GetAstroObjectType() != AstroObject.Type.Satellite);
var ordered = allAstroobjects.OrderBy(x => Vector3.SqrMagnitude(x.transform.position)); var ordered = allAstroobjects.OrderBy(x => Vector3.SqrMagnitude(x.transform.position));
DeathClosestAstroObject = ordered.First().transform; DeathClosestAstroObject = ordered.First().transform;
} }

View File

@ -25,7 +25,7 @@ namespace QSB.OrbSync
{ {
QSBWorldSync.OldOrbList.Clear(); QSBWorldSync.OldOrbList.Clear();
NomaiOrbTransformSync.OrbTransformSyncs.Clear(); NomaiOrbTransformSync.OrbTransformSyncs.Clear();
QSBWorldSync.OldOrbList = Resources.FindObjectsOfTypeAll<NomaiInterfaceOrb>().ToList(); QSBWorldSync.OldOrbList = QSBWorldSync.GetUnityObjects<NomaiInterfaceOrb>().ToList();
if (QSBCore.IsHost) if (QSBCore.IsHost)
{ {
_orbs.ForEach(x => QNetworkServer.Destroy(x)); _orbs.ForEach(x => QNetworkServer.Destroy(x));

View File

@ -40,7 +40,7 @@ namespace QSB.Player.TransformSync
protected Quaternion _roastingRotationVelocity; protected Quaternion _roastingRotationVelocity;
private Transform GetStickPivot() private Transform GetStickPivot()
=> Resources.FindObjectsOfTypeAll<RoastingStickController>().First().transform.Find("Stick_Root/Stick_Pivot"); => QSBWorldSync.GetUnityObjects<RoastingStickController>().First().transform.Find("Stick_Root/Stick_Pivot");
public override void OnStartLocalPlayer() public override void OnStartLocalPlayer()
=> LocalInstance = this; => LocalInstance = this;

View File

@ -1,5 +1,4 @@
using QSB.WorldSync; using QSB.WorldSync;
using UnityEngine;
namespace QSB.PoolSync namespace QSB.PoolSync
{ {
@ -7,17 +6,17 @@ namespace QSB.PoolSync
{ {
protected override void RebuildWorldObjects(OWScene scene) protected override void RebuildWorldObjects(OWScene scene)
{ {
foreach (var streaming in Resources.FindObjectsOfTypeAll<NomaiRemoteCameraStreaming>()) foreach (var streaming in QSBWorldSync.GetUnityObjects<NomaiRemoteCameraStreaming>())
{ {
streaming.gameObject.AddComponent<CustomNomaiRemoteCameraStreaming>(); streaming.gameObject.AddComponent<CustomNomaiRemoteCameraStreaming>();
} }
foreach (var camera in Resources.FindObjectsOfTypeAll<NomaiRemoteCamera>()) foreach (var camera in QSBWorldSync.GetUnityObjects<NomaiRemoteCamera>())
{ {
camera.gameObject.AddComponent<CustomNomaiRemoteCamera>(); camera.gameObject.AddComponent<CustomNomaiRemoteCamera>();
} }
foreach (var platform in Resources.FindObjectsOfTypeAll<NomaiRemoteCameraPlatform>()) foreach (var platform in QSBWorldSync.GetUnityObjects<NomaiRemoteCameraPlatform>())
{ {
platform.gameObject.AddComponent<CustomNomaiRemoteCameraPlatform>(); platform.gameObject.AddComponent<CustomNomaiRemoteCameraPlatform>();
} }

View File

@ -153,7 +153,7 @@ namespace QSB
DebugLog.DebugWrite("OnStartServer", MessageType.Info); DebugLog.DebugWrite("OnStartServer", MessageType.Info);
if (QSBWorldSync.OldDialogueTrees.Count == 0 && QSBSceneManager.IsInUniverse) if (QSBWorldSync.OldDialogueTrees.Count == 0 && QSBSceneManager.IsInUniverse)
{ {
QSBWorldSync.OldDialogueTrees = Resources.FindObjectsOfTypeAll<CharacterDialogueTree>().ToList(); QSBWorldSync.OldDialogueTrees = QSBWorldSync.GetUnityObjects<CharacterDialogueTree>().ToList();
} }
} }
@ -283,17 +283,17 @@ namespace QSB
{ {
QSBWorldSync.RemoveWorldObjects<IWorldObjectTypeSubset>(); QSBWorldSync.RemoveWorldObjects<IWorldObjectTypeSubset>();
QSBWorldSync.RemoveWorldObjects<IWorldObject>(); QSBWorldSync.RemoveWorldObjects<IWorldObject>();
foreach (var platform in Resources.FindObjectsOfTypeAll<CustomNomaiRemoteCameraPlatform>()) foreach (var platform in QSBWorldSync.GetUnityObjects<CustomNomaiRemoteCameraPlatform>())
{ {
Destroy(platform); Destroy(platform);
} }
foreach (var camera in Resources.FindObjectsOfTypeAll<CustomNomaiRemoteCamera>()) foreach (var camera in QSBWorldSync.GetUnityObjects<CustomNomaiRemoteCamera>())
{ {
Destroy(camera); Destroy(camera);
} }
foreach (var streaming in Resources.FindObjectsOfTypeAll<CustomNomaiRemoteCameraStreaming>()) foreach (var streaming in QSBWorldSync.GetUnityObjects<CustomNomaiRemoteCameraStreaming>())
{ {
Destroy(streaming); Destroy(streaming);
} }

View File

@ -42,7 +42,7 @@ namespace QSB.QuantumSync
QSBWorldSync.Init<QSBEyeProxyQuantumMoon, EyeProxyQuantumMoon>(); QSBWorldSync.Init<QSBEyeProxyQuantumMoon, EyeProxyQuantumMoon>();
if (scene == OWScene.SolarSystem) if (scene == OWScene.SolarSystem)
{ {
Shrine = Resources.FindObjectsOfTypeAll<QuantumShrine>().First(); Shrine = QSBWorldSync.GetUnityObjects<QuantumShrine>().First();
} }
} }

View File

@ -3,6 +3,7 @@ using QSB.Events;
using QSB.Messaging; using QSB.Messaging;
using QSB.Player; using QSB.Player;
using QSB.Utility; using QSB.Utility;
using QSB.WorldSync;
using System.Linq; using System.Linq;
using UnityEngine; using UnityEngine;
@ -66,7 +67,7 @@ namespace QSB.RoastingSync.Events
var stick = player.RoastingStick; var stick = player.RoastingStick;
var stickTip = stick.transform.GetChild(0); var stickTip = stick.transform.GetChild(0);
var mallowPrefab = Resources.FindObjectsOfTypeAll<RoastingStickController>().First().GetValue<GameObject>("_mallowBodyPrefab"); var mallowPrefab = QSBWorldSync.GetUnityObjects<RoastingStickController>().First().GetValue<GameObject>("_mallowBodyPrefab");
var tossedMallow = Object.Instantiate(mallowPrefab, stickTip.position, stickTip.rotation); var tossedMallow = Object.Instantiate(mallowPrefab, stickTip.position, stickTip.rotation);
var rigidbody = tossedMallow.GetComponent<OWRigidbody>(); var rigidbody = tossedMallow.GetComponent<OWRigidbody>();

View File

@ -1,4 +1,5 @@
using System.Linq; using System.Linq;
using QSB.WorldSync;
using UnityEngine; using UnityEngine;
namespace QSB.SatelliteSync namespace QSB.SatelliteSync
@ -21,7 +22,7 @@ namespace QSB.SatelliteSync
{ {
if (newScene == OWScene.SolarSystem) if (newScene == OWScene.SolarSystem)
{ {
Projector = Resources.FindObjectsOfTypeAll<SatelliteSnapshotController>().First(); Projector = QSBWorldSync.GetUnityObjects<SatelliteSnapshotController>().First();
Projector._loopingSource.spatialBlend = 1f; Projector._loopingSource.spatialBlend = 1f;
Projector._oneShotSource.spatialBlend = 1f; Projector._oneShotSource.spatialBlend = 1f;
} }

View File

@ -81,7 +81,7 @@ namespace QSB.SectorSync.WorldObjects
} }
else if (QSBSceneManager.CurrentScene == OWScene.EyeOfTheUniverse) else if (QSBSceneManager.CurrentScene == OWScene.EyeOfTheUniverse)
{ {
var shuttleController = Resources.FindObjectsOfTypeAll<EyeShuttleController>().First(); var shuttleController = QSBWorldSync.GetUnityObjects<EyeShuttleController>().First();
if (shuttleController == null) if (shuttleController == null)
{ {
DebugLog.ToConsole($"Warning - Expected to find a EyeShuttleController for {AttachedObject.name}!", MessageType.Warning); DebugLog.ToConsole($"Warning - Expected to find a EyeShuttleController for {AttachedObject.name}!", MessageType.Warning);

View File

@ -61,9 +61,9 @@ namespace QSB.ShipSync
} }
HatchInteractZone = HatchController.GetComponent<InteractZone>(); HatchInteractZone = HatchController.GetComponent<InteractZone>();
ShipTractorBeam = Resources.FindObjectsOfTypeAll<ShipTractorBeamSwitch>().First(); ShipTractorBeam = QSBWorldSync.GetUnityObjects<ShipTractorBeamSwitch>().First();
CockpitController = Resources.FindObjectsOfTypeAll<ShipCockpitController>().First(); CockpitController = QSBWorldSync.GetUnityObjects<ShipCockpitController>().First();
ShipElectricalComponent = Resources.FindObjectsOfTypeAll<ShipElectricalComponent>().First(); ShipElectricalComponent = QSBWorldSync.GetUnityObjects<ShipElectricalComponent>().First();
var sphereShape = HatchController.GetComponent<SphereShape>(); var sphereShape = HatchController.GetComponent<SphereShape>();
sphereShape.radius = 2.5f; sphereShape.radius = 2.5f;

View File

@ -28,7 +28,7 @@ namespace QSB.Syncs
if (wantedSync == default) if (wantedSync == default)
{ {
DebugLog.ToConsole($"Error - _storedTransformSyncs does not contain type:{typeof(T)} under player {player.PlayerId}. Attempting to find manually...", MessageType.Error); DebugLog.ToConsole($"Error - _storedTransformSyncs does not contain type:{typeof(T)} under player {player.PlayerId}. Attempting to find manually...", MessageType.Error);
var allSyncs = Resources.FindObjectsOfTypeAll<T>(); var allSyncs = QSBWorldSync.GetUnityObjects<T>();
wantedSync = allSyncs.First(x => x.Player == player); wantedSync = allSyncs.First(x => x.Player == player);
if (wantedSync == default) if (wantedSync == default)
{ {
@ -100,7 +100,7 @@ namespace QSB.Syncs
public virtual void Start() public virtual void Start()
{ {
var lowestBound = Resources.FindObjectsOfTypeAll<PlayerTransformSync>() var lowestBound = QSBWorldSync.GetUnityObjects<PlayerTransformSync>()
.Where(x => x.NetId.Value <= NetId.Value).OrderBy(x => x.NetId.Value).Last(); .Where(x => x.NetId.Value <= NetId.Value).OrderBy(x => x.NetId.Value).Last();
NetIdentity.SetRootIdentity(lowestBound.NetIdentity); NetIdentity.SetRootIdentity(lowestBound.NetIdentity);

View File

@ -1,6 +1,8 @@
using OWML.Utils; using OWML.Utils;
using QSB.Utility; using QSB.Utility;
using QSB.WorldSync;
using System; using System;
using System.Linq;
using UnityEngine; using UnityEngine;
using UnityEngine.UI; using UnityEngine.UI;
@ -30,7 +32,7 @@ namespace QSB.TimeSync
private void OnUniverseSceneLoad(OWScene oldScene, OWScene newScene) private void OnUniverseSceneLoad(OWScene oldScene, OWScene newScene)
{ {
_isSetUp = true; _isSetUp = true;
var obj = Resources.FindObjectsOfTypeAll<SleepTimerUI>()[0]; var obj = QSBWorldSync.GetUnityObjects<SleepTimerUI>().First();
_canvas = obj.GetValue<Canvas>("_canvas"); _canvas = obj.GetValue<Canvas>("_canvas");
_text = obj.GetValue<Text>("_text"); _text = obj.GetValue<Text>("_text");
_canvas.enabled = false; _canvas.enabled = false;
@ -126,4 +128,4 @@ namespace QSB.TimeSync
_text.text = text; _text.text = text;
} }
} }
} }

View File

@ -1,4 +1,5 @@
using QSB.Utility; using QSB.Utility;
using QSB.WorldSync;
using System.Linq; using System.Linq;
using UnityEngine; using UnityEngine;
@ -14,7 +15,7 @@ namespace QSB.Tools.ProbeTool
private void Awake() private void Awake()
{ {
_probe = Resources.FindObjectsOfTypeAll<QSBProbe>().First(x => gameObject.transform.IsChildOf(x.transform)); _probe = QSBWorldSync.GetUnityObjects<QSBProbe>().First(x => gameObject.transform.IsChildOf(x.transform));
if (_probe == null) if (_probe == null)
{ {
DebugLog.ToConsole($"Error - Couldn't find QSBProbe!", OWML.Common.MessageType.Error); DebugLog.ToConsole($"Error - Couldn't find QSBProbe!", OWML.Common.MessageType.Error);

View File

@ -1,4 +1,5 @@
using QSB.Utility; using QSB.Utility;
using QSB.WorldSync;
using System.Linq; using System.Linq;
using UnityEngine; using UnityEngine;
@ -22,7 +23,7 @@ namespace QSB.Tools.ProbeTool
private void Awake() private void Awake()
{ {
_probe = Resources.FindObjectsOfTypeAll<QSBProbe>().First(x => gameObject.transform.IsChildOf(x.transform)); _probe = QSBWorldSync.GetUnityObjects<QSBProbe>().First(x => gameObject.transform.IsChildOf(x.transform));
if (_probe == null) if (_probe == null)
{ {
DebugLog.ToConsole($"Error - Couldn't find QSBProbe!", OWML.Common.MessageType.Error); DebugLog.ToConsole($"Error - Couldn't find QSBProbe!", OWML.Common.MessageType.Error);

View File

@ -1,4 +1,5 @@
using QSB.Utility; using QSB.Utility;
using QSB.WorldSync;
using System.Linq; using System.Linq;
using UnityEngine; using UnityEngine;
@ -16,7 +17,7 @@ namespace QSB.Tools.ProbeTool
private void Awake() private void Awake()
{ {
_probe = Resources.FindObjectsOfTypeAll<QSBProbe>().First(x => gameObject.transform.IsChildOf(x.transform)); _probe = QSBWorldSync.GetUnityObjects<QSBProbe>().First(x => gameObject.transform.IsChildOf(x.transform));
if (_probe == null) if (_probe == null)
{ {
DebugLog.ToConsole($"Error - Couldn't find QSBProbe!", OWML.Common.MessageType.Error); DebugLog.ToConsole($"Error - Couldn't find QSBProbe!", OWML.Common.MessageType.Error);

View File

@ -152,12 +152,17 @@ namespace QSB.WorldSync
WorldObjects.RemoveAll(x => x is TWorldObject); WorldObjects.RemoveAll(x => x is TWorldObject);
} }
public static List<TUnityObject> Init<TWorldObject, TUnityObject>() public static IEnumerable<TUnityObject> GetUnityObjects<TUnityObject>()
where TUnityObject : MonoBehaviour
=> Resources.FindObjectsOfTypeAll<TUnityObject>()
.Where(x => x.gameObject.scene.name != null);
public static void Init<TWorldObject, TUnityObject>()
where TWorldObject : WorldObject<TUnityObject> where TWorldObject : WorldObject<TUnityObject>
where TUnityObject : MonoBehaviour where TUnityObject : MonoBehaviour
{ {
RemoveWorldObjects<TWorldObject>(); RemoveWorldObjects<TWorldObject>();
var list = Resources.FindObjectsOfTypeAll<TUnityObject>().ToList(); var list = GetUnityObjects<TUnityObject>().ToList();
//DebugLog.DebugWrite($"{typeof(TWorldObject).Name} init : {list.Count} instances.", MessageType.Info); //DebugLog.DebugWrite($"{typeof(TWorldObject).Name} init : {list.Count} instances.", MessageType.Info);
for (var id = 0; id < list.Count; id++) for (var id = 0; id < list.Count; id++)
{ {
@ -165,8 +170,6 @@ namespace QSB.WorldSync
obj.Init(list[id], id); obj.Init(list[id], id);
WorldObjectsToUnityObjects.Add(list[id], obj); WorldObjectsToUnityObjects.Add(list[id], obj);
} }
return list;
} }
private static TWorldObject CreateWorldObject<TWorldObject>() private static TWorldObject CreateWorldObject<TWorldObject>()
@ -243,4 +246,4 @@ namespace QSB.WorldSync
}); });
} }
} }
} }