public void Initialize(SaberManager saberManager)
 {
     _sabers.Clear();
     Init(saberManager);
     _sabers.Add(_leftSaber);
     _sabers.Add(_rightSaber);
 }
 public void Initialize(SaberManager saberManager)
 {
     if (!_initted)
     {
         base.Start();
         for (int i = 0; i < 2; i++)
         {
             if (_sabers[i])
             {
                 var saberBurnDatum = new SaberBurnDatum
                 {
                     saber                = _sabers[i],
                     lineRenderer         = _lineRenderers[i],
                     renderTexture        = _renderTextures[i],
                     prevBurnMarkPos      = _prevBurnMarkPos[i],
                     prevBurnMarkPosValid = _prevBurnMarkPosValid[i]
                 };
                 _saberBurnData.Add(saberBurnDatum);
             }
         }
         _initted = true;
     }
     _sabers    = new Saber[2];
     _sabers[0] = saberManager.leftSaber;
     _sabers[1] = saberManager.rightSaber;
     _saberBurnData[0].saber = _sabers[0];
     _saberBurnData[1].saber = _sabers[1];
 }
Example #3
0
 private void Awake()
 {
     this.saberManager    = MultiplayerLocalActivePlayerGameplayManagerPatch.multiplayerSaberManager ?? FindObjectOfType <SaberManager>();
     this.playerOrigin    = GameObject.Find("LocalPlayerGameCore/Origin");
     this.leftController  = InputDevices.GetDeviceAtXRNode(XRNode.LeftHand);
     this.rightController = InputDevices.GetDeviceAtXRNode(XRNode.RightHand);
 }
        private static void Postfix(MultiplayerLocalActivePlayerGameplayManager __instance, SaberManager ____saberManager)
        {
            multiplayerSaberManager = ____saberManager;
#if DEBUG
            AlternativePlay.Logger.Notice($"SaberManager Set in MultiplayerLocalActivePlayerGameplayManager");
#endif
        }
Example #5
0
        private SaberControllerBearer(SaberManager saberManager, PlayerVRControllersManager playerVrControllersManager)
        {
            _left = new SaberControllerPackage(saberManager.leftSaber,
                                               playerVrControllersManager.GetField <VRController, PlayerVRControllersManager>("_leftHandVRController"));

            _right = new SaberControllerPackage(saberManager.rightSaber,
                                                playerVrControllersManager.GetField <VRController, PlayerVRControllersManager>("_rightHandVRController"));
        }
Example #6
0
 public void Initialize(SaberManager saberManager)
 {
     Run();
     _sabers    = new Saber[2];
     _sabers[0] = saberManager.leftSaber;
     _sabers[1] = saberManager.rightSaber;
     _saberBurnData[0].saber = _sabers[0];
     _saberBurnData[1].saber = _sabers[1];
 }
Example #7
0
        private void MultiplayerLocalActivePlayerGameplayManagerHasStarted(MultiplayerLocalActivePlayerGameplayManager multiplayerLocalActivePlayerGameplayManager)
        {
            patch.MultiplayerLocalActivePlayerGameplayManagerHasStarted -= MultiplayerLocalActivePlayerGameplayManagerHasStarted;
            SaberManager saberManager = Accessors.SaberManagerAccessor(ref multiplayerLocalActivePlayerGameplayManager);

            leftController       = saberManager?.leftSaber.GetComponentInParent <VRController>();
            rightController      = saberManager?.rightSaber.GetComponentInParent <VRController>();
            leftController.node  = UnityEngine.XR.XRNode.RightHand;
            rightController.node = UnityEngine.XR.XRNode.LeftHand;
        }
Example #8
0
        internal static void setupStuff()
        {
            SpawnController  = Resources.FindObjectsOfTypeAll <BeatmapObjectSpawnController>().FirstOrDefault();
            PauseManager     = Resources.FindObjectsOfTypeAll <StandardLevelGameplayManager>().FirstOrDefault();
            PlayerController = Resources.FindObjectsOfTypeAll <PlayerController>().FirstOrDefault();

            SaberManager = PlayerController.GetField("_saberManager") as SaberManager;
            leftSaber    = SaberManager.GetPrivateField <Saber>("_leftSaber") as Saber;
            rightSaber   = SaberManager.GetPrivateField <Saber>("_rightSaber") as Saber;
        }
