Ejemplo n.º 1
0
    private void SetBlend(SliderData slider, float blend)
    {
        slider.value = blend;
        slider.anim.SetFloat(_animationBlendParam, blend);

        _dipColor = new Color(_sliderRed.value, _sliderGreen.value, _sliderBlue.value);
        _rendererToColor.material.color = _dipColor;
    }
        //  在panelAdjust_Paint方法中调用。
        //  用于在指定滑块控件的两端绘制图标。
        //  要绘制的图标已经存储在DtailsActions用户控件窗体中得ImageList对象里。
        private void DrawSliderIcons(Graphics g, TrackBar slider)
        {
            const int buf = 3;
            //  获取此滑块控件的滑块绑定数据
            SliderData data = (SliderData)slider.Tag;

            //  在左边绘制表示低值的图案
            imageList.Draw(g, (slider.Left - imageList.ImageSize.Width - buf), (slider.Top - buf), data.ImageIndexLow);
            //  在右边绘制表示高值得图案
            imageList.Draw(g, (slider.Right + buf), (slider.Top - buf), data.ImageIndexHigh);
        }
        //处理鼠标控制滑块时鼠标键抬起的事件。处理方法与前面的slider_KeyUp一致
        private void slider_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e)
        {
            //判断哪个滑块触发的事件,获取滑块绑定的数据
            TrackBar   slider = (TrackBar)sender;
            SliderData data   = (SliderData)slider.Tag;

            //触发其他事件表示操作应当被执行
            if (data.ValueChanged)
            {
                OnNewAction(new ActionItem(data.Action, slider.Value));
                data.ValueChanged = false;
            }
        }
Ejemplo n.º 4
0
 private void LoadSettingsFromJSON(string json, out SliderData data)
 {
     try
     {
         data = JsonUtility.FromJson <SliderData>(json);
     }
     catch (Exception)
     {
         UnityEngine.Debug.Log("Couldnt load JSON!\nClipboard text: " + json);
         data = new SliderData();
         return;
     }
 }
        //处理鼠标控件微调处理器时鼠标键抬起的事件。
        //处理方法与前面spinner_KeyUp事件基本一致,只是没有了开始部分触发spinner_ValueChanged事件的代码行。
        private void spinner_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e)
        {
            //触发操作事件,从相关滑块控件中获取数据
            NumericUpDown numControl = (NumericUpDown)sender;
            TrackBar      slider     = (TrackBar)numControl.Tag;
            SliderData    data       = (SliderData)slider.Tag;

            if (data.ValueChanged)
            {
                OnNewAction(new ActionItem(data.Action, slider.Value));
                data.ValueChanged = false;
            }
        }
Ejemplo n.º 6
0
 private void SetSliderToData(SliderData data)
 {
     for (int i = 0; i < sliders.Count; i++)
     {
         for (int j = 0; j < data.sliderData.Count; j++)
         {
             if (registeredSliders[i].Equals(data.sliderData[j].sliderPref))
             {
                 sliders[i].slider.value = data.sliderData[j].sliderValue;
             }
         }
     }
 }
        //处理滑块值改变的事件,所有滑块控件都出发这个事件。
        //首先判断哪个滑块出发的事件,然后获取该滑块绑定的数据。
        //然后更新滑块对应的微调控件值,并阻止连续触发滑块值改变事件。
        //最后设定滑块绑定的数据的值改变标志。
        private void slider_ValueChanged(object sender, System.EventArgs e)
        {
            // 判断哪个滑块触发的事件,并获取滑块绑定的数据。
            TrackBar   slider = (TrackBar)sender;
            SliderData data   = (SliderData)slider.Tag;

            //更新滑块微调控件,使用_updatingSlider标志阻止连续触发事件
            _updatingSlider          = true;
            data.NumericUpDown.Value = slider.Value;
            _updatingSlider          = false;

            //当值改变时被设置,当事件触发时清除设置
            data.ValueChanged = true;
        }
