Exemplo n.º 1
0
 public override CLS_Content.Value New(CLS_Content content, BetterList <CLS_Content.Value> _params)
 {
     CLS_Content.Value val = new CLS_Content.Value();
     val.type  = typeof(UnityEngine.Random);
     val.value = new UnityEngine.Random();
     return(val);
 }
Exemplo n.º 2
0
        public override CLS_Content.Value StaticCall(CLS_Content content, string function, BetterList <CLS_Content.Value> _params)
        {
            if (function == "Equals")
            {
                CLS_Content.Value val = new CLS_Content.Value();
                val.type  = typeof(bool);
                val.value = Color.Equals(_params[0].value, _params[1].value);
                return(val);
            }
            else if (function == "Lerp")
            {
                CLS_Content.Value val = new CLS_Content.Value();
                val.type  = typeof(Color);
                val.value = Color.Lerp(((Color)_params[0].value), ((Color)_params[1].value), Convert.ToSingle(_params[2].value));
                return(val);
            }
            else if (function == "LerpUnclamped")
            {
                CLS_Content.Value val = new CLS_Content.Value();
                val.type  = typeof(Color);
                val.value = Color.LerpUnclamped(((Color)_params[0].value), ((Color)_params[1].value), Convert.ToSingle(_params[2].value));
                return(val);
            }
            else if (function == "ReferenceEquals")
            {
                CLS_Content.Value val = new CLS_Content.Value();
                val.type  = typeof(bool);
                val.value = Color.ReferenceEquals(_params[0].value, _params[1].value);
                return(val);
            }

            return(base.StaticCall(content, function, _params));
        }
Exemplo n.º 3
0
 public override CLS_Content.Value New(CLS_Content content, BetterList <CLS_Content.Value> _params)
 {
     CLS_Content.Value val = new CLS_Content.Value();
     val.type  = typeof(Collider);
     val.value = new Collider();
     return(val);
 }
Exemplo n.º 4
0
    void ReadSInstance(ProtoReader reader, SInstance sInstance, CLS_Environment environment)
    {
        List <CLS_Content.Value> values;
        List <string>            keywords;

        GetSortMembers(sInstance, out values, out keywords);

        int fieldNumber = 0;

        while ((fieldNumber = reader.ReadFieldHeader()) > 0)
        {
            Type memberT = values[fieldNumber - 1].type;
            CLS_Content.Value memberV    = values[fieldNumber - 1];
            string            sClassName = keywords[fieldNumber - 1];

            if (memberT == null)
            {
                memberT    = typeof(SInstance);
                sClassName = ((SType)memberV.type).Name;
            }

            Type itemType = GetItemType(memberT);
            if (itemType != null)
            {
                sClassName = sInstance.type.members[sClassName].type.keyword;

                // 数组判断
                if (memberT.IsArray)
                {
                    string    itemClass = sClassName.Substring(0, sClassName.Length - 2); // 从 xxx[] 中提取xxx
                    BasicList list      = new BasicList();
                    do
                    {
                        list.Add(ReadField(reader, itemType, itemClass, environment));
                    } while (reader.TryReadFieldHeader(fieldNumber));
                    Array result = Array.CreateInstance(itemType, list.Count);
                    list.CopyTo(result, 0);
                    memberV.value = result;
                }
                // 列表判断
                else
                {
                    string      itemClass = sClassName.Substring(5, sClassName.Length - 6); // 从 List<xxx> 中提取xxx
                    ICLS_Type   iType     = environment.GetTypeByKeywordQuiet(sClassName);
                    CLS_Content content   = CLS_Content.NewContent(environment);
                    memberV.value = iType.function.New(content, m_emptyParams).value;
                    CLS_Content.PoolContent(content);
                    IList list = (IList)memberV.value;
                    do
                    {
                        list.Add(ReadField(reader, itemType, itemClass, environment));
                    } while (reader.TryReadFieldHeader(fieldNumber));
                }
            }
            else
            {
                memberV.value = ReadField(reader, memberT, sClassName, environment);
            }
        }
    }