Example #9
0
        internal static void ResetHell()
        {
            SpawnController.noteWasMissedEvent -= MissHell_noteWasMissedEvent;
            SpawnController.noteWasCutEvent    -= MissHell_noteWasCutEvent;
            SpawnController = null;

            PauseManager = null;
            SaberManager = null;

            PlayerController.transform.position = StartPosition;
        }
 private void Awake()
 {
     if (MultiplayerLocalActivePlayerGameplayManagerPatch.multiplayerSaberManager)
     {
         this.saberManager = MultiplayerLocalActivePlayerGameplayManagerPatch.multiplayerSaberManager;
     }
     else
     {
         this.saberManager = FindObjectOfType <SaberManager>();
     }
 }
Example #11
0
 public void Inject(
     ColorManager colorManager,
     ColorScheme colorScheme,
     SaberManager saberManager,
     BasicBeatmapObjectManager beatmapObjectManager
     )
 {
     this.colorManager         = colorManager;
     this.colorScheme          = colorScheme;
     this.saberManager         = saberManager;
     this.beatmapObjectManager = beatmapObjectManager;
 }
Example #12
0
        private void Awake()
        {
            this.saberManager       = FindObjectOfType <SaberManager>();
            this.useLeftHandForward = !Configuration.instance.ConfigurationData.UseLeftSpear;

            var pauseAnimationController = FindObjectOfType <PauseAnimationController>();

            if (pauseAnimationController != null)
            {
                pauseAnimationController.resumeFromPauseAnimationDidFinishEvent += this.ResumeFromPauseAnimationDidFinishEvent;
            }
        }
        public SiraSaberEffectManager(IGamePause gamePause, SaberManager saberManager, SaberClashChecker saberClashChecker, SaberBurnMarkArea saberBurnMarkArea,
                                      SaberBurnMarkSparkles saberBurnMarkSparkles, ObstacleSaberSparkleEffectManager obstacleSaberSparkleEffectManager)
        {
            _gamePause = gamePause;
            saberClashChecker.Init(saberManager);
            _saberManagers.Add(saberClashChecker as SiraSaberClashChecker);
            _saberManagers.Add(saberBurnMarkArea as SiraSaberBurnMarkArea);
            _saberManagers.Add(saberBurnMarkSparkles as SiraSaberBurnMarkSparkles);
            _saberManagers.Add(obstacleSaberSparkleEffectManager as SiraObstacleSaberSparkleEffectManager);

            _siraSaberClashChecker = saberClashChecker as SiraSaberClashChecker;
        }
        private void Awake()
        {
            this.saberManager        = FindObjectOfType <SaberManager>();
            this.mainSettingsModel   = Resources.FindObjectsOfTypeAll <MainSettingsModelSO>().FirstOrDefault();
            this.previousForwardHand = Configuration.instance.ConfigurationData.UseLeftSpear ? this.rightController : this.leftController;

            var pauseAnimationController = UnityEngine.Object.FindObjectOfType <PauseAnimationController>();

            if (pauseAnimationController != null)
            {
                pauseAnimationController.resumeFromPauseAnimationDidFinishEvent += this.ResumeFromPauseAnimationDidFinishEvent;
            }
        }
        internal SiraSaberEffectManager([InjectOptional] IGamePause gamePause, SaberManager saberManager, SaberClashChecker saberClashChecker, SaberBurnMarkArea saberBurnMarkArea,
                                        SaberBurnMarkSparkles saberBurnMarkSparkles, ObstacleSaberSparkleEffectManager obstacleSaberSparkleEffectManager)
        {
            _gamePause    = gamePause;
            _saberManager = saberManager;
            saberClashChecker.Init(saberManager);
            _saberManagers.Add(saberClashChecker as SiraSaberClashChecker);
            _saberManagers.Add(saberBurnMarkArea as SiraSaberBurnMarkArea);
            _saberManagers.Add(saberBurnMarkSparkles as SiraSaberBurnMarkSparkles);
            _saberManagers.Add(obstacleSaberSparkleEffectManager as SiraObstacleSaberSparkleEffectManager);

            _siraSaberClashChecker = saberClashChecker as SiraSaberClashChecker;
            _siraObstacleSaberSparkleEffectManager = obstacleSaberSparkleEffectManager as SiraObstacleSaberSparkleEffectManager;
        }
 private void FindSabers()
 {
     Plugin.Log.Debug("Looking for sabers...");
     try
     {
         saberManager = Resources.FindObjectsOfTypeAll <SaberManager>().FirstOrDefault();
         rSaber       = saberManager.rightSaber;
         lSaber       = saberManager.leftSaber;
     } catch (Exception exception)
     {
         CriticalErrorHandler(true, 324, exception);
     }
     Plugin.Log.Debug("Success! Found sabers.");
 }
        private void Awake()
        {
            if (MultiplayerLocalActivePlayerGameplayManagerPatch.multiplayerSaberManager)
            {
                this.saberManager = MultiplayerLocalActivePlayerGameplayManagerPatch.multiplayerSaberManager;
            }
            else
            {
                this.saberManager = FindObjectOfType <SaberManager>();
            }

            this.useLeftHandForward = !Configuration.instance.ConfigurationData.UseLeftSpear;

            var pauseAnimationController = FindObjectOfType <PauseAnimationController>();

            if (pauseAnimationController != null)
            {
                pauseAnimationController.resumeFromPauseAnimationDidFinishEvent += this.ResumeFromPauseAnimationDidFinishEvent;
            }
        }
