示例#1
0
 private static void Prefix(ColorNoteVisuals __instance, NoteController noteController)
 {
     if (!(noteController is MultiplayerConnectedPlayerNoteController))
     {
         NoteColorizer.CNVStart(__instance, noteController);
     }
 }
示例#2
0
        /*
         * CNV ColorSO holders
         */

        internal static void CNVStart(ColorNoteVisuals cnv, NoteController nc)
        {
            ColorType noteType = nc.noteData.colorType;

            if (noteType == ColorType.ColorA || noteType == ColorType.ColorB)
            {
                CNVColorManager.CreateCNVColorManager(cnv, nc);
            }
        }
示例#3
0
        public CustomNoteColorNoteVisuals()
        {
            ColorNoteVisuals original = GetComponent <ColorNoteVisuals>();

            foreach (FieldInfo info in original.GetType().GetFields(BindingFlags.Public | BindingFlags.Instance | BindingFlags.NonPublic))
            {
                info.SetValue(this, info.GetValue(original));
            }
            Destroy(original);
        }
示例#4
0
 private CNVColorManager(ColorNoteVisuals cnv, NoteController nc)
 {
     _cnv          = cnv;
     _nc           = nc;
     _colorManager = _colorManagerAccessor(ref cnv);
     if (nc.noteData is CustomNoteData customNoteData)
     {
         _noteData = customNoteData;
     }
 }
 public virtual void HandleColorNoteVisualsDidInitEvent(ColorNoteVisuals colorNoteVisuals, NoteController noteController)
 {
     if (!_initialized)
     {
         _initialized = true;
         for (var i = 0; i < _initialSpriteAlphas.Length; i++)
         {
             _initialSpriteAlphas[i] = SpriteRenderers[i].color.a;
         }
     }
     OnColorNoteVisualsDidInit?.Invoke();
 }
示例#6
0
 private void Visuals_DidInit(ColorNoteVisuals visuals, NoteController noteController)
 {
     SetActiveThenColor(activeNote, visuals.noteColor);
     // Hide certain parts of the default note which is not required
     if (_customNote.Descriptor.DisableBaseNoteArrows)
     {
         _customNoteColorNoteVisuals.TurnOffVisuals();
     }
     else if (_pluginConfig.NoteSize != 1)
     {
         _customNoteColorNoteVisuals.ScaleVisuals(_pluginConfig.NoteSize);
     }
 }
示例#7
0
            internal void SetActiveColors()
            {
                ColorNoteVisuals colorNoteVisuals = _cnv;

                Color noteColor = ColorForCNVManager();

                SpriteRenderer arrowGlowSpriteRenderer  = _arrowGlowSpriteRendererAccessor(ref colorNoteVisuals);
                SpriteRenderer circleGlowSpriteRenderer = _circleGlowSpriteRendererAccessor(ref colorNoteVisuals);

                arrowGlowSpriteRenderer.color  = noteColor.ColorWithAlpha(arrowGlowSpriteRenderer.color.a);
                circleGlowSpriteRenderer.color = noteColor.ColorWithAlpha(circleGlowSpriteRenderer.color.a);
                MaterialPropertyBlockController[] materialPropertyBlockControllers = _materialPropertyBlockControllersAccessor(ref colorNoteVisuals);
                foreach (MaterialPropertyBlockController materialPropertyBlockController in materialPropertyBlockControllers)
                {
                    materialPropertyBlockController.materialPropertyBlock.SetColor(_colorID, noteColor);
                    materialPropertyBlockController.ApplyChanges();
                }
            }
示例#8
0
        public static void SetNoteColour(ColorNoteVisuals noteVis, Color c)
        {
            SpriteRenderer ____arrowGlowSpriteRenderer  = noteVis.GetField <SpriteRenderer>("_arrowGlowSpriteRenderer");
            SpriteRenderer ____circleGlowSpriteRenderer = noteVis.GetField <SpriteRenderer>("_circleGlowSpriteRenderer");
            MaterialPropertyBlockController ____materialPropertyBlockController = noteVis.GetField <MaterialPropertyBlockController>("_materialPropertyBlockController");

            if (____arrowGlowSpriteRenderer != null)
            {
                ____arrowGlowSpriteRenderer.color = c;
            }
            if (____circleGlowSpriteRenderer != null)
            {
                ____circleGlowSpriteRenderer.color = c;
            }
            MaterialPropertyBlock block = ____materialPropertyBlockController.materialPropertyBlock;

            block.SetColor(noteVis.GetField <int>("_colorID"), c);
        }