Exemplo n.º 5
0
    public override object Math2Value(CLS_Content content, char code, object left, CLS_Content.Value right, out CLType returntype)
    {
        if (code == '+')
        {
            if (right.value is Vector3)
            {
                returntype = typeof(Vector3);
                return(((Vector3)left) + ((Vector3)right.value));
            }
        }
        if (code == '-')
        {
            returntype = typeof(Vector3);
            return(((Vector3)left) - ((Vector3)right.value));
        }
        if (code == '*')
        {
            returntype = typeof(Vector3);
            return(((Vector3)left) * Convert.ToSingle(right.value));
        }
        if (code == '/')
        {
            returntype = typeof(Vector3);
            return(((Vector3)left) / Convert.ToSingle(right.value));
        }

        return(base.Math2Value(content, code, left, right, out returntype));
    }
Exemplo n.º 6
0
 public override CLS_Content.Value New(CLS_Content content, BetterList <CLS_Content.Value> _params)
 {
     CLS_Content.Value val = new CLS_Content.Value();
     val.type  = typeof(Vector2);
     val.value = new Vector2(Convert.ToSingle(_params[0].value), Convert.ToSingle(_params[1].value));
     return(val);
 }
Exemplo n.º 7
0
 public override CLS_Content.Value IndexGet(CLS_Content content, object object_this, object key)
 {
     return(new CLS_Content.Value()
     {
         type = typeof(float), value = ((Color)object_this)[Convert.ToInt32(key)]
     });
 }
Exemplo n.º 8
0
        public override void MemberValueSet(CLS_Content content, object object_this, string valuename, object value, bool isBaseCall = false)
        {
            if (valuename == "contactOffset")
            {
                ((Collider)object_this).contactOffset = Convert.ToSingle(value);

                return;
            }
            if (valuename == "enabled")
            {
                ((Collider)object_this).enabled = Convert.ToBoolean(value);
                return;
            }
            if (valuename == "isTrigger")
            {
                ((Collider)object_this).isTrigger = Convert.ToBoolean(value);
                return;
            }
            if (valuename == "material")
            {
                ((Collider)object_this).material = ((PhysicMaterial)value);
                return;
            }
            if (valuename == "sharedMaterial")
            {
                ((Collider)object_this).sharedMaterial = ((PhysicMaterial)value);
                return;
            }

            base.MemberValueSet(content, object_this, valuename, value, isBaseCall);
        }
Exemplo n.º 9
0
        public override CLS_Content.Value StaticCall(CLS_Content content, string function, BetterList <CLS_Content.Value> _params)
        {
            if (function == "print")
            {
                MonoBehaviour.print(_params[0].value);
                return(CLS_Content.Value.Void);
            }

            return(base.StaticCall(content, function, _params));
        }
Exemplo n.º 10
0
    public void ClearGlobalValue()
    {
        if (m_clsEnv == null)
        {
            Debug.LogWarning("please run project script first !");
            return;
        }

        m_clsContent = m_clsEnv.CreateContent();
    }
Exemplo n.º 11
0
        public override void StaticValueSet(CLS_Content content, string valuename, object value)
        {
            if (valuename == "developerConsoleVisible")
            {
                Debug.developerConsoleVisible = Convert.ToBoolean(value);

                return;
            }

            base.StaticValueSet(content, valuename, value);
        }
Exemplo n.º 12
0
    IEnumerator RunScriptEntryCoroutine(string clsEntryName, MonoBehaviour behaviour, params object[] startParams)
    {
        m_clsContent  = m_clsEnv.CreateContent();
        m_clsCurEntry = (SInstance)this.NewInstance(clsEntryName);

        this.SetMember(m_clsCurEntry, "behaviour", behaviour);

        yield return(behaviour.StartCoroutine((IEnumerator)this.Call(m_clsCurEntry, "Start", startParams)));

        this.Call(m_clsCurEntry, "UpdatePrevious");
    }