Example #18
0
        private static void Postfix(SaberManager __instance, ref Saber ____leftSaber, ref Saber ____rightSaber)
        {
            if (!Config.Instance.IsEnabled)
            {
                return;
            }

            // BoxCollider[] saberColliders = { ____leftSaber.GetComponent<BoxCollider>(), ____rightSaber.GetComponent<BoxCollider>() };

            Saber[] sabers = { ____leftSaber, ____rightSaber };

            foreach (Saber saber in sabers)
            {
                GameObject cube = GameObject.CreatePrimitive(PrimitiveType.Cube);
                cube.name = "VisibleSaberCollider";
                cube.transform.SetParent(saber.transform, false);
                cube.transform.localPosition = new Vector3(0, 0, 0.5f);
                cube.transform.localScale    = new Vector3(0.06f, 0.06f, 1);
                cube.GetComponent <MeshRenderer>().material = Plugin.hitboxMaterial;
            }

            //BoxCollider leftCollider = ____leftSaber.GetComponent<BoxCollider>();

            //GameObject leftCube = GameObject.CreatePrimitive(PrimitiveType.Cube);
            //leftCube.name = "VisibleSaberCollider";
            //leftCube.transform.SetParent(leftCollider.transform, false);
            //leftCube.transform.localPosition = new Vector3(0, 0, 0.5f);
            //leftCube.transform.localScale = new Vector3(0.06f, 0.06f, 1);
            //leftCube.GetComponent<MeshRenderer>().material = Plugin.hitboxMaterial;

            //BoxCollider rightCollider = ____rightSaber.GetComponent<BoxCollider>();

            //GameObject rightCube = GameObject.CreatePrimitive(PrimitiveType.Cube);
            //rightCube.name = "VisibleSaberCollider";
            //rightCube.transform.SetParent(rightCollider.transform, false);
            //rightCube.transform.localPosition = new Vector3(0, 0, 0.5f);
            //rightCube.transform.localScale = new Vector3(0.06f, 0.06f, 1);
            //rightCube.GetComponent<MeshRenderer>().material = Plugin.hitboxMaterial;
        }
Example #19
0
 public ControllerOffsetPresetsModalController([InjectOptional] SaberManager saberManager, [InjectOptional] MainSettingsMenuViewController mainSettingsMenuViewController)
 {
     if (saberManager != null)
     {
         VRController leftController = saberManager.leftSaber.GetComponentInParent <VRController>();
         VRControllersValueSOOffsets vrControllerTransformOffset = (VRControllersValueSOOffsets)Accessors.VRControllerTransformOffsetAccessor(ref leftController);
         positionOffset = Accessors.PositionOffsetAccessor(ref vrControllerTransformOffset);
         rotationOffset = Accessors.RotationOffsetAccessor(ref vrControllerTransformOffset);
     }
     else if (mainSettingsMenuViewController != null)
     {
         SettingsSubMenuInfo[] settingsSubMenuInfos = Accessors.SettingsSubMenuInfoAccessor(ref mainSettingsMenuViewController);
         foreach (var settingSubMenuInfo in settingsSubMenuInfos)
         {
             if (settingSubMenuInfo.viewController is ControllersTransformSettingsViewController controllersTransformSettingsViewController)
             {
                 positionOffset = Accessors.ControllerPositionAccessor(ref controllersTransformSettingsViewController);
                 rotationOffset = Accessors.ControllerRotationAccessor(ref controllersTransformSettingsViewController);
                 break;
             }
         }
     }
 }