示例#9
0
            internal static CNVColorManager CreateCNVColorManager(ColorNoteVisuals cnv, NoteController nc)
            {
                CNVColorManager cnvColorManager = GetCNVColorManager(nc);

                if (cnvColorManager != null)
                {
                    if (nc.noteData is CustomNoteData customNoteData)
                    {
                        cnvColorManager._noteData         = customNoteData;
                        customNoteData.customData._color0 = _globalColor[0];
                        customNoteData.customData._color1 = _globalColor[1];
                    }

                    return(null);
                }

                CNVColorManager cnvcm;

                cnvcm = new CNVColorManager(cnv, nc);
                _cnvColorManagers.Add(cnvcm);
                return(cnvcm);
            }
示例#10
0
        public BurstSliderGameNoteController DecorateBurstSliderFill(BurstSliderGameNoteController original)
        {
            if (!_shouldSetup)
            {
                return(original);
            }

            original.gameObject.AddComponent <CustomBurstSliderController>();

            ColorNoteVisuals originalVisuals = original.GetComponent <ColorNoteVisuals>();

            CustomNoteColorNoteVisuals customVisuals = original.gameObject.AddComponent <CustomNoteColorNoteVisuals>();

            customVisuals.enabled = false;
            foreach (FieldInfo info in originalVisuals.GetType().GetFields(BindingFlags.Public | BindingFlags.Instance | BindingFlags.NonPublic))
            {
                info.SetValue(customVisuals, info.GetValue(originalVisuals));
            }
            UnityEngine.Object.Destroy(originalVisuals);

            return(original);
        }
示例#11
0
        static void Postfix(ColorNoteVisuals __instance, NoteController ____noteController, MaterialPropertyBlockController[] ____materialPropertyBlockControllers, int ____colorId, ref ColorManager ____colorManager)
        {
            if (!NiceMissManager.modActive)
            {
                return;
            }
            //    Debug.Log("ColorNoteVis Init");
            var outline = ____noteController.gameObject.GetComponentInChildren <Outline>();

            if (outline == null)
            {
                //      Debug.Log("Outline Not Found");
                outline = ____noteController.gameObject.AddComponent <Outline>();
            }

            Color c = ____colorManager.ColorForType(____noteController.noteData.colorType);

            outline.CheckRenderersValidity();
            outline.enabled      = false;
            outline.OutlineMode  = Outline.Mode.OutlineVisible;
            outline.OutlineColor = c;
            outline.OutlineWidth = PluginConfig.Instance.OutlineWidth;
        }
示例#12
0
        public static void SetNoteColour(ColorNoteVisuals noteVis, Color c)
        {
            FieldAccessor <ColorNoteVisuals, Color> .Set(ref noteVis, "_noteColor", c);

            SpriteRenderer ____arrowGlowSpriteRenderer = FieldAccessor <ColorNoteVisuals, SpriteRenderer> .Get(ref noteVis, "_arrowGlowSpriteRenderer");

            SpriteRenderer ____circleGlowSpriteRenderer = FieldAccessor <ColorNoteVisuals, SpriteRenderer> .Get(ref noteVis, "_circleGlowSpriteRenderer");

            MaterialPropertyBlockController[] ____materialPropertyBlockController = FieldAccessor <ColorNoteVisuals, MaterialPropertyBlockController[]> .Get(ref noteVis, "_materialPropertyBlockControllers");

            if (____arrowGlowSpriteRenderer != null)
            {
                ____arrowGlowSpriteRenderer.color = c;
            }
            if (____circleGlowSpriteRenderer != null)
            {
                ____circleGlowSpriteRenderer.color = c;
            }
            foreach (var block in ____materialPropertyBlockController)
            {
                block.materialPropertyBlock.SetColor(colorID, c);
                block.ApplyChanges();
            }
        }
示例#13
0
 private static void Prefix(ColorNoteVisuals __instance, NoteController noteController)
 {
     NoteColorizer.CNVStart(__instance, noteController);
 }
示例#14
0
#pragma warning disable SA1313 // Parameter names should begin with lower-case letter
        private static void Prefix(ColorNoteVisuals __instance, NoteController noteController)
