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); } }
//Default colours // public static bool Prefix(SaberWeaponTrail __instance, ref Color __result, ref Color ____multiplierSaberColor, ref SaberTypeObject ____saberType) { if (VFXRainbowSabers.rainbowSaberColours != null) { __result = VFXRainbowSabers.rainbowSaberColours[____saberType.saberType == Saber.SaberType.SaberA ? 0 : 1]; return(false); } return(true); }
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); } }
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)); }