Пример #1
0
        private void SetValueFromInput()
        {
            if (float.TryParse(x, out float fX) &&
                float.TryParse(y, out float fY) &&
                float.TryParse(z, out float fZ) &&
                float.TryParse(w, out float fW))
            {
                object vector = null;

                switch (VectorSize)
                {
                case 2: vector = new Vector2(fX, fY); break;

                case 3: vector = new Vector3(fX, fY, fZ); break;

                case 4: vector = new Vector4(fX, fY, fZ, fW); break;
                }

                if (vector != null)
                {
                    Value = vector;
                    OwnerCacheObject.SetValue();
                }
            }
        }
Пример #2
0
        public override void DrawValue(Rect window, float width)
        {
            if (m_isBool)
            {
                var b     = (bool)Value;
                var label = $"<color={(b ? "lime" : "red")}>{b}</color>";

                if (OwnerCacheObject.CanWrite)
                {
                    b = GUILayout.Toggle(b, label, new GUILayoutOption[0]);
                    if (b != (bool)Value)
                    {
                        Value = b;
                        OwnerCacheObject.SetValue();
                    }
                }
                else
                {
                    GUILayout.Label(label, new GUILayoutOption[0]);
                }

                return;
            }

            // all other non-bool values use TextField

            GUIUnstrip.BeginVertical(new GUILayoutOption[0]);

            GUIUnstrip.BeginHorizontal(new GUILayoutOption[0]);

            GUILayout.Label("<color=#2df7b2><i>" + ValueType.Name + "</i></color>", new GUILayoutOption[] { GUILayout.Width(50) });

            m_valueToString = GUIUnstrip.TextArea(m_valueToString, new GUILayoutOption[] { GUILayout.ExpandWidth(true) });
            if (OwnerCacheObject.CanWrite)
            {
                if (GUILayout.Button("<color=#00FF00>Apply</color>", new GUILayoutOption[] { GUILayout.Width(60) }))
                {
                    SetValueFromInput();
                }
            }

            if (ModConfig.Instance.Bitwise_Support && m_canBitwiseOperate)
            {
                m_inBitwiseMode = GUILayout.Toggle(m_inBitwiseMode, "Bitwise?", new GUILayoutOption[0]);
            }

            GUIUnstrip.Space(10);

            GUILayout.EndHorizontal();

            if (ModConfig.Instance.Bitwise_Support && m_inBitwiseMode)
            {
                DrawBitwise();
            }

            GUILayout.EndVertical();
        }
Пример #3
0
 private void SetValueFromInput()
 {
     if (float.TryParse(x, out float fX) &&
         float.TryParse(y, out float fY) &&
         float.TryParse(z, out float fZ))
     {
         Value = Quaternion.Euler(new Vector3(fX, fY, fZ));
         OwnerCacheObject.SetValue();
     }
 }
Пример #4
0
 private void SetValueFromInput()
 {
     if (float.TryParse(r, out float fR) &&
         float.TryParse(g, out float fG) &&
         float.TryParse(b, out float fB) &&
         float.TryParse(a, out float fA))
     {
         Value = new Color(fR, fG, fB, fA);
         OwnerCacheObject.SetValue();
     }
 }
Пример #5
0
 private void SetValueFromInput()
 {
     if (float.TryParse(x, out float fX) &&
         float.TryParse(y, out float fY) &&
         float.TryParse(w, out float fW) &&
         float.TryParse(h, out float fH))
     {
         Value = new Rect(fX, fY, fW, fH);
         OwnerCacheObject.SetValue();
     }
 }
Пример #6
0
        private void SetValueFromBinaryInput()
        {
            try
            {
                var method = typeof(Convert).GetMethod($"To{ValueType.Name}", new Type[] { typeof(string), typeof(int) });
                Value = method.Invoke(null, new object[] { m_binaryInput, 2 });

                OwnerCacheObject.SetValue();
                RefreshToString();
            }
            catch (Exception e)
            {
                ExplorerCore.Log("Exception setting value: " + e.GetType() + ", " + e.Message);
            }
        }
Пример #7
0
 private void DrawApplyButton()
 {
     if (OwnerCacheObject.CanWrite)
     {
         if (GUILayout.Button("<color=#00FF00>Apply</color>", new GUILayoutOption[] { GUILayout.Width(60) }))
         {
             if (m_isBool)
             {
                 OwnerCacheObject.SetValue();
             }
             else
             {
                 SetValueFromInput();
             }
         }
     }
 }
Пример #8
0
        public void SetFlagsFromInput()
        {
            string val = "";

            for (int i = 0; i < EnumNames.Length; i++)
            {
                if (m_enabledFlags[i])
                {
                    if (val != "")
                    {
                        val += ", ";
                    }
                    val += EnumNames[i];
                }
            }
            Value = Enum.Parse(ValueType, val);
            OwnerCacheObject.SetValue();
        }
Пример #9
0
        public override void DrawValue(Rect window, float width)
        {
            if (OwnerCacheObject.CanWrite)
            {
                if (GUILayout.Button("<", new GUILayoutOption[] { GUILayout.Width(25) }))
                {
                    SetEnum(-1);
                    OwnerCacheObject.SetValue();
                }
                if (GUILayout.Button(">", new GUILayoutOption[] { GUILayout.Width(25) }))
                {
                    SetEnum(1);
                    OwnerCacheObject.SetValue();
                }
            }

            GUILayout.Label(Value.ToString() + $"<color={Syntax.StructGreen}><i> ({ValueType})</i></color>", new GUILayoutOption[0]);
        }
Пример #10
0
        public void SetValueFromInput()
        {
            if (m_isString)
            {
                Value = m_valueToString;
            }
            else
            {
                try
                {
                    Value = ParseMethod.Invoke(null, new object[] { m_valueToString });
                }
                catch (Exception e)
                {
                    ExplorerCore.Log("Exception parsing value: " + e.GetType() + ", " + e.Message);
                }
            }

            OwnerCacheObject.SetValue();
            RefreshToString();
        }