Ejemplo n.º 8
0
        public void CopySettingsToClipboard()
        {
            string clipboardText = "";
            List <DebugSlider.JSONData> sliderJsons = new List <DebugSlider.JSONData>();

            for (int i = 0; i < sliders.Count; i++)
            {
                sliderJsons.Add(sliders[i].GetJSON);
            }
            sliderData    = new SliderData(sliderJsons);
            clipboardText = JsonUtility.ToJson(sliderData);
            UnityEngine.Debug.Log(clipboardText);
            UniClipboard.SetText(clipboardText);
        }
Ejemplo n.º 9
0
    public ElementDataBase Serialize(UIBehaviour element)
    {
        SliderData sliderData    = new SliderData();
        Slider     sliderElement = element as Slider;

        if (sliderElement)
        {
            sliderData.value         = sliderElement.value;
            sliderData.targetGraphic = ObjectCache.Get(sliderElement.targetGraphic);
            sliderData.fillRect      = ObjectCache.Get(sliderElement.fillRect);
            sliderData.handleRect    = ObjectCache.Get(sliderElement.handleRect);
            sliderData.ID            = sliderElement.GetInstanceID();
        }

        return(sliderData);
    }
Ejemplo n.º 10
0
    public void Deserialize(NetworkManager networkManager, ElementDataBase elementData, UIBehaviour element)
    {
        SliderData sliderData    = elementData as SliderData;
        Slider     sliderElement = element as Slider;

        if (sliderElement)
        {
            if (ignoreServerUpdates)
            {
                if (sentValue == sliderData.value)
                {
                    ignoreServerUpdates = false;
                }
            }
            else
            {
                ignoreCallback      = true;
                sliderElement.value = sliderData.value;
                ignoreCallback      = false;
                ObjectCache.Bind <Graphic>(x => sliderElement.targetGraphic    = x, sliderData.targetGraphic);
                ObjectCache.Bind <RectTransform>(x => sliderElement.fillRect   = x, sliderData.fillRect);
                ObjectCache.Bind <RectTransform>(x => sliderElement.handleRect = x, sliderData.handleRect);
            }

            IgnoreTransformUpdates(sliderElement.fillRect);
            IgnoreTransformUpdates(sliderElement.handleRect);

            if (networkManager)
            {
                sliderElement.onValueChanged.AddListener((value) =>
                {
                    if (ignoreCallback)
                    {
                        return;
                    }
                    sentValue = value;
                    InputMessage inputMessage = new InputMessage(InputMessageType.Slider, sliderData.ID, value);
                    networkManager.SendMessageToServer(inputMessage.Serialize());
                    ignoreServerUpdates = true;
                });
            }
        }
    }
Ejemplo n.º 11
0
        public bool Slider(int id, SliderData sliderData, out Vector3 newPosition)
        {
            newPosition = sliderData.position;

            if (nearestControl == id && mouseButton == 0 && eventType == EventType.MouseDown)
            {
                hotControl = id;
            }

            if (hotControl == id && mouseButton == 0 && eventType == EventType.MouseUp)
            {
                hotControl = 0;
            }

            if (hotControl == id && eventType == EventType.MouseDrag)
            {
                newPosition += sliderDelta;
                return(true);
            }

            return(false);
        }
Ejemplo n.º 12
0
    void HandleSlider(SliderData data)
    {
        if (testSliderObj == null)
        {
            return;
        }
        if (data.sliderValue < 0.4f)
        {
            testSliderObj.SetActive(true);
        }
        else
        {
            testSliderObj.SetActive(false);
        }


        //print(data.sliderValue);o
        //MeshRenderer mr = testSliderObj.GetComponent<MeshRenderer>();
        //if (mr)
        //{
        //    mr.material.color = Color.Lerp(Color.green, Color.red, data.sliderValue);
        //}
    }
