private void InstallSaberSparkles(MutationContext ctx, SaberBurnMarkSparkles burnSparkles) { var siraBurnSparkles = burnSparkles.Upgrade <SaberBurnMarkSparkles, SiraSaberBurnMarkSparkles>(); ctx.Container.QueueForInject(siraBurnSparkles); ctx.Container.Bind <SaberBurnMarkSparkles>().To <SiraSaberBurnMarkSparkles>().FromInstance(siraBurnSparkles).AsCached(); }
public static void PostfixStart(ref SaberBurnMarkSparkles __instance) { if (!(__instance is SiraSaberBurnMarkSparkles)) { __instance.gameObject.AddComponent <SiraSaberBurnMarkSparkles>(); } }
public static bool PrefixCancelMethod(ref SaberBurnMarkSparkles __instance) { if (!(__instance is SiraSaberBurnMarkSparkles)) { return(false); } return(true); }
//////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// /// <summary> /// Prefix /// </summary> /// <param name="__instance">SaberBurnMarkSparkles instance</param> internal static void Postfix(ref SaberBurnMarkSparkles __instance) { m_SaberBurnMarkSparkles = __instance; if (Config.GameTweaker.Enabled) { /// Apply SetRemoveSaberBurnMarkSparkles(Config.GameTweaker.RemoveSaberBurnMarkSparkles); } }
public SiraSaberBurnMarkSparkles() { SaberBurnMarkSparkles original = GetComponent <SaberBurnMarkSparkles>(); foreach (FieldInfo info in original.GetType().GetFields(BindingFlags.Public | BindingFlags.Instance | BindingFlags.NonPublic)) { info.SetValue(this, info.GetValue(original)); } Destroy(original); }
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; }
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 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; }