Ejemplo n.º 1
0
        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);
            }
        }
Ejemplo n.º 2
0
    //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);
    }
Ejemplo n.º 3
0
        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);
            }
        }
Ejemplo n.º 4
0
        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);
            }
        }
Ejemplo n.º 5
0
        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));
        }