Ejemplo n.º 13
0
        public ColorPicker()
        {
            InitializeComponent();

            byte Alpha = 255;

            var colors = new List <Color>();

            for (byte j = 128; j < 255; j++)
            {
                colors.Add(new Color {
                    A = Alpha, R = j, G = 255, B = 0
                });
            }

            for (byte j = 0; j < 255; j++)
            {
                colors.Add(new Color {
                    A = Alpha, R = 255, G = (byte)(255 - j), B = 0
                });
            }

            for (byte j = 0; j < 255; j++)
            {
                colors.Add(new Color {
                    A = Alpha, R = 255, G = 0, B = j
                });
            }

            for (byte j = 0; j < 255; j++)
            {
                colors.Add(new Color {
                    A = Alpha, R = (byte)(255 - j), G = 0, B = 255
                });
            }

            for (byte j = 0; j < 255; j++)
            {
                colors.Add(new Color {
                    A = Alpha, R = 0, G = j, B = 255
                });
            }

            for (byte j = 0; j < 255; j++)
            {
                colors.Add(new Color {
                    A = Alpha, R = 0, G = 255, B = (byte)(255 - j)
                });
            }

            for (byte j = 0; j < 127; j++)
            {
                colors.Add(new Color {
                    A = Alpha, R = j, G = 255, B = 0
                });
            }

            List <Border> labels = colors.Select(color => new Border {
                Height = 22, Width = 2, Background = new SolidColorBrush(color), BorderThickness = new Thickness(0)
            }).ToList();

            foreach (var label in labels)
            {
                panel.Children.Add(label);
            }

            ColorShadeSelector.RenderTransform = colorShadeSelectorTransform;

            var RSliderData = new SliderData {
                Canvas = RCanvas, SelectorBorder = RSelector, Type = ColorType.R
            };

            RCanvas.Tag = RSliderData;
            RSelector.RenderTransform = RSliderData.SelectorTransform;
            var GSliderData = new SliderData {
                Canvas = GCanvas, SelectorBorder = GSelector, Type = ColorType.G
            };

            GCanvas.Tag = GSliderData;
            GSelector.RenderTransform = GSliderData.SelectorTransform;
            var BSliderData = new SliderData {
                Canvas = BCanvas, SelectorBorder = BSelector, Type = ColorType.B
            };

            BCanvas.Tag = BSliderData;
            BSelector.RenderTransform = BSliderData.SelectorTransform;
            var ASliderData = new SliderData {
                Canvas = ACanvas, SelectorBorder = ASelector, Type = ColorType.A
            };

            ACanvas.Tag = ASliderData;
            ASelector.RenderTransform = ASliderData.SelectorTransform;


            DataContext = this;
            SliderStackPanel.DataContext      = CurrentViewColor;
            RTextBox.DataContext              = this;
            GTextBox.DataContext              = this;
            BTextBox.DataContext              = this;
            ATextBox.DataContext              = this;
            ColorShadingRectangle.DataContext = CurrentViewColor;
        }
