void OnSceneLoaded(OWScene originalScene, OWScene scene) { var isSolarSystem = scene == OWScene.SolarSystem; var isEye = scene == OWScene.EyeOfTheUniverse; var isPostCredits = scene == OWScene.PostCreditsScene; // The GameObject associated with this ModBehaviour is set to persist between scene loads. // Some modules need to be restarted on every scene load. // This GameObject is for them. var nonPersistentObject = new GameObject(); if (isSolarSystem || isEye) { Common.InitGame(); nonPersistentObject.AddComponent <EffectFixes>(); nonPersistentObject.AddComponent <PlayerBodyPosition>(); nonPersistentObject.AddComponent <Dialogue>(); nonPersistentObject.AddComponent <Hands>(); nonPersistentObject.AddComponent <FeetMarker>(); nonPersistentObject.AddComponent <InputPrompts>(); nonPersistentObject.AddComponent <HelmetHUD>(); //nonPersistentObject.AddComponent<VRTutorial>(); if (isSolarSystem) { nonPersistentObject.AddComponent <ShipTools>(); nonPersistentObject.AddComponent <SolarSystemMap>(); } } else if (isPostCredits) { nonPersistentObject.AddComponent <PostCreditsScene>(); } nonPersistentObject.AddComponent <Menus>(); }
private void OnSceneLoaded(OWScene oldScene, OWScene newScene, bool isInUniverse) { if (IsInitialized) { SafeUninit(); } }
public override async UniTask BuildWorldObjects(OWScene scene, CancellationToken ct) { // wait for all late initializers (which includes nomai text) to finish await UniTask.WaitUntil(() => LateInitializerManager.isDoneInitializing, cancellationToken : ct); QSBWorldSync.Init <QSBNomaiText, NomaiText>(typeof(GhostWallText)); }
private void OnSceneLoad(OWScene originalScene, OWScene loadScene) { if (IsSceneRelevant(loadScene)) { SetupBehaviour(); } }
public static void Rebuild(OWScene scene) { foreach (var manager in _managers) { manager.RebuildWorldObjects(scene); } }
private void OnSceneLoaded(OWScene originalScene, OWScene scene) { if (scene == OWScene.SolarSystem || scene == OWScene.EyeOfTheUniverse) { _isSolarSystemLoaded = true; SpawnAtInitialPoint(); } }
public override async UniTask BuildWorldObjects(OWScene scene, CancellationToken ct) { QSBWorldSync.Init <QSBCharacterAnimController, CharacterAnimController>(); QSBWorldSync.Init <QSBTravelerController, TravelerController>(); QSBWorldSync.Init <QSBSolanumController, NomaiConversationManager>(); QSBWorldSync.Init <QSBSolanumAnimController, SolanumAnimController>(); QSBWorldSync.Init <QSBHearthianRecorderEffects, HearthianRecorderEffects>(); QSBWorldSync.Init <QSBTravelerEyeController, TravelerEyeController>(); }
private void OnUniverseSceneLoad(OWScene oldScene, OWScene newScene) { _isSetUp = true; var obj = QSBWorldSync.GetUnityObjects <SleepTimerUI>().First(); _canvas = obj._canvas; _text = obj._text; _canvas.enabled = false; }
private void OnCompleteSceneLoad(OWScene oldScene, OWScene newScene) { var universe = newScene == OWScene.SolarSystem || newScene == OWScene.EyeOfTheUniverse; if (universe) { PlaceMarkers(); } }
private void OnUniverseSceneLoad(OWScene scene) { _isSetUp = true; var obj = Resources.FindObjectsOfTypeAll <SleepTimerUI>()[0]; _canvas = obj.GetValue <Canvas>("_canvas"); _text = obj.GetValue <Text>("_text"); _canvas.enabled = false; }
public override async UniTask BuildWorldObjects(OWScene scene, CancellationToken ct) { QSBWorldSync.Init <QSBCharacterTrigger, CharacterAnimController>(x => x.playerTrackingZone); QSBWorldSync.Init <QSBSolanumTrigger, NomaiConversationManager>(x => x._watchPlayerVolume); QSBWorldSync.Init <QSBShrineTrigger, QuantumShrine>(x => x._triggerVolume); QSBWorldSync.Init <QSBVesselCageTrigger, VesselWarpController>(x => x._cageTrigger); QSBWorldSync.Init <QSBInflationTrigger, CosmicInflationController>(x => x._smokeSphereTrigger); QSBWorldSync.Init <QSBMaskZoneTrigger, MaskZoneController>(x => x._maskZoneTrigger); QSBWorldSync.Init <QSBEyeShuttleTrigger, EyeShuttleController>(x => x._shuttleVolume); }
public override async UniTask BuildWorldObjects(OWScene scene, CancellationToken ct) { // wait for all late initializers (which includes meteor launchers) to finish await UniTask.WaitUntil(() => LateInitializerManager.isDoneInitializing, cancellationToken : ct); WhiteHoleVolume = QSBWorldSync.GetUnityObjects <WhiteHoleVolume>().First(); QSBWorldSync.Init <QSBMeteorLauncher, MeteorLauncher>(); QSBWorldSync.Init <QSBMeteor, MeteorController>(); QSBWorldSync.Init <QSBFragment, FragmentIntegrity>(); }
private void OnSceneLoaded(OWScene scene, bool isInUniverse) { _elevators = Resources.FindObjectsOfTypeAll <Elevator>().ToList(); for (var id = 0; id < _elevators.Count; id++) { var qsbElevator = WorldRegistry.GetObject <QSBElevator>(id) ?? new QSBElevator(); qsbElevator.Init(_elevators[id], id); WorldRegistry.AddObject(qsbElevator); } }
private void OnSceneLoaded(OWScene scene, bool isInUniverse) { var geyserControllers = Resources.FindObjectsOfTypeAll <GeyserController>(); for (var id = 0; id < geyserControllers.Length; id++) { var qsbGeyser = WorldRegistry.GetObject <QSBGeyser>(id) ?? new QSBGeyser(); qsbGeyser.Init(geyserControllers[id], id); WorldRegistry.AddObject(qsbGeyser); } }
private void OnSceneLoaded(OWScene scene, bool isInUniverse) { if (isInUniverse) { Init(); } else { _state = State.NotLoaded; } }
private void OnSceneLoaded(OWScene scene, bool isInUniverse) { if (isInUniverse) { Init(); } else { Reset(); } }
public override async UniTask BuildWorldObjects(OWScene scene, CancellationToken ct) { QSBWorldSync.Init <QSBProbeLauncher, ProbeLauncher>(typeof(PlayerProbeLauncher)); if (scene == OWScene.SolarSystem) { QSBWorldSync.Init <QSBProbeLauncher, ProbeLauncher>(new[] { QSBWorldSync.GetUnityObjects <ShipCockpitController>().First().GetShipProbeLauncher() }); } }
private void OnSceneLoaded(OWScene scene, bool isInUniverse) { var sectors = Resources.FindObjectsOfTypeAll <Sector>().ToList(); for (var id = 0; id < sectors.Count; id++) { var qsbSector = WorldRegistry.GetObject <QSBSector>(id) ?? new QSBSector(); qsbSector.Init(sectors[id], id); WorldRegistry.AddObject(qsbSector); } IsReady = WorldRegistry.GetObjects <QSBSector>().Any(); }
private void OnSceneLoaded(OWScene oldScene, OWScene newScene) { if (newScene == OWScene.SolarSystem) { Projector = QSBWorldSync.GetUnityObjects <SatelliteSnapshotController>().First(); Projector._loopingSource.spatialBlend = 1f; Projector._oneShotSource.spatialBlend = 1f; Projector._snapshotTexture = SatelliteCameraSnapshot; Projector._satelliteCamera.targetTexture = Projector._snapshotTexture; } }
protected override void RebuildWorldObjects(OWScene scene) { DebugLog.DebugWrite("Rebuilding OWItems...", MessageType.Warning); QSBWorldSync.Init <QSBScrollSocket, ScrollSocket>(); QSBWorldSync.Init <QSBScrollItem, ScrollItem>(); QSBWorldSync.Init <QSBSharedStoneSocket, SharedStoneSocket>(); QSBWorldSync.Init <QSBSharedStone, SharedStone>(); QSBWorldSync.Init <QSBWarpCoreSocket, WarpCoreSocket>(); QSBWorldSync.Init <QSBWarpCoreItem, WarpCoreItem>(); QSBWorldSync.Init <QSBNomaiConversationStoneSocket, NomaiConversationStoneSocket>(); QSBWorldSync.Init <QSBNomaiConversationStone, NomaiConversationStone>(); }
protected override void RebuildWorldObjects(OWScene scene) { foreach (var streaming in Resources.FindObjectsOfTypeAll <NomaiRemoteCameraStreaming>()) { streaming.gameObject.AddComponent <CustomNomaiRemoteCameraStreaming>(); } foreach (var camera in Resources.FindObjectsOfTypeAll <NomaiRemoteCamera>()) { camera.gameObject.AddComponent <CustomNomaiRemoteCamera>(); } foreach (var platform in Resources.FindObjectsOfTypeAll <NomaiRemoteCameraPlatform>()) { platform.gameObject.AddComponent <CustomNomaiRemoteCameraPlatform>(); } }
private static void OnCompleteSceneLoad(OWScene oldScene, OWScene newScene) { DebugLog.DebugWrite($"COMPLETE SCENE LOAD ({oldScene} -> {newScene})", MessageType.Info); if (QSBCore.IsInMultiplayer) { WorldObjectManager.Rebuild(newScene); } var universe = InUniverse(newScene); OnSceneLoaded?.SafeInvoke(newScene, universe); if (universe) { OnUniverseSceneLoaded?.SafeInvoke(newScene); } }
private void OnUniverseSceneLoaded(OWScene oldScene, OWScene newScene) { if (!QSBCore.IsInMultiplayer) { return; } if (PlayerTransformSync.LocalInstance == null) { DebugLog.ToConsole($"Error - Tried to run OnUniverseSceneLoaded when PlayerTransformSync.LocalInstance was null!", OWML.Common.MessageType.Error); return; } QSBPlayerManager.ShowAllPlayers(); QSBPlayerManager.LocalPlayer.UpdateStatesFromObjects(); }
protected override void RebuildWorldObjects(OWScene scene) { DebugLog.DebugWrite("Rebuilding quantum objects...", MessageType.Warning); QSBWorldSync.Init <QSBQuantumState, QuantumState>(); QSBWorldSync.Init <QSBSocketedQuantumObject, SocketedQuantumObject>(); QSBWorldSync.Init <QSBMultiStateQuantumObject, MultiStateQuantumObject>(); QSBWorldSync.Init <QSBQuantumSocket, QuantumSocket>(); QSBWorldSync.Init <QSBQuantumShuffleObject, QuantumShuffleObject>(); QSBWorldSync.Init <QSBQuantumMoon, QuantumMoon>(); QSBWorldSync.Init <QSBEyeProxyQuantumMoon, EyeProxyQuantumMoon>(); if (scene == OWScene.SolarSystem) { Shrine = Resources.FindObjectsOfTypeAll <QuantumShrine>().First(); } IsReady = true; }
private void OnSceneLoaded(OWScene oldScene, OWScene newScene, bool isInUniverse) { _hasWokenUp = false; if (isInUniverse) { if (newScene == OWScene.EyeOfTheUniverse) { _hasWokenUp = true; } Init(); } else { CurrentState = State.NotLoaded; } }
public override async UniTask BuildWorldObjects(OWScene scene, CancellationToken ct) { foreach (var streaming in QSBWorldSync.GetUnityObjects <NomaiRemoteCameraStreaming>().SortDeterministic()) { streaming.gameObject.AddComponent <CustomNomaiRemoteCameraStreaming>(); } foreach (var camera in QSBWorldSync.GetUnityObjects <NomaiRemoteCamera>().SortDeterministic()) { camera.gameObject.AddComponent <CustomNomaiRemoteCamera>(); } foreach (var platform in QSBWorldSync.GetUnityObjects <NomaiRemoteCameraPlatform>().SortDeterministic()) { platform.gameObject.AddComponent <CustomNomaiRemoteCameraPlatform>(); } }
public override async UniTask BuildWorldObjects(OWScene scene, CancellationToken ct) { DebugLog.DebugWrite("Building OWItems...", MessageType.Info); // Items QSBWorldSync.Init <QSBDreamLanternItem, DreamLanternItem>(); QSBWorldSync.Init <QSBNomaiConversationStone, NomaiConversationStone>(); QSBWorldSync.Init <QSBScrollItem, ScrollItem>(); QSBWorldSync.Init <QSBSharedStone, SharedStone>(); QSBWorldSync.Init <QSBSimpleLanternItem, SimpleLanternItem>(); QSBWorldSync.Init <QSBSlideReelItem, SlideReelItem>(); QSBWorldSync.Init <QSBVisionTorchItem, VisionTorchItem>(); QSBWorldSync.Init <QSBWarpCoreItem, WarpCoreItem>(); // Sockets QSBWorldSync.Init <QSBItemSocket, OWItemSocket>(); }
public override async UniTask BuildWorldObjects(OWScene scene, CancellationToken ct) { DebugLog.DebugWrite("Building quantum objects...", MessageType.Info); QSBWorldSync.Init <QSBQuantumState, QuantumState>(); QSBWorldSync.Init <QSBSocketedQuantumObject, SocketedQuantumObject>(); QSBWorldSync.Init <QSBMultiStateQuantumObject, MultiStateQuantumObject>(); QSBWorldSync.Init <QSBQuantumSocket, QuantumSocket>(); QSBWorldSync.Init <QSBQuantumShuffleObject, QuantumShuffleObject>(); QSBWorldSync.Init <QSBQuantumMoon, QuantumMoon>(); QSBWorldSync.Init <QSBEyeProxyQuantumMoon, EyeProxyQuantumMoon>(); QSBWorldSync.Init <QSBQuantumSkeletonTower, QuantumSkeletonTower>(); if (scene == OWScene.SolarSystem) { Shrine = QSBWorldSync.GetUnityObjects <QuantumShrine>().First(); } UpdateFromDebugSetting(); }
private void OnSceneLoaded(OWScene oldScene, OWScene newScene, bool inUniverse) { if (newScene != OWScene.EyeOfTheUniverse) { return; } var mapController = QSBWorldSync.GetUnityObjects <GalaxyMapController>().First(); var map = mapController._interactVolume.gameObject; map.SetActive(false); Tree = map.AddComponent <QSBCharacterDialogueTree>(); Tree._xmlCharacterDialogueAsset = QSBCore.TextAssetsBundle.LoadAsset <TextAsset>("Assets/TextAssets/GalaxyMap.txt"); Tree._attentionPoint = map.transform; Tree._attentionPointOffset = new Vector3(0, 1, 0); Tree._turnOffFlashlight = true; Tree._turnOnFlashlight = true; map.SetActive(true); }
protected override void RebuildWorldObjects(OWScene scene) { DebugLog.DebugWrite("Rebuilding sectors...", MessageType.Warning); if (QSBSceneManager.CurrentScene == OWScene.SolarSystem) { var timeLoopRing = GameObject.Find("TimeLoopRing_Body"); if (timeLoopRing != null) { if (timeLoopRing.GetComponent <FakeSector>() == null) { timeLoopRing.AddComponent <FakeSector>().AttachedSector = GameObject.Find("Sector_TimeLoopInterior").GetComponent <Sector>(); } } else { DebugLog.ToConsole($"Error - TimeLoopRing_Body not found!", MessageType.Error); } } QSBWorldSync.Init <QSBSector, Sector>(); IsReady = QSBWorldSync.GetWorldObjects <QSBSector>().Any(); }