Example #20
0
        internal static void SetupHell()
        {
            TrackingError    = false;
            SpawnController  = Resources.FindObjectsOfTypeAll <BeatmapObjectSpawnController>().FirstOrDefault();
            PauseManager     = Resources.FindObjectsOfTypeAll <StandardLevelGameplayManager>().FirstOrDefault();
            PlayerController = Resources.FindObjectsOfTypeAll <PlayerController>().FirstOrDefault();

            SaberManager = PlayerController.GetField("_saberManager") as SaberManager;
            leftSaber    = SaberManager.GetPrivateField <Saber>("_leftSaber") as Saber;
            rightSaber   = SaberManager.GetPrivateField <Saber>("_rightSaber") as Saber;


            if (SpawnController)
            {
                SpawnController.noteWasMissedEvent += MissHell_noteWasMissedEvent;
                SpawnController.noteWasCutEvent    += MissHell_noteWasCutEvent;
            }

            StartPosition = PlayerController.transform.position;

            timer          = new Timer(3000);
            timer.Elapsed += Timer_Elapsed;
        }
Example #21
0
        IEnumerator WaitForLoad()
        {
            while (!loaded)
            {
                var playerHeadAndObstacleInteraction = Resources.FindObjectsOfTypeAll <ScoreController>().FirstOrDefault()?.GetField <PlayerHeadAndObstacleInteraction, ScoreController>("_playerHeadAndObstacleInteraction");
                beatmapObjectManager = playerHeadAndObstacleInteraction?.GetField <BeatmapObjectManager, PlayerHeadAndObstacleInteraction>("_beatmapObjectManager");
                saberManager         = Resources.FindObjectsOfTypeAll <SaberManager>().FirstOrDefault();
                if (beatmapObjectManager == null || saberManager == null)
                {
                    yield return(new WaitForSeconds(0.1f));
                }
                else
                {
                    loaded = true;
                }
            }

            yield return(new WaitForSeconds(0.1f));

            sabers    = new Saber[2];
            sabers[0] = saberManager.leftSaber;
            sabers[1] = saberManager.rightSaber;
        }
