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); }
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)); }
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); }
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); } } }
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)); }
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); }
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)] }); }
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); }
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)); }
public void ClearGlobalValue() { if (m_clsEnv == null) { Debug.LogWarning("please run project script first !"); return; } m_clsContent = m_clsEnv.CreateContent(); }
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); }
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"); }
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); }
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); }
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); }
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)); }
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)); }
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)); }
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)); }
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)); }
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)); }
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); }
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); }
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); }
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)); }
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)); }
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)); }
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)); }
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)); }
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)); }