public static void PostfixStart(ref SaberClashChecker __instance) { if (!(__instance is SiraSaberClashChecker)) { __instance.gameObject.AddComponent <SiraSaberClashChecker>(); } }
public override void Start() { _instance = this; _sabers.Add(_leftSaber); _sabers.Add(_rightSaber); Resources.FindObjectsOfTypeAll <SaberClashEffect>().First().SetField("_saberClashChecker", _instance); }
static bool Prefix(SaberClashChecker ____saberClashChecker, HapticFeedbackController ____hapticFeedbackController, ref SaberClashEffect __instance, ParticleSystem ____glowParticleSystem, ref ParticleSystem.EmissionModule ____sparkleParticleSystemEmmisionModule, ref ParticleSystem.EmissionModule ____glowParticleSystemEmmisionModule, ref bool ____sabersAreClashing) { if (!PluginConfig.saberClash && PluginConfig.enabled) { if (____saberClashChecker.sabersAreClashing) { __instance.transform.position = ____saberClashChecker.clashingPoint; // ____hapticFeedbackController.ContinuousRumble(XRNode.LeftHand); // ____hapticFeedbackController.ContinuousRumble(XRNode.RightHand); if (!____sabersAreClashing) { ____sabersAreClashing = true; ____sparkleParticleSystemEmmisionModule.enabled = true; ____glowParticleSystemEmmisionModule.enabled = true; return(true); } } else if (____sabersAreClashing) { ____sabersAreClashing = false; ____sparkleParticleSystemEmmisionModule.enabled = false; ____glowParticleSystemEmmisionModule.enabled = false; ____glowParticleSystem.Clear(); } return(false); } else { return(true); } }
public static bool PrefixCancelMethod(ref SaberClashChecker __instance) { if (!(__instance is SiraSaberClashChecker)) { return(false); } return(true); }
public SiraSaberClashChecker() { SaberClashChecker original = GetComponent <SaberClashChecker>(); foreach (FieldInfo info in original.GetType().GetFields(BindingFlags.Public | BindingFlags.Instance | BindingFlags.NonPublic)) { info.SetValue(this, info.GetValue(original)); } Destroy(original); }
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 Awake() { Instance = this; _slowmoStepAmount = PluginConfig.Instance.SlowmoStepAmount; SaberClashChecker = FindObjectOfType <SaberClashChecker>(); }
private IEnumerator OnGameCoreCoroutine() { if (_audioTimeSyncController == null) { _audioTimeSyncController = Resources.FindObjectsOfTypeAll <AudioTimeSyncController>().FirstOrDefault(); _audioSource = _audioTimeSyncController.GetPrivateField <AudioSource>("_audioSource"); } _originalTimeScale = _audioTimeSyncController.timeScale; if (_gamePause == null) { _gamePause = Resources.FindObjectsOfTypeAll <GamePause>().FirstOrDefault(); } _gamePause.didResumeEvent += OnPauseResume; // wait for CustomSaber mod yield return(new WaitUntil(() => Resources.FindObjectsOfTypeAll <Saber>().Any())); yield return(new WaitForSecondsRealtime(0.1f)); if (_playerController == null) { _playerController = Resources.FindObjectsOfTypeAll <PlayerController>().FirstOrDefault(); } if (_rightSaberTransform == null) { _rightSaberTransform = _playerController.rightSaber.transform; } if (_leftSaberTransform == null) { _leftSaberTransform = _playerController.leftSaber.transform; } if (_saberClashChecker == null) { _saberClashChecker = Resources.FindObjectsOfTypeAll <SaberClashChecker>().FirstOrDefault(); } if (_saberBurnMarkArea == null) { _saberBurnMarkArea = Resources.FindObjectsOfTypeAll <SaberBurnMarkArea>().FirstOrDefault(); } if (_saberBurnMarkSparkles == null) { _saberBurnMarkSparkles = Resources.FindObjectsOfTypeAll <SaberBurnMarkSparkles>().FirstOrDefault(); } // need some wait to GetNoteOffset if (Config.centering) { if (_beatmapObjectSpawnController == null) { _beatmapObjectSpawnController = Resources.FindObjectsOfTypeAll <BeatmapObjectSpawnController>().FirstOrDefault(); } BeatmapObjectSpawnMovementData beatmapObjectSpawnMovementData = _beatmapObjectSpawnController.GetPrivateField <BeatmapObjectSpawnMovementData>("_beatmapObjectSpawnMovementData"); Vector3 leftBase = beatmapObjectSpawnMovementData.GetNoteOffset(0, NoteLineLayer.Base); Vector3 rightTop = beatmapObjectSpawnMovementData.GetNoteOffset(3, NoteLineLayer.Top); NoteJumpManualUpdate.center = (leftBase + rightTop) / 2; //Logger.log.Debug($"leftBase={leftBase.x}, {leftBase.y}, {leftBase.z}"); //Logger.log.Debug($"rightTop={rightTop.x}, {rightTop.y}, {rightTop.z}"); } if (Config.hideSabers) { SetSaberVisible(_playerController.rightSaber, false); SetSaberVisible(_playerController.leftSaber, false); SetTrailWidth(0f); _saberClashChecker.enabled = false; _saberBurnMarkArea.enabled = false; _saberBurnMarkSparkles.enabled = false; } if (Config.hideSaberEffects) { SetTrailWidth(0f); _saberClashChecker.enabled = false; _saberBurnMarkArea.enabled = false; _saberBurnMarkSparkles.enabled = false; } if (Config.boxing) { SetTrailWidth(0.05f); } if (Config.headbang) { SetTrailWidth(0f); } if (Config.vacuum) { if (_gameEnergyCounter == null) { _gameEnergyCounter = Resources.FindObjectsOfTypeAll <GameEnergyCounter>().FirstOrDefault(); } _gameEnergyCounter.SetPrivateField("_hitBombEnergyDrain", 0f); } if (GameObject.Find("vacuum_saber_right")) { SetTrailWidth(0f); } if (Config.feetAvatar) { StartCoroutine(FindAvatarCoroutine()); } UpdateSaberActive(); _init = true; }
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; }