Example #22
0
        static void Postfix(
            NoteJump __instance,
            ref Vector3 __result,
            AudioTimeSyncController ____audioTimeSyncController,
            float ____beatTime,
            float ____jumpDuration,
            Vector3 ____localPosition,
            Vector3 ____startPos,
            Vector3 ____endPos,
            Quaternion ____worldRotation,
            Quaternion ____middleRotation,
            Transform ____rotatedObject)
        {
            if (Config.parabola)
            {
                float time       = ____audioTimeSyncController.songTime - ____beatTime + ____jumpDuration * 0.5f;
                float amount     = time / ____jumpDuration;
                float amountHalf = amount - 0.25f;
                ____localPosition.y = ____localPosition.y - 60f * (amountHalf * amountHalf - 0.0625f);
                //____localPosition.z = playerController.MoveTowardsHead(____startPos.z, ____endPos.z, ____inverseWorldRotation, num2);
                ____localPosition.z = Mathf.Lerp(____startPos.z, ____endPos.z, amount);

                __result = ____worldRotation * ____localPosition;
                __instance.transform.position = __result;
            }

            if (Config.centering)
            {
                float time   = ____audioTimeSyncController.songTime - ____beatTime + ____jumpDuration * 0.5f;
                float amount = time / ____jumpDuration;
                ____localPosition.y           = Mathf.Lerp(____localPosition.y, ____localPosition.y / 2f + Config.centeringBaseY, Mathf.Clamp01(amount * 10f));
                __result                      = ____worldRotation * ____localPosition;
                __instance.transform.position = __result;
            }

            //if (tick++ % 9 == 0) Logger.log.Debug($"NoteJumpManualUpdate: num2={num2}, __result={__result}, ____startPos={____startPos}, ____endPos={____endPos}");

            if (Config.vacuum)
            {
                if (_saberManager == null)
                {
                    _saberManager = Object.FindObjectsOfType <SaberManager>().FirstOrDefault();
                }

                if (_saberManager != null)
                {
                    float time   = ____audioTimeSyncController.songTime - ____beatTime + ____jumpDuration * 0.5f;
                    float amount = time / ____jumpDuration;
                    amount = Mathf.Clamp01(amount * 2);

                    if (amount > 0.7f)
                    {
                        Vector3 endPos = _saberManager.rightSaber.saberBladeTopPos;
                        float   t      = (amount - 0.5f) * 2;
                        t = t * t * t * t;
                        ____localPosition.x           = Mathf.Lerp(____localPosition.x, endPos.x, t);
                        ____localPosition.y           = Mathf.Lerp(____localPosition.y, endPos.y, t);
                        __result                      = ____worldRotation * ____localPosition;
                        __instance.transform.position = __result;
                    }
                }
            }

            if (Config.feet)
            {
                ____localPosition.y           = Config.feetNotesY;
                __result                      = ____worldRotation * ____localPosition;
                __instance.transform.position = __result;

                Transform noteCube = __instance.transform.Find("NoteCube");
                if (noteCube != null)
                {
                    foreach (Transform noteCubeChild in noteCube)
                    {
                        if (noteCubeChild.name.StartsWith("customNote"))
                        {
                            foreach (Transform noteCubeGrandChild in noteCubeChild)
                            {
                                if (noteCubeGrandChild.name.StartsWith("Feet"))
                                {
                                    noteCubeGrandChild.rotation = ____middleRotation;
                                }
                            }
                        }
                    }
                }
            }

            if (Config.topNotesToFeet || Config.middleNotesToFeet || Config.bottomNotesToFeet)
            {
                if (____startPos.y == Config.feetNotesY)
                {
                    ____localPosition.y           = Config.feetNotesY;
                    __result                      = ____worldRotation * ____localPosition;
                    __instance.transform.position = __result;
                }
            }
        }
 private void Awake()
 {
     this.saberManager = FindObjectOfType <SaberManager>();
 }
        public ControllerOffsetPauseViewController([InjectOptional] GameplayCoreSceneSetupData gameplayCoreSceneSetupData, PauseMenuManager pauseMenuManager, SaberManager saberManager, ControllerOffsetPresetsModalController controllerOffsetPresetsModalController, ControllerOffsetSettingsModalController controllerOffsetSettingsModalController) : base(controllerOffsetPresetsModalController, controllerOffsetSettingsModalController)
        {
            if (gameplayCoreSceneSetupData == null || gameplayCoreSceneSetupData?.practiceSettings == null)
            {
                practiceMode = false;
                return;
            }
            practiceMode          = true;
            this.pauseMenuManager = pauseMenuManager;
            VRController leftController = saberManager?.leftSaber.GetComponentInParent <VRController>();
            VRControllersValueSOOffsets vrControllerTransformOffset = (VRControllersValueSOOffsets)Accessors.VRControllerTransformOffsetAccessor(ref leftController);

            positionOffset = Accessors.PositionOffsetAccessor(ref vrControllerTransformOffset);
            rotationOffset = Accessors.RotationOffsetAccessor(ref vrControllerTransformOffset);
        }
 /// <summary>
 /// Replaces the references of each saber to a new set of sabers for all effect systems.
 /// </summary>
 /// <param name="left"></param>
 /// <param name="right"></param>
 /// <param name="saberManager"></param>
 public void RepatchDefault(Saber left, Saber right, SaberManager saberManager)
 {
     Accessors.SMLeftSaber(ref saberManager)  = left;
     Accessors.SMRightSaber(ref saberManager) = right;
     _saberManagers.ForEach(x => x.Initialize(saberManager));
 }
 /// <summary>
 /// The initialization method.
 /// </summary>
 /// <param name="saberManager">The saber manager used to gather saber references.</param>
 public void Initialize(SaberManager saberManager)
 {
 }
 private void Inject(SaberManager saberManager, ColorManager colorManager, Settings settings)
 {
     _saberManager = saberManager;
     _colorManager = colorManager;
     _settings     = settings;
 }
Example #28
0
 private void Inject(SaberManager saberManager, ColorManager colorManager)
 {
     _saberManager = saberManager;
     _colorManager = colorManager;
 }
 private static void Prefix()
 {
     multiplayerSaberManager = null;
 }
 private void Awake()
 {
     this.saberManager      = FindObjectOfType <SaberManager>();
     this.mainSettingsModel = Resources.FindObjectsOfTypeAll <MainSettingsModelSO>().FirstOrDefault();
 }