public void Init(Saber parentSaber) { Logger.Log("Replacing Trail", LogLevel.Debug); saber = parentSaber; if (gameObject.name != "LeftSaber" && gameObject.name != "RightSaber") { Logger.Log("Parent not LeftSaber or RightSaber", LogLevel.Warning); Destroy(this); } if (saber == null) { Logger.Log("Saber not found", LogLevel.Warning); Destroy(this); } SaberWeaponTrail[] trails = Resources.FindObjectsOfTypeAll <SaberWeaponTrail>().ToArray(); for (int i = 0; i < trails.Length; i++) { SaberWeaponTrail trail = trails[i]; ReflectionUtil.SetPrivateField(trail, "_multiplierSaberColor", new Color(0f, 0f, 0f, 0f)); ReflectionUtil.SetPrivateField(trail as Xft.XWeaponTrail, "_whiteSteps", 0); } SaberWeaponTrail oldtrail = Resources.FindObjectsOfTypeAll <GameCoreInstaller>() .FirstOrDefault()?.GetPrivateField <BasicSaberModelController>("_basicSaberModelControllerPrefab") ?.GetPrivateField <SaberWeaponTrail>("_saberWeaponTrail"); if (oldtrail != null) { try { Logger.Log(ReflectionUtil.GetPrivateField <Color>(oldtrail, "_multiplierSaberColor").ToString(), LogLevel.Debug); //ReflectionUtil.SetPrivateField(oldtrail, "_multiplierSaberColor", new Color(0f, 0f, 0f, 0f)); // oldColorManager = ReflectionUtil.GetPrivateField<ColorManager>(oldtrail, "_colorManager"); oldTrailRendererPrefab = ReflectionUtil.GetPrivateField <XWeaponTrailRenderer>(oldtrail, "_trailRendererPrefab"); //oldtrail.Start(); //oldtrail.gameObject.SetActive(false); } catch (Exception ex) { Logger.Log($"{ex.Message}\n{ex.StackTrace}", LogLevel.Error); throw; } trail = gameObject.AddComponent <CustomWeaponTrail>(); trail.init(oldTrailRendererPrefab, Plugin.colorManager, PointStart, PointEnd, TrailMaterial, TrailColor, Length, MultiplierColor, colorType); } else { Logger.Log("Trail not found", LogLevel.Debug); Destroy(this); } }
public void Init(Saber saber, ColorManager colorManager) { Logger.log.Debug($"Replacing Trail for '{saber?.saberType}'"); if (gameObject.name != "LeftSaber" && gameObject.name != "RightSaber") { Logger.log.Warn("Parent not LeftSaber or RightSaber"); Destroy(this); } if (!saber) { Logger.log.Warn("Saber not found"); Destroy(this); } IEnumerable <SaberWeaponTrail> trails = Resources.FindObjectsOfTypeAll <SaberWeaponTrail>().ToArray(); foreach (SaberWeaponTrail trail in trails) { ReflectionUtil.SetPrivateField(trail, "_multiplierSaberColor", new Color(0f, 0f, 0f, 0f)); ReflectionUtil.SetPrivateField(trail as XWeaponTrail, "_whiteSteps", 0); } SaberWeaponTrail oldtrail = Resources.FindObjectsOfTypeAll <GameCoreSceneSetup>().FirstOrDefault() ?.GetPrivateField <BasicSaberModelController>("_basicSaberModelControllerPrefab") ?.GetPrivateField <SaberWeaponTrail>("_saberWeaponTrail"); if (oldtrail) { try { //Logger.log.Debug(ReflectionUtil.GetPrivateField<Color>(oldtrail, "_multiplierSaberColor").ToString()); oldTrailRendererPrefab = ReflectionUtil.GetPrivateField <XWeaponTrailRenderer>(oldtrail, "_trailRendererPrefab"); } catch (Exception ex) { Logger.log.Error(ex); throw; } trail = gameObject.AddComponent <CustomWeaponTrail>(); trail.Init(oldTrailRendererPrefab, colorManager, PointStart, PointEnd, TrailMaterial, TrailColor, Length, MultiplierColor, colorType); } else { Logger.log.Debug($"Trail not found for '{saber?.saberType}'"); Destroy(this); } }
public void Init(Saber parentSaber) { Console.WriteLine("Replacing Trail"); saber = parentSaber; if (gameObject.name != "LeftSaber" && gameObject.name != "RightSaber") { Console.WriteLine("Parent not LeftSaber or RightSaber"); Destroy(this); } if (saber == null) { Console.WriteLine("Saber not found"); Destroy(this); } SaberWeaponTrail oldtrail = Resources.FindObjectsOfTypeAll <GameCoreInstaller>() .FirstOrDefault()?.GetPrivateField <BasicSaberModelController>("_basicSaberModelControllerPrefab") ?.GetPrivateField <SaberWeaponTrail>("_saberWeaponTrail"); if (oldtrail != null) { try { ReflectionUtil.SetPrivateField(oldtrail, "_multiplierSaberColor", new Color(0f, 0f, 0f, 0f)); oldColorManager = ReflectionUtil.GetPrivateField <ColorManager>(oldtrail, "_colorManager"); oldTrailRendererPrefab = ReflectionUtil.GetPrivateField <XWeaponTrailRenderer>(oldtrail, "_trailRendererPrefab"); oldtrail.gameObject.SetActive(false); } catch (Exception e) { Console.WriteLine(e); Console.WriteLine(e.Message); throw; } trail = gameObject.AddComponent <CustomWeaponTrail>(); trail.init(oldTrailRendererPrefab, oldColorManager, PointStart, PointEnd, TrailMaterial, TrailColor, Length, MultiplierColor, colorType); } else { Console.WriteLine("Trail not found"); Destroy(this); } }
private void Start() { Console.WriteLine("Replacing Trail"); if (gameObject.name != "LeftSaber" && gameObject.name != "RightSaber") { Console.WriteLine("Parent not LeftSaber or RightSaber"); Destroy(this); } GameObject _saber = FindParentWithName(this.gameObject, "Saber"); if (_saber == null) { Console.WriteLine("Saber not found"); Destroy(this); } trail = _saber.GetComponent <XWeaponTrail>(); if (trail != null) { ReflectionUtil.SetPrivateField(trail, "PointStart", PointStart); ReflectionUtil.SetPrivateField(trail, "PointEnd", PointEnd); ReflectionUtil.SetPrivateField(trail, "MyColor", TrailColor); ReflectionUtil.SetPrivateField(trail, "MyMaterial", TrailMaterial); ReflectionUtil.SetPrivateField(trail, "MaxFrame", Length); XWeaponTrailRenderer trailRenderer = ReflectionUtil.GetPrivateField <XWeaponTrailRenderer>(trail, "_trailRenderer"); MeshRenderer meshRenderer = ReflectionUtil.GetPrivateField <MeshRenderer>(trailRenderer, "_meshRenderer"); meshRenderer.material = TrailMaterial; trail.UpdateHeadElem(); trail.UpdateVertex(); } else { Console.WriteLine("Trail not found"); Destroy(this); } }
private void AddCustomSaberButton() { _rightScreen = ReflectionUtil.GetPrivateField <VRUIViewController>(_mainMenuViewController, "_releaseInfoViewController"); _rightPos = _rightScreen.rectTransform; var customSaberButton = CreateButton(_rightPos); if (customSaberButton == null) { return; } SetButtonText(ref customSaberButton, "Saber Menu"); customSaberButton.onClick.AddListener(delegate { if (_sabersMasterViewController == null) { _sabersMasterViewController = CreateViewController <CustomSaberMasterViewController>(); } _rightScreen.PresentModalViewController(_sabersMasterViewController, null); }); }
private void AddModMenuButton() { try { _rightScreen = ReflectionUtil.GetPrivateField <VRUIViewController>(_mainMenuViewController, "_releaseInfoViewController"); _rightPos = _rightScreen.gameObject.transform as RectTransform; var modMenuButton = CreateButton(_rightPos); SetButtonText(ref modMenuButton, "Saber Menu"); SetButtonIcon(ref modMenuButton, Icons.First(x => x.name == "SingleSaberIcon")); if (modMenuButton == null) { return; } // Change button text and add listener modMenuButton.onClick.AddListener(delegate { try { if (_modMenuController == null) { _modMenuController = CreateViewController <ModMenuMasterViewController>(); } try { } catch (Exception e) { Console.WriteLine(e.ToString()); throw; } _rightScreen.PresentModalViewController(_modMenuController, null); //DELETE POSSIBLE DIFFICULTY TEXT var modlisttemp = GameObject.FindObjectOfType <ModsListViewController>(); if (modlisttemp != null) { var textmeshs = modlisttemp.gameObject.GetComponentsInChildren <TextMeshProUGUI>(); foreach (TextMeshProUGUI textmesh in textmeshs) { if (textmesh.rectTransform.parent.name == "DifficultyTableCell(Clone)") { DestroyImmediate(textmesh.rectTransform.parent.gameObject); } } } } catch (Exception ex) { } }); } catch (Exception ex) { } }
public void SetMaterial(Material newMaterial) { _customMaterial = newMaterial; ReflectionUtil.GetPrivateField <MeshRenderer>(_trailRenderer, "_meshRenderer").material = _customMaterial; }
public override void Start() { base.Start(); ReflectionUtil.GetPrivateField <MeshRenderer>(_trailRenderer, "_meshRenderer").material = _customMaterial; }
private void AddEvents() { _leftEventManager = _leftSaber.GetComponent <EventManager>(); if (_leftEventManager == null) { _leftEventManager = _leftSaber.AddComponent <EventManager>(); } _rightEventManager = _rightSaber.GetComponent <EventManager>(); if (_rightEventManager == null) { _rightEventManager = _rightSaber.AddComponent <EventManager>(); } _leftEventManager.OnLevelStart.Invoke(); _rightEventManager.OnLevelStart.Invoke(); try { _beatmapObjectSpawnController = Resources.FindObjectsOfTypeAll <BeatmapObjectSpawnController>().FirstOrDefault(); if (_beatmapObjectSpawnController == null) { Console.WriteLine("SPAWN CONTROLLER NULL"); //_beatmapObjectSpawnController = _saberRoot.AddComponent<BeatmapObjectSpawnController>(); } _scoreController = Resources.FindObjectsOfTypeAll <ScoreController>().FirstOrDefault(); if (_scoreController == null) { Console.WriteLine("SCORE CONTROLLER NULL"); //_scoreController = _saberRoot.AddComponent<ScoreController>(); } _saberCollisionManager = Resources.FindObjectsOfTypeAll <ObstacleSaberSparkleEffectManager>().FirstOrDefault(); if (_saberCollisionManager == null) { Console.WriteLine("COLLISION MANAGER NULL"); //_saberCollisionManager = _saberRoot.AddComponent<ObstacleSaberSparkleEffectManager>(); } _gameEnergyCounter = Resources.FindObjectsOfTypeAll <GameEnergyCounter>().FirstOrDefault(); if (_gameEnergyCounter == null) { Console.WriteLine("energery counter null"); //_gameEnergyCounter = _saberRoot.AddComponent<GameEnergyCounter>(); } _beatmapCallback = Resources.FindObjectsOfTypeAll <BeatmapObjectCallbackController>().FirstOrDefault(); if (_beatmapCallback == null) { Console.WriteLine("BEATMAP CALLBACK NULL"); //_beatmapCallback = _saberRoot.AddComponent<BeatmapObjectCallbackController>(); } _gamePauseManager = Resources.FindObjectsOfTypeAll <GamePauseManager>().FirstOrDefault(); if (_gamePauseManager == null) { Console.WriteLine("GamePauseManager Null"); //_gamePauseManager = _saberRoot.AddComponent<GamePauseManager>(); } _playerHeadAndObstacleInteraction = Resources.FindObjectsOfTypeAll <PlayerHeadAndObstacleInteraction>().FirstOrDefault(); if (_playerHeadAndObstacleInteraction == null) { Console.WriteLine("PlayerHeadAndObstacleInteraction Null"); //_playerHeadAndObstacleInteraction = _saberRoot.AddComponent<PlayerHeadAndObstacleInteraction>(); } _beatmapObjectSpawnController.noteWasCutEvent += SliceCallBack; _beatmapObjectSpawnController.noteWasMissedEvent += NoteMissCallBack; _scoreController.multiplierDidChangeEvent += MultiplierCallBack; _scoreController.comboDidChangeEvent += ComboChangeEvent; _saberCollisionManager.sparkleEffectDidStartEvent += SaberStartCollide; _saberCollisionManager.sparkleEffectDidEndEvent += SaberEndCollide; _gameEnergyCounter.gameEnergyDidReach0Event += FailLevelCallBack; _beatmapCallback.beatmapEventDidTriggerEvent += LightEventCallBack; // ReflectionUtil.SetPrivateField(_gamePauseManager, "_gameDidResumeSignal", (Action)OnPauseMenuClosed); //For some reason _gameDidResumeSignal isn't public. } catch (Exception e) { Console.WriteLine(e); Console.WriteLine(e.Message); throw; } try { MainGameSceneSetup mgs = GetGameSceneSetup(); BeatmapDataModel _beatmapDataModel = ReflectionUtil.GetPrivateField <BeatmapDataModel>(mgs, "_beatmapDataModel"); BeatmapData beatmapData = _beatmapDataModel.beatmapData; BeatmapLineData[] beatmapLinesData = beatmapData.beatmapLinesData; float LastTime = 0.0f; for (int i = 0; i < beatmapLinesData.Length; i++) { BeatmapObjectData[] beatmapObjectsData = beatmapLinesData[i].beatmapObjectsData; for (int j = beatmapObjectsData.Length - 1; j > 0; j--) { if (beatmapObjectsData[j].beatmapObjectType == BeatmapObjectType.Note) { if (((NoteData)beatmapObjectsData[j]).noteType != NoteType.Bomb) { if (beatmapObjectsData[j].time > LastTime) { LastNoteId = beatmapObjectsData[j].id; LastTime = beatmapObjectsData[j].time; } break; } } } } } catch (Exception e) { Console.WriteLine(e); Console.WriteLine(e.Message); throw; } }