#pragma warning restore SA1313 // Parameter names should begin with lower-case letter
        {
            NoteColorizer.CNVStart(__instance, noteController);
        }
        public static void Postfix(ref ColorNoteVisuals __instance, NoteController noteController, ref MeshRenderer ____arrowMeshRenderer, ref SpriteRenderer ____arrowGlowSpriteRenderer, ref SpriteRenderer ____circleGlowSpriteRenderer, ref float ____arrowGlowIntensity, ref MaterialPropertyBlockController[] ____materialPropertyBlockControllers, ref int ____colorID, ref ColorManager ____colorManager)
        {
            try
            {
                var noteMesh = noteController.gameObject.GetComponentInChildren <MeshRenderer>();
                //           noteMesh.enabled = true;
                CustomNote activeNote = Plugin.customNotes[Plugin.selectedNote];
                Transform  child      = noteController.gameObject.transform.Find("NoteCube");
                GameObject.Destroy(child.Find("customNote")?.gameObject);
                if (activeNote.path != "DefaultNotes")
                {
                    GameObject customNote;
                    switch (noteController.noteData.noteType)
                    {
                    case NoteType.NoteA:
                        if (noteController.noteData.cutDirection == NoteCutDirection.Any)
                        {
                            customNote = activeNote.noteDotLeft ?? activeNote.noteLeft;
                        }
                        else
                        {
                            customNote = activeNote.noteLeft;
                        }
                        break;

                    case NoteType.NoteB:
                        if (noteController.noteData.cutDirection == NoteCutDirection.Any)
                        {
                            customNote = activeNote.noteDotRight ?? activeNote.noteRight;
                        }
                        else
                        {
                            customNote = activeNote.noteRight;
                        }
                        break;

                    default:
                        return;
                    }
                    noteMesh.enabled = false;

                    if (activeNote.noteDescriptor.UsesNoteColor)
                    {
                        Color noteColor = ____colorManager.ColorForNoteType(noteController.noteData.noteType) * activeNote.noteDescriptor.NoteColorStrength;

                        for (int i = 0; i < customNote.GetComponentsInChildren <Transform>().Length; i++)
                        {
                            DisableNoteColorOnGameobject colorDisabled = customNote.GetComponentsInChildren <Transform>()[i].GetComponent <DisableNoteColorOnGameobject>();
                            if (!colorDisabled)
                            {
                                Renderer childRenderer = customNote.GetComponentsInChildren <Transform>()[i].GetComponent <Renderer>();
                                if (childRenderer)
                                {
                                    childRenderer.material.SetColor("_Color", noteColor);
                                }
                            }
                        }
                    }
                    if (activeNote.noteDescriptor.DisableBaseNoteArrows)
                    {
                        ____arrowMeshRenderer.enabled        = false;
                        ____arrowGlowSpriteRenderer.enabled  = false;
                        ____circleGlowSpriteRenderer.enabled = false;
                        //  if (noteController.noteData.cutDirection != NoteCutDirection.Any)
                        //      noteController.gameObject.transform.Find("NoteCube").Find("NoteArrow").GetComponent<MeshRenderer>().enabled = false;
                        //  noteController.gameObject.transform.Find("NoteCube").Find("NoteArrowGlow").GetComponent<SpriteRenderer>().enabled = false;
                        //  noteController.gameObject.transform.Find("NoteCube").Find("NoteCircleGlow").GetComponent<SpriteRenderer>().enabled = false;
                    }

                    GameObject fakeMesh = GameObject.Instantiate(customNote);
                    fakeMesh.name = "customNote";
                    fakeMesh.transform.SetParent(child);
                    fakeMesh.transform.localPosition = new Vector3(0.0f, 0.0f, 0.0f);
                    fakeMesh.transform.localScale    = new Vector3(0.4f, 0.4f, 0.4f);
                    fakeMesh.transform.Rotate(new Vector3(0, 0, 0), Space.Self);

                    /*var field = ____colorManager.GetType().GetField("_colorA", BindingFlags.Instance | BindingFlags.NonPublic);
                     * var leftColor = field.GetValue(____colorManager);
                     * var field2 = ____colorManager.GetType().GetField("_colorB", BindingFlags.Instance | BindingFlags.NonPublic);
                     * var rightColor = field2.GetValue(____colorManager);
                     */
                }
            }
            catch (Exception err)
            {
                Logger.log.Error(err);
            }
        }
 private static void OnDidInitEvent(ColorNoteVisuals cnv, NoteController noteController)
 {
     ApplyColorVisualOnNotes(true);
 }