Exemplo n.º 13
0
        public override void MemberValueSet(CLS_Content content, object object_this, string valuename, object value, bool isBaseCall = false)
        {
            if (valuename == "useGUILayout")
            {
                ((MonoBehaviour)object_this).useGUILayout = Convert.ToBoolean(value);

                return;
            }

            base.MemberValueSet(content, object_this, valuename, value, isBaseCall);
        }
Exemplo n.º 14
0
        public override void StaticValueSet(CLS_Content content, string valuename, object value)
        {
            if (valuename == "seed")
            {
                UnityEngine.Random.seed = Convert.ToInt32(value);

                return;
            }

            base.StaticValueSet(content, valuename, value);
        }
Exemplo n.º 15
0
        public override void MemberValueSet(CLS_Content content, object object_this, string valuename, object value, bool isBaseCall = false)
        {
            Quaternion newVal = (Quaternion)object_this;

            if (valuename == "eulerAngles")
            {
                newVal.eulerAngles = ((Vector3)value);
            }
            else if (valuename == "w")
            {
                newVal.w = Convert.ToSingle(value);
            }
            else if (valuename == "x")
            {
                newVal.x = Convert.ToSingle(value);
            }
            else if (valuename == "y")
            {
                newVal.y = Convert.ToSingle(value);
            }
            else if (valuename == "z")
            {
                newVal.z = Convert.ToSingle(value);
            }
            else
            {
                base.MemberValueSet(content, object_this, valuename, value, isBaseCall);
            }
            ICLS_Expression         expLeft     = content.CallExpression.listParam[0];
            CLS_Expression_GetValue expGetValue = expLeft as CLS_Expression_GetValue;

            if (expGetValue != null)
            {
                content.Set(expGetValue.value_name, newVal);
                return;
            }
            CLS_Expression_MemberFind expMemberFind = expLeft as CLS_Expression_MemberFind;

            if (expMemberFind != null)
            {
                expGetValue = expMemberFind.listParam[0] as CLS_Expression_GetValue;
                if (content.CallExpression is CLS_Expression_SelfOpWithValue)
                {
                    content.Set(expGetValue.value_name, newVal);
                    return;
                }
                CLS_Content.Value val = content.Get(expGetValue.value_name);
                content.environment.GetType(val.type).function.MemberValueSet(content, val.value, expMemberFind.membername, newVal);
                return;
            }

            base.MemberValueSet(content, object_this, valuename, value, isBaseCall);
        }
Exemplo n.º 16
0
        public override CLS_Content.Value MemberValueGet(CLS_Content content, object object_this, string valuename, bool isBaseCall = false)
        {
            if (valuename == "magnitude")
            {
                return new CLS_Content.Value()
                       {
                           type = typeof(float), value = ((Vector3)object_this).magnitude
                       }
            }
            ;
            if (valuename == "normalized")
            {
                return new CLS_Content.Value()
                       {
                           type = typeof(Vector3), value = ((Vector3)object_this).normalized
                       }
            }
            ;
            if (valuename == "sqrMagnitude")
            {
                return new CLS_Content.Value()
                       {
                           type = typeof(float), value = ((Vector3)object_this).sqrMagnitude
                       }
            }
            ;
            if (valuename == "x")
            {
                return new CLS_Content.Value()
                       {
                           type = typeof(float), value = ((Vector3)object_this).x
                       }
            }
            ;
            if (valuename == "y")
            {
                return new CLS_Content.Value()
                       {
                           type = typeof(float), value = ((Vector3)object_this).y
                       }
            }
            ;
            if (valuename == "z")
            {
                return new CLS_Content.Value()
                       {
                           type = typeof(float), value = ((Vector3)object_this).z
                       }
            }
            ;

            return(base.MemberValueGet(content, object_this, valuename, isBaseCall));
        }