Ejemplo n.º 14
0
    public override void UpdateStation(float deltaTime)
    {
        base.UpdateStation(deltaTime);

        if (_grabbedSlider == null)
        {
            if (Input.GetMouseButtonDown(0))
            {
                RaycastHit hit;
                Ray        ray = Camera.main.ScreenPointToRay(Input.mousePosition);
                if (Physics.Raycast(ray, out hit, 100.0f, WorkStationManager.WorkstationLayermask))
                {
                    Animator animator = hit.collider.gameObject.GetComponent <Animator>();
                    if (animator != null)
                    {
                        if (animator == _sliderRed.anim)
                        {
                            _grabbedSlider = _sliderRed;
                        }
                        else if (animator == _sliderGreen.anim)
                        {
                            _grabbedSlider = _sliderGreen;
                        }
                        else if (animator == _sliderBlue.anim)
                        {
                            _grabbedSlider = _sliderBlue;
                        }
                    }
                }
            }
        }
        else
        {
            Ray   ray         = Camera.main.ScreenPointToRay(Input.mousePosition);
            Plane sliderPlane = new Plane(_grabbedSlider.anim.transform.forward, _grabbedSlider.start);
            float distance    = 0;
            if (sliderPlane.Raycast(ray, out distance))
            {
                Vector3 collisionPoint = ray.GetPoint(distance);
                Vector3 fromTo         = _grabbedSlider.end - _grabbedSlider.start;

                Vector3 proj       = Vector3.Project(collisionPoint, _grabbedSlider.anim.transform.up);
                Vector3 fromProj   = Vector3.Project(_grabbedSlider.start, _grabbedSlider.anim.transform.up);
                Vector3 fromToProj = (proj - fromProj);

                float lenght = fromToProj.magnitude / fromTo.magnitude;
                if (Vector3.Dot(fromToProj, fromTo) < 0)
                {
                    lenght = 0;
                }


                SetBlend(_grabbedSlider, lenght);
            }

            if (Input.GetMouseButtonUp(0))
            {
                _grabbedSlider = null;
            }
        }
    }
        private static void Postfix(BeatmapObjectsInTimeRowProcessor.TimeSliceContainer <BeatmapDataItem> allObjectsTimeSlice, int ____numberOfLines)
        {
            IEnumerable <NoteData>   enumerable  = TimeSliceContainerItemsAccessor(ref allObjectsTimeSlice).OfType <NoteData>();
            IEnumerable <SliderData> enumerable2 = TimeSliceContainerItemsAccessor(ref allObjectsTimeSlice).OfType <SliderData>();
            IEnumerable <BeatmapObjectsInTimeRowProcessor.SliderTailData> enumerable3 = TimeSliceContainerItemsAccessor(ref allObjectsTimeSlice).OfType <BeatmapObjectsInTimeRowProcessor.SliderTailData>();

            if (!enumerable.Any(x => x.lineIndex > 3 || x.lineIndex < 0))
            {
                return;
            }
            Dictionary <int, List <NoteData> > notesInColumnsReusableProcessingDictionaryOfLists = new Dictionary <int, List <NoteData> >();

            foreach (NoteData noteData in enumerable)
            {
                if (!notesInColumnsReusableProcessingDictionaryOfLists.ContainsKey(noteData.lineIndex))
                {
                    notesInColumnsReusableProcessingDictionaryOfLists[noteData.lineIndex] = new List <NoteData>(3);
                }
                List <NoteData> list = notesInColumnsReusableProcessingDictionaryOfLists[noteData.lineIndex];
                bool            flag = false;
                for (int i = 0; i < list.Count; i++)
                {
                    if (list[i].noteLineLayer > noteData.noteLineLayer)
                    {
                        list.Insert(i, noteData);
                        flag = true;
                        break;
                    }
                }
                if (!flag)
                {
                    list.Add(noteData);
                }
            }
            foreach (List <NoteData> list in notesInColumnsReusableProcessingDictionaryOfLists.Values)
            {
                for (int j = 0; j < list.Count; j++)
                {
                    list[j].SetBeforeJumpNoteLineLayer((NoteLineLayer)j);
                }
            }
            foreach (SliderData sliderData in enumerable2)
            {
                foreach (NoteData noteData2 in enumerable)
                {
                    if (SliderHeadPositionOverlapsWithNote(sliderData, noteData2))
                    {
                        sliderData.SetHasHeadNote(true);
                        sliderData.SetHeadBeforeJumpLineLayer(noteData2.beforeJumpNoteLineLayer);
                        if (sliderData.sliderType == SliderData.Type.Burst)
                        {
                            noteData2.ChangeToBurstSliderHead();
                            if (noteData2.cutDirection == sliderData.tailCutDirection)
                            {
                                Vector2 line = StaticBeatmapObjectSpawnMovementData.Get2DNoteOffset(noteData2.lineIndex, ____numberOfLines, noteData2.noteLineLayer) - StaticBeatmapObjectSpawnMovementData.Get2DNoteOffset(sliderData.tailLineIndex, ____numberOfLines, sliderData.tailLineLayer);
                                float   num  = noteData2.cutDirection.Direction().SignedAngleToLine(line);
                                if (Mathf.Abs(num) <= 40f)
                                {
                                    noteData2.SetCutDirectionAngleOffset(num);
                                    sliderData.SetCutDirectionAngleOffset(num, num);
                                }
                            }
                        }
                        else
                        {
                            noteData2.ChangeToSliderHead();
                        }
                    }
                }
            }
            foreach (BeatmapObjectsInTimeRowProcessor.SliderTailData sliderTailData in enumerable3)
            {
                SliderData slider = sliderTailData.slider;
                foreach (NoteData noteData3 in enumerable)
                {
                    if (SliderTailPositionOverlapsWithNote(slider, noteData3))
                    {
                        slider.SetHasTailNote(true);
                        slider.SetTailBeforeJumpLineLayer(noteData3.beforeJumpNoteLineLayer);
                        noteData3.ChangeToSliderTail();
                    }
                }
            }
        }
 private static bool SliderTailPositionOverlapsWithNote(SliderData slider, NoteData note)
 {
     return(slider.tailLineIndex == note.lineIndex && slider.tailLineLayer == note.noteLineLayer);
 }
