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); } }
private IEnumerator WaitToCheckDefault() { yield return(new WaitUntil(() => Resources.FindObjectsOfTypeAll <Saber>().Any())); var hideOneSaber = false; var hiddenSaberType = Saber.SaberType.SaberA; if (BS_Utils.Plugin.LevelData.GameplayCoreSceneSetupData.difficultyBeatmap.parentDifficultyBeatmapSet.beatmapCharacteristic.characteristicNameLocalizationKey.Contains("ONE_SABER")) { hideOneSaber = true; hiddenSaberType = BS_Utils.Plugin.LevelData.GameplayCoreSceneSetupData.playerSpecificSettings.leftHanded ? Saber.SaberType.SaberB : Saber.SaberType.SaberA; } var sabers = Resources.FindObjectsOfTypeAll <Saber>(); Logger.Log("Default Sabers. Not Replacing", LogLevel.Debug); foreach (var saber in sabers) { if (!hideOneSaber) { saber.gameObject.SetActive(true); } else { saber.gameObject.SetActive(saber.saberType != hiddenSaberType); } if (saber.saberType == hiddenSaberType) { foreach (var t in saber.transform.GetComponentsInChildren <MeshFilter>()) { t.gameObject.SetActive(_saberRoot == null); var filter = t.GetComponentInChildren <MeshFilter>(); if (filter) { filter.gameObject.SetActive(_saberRoot == null);//.sharedMesh = null; } } } } var trails = Resources.FindObjectsOfTypeAll <SaberWeaponTrail>().ToArray(); for (var i = 0; i < trails.Length; i++) { ReflectionUtil.SetPrivateField(trails[i], "_multiplierSaberColor", new Color(1f, 1f, 1f, 0.251f)); } }
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); } }
void Awake() { _leftTopLocation = Vector3.zero; _rightTopLocation = Vector3.zero; _saberRoot = null; //Reset Trails SaberWeaponTrail[] trails = Resources.FindObjectsOfTypeAll <SaberWeaponTrail>().ToArray(); for (int i = 0; i < trails.Length; i++) { SaberWeaponTrail trail = trails[i]; ReflectionUtil.SetPrivateField(trail, "_multiplierSaberColor", new Color(1f, 1f, 1f, 0.251f)); ReflectionUtil.SetPrivateField(trail as Xft.XWeaponTrail, "_whiteSteps", 4); } //Logger.Log(Plugin._currentSaberPath, LogLevel.Debug); if (Plugin._currentSaberName == "Default Sabers") { StartCoroutine(WaitToCheckDefault()); return; } Logger.Log("Replacing sabers"); if (CustomSaber == null) { Logger.Log("Assets Bundle is null", LogLevel.Warning); return; } var saberRoot = CustomSaber.LoadAsset <GameObject>("_customsaber"); if (saberRoot != null) { Logger.Log(saberRoot.GetComponent <SaberDescriptor>().SaberName); _saberRoot = Instantiate(saberRoot); _rightSaber = _saberRoot.transform.Find("RightSaber").gameObject; _leftSaber = _saberRoot.transform.Find("LeftSaber").gameObject; } StartCoroutine(WaitForSabers(saberRoot)); }
public void RefreshScreen() { if (_modsTableView == null) { _modsTableView = new GameObject().AddComponent <TableView>(); _modsTableView.transform.SetParent(rectTransform, false); _modsTableView.dataSource = this; try { var viewportMask = Instantiate(Resources.FindObjectsOfTypeAll <UnityEngine.UI.Mask>().First(), _modsTableView.transform, false); _modsTableView.GetComponentsInChildren <RectTransform>().First(x => x.name == "Content").transform.SetParent(viewportMask.rectTransform, false); } catch { } ((RectTransform)_modsTableView.transform).anchorMin = new Vector2(0f, 0.5f); ((RectTransform)_modsTableView.transform).anchorMax = new Vector2(1f, 0.5f); ((RectTransform)_modsTableView.transform).sizeDelta = new Vector2(0f, 60f); ((RectTransform)_modsTableView.transform).anchoredPosition = new Vector2(0f, 0f); _modsTableView.didSelectRowEvent += _modsTableView_DidSelectRowEvent; ReflectionUtil.SetPrivateField(_modsTableView, "_pageUpButton", _pageUpButton); ReflectionUtil.SetPrivateField(_modsTableView, "_pageDownButton", _pageDownButton); _modsTableView.ScrollToRow(0, false); } else { _modsTableView.ReloadData(); _modsTableView.ScrollToRow(0, false); } }
public void SetColor(Color newColor) { TrailColor = newColor; ReflectionUtil.SetPrivateField(trail, "MyColor", TrailColor); }
public void SetMaterial(Material newMat) { TrailMaterial = newMat; ReflectionUtil.SetPrivateField(trail, "MyMaterial", TrailMaterial); }
private void Start() { _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 { _scoreController = Resources.FindObjectsOfTypeAll <ScoreController>().FirstOrDefault(); if (_scoreController == null) { Console.WriteLine("SCORE CONTROLLER NULL"); } _saberCollisionManager = Resources.FindObjectsOfTypeAll <ObstacleSaberSparkleEffectManager>().FirstOrDefault(); if (_saberCollisionManager == null) { Console.WriteLine("COLLISION MANAGER NULL"); } _gameEnergyCounter = Resources.FindObjectsOfTypeAll <GameEnergyCounter>().FirstOrDefault(); if (_gameEnergyCounter == null) { Console.WriteLine("energery counter null"); } _beatmapCallback = Resources.FindObjectsOfTypeAll <BeatmapObjectCallbackController>().FirstOrDefault(); if (_beatmapCallback == null) { Console.WriteLine("BEATMAP CALLBACK NULL"); } _gamePauseManager = Resources.FindObjectsOfTypeAll <GamePauseManager>().FirstOrDefault(); if (_gamePauseManager == null) { Console.WriteLine("GamePauseManager Null"); } _scoreController.noteWasCutEvent += SliceCallBack; _scoreController.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; } }
protected override void DidActivate(bool firstActivation, ActivationType activationType) { previewparent = Instantiate(new GameObject("preview parent")); previewparent.transform.position = new Vector3(2.5f, 1, 0.3f); previewparent.transform.Rotate(new Vector3(0, -30, 0)); _customSaberUI = CustomSaberUI.Instance; _parentViewController = GetComponentInParent <CustomSaberMasterViewController>(); try { if (_pageDownButton == null) { try { _pageDownButton = _customSaberUI.CreateButton(rectTransform, "PageDownButton"); ((RectTransform)_pageDownButton.transform).anchorMin = new Vector2(0.5f, 0f); ((RectTransform)_pageDownButton.transform).anchorMax = new Vector2(0.5f, 0f); ((RectTransform)_pageDownButton.transform).anchoredPosition = new Vector2(0f, 10f); _pageDownButton.interactable = true; _pageDownButton.onClick.AddListener(delegate() { _sabersTableView.PageScrollDown(); }); } catch (Exception e) { Console.WriteLine(e); throw; } } if (_pageUpButton == null) { try { _pageUpButton = _customSaberUI.CreateButton(rectTransform, "PageUpButton"); ((RectTransform)_pageUpButton.transform).anchorMin = new Vector2(0.5f, 1f); ((RectTransform)_pageUpButton.transform).anchorMax = new Vector2(0.5f, 1f); ((RectTransform)_pageUpButton.transform).anchoredPosition = new Vector2(0f, -14f); _pageUpButton.interactable = true; _pageUpButton.onClick.AddListener(delegate() { _sabersTableView.PageScrollUp(); }); } catch (Exception e) { Console.WriteLine(e); throw; } } if (_sabersTableView == null) { _sabersTableView = new GameObject().AddComponent <TableView>(); _sabersTableView.transform.SetParent(rectTransform, false); var viewportMask = Instantiate(Resources.FindObjectsOfTypeAll <Mask>().First(), _sabersTableView.transform, false); viewportMask.transform.DetachChildren(); _sabersTableView.GetComponentsInChildren <RectTransform>().First(x => x.name == "Content").transform.SetParent(viewportMask.rectTransform, false); ((RectTransform)_sabersTableView.transform).anchorMin = new Vector2(0f, 0.5f); ((RectTransform)_sabersTableView.transform).anchorMax = new Vector2(1f, 0.5f); ((RectTransform)_sabersTableView.transform).sizeDelta = new Vector2(0f, 60f); ((RectTransform)_sabersTableView.transform).anchoredPosition = new Vector2(0f, 0f); _sabersTableView.didSelectRowEvent += _sabersTableView_DidSelectRowEvent; ReflectionUtil.SetPrivateField(_sabersTableView, "_pageUpButton", _pageUpButton); ReflectionUtil.SetPrivateField(_sabersTableView, "_pageDownButton", _pageDownButton); _sabersTableView.dataSource = this; _sabersTableView.ScrollToRow(0, false); } else { _sabersTableView.ReloadData(); _sabersTableView.ScrollToRow(0, false); } } catch (Exception ex) { Console.WriteLine(ex); } _songListTableCellInstance = Resources.FindObjectsOfTypeAll <StandardLevelListTableCell>().First(x => (x.name == "StandardLevelListTableCell")); LoadSabers(); base.DidActivate(true, ActivationType.AddedToHierarchy); }