public MirrorFieldEditor(MirrorFieldData mirrorFieldData)
        {
            InitializeComponent();
            this._mirrorFieldData = mirrorFieldData;


            checkBox_reflection.Checked = mirrorFieldData.ReflectionInfo.Reflection;
            checkBox_alphaTest.Checked  = mirrorFieldData.ReflectionInfo.AlphaTest;

            trackBar_gradient.Value = mirrorFieldData.ReflectionInfo.Gradient;
            trackBar_alpha.Value    = mirrorFieldData.ReflectionInfo.Alpha;

            numericUpDown_xOffsetValue.Value = (decimal)mirrorFieldData.Offset.X;
            numericUpDown_yOffsetValue.Value = (decimal)mirrorFieldData.Offset.Y;

            comboBox_objectForOverlay.SelectedIndex = 0; // "mirror"
            int i = 0;

            foreach (string comboBoxItem in comboBox_objectForOverlay.Items)
            {
                if (comboBoxItem == mirrorFieldData.ReflectionInfo.ObjectForOverlay)
                {
                    comboBox_objectForOverlay.SelectedIndex = i;
                    break;
                }
            }

            //numericUpDown_xOffsetValue.Value = mirrorFieldData.

            pathLabel.Text = HaCreatorStateManager.CreateItemDescription(_mirrorFieldData);

            /*rBox.Checked = this._mirrorFieldData.r;
             * flipBox.Checked = this._mirrorFieldData.Flip;
             * hideBox.Checked = !this._mirrorFieldData.hide.HasValue ? false : this._mirrorFieldData.hide.Value;
             * if (this._mirrorFieldData.Name != null)
             * {
             *  nameEnable.Checked = true;
             *  nameBox.Text = this._mirrorFieldData.Name;
             * }
             * flowBox.Checked = this._mirrorFieldData.flow;
             *
             * SetOptionalInt(rxInt, rxBox, this._mirrorFieldData.rx);
             * SetOptionalInt(ryInt, ryBox, this._mirrorFieldData.ry);
             * SetOptionalInt(cxInt, cxBox, this._mirrorFieldData.cx);
             * SetOptionalInt(cyInt, cyBox, this._mirrorFieldData.cy);
             *
             * if (this._mirrorFieldData.tags == null)
             *  tagsEnable.Checked = false;
             * else
             * {
             *  tagsEnable.Checked = true; tagsBox.Text = this._mirrorFieldData.tags;
             * }*/
        }
        public MirrorFieldData CheckObjectWithinMirrorFieldDataBoundary(int x, int y, MirrorFieldDataType filter_objectForOverlay)
        {
            if (MirrorFieldDatas.Count == 0)
            {
                return(null);
            }

            Microsoft.Xna.Framework.Point pos        = new Microsoft.Xna.Framework.Point(x, y - 60);
            MirrorFieldData reflectionBoundaryWithin = MirrorFieldDatas.FirstOrDefault(
                mirror =>
            {
                return(mirror.Rectangle.Contains(pos) && mirror.MirrorFieldDataType == filter_objectForOverlay);
            });

            if (reflectionBoundaryWithin != null)
            {
                return(reflectionBoundaryWithin);
            }
            return(null);
        }