Exemplo n.º 17
0
        public override CLS_Content.Value StaticValueGet(CLS_Content content, string valuename)
        {
            if (valuename == "Deg2Rad")
            {
                return new CLS_Content.Value()
                       {
                           type = typeof(float), value = Mathf.Deg2Rad
                       }
            }
            ;
            if (valuename == "Epsilon")
            {
                return new CLS_Content.Value()
                       {
                           type = typeof(float), value = Mathf.Epsilon
                       }
            }
            ;
            if (valuename == "Infinity")
            {
                return new CLS_Content.Value()
                       {
                           type = typeof(float), value = Mathf.Infinity
                       }
            }
            ;
            if (valuename == "NegativeInfinity")
            {
                return new CLS_Content.Value()
                       {
                           type = typeof(float), value = Mathf.NegativeInfinity
                       }
            }
            ;
            if (valuename == "PI")
            {
                return new CLS_Content.Value()
                       {
                           type = typeof(float), value = Mathf.PI
                       }
            }
            ;
            if (valuename == "Rad2Deg")
            {
                return new CLS_Content.Value()
                       {
                           type = typeof(float), value = Mathf.Rad2Deg
                       }
            }
            ;

            return(base.StaticValueGet(content, valuename));
        }
Exemplo n.º 18
0
        public override CLS_Content.Value MemberCall(CLS_Content content, object object_this, string function, BetterList <CLS_Content.Value> _params, bool isBaseCall = false)
        {
            if (function == "ClosestPointOnBounds")
            {
                CLS_Content.Value val = new CLS_Content.Value();
                val.type  = typeof(Vector3);
                val.value = ((Collider)object_this).ClosestPointOnBounds(((Vector3)_params[0].value));
                return(val);
            }

            return(base.MemberCall(content, object_this, function, _params, isBaseCall));
        }
Exemplo n.º 19
0
        public override CLS_Content.Value MemberCall(CLS_Content content, object object_this, string function, BetterList <CLS_Content.Value> _params, bool isBaseCall = false)
        {
            CLS_Content.Value retVal = null;

            Color newVal = (Color)object_this;

            if (function == "Equals")
            {
                retVal = new CLS_Content.Value();

                retVal.type  = typeof(bool);
                retVal.value = newVal.Equals(_params[0].value);
            }
            else if (function == "ToString")
            {
                if (_params.size == 0)
                {
                    retVal       = new CLS_Content.Value();
                    retVal.type  = typeof(string);
                    retVal.value = newVal.ToString();
                }
                else if (_params.size == 1)
                {
                    retVal       = new CLS_Content.Value();
                    retVal.type  = typeof(string);
                    retVal.value = newVal.ToString(((string)_params[0].value));
                }
            }
            else
            {
                return(base.MemberCall(content, object_this, function, _params, isBaseCall));
            }
            ICLS_Expression         expLeft     = content.CallExpression.listParam[0];
            CLS_Expression_GetValue expGetValue = expLeft as CLS_Expression_GetValue;

            if (expGetValue != null)
            {
                content.Set(expGetValue.value_name, newVal);
                return(retVal);
            }
            CLS_Expression_MemberFind expMemberFind = expLeft as CLS_Expression_MemberFind;

            if (expMemberFind != null)
            {
                expGetValue = expMemberFind.listParam[0] as CLS_Expression_GetValue;
                CLS_Content.Value val = content.Get(expGetValue.value_name);
                content.environment.GetType(val.type).function.MemberValueSet(content, val.value, expMemberFind.membername, newVal);
                return(retVal);
            }

            return(base.MemberCall(content, object_this, function, _params, isBaseCall));
        }
Exemplo n.º 20
0
        public override CLS_Content.Value MemberValueGet(CLS_Content content, object object_this, string valuename, bool isBaseCall = false)
        {
            if (valuename == "useGUILayout")
            {
                return new CLS_Content.Value()
                       {
                           type = typeof(bool), value = ((MonoBehaviour)object_this).useGUILayout
                       }
            }
            ;

            return(base.MemberValueGet(content, object_this, valuename, isBaseCall));
        }
Exemplo n.º 21
0
    public override bool MathLogic(CLS_Content content, logictoken code, object left, CLS_Content.Value right)
    {
        if (code == logictoken.equal)
        {
            return(((UnityEngine.Object)left) == ((UnityEngine.Object)right.value));
        }
        if (code == logictoken.not_equal)
        {
            return(((UnityEngine.Object)left) != ((UnityEngine.Object)right.value));
        }

        return(base.MathLogic(content, code, left, right));
    }
Exemplo n.º 22
0
        public override void MemberValueSet(CLS_Content content, object object_this, string valuename, object value, bool isBaseCall = false)
        {
            Color newVal = (Color)object_this;

            if (valuename == "a")
            {
                newVal.a = Convert.ToSingle(value);
            }
            else if (valuename == "b")
            {
                newVal.b = Convert.ToSingle(value);
            }
            else if (valuename == "g")
            {
                newVal.g = Convert.ToSingle(value);
            }
            else if (valuename == "r")
            {
                newVal.r = Convert.ToSingle(value);
            }
            else
            {
                base.MemberValueSet(content, object_this, valuename, value, isBaseCall);
            }
            ICLS_Expression         expLeft     = content.CallExpression.listParam[0];
            CLS_Expression_GetValue expGetValue = expLeft as CLS_Expression_GetValue;

            if (expGetValue != null)
            {
                content.Set(expGetValue.value_name, newVal);
                return;
            }
            CLS_Expression_MemberFind expMemberFind = expLeft as CLS_Expression_MemberFind;

            if (expMemberFind != null)
            {
                expGetValue = expMemberFind.listParam[0] as CLS_Expression_GetValue;
                if (content.CallExpression is CLS_Expression_SelfOpWithValue)
                {
                    content.Set(expGetValue.value_name, newVal);
                    return;
                }
                CLS_Content.Value val = content.Get(expGetValue.value_name);
                content.environment.GetType(val.type).function.MemberValueSet(content, val.value, expMemberFind.membername, newVal);
                return;
            }

            base.MemberValueSet(content, object_this, valuename, value, isBaseCall);
        }
Exemplo n.º 23
0
        public override void MemberValueSet(CLS_Content content, object object_this, string valuename, object value, bool isBaseCall = false)
        {
            if (valuename == "center")
            {
                ((SphereCollider)object_this).center = ((Vector3)value);

                return;
            }
            if (valuename == "radius")
            {
                ((SphereCollider)object_this).radius = Convert.ToSingle(value);
                return;
            }

            base.MemberValueSet(content, object_this, valuename, value, isBaseCall);
        }
Exemplo n.º 24
0
        public override void MemberValueSet(CLS_Content content, object object_this, string valuename, object value, bool isBaseCall = false)
        {
            if (valuename == "center")
            {
                ((BoxCollider)object_this).center = ((Vector3)value);

                return;
            }
            if (valuename == "size")
            {
                ((BoxCollider)object_this).size = ((Vector3)value);
                return;
            }

            base.MemberValueSet(content, object_this, valuename, value, isBaseCall);
        }
Exemplo n.º 25
0
        public override CLS_Content.Value MemberValueGet(CLS_Content content, object object_this, string valuename, bool isBaseCall = false)
        {
            if (valuename == "gameObject")
            {
                return new CLS_Content.Value()
                       {
                           type = typeof(GameObject), value = ((Component)object_this).gameObject
                       }
            }
            ;
            if (valuename == "tag")
            {
                return new CLS_Content.Value()
                       {
                           type = typeof(string), value = ((Component)object_this).tag
                       }
            }
            ;
            if (valuename == "transform")
            {
                return new CLS_Content.Value()
                       {
                           type = typeof(Transform), value = ((Component)object_this).transform
                       }
            }
            ;
            if (valuename == "hideFlags")
            {
                return new CLS_Content.Value()
                       {
                           type = typeof(HideFlags), value = ((Component)object_this).hideFlags
                       }
            }
            ;
            if (valuename == "name")
            {
                return new CLS_Content.Value()
                       {
                           type = typeof(string), value = ((Component)object_this).name
                       }
            }
            ;

            return(base.MemberValueGet(content, object_this, valuename, isBaseCall));
        }
Exemplo n.º 26
0
        public override CLS_Content.Value MemberValueGet(CLS_Content content, object object_this, string valuename, bool isBaseCall = false)
        {
            if (valuename == "eulerAngles")
            {
                return new CLS_Content.Value()
                       {
                           type = typeof(Vector3), value = ((Quaternion)object_this).eulerAngles
                       }
            }
            ;
            if (valuename == "w")
            {
                return new CLS_Content.Value()
                       {
                           type = typeof(float), value = ((Quaternion)object_this).w
                       }
            }
            ;
            if (valuename == "x")
            {
                return new CLS_Content.Value()
                       {
                           type = typeof(float), value = ((Quaternion)object_this).x
                       }
            }
            ;
            if (valuename == "y")
            {
                return new CLS_Content.Value()
                       {
                           type = typeof(float), value = ((Quaternion)object_this).y
                       }
            }
            ;
            if (valuename == "z")
            {
                return new CLS_Content.Value()
                       {
                           type = typeof(float), value = ((Quaternion)object_this).z
                       }
            }
            ;

            return(base.MemberValueGet(content, object_this, valuename, isBaseCall));
        }
Exemplo n.º 27
0
    public override object Math2Value(CLS_Content content, char code, object left, CLS_Content.Value right, out CLType returntype)
    {
        if (code == '*')
        {
            if (right.value is Quaternion)
            {
                returntype = typeof(Quaternion);
                return(((Quaternion)left) * ((Quaternion)right.value));
            }
            if (right.value is Vector3)
            {
                returntype = typeof(Vector3);
                return(((Quaternion)left) * ((Vector3)right.value));
            }
        }

        return(base.Math2Value(content, code, left, right, out returntype));
    }
Exemplo n.º 28
0
        public override CLS_Content.Value MemberCall(CLS_Content content, object object_this, string function, BetterList <CLS_Content.Value> _params, bool isBaseCall = false)
        {
            if (function == "Equals")
            {
                CLS_Content.Value val = new CLS_Content.Value();
                val.type  = typeof(bool);
                val.value = ((Time)object_this).Equals(_params[0].value);
                return(val);
            }
            else if (function == "ToString")
            {
                CLS_Content.Value val = new CLS_Content.Value();
                val.type  = typeof(string);
                val.value = ((Time)object_this).ToString();
                return(val);
            }

            return(base.MemberCall(content, object_this, function, _params, isBaseCall));
        }
Exemplo n.º 29
0
        public override CLS_Content.Value StaticCall(CLS_Content content, string function, BetterList <CLS_Content.Value> _params)
        {
            if (function == "Equals")
            {
                CLS_Content.Value val = new CLS_Content.Value();
                val.type  = typeof(bool);
                val.value = Time.Equals(_params[0].value, _params[1].value);
                return(val);
            }
            else if (function == "ReferenceEquals")
            {
                CLS_Content.Value val = new CLS_Content.Value();
                val.type  = typeof(bool);
                val.value = Time.ReferenceEquals(_params[0].value, _params[1].value);
                return(val);
            }

            return(base.StaticCall(content, function, _params));
        }
Exemplo n.º 30
0
        public override CLS_Content.Value New(CLS_Content content, BetterList <CLS_Content.Value> _params)
        {
            if (_params.size == 4)
            {
                CLS_Content.Value val = new CLS_Content.Value();
                val.type  = typeof(Color);
                val.value = new Color(Convert.ToSingle(_params[0].value), Convert.ToSingle(_params[1].value), Convert.ToSingle(_params[2].value), Convert.ToSingle(_params[3].value));
                return(val);
            }
            if (_params.size == 3)
            {
                CLS_Content.Value val = new CLS_Content.Value();
                val.type  = typeof(Color);
                val.value = new Color(Convert.ToSingle(_params[0].value), Convert.ToSingle(_params[1].value), Convert.ToSingle(_params[2].value));
                return(val);
            }

            return(base.New(content, _params));
        }