Ejemplo n.º 17
0
 private static void Prefix(SliderData __instance, out string __state)
 {
     //Directional mirroring of the head and tail are handled properly by NoteCutDirection.Mirrored
     __state = $"{__instance.headLineIndex};{__instance.tailLineIndex}";
 }
Ejemplo n.º 18
0
        private static void Postfix(SliderData __instance, string __state)
        {
            int headLineIndex = int.Parse(__state.Split(';')[0]);
            int tailLineIndex = int.Parse(__state.Split(';')[1]);

            if (headLineIndex is > 3 or < 0)
            {
                switch (headLineIndex)
                {
                case >= 1000 or <= -1000:
                {
                    int newIndex = headLineIndex;
                    var leftSide = false;
                    if (newIndex <= -1000)
                    {
                        newIndex += 2000;
                    }

                    if (newIndex >= 4000)
                    {
                        leftSide = true;
                    }

                    newIndex = 5000 - newIndex;
                    if (leftSide)
                    {
                        newIndex -= 2000;
                    }

                    __instance.SetProperty("headLineIndex", newIndex);
                    break;
                }

                case > 3:
                {
                    int diff         = (headLineIndex - 3) * 2;
                    int newLaneCount = 4 + diff;
                    __instance.SetProperty("headLineIndex", newLaneCount - diff - 1 - headLineIndex);
                    break;
                }

                case < 0:
                {
                    int diff         = (0 - headLineIndex) * 2;
                    int newLaneCount = 4 + diff;
                    __instance.SetProperty("headLineIndex", newLaneCount - diff - 1 - headLineIndex);
                    break;
                }
                }
            }
            if (tailLineIndex is > 3 or < 0)
            {
                switch (tailLineIndex)
                {
                case >= 1000 or <= -1000:
                {
                    int newIndex = tailLineIndex;
                    var leftSide = false;
                    if (newIndex <= -1000)
                    {
                        newIndex += 2000;
                    }

                    if (newIndex >= 4000)
                    {
                        leftSide = true;
                    }

                    newIndex = 5000 - newIndex;
                    if (leftSide)
                    {
                        newIndex -= 2000;
                    }

                    __instance.SetProperty("tailLineIndex", newIndex);
                    break;
                }

                case > 3:
                {
                    int diff         = (tailLineIndex - 3) * 2;
                    int newLaneCount = 4 + diff;
                    __instance.SetProperty("tailLineIndex", newLaneCount - diff - 1 - tailLineIndex);
                    break;
                }

                case < 0:
                {
                    int diff         = (0 - tailLineIndex) * 2;
                    int newLaneCount = 4 + diff;
                    __instance.SetProperty("tailLineIndex", newLaneCount - diff - 1 - tailLineIndex);
                    break;
                }
                }
            }
        }
Ejemplo n.º 19
0
            public static Slider fromString(string str, int repeat)
            {
                Slider slider = new Slider();
                slider.Repeats = repeat;
                string[] data = str.Split('|');
                for (int i = 1; i < data.Length; i++)
                {
                    SliderData sData = new SliderData();
                    int x = 0, y = 0;

                    int.TryParse(data[i].Split(':')[0], out x);
                    int.TryParse(data[i].Split(':')[1], out y);

                    sData.X = x;
                    sData.Y = y;
                    try
                    {
                        slider.points.Add(sData);
                    }
                    catch
                    {
                        System.Diagnostics.Debug.WriteLine("" + slider.points.Count + " : " + repeat);
                    }
                }
                if (repeat >= 25)
                {
                    slider.PressAndHold = true;
                }
                else if (repeat > 1)
                {
                    for (int z = 1; z < repeat; z++)
                    {
                        int start = z % 2 != 0 ? 0 : slider.points.Count - 1;
                        int end = z % 2 != 0 ? slider.points.Count : 0;
                        int add = z % 2 == 0 ? -1 : 1;
                        for (int i = start; (z % 2 == 0 && i >= end) || (z % 2 != 0 && i < end); i += add)
                        {
                            try
                            {
                                slider.points.Add(slider.points[i]);
                            }
                            catch
                            {
                                System.Diagnostics.Debug.WriteLine("" + slider.points.Count + " : " + repeat);
                            }
                        }
                    }
                }

                return slider;
            }
Ejemplo n.º 20
0
        public override void Read(IBitReader reader, ushort version)
        {
            base.Read(reader, version);

            this._Unknown1 = reader.ReadGuid();
            this._Unknown2 = reader.ReadGuid();

            var sliderCount = reader.ReadUInt32();
            var sliderGuids = new Guid[sliderCount];

            for (uint i = 0; i < sliderCount; i++)
            {
                sliderGuids[i] = reader.ReadGuid();
            }
            var sliderValues = new float[sliderCount];

            for (uint i = 0; i < sliderCount; i++)
            {
                sliderValues[i] = reader.ReadFloat32();
            }
            this._SliderValues.Clear();
            for (uint i = 0; i < sliderCount; i++)
            {
                var instance = new SliderData();
                instance.Guid  = sliderGuids[i];
                instance.Value = sliderValues[i];
                this._SliderValues.Add(instance);
            }

            this._Unknown4      = reader.ReadUInt8();
            this._HeadTextureId = version < 4 ? 0 : reader.ReadUInt32();

            var unknown5Count = reader.ReadUInt32();

            this._Unknown5.Clear();
            for (uint i = 0; i < unknown5Count; i++)
            {
                this._Unknown5.Add(reader.ReadUInt32());
            }

            var unknown6Count = reader.ReadUInt32();

            this._Unknown6.Clear();
            for (uint i = 0; i < unknown6Count; i++)
            {
                this._Unknown6.Add(reader.ReadUInt32());
            }

            var unknown7Count = reader.ReadUInt32();

            this._Unknown7.Clear();
            for (uint i = 0; i < unknown7Count; i++)
            {
                this._Unknown7.Add(reader.ReadVector3());
            }

            var boneCount = reader.ReadUInt32();

            this._Bones.Clear();
            for (uint i = 0; i < boneCount; i++)
            {
                this._Bones.Add(reader.ReadBytes(12));
            }
        }