Example #1
0
        public static Color ToColor(this string data)
        {
            var cody = new CfgDecoder(data);
            var c    = new Color();

            foreach (var t in cody)
            {
                var d = cody.GetData();
                switch (t)
                {
                case "r": c.r = d.ToFloat(); break;

                case "g": c.g = d.ToFloat(); break;

                case "b": c.b = d.ToFloat(); break;

                case "a": c.a = d.ToFloat(); break;

                default:
                    cody.GetData(); break;
                }
            }

            return(c);
        }
Example #2
0
        public static List <T> Decode_List_Derived <T>(this string data, out List <T> l, ref ListMetaData ld) where T : ICfg
        {
            if (ld == null)
            {
                ld = new ListMetaData();
            }
            l = new List <T>();

            var tps = typeof(T).TryGetDerivedClasses();

            var overCody = new CfgDecoder(data);

            foreach (var tag in overCody)
            {
                switch (tag)
                {
                case CfgEncoder.ListMetaTag: ld.Decode(overCody.GetData()); break;

                case CfgEncoder.ListTag:
                    var cody = new CfgDecoder(overCody.GetData());
                    if (tps != null)
                    {
                        foreach (var t in cody)
                        {
                            l.Add(cody.DecodeData <T>(tps, ld));
                        }
                    }
                    break;

                default: l.Add(overCody.DecodeData <T>(tps, ld)); break;
                }
            }

            return(l);
        }
Example #3
0
        public static List <T> Decode_List <T>(this string data, out List <T> l, ref ListMetaData ld, TaggedTypesCfg tps) where T : IGotClassTag
        {
            l = new List <T>();
            if (ld == null)
            {
                ld = new ListMetaData();
            }

            var overCody = new CfgDecoder(data);

            foreach (var tag in overCody)
            {
                switch (tag)
                {
                case CfgEncoder.ListMetaTag: ld.Decode(overCody.GetData()); break;

                case CfgEncoder.ListTag:
                    var cody = new CfgDecoder(overCody.GetData());
                    foreach (var t in cody)
                    {
                        l.Add(cody.DecodeData <T>(tps, ld));
                    }
                    break;

                default: l.Add(overCody.DecodeData <T>(tps, ld));
                    break;
                }
            }

            return(l);
        }
Example #4
0
        public static void DecodeInto(this string data, Transform tf)
        {
            var cody  = new CfgDecoder(data);
            var local = false;

            foreach (var t in cody)
            {
                var d = cody.GetData();
                switch (t)
                {
                case "loc": local = d.ToBool(); break;

                case "pos": if (local)
                    {
                        tf.localPosition = d.ToVector3();
                    }
                    else
                    {
                        tf.position = d.ToVector3();
                    } break;

                case "size": tf.localScale = d.ToVector3(); break;

                case "rot": if (local)
                    {
                        tf.localRotation = d.ToQuaternion();
                    }
                    else
                    {
                        tf.rotation = d.ToQuaternion();
                    } break;
                }
            }
        }
Example #5
0
        public static void DecodeInto(this string data, RectTransform tf)
        {
            var cody = new CfgDecoder(data);

            foreach (var t in cody)
            {
                var d = cody.GetData();
                switch (t)
                {
                case "tfBase": d.DecodeInto(tf.transform); break;

                case "aPos": tf.anchoredPosition = d.ToVector2(); break;

                case "aPos3D": tf.anchoredPosition3D = d.ToVector3(); break;

                case "aMax": tf.anchorMax = d.ToVector2(); break;

                case "aMin": tf.anchorMin = d.ToVector2(); break;

                case "ofMax": tf.offsetMax = d.ToVector2(); break;

                case "ofMin": tf.offsetMin = d.ToVector2(); break;

                case "pvt": tf.pivot = d.ToVector2(); break;

                case "deSize": tf.sizeDelta = d.ToVector2(); break;
                }
            }
        }
Example #6
0
        public static List <T> Decode_List <T>(this string data, out List <T> l) where T : ICfg, new()
        {
            var cody = new CfgDecoder(data);

            l = new List <T>();

            var tps = typeof(T).TryGetDerivedClasses();

            if (tps != null)
            {
                foreach (var tag in cody)
                {
                    l.Add(cody.DecodeData <T>(tps));
                }
            }
            else
            {
                foreach (var tag in cody)
                {
                    l.Add(cody.GetData().DecodeInto <T>());
                }
            }

            return(l);
        }
Example #7
0
        public static BoneWeight ToBoneWeight(this string data)
        {
            var cody = new CfgDecoder(data);
            var b    = new BoneWeight();

            foreach (var t in cody)
            {
                var d = cody.GetData();
                switch (t)
                {
                case "i0": b.boneIndex0 = d.ToInt(); break;

                case "w0": b.weight0 = d.ToFloat(); break;

                case "i1": b.boneIndex1 = d.ToInt(); break;

                case "w1": b.weight1 = d.ToFloat(); break;

                case "i2": b.boneIndex2 = d.ToInt(); break;

                case "w2": b.weight2 = d.ToFloat(); break;

                case "i3": b.boneIndex3 = d.ToInt(); break;

                case "w3": b.weight3 = d.ToFloat(); break;
                }
            }
            return(b);
        }
Example #8
0
        public static List <T> TryDecode_IntoList_Elements <T>(this string data, List <T> l, ref ListMetaData ld) where T : ICfg, new()
        {
            if (ld == null)
            {
                ld = new ListMetaData();
            }

            var overCody = new CfgDecoder(data);
            var index    = 0;

            foreach (var tag in overCody)
            {
                switch (tag)
                {
                case CfgEncoder.ListMetaTag: ld.Decode(overCody.GetData()); break;

                case CfgEncoder.ListTag:
                    var cody = new CfgDecoder(overCody.GetData());

                    foreach (var t in cody)
                    {
                        var d = cody.GetData();

                        if (index >= l.Count || !d.TryDecodeInto(l[index]))
                        {
                            ld.elementDatas[index].Unrecognized(tag, d);
                        }

                        index++;
                    }
                    break;

                default:
                    var d1 = overCody.GetData();

                    if (index >= l.Count || !d1.TryDecodeInto(l[index]))
                    {
                        ld.elementDatas[index].Unrecognized(tag, d1);
                    }

                    index++;
                    break;
                }
            }

            return(l);
        }
Example #9
0
        public static void DecodeInto(this string data, out Countless<Quaternion> c)
        {
            c = new Countless<Quaternion>();
            var cody = new CfgDecoder(data);
            foreach (var tag in cody)
                c[tag.ToInt()] = cody.GetData().ToQuaternion();

        }
Example #10
0
        public static void DecodeInto_Countless(this string data, out Countless <float> c)
        {
            c = new Countless <float>();
            var cody = new CfgDecoder(data);

            foreach (var tag in cody)
            {
                c[tag.ToInt()] = cody.GetData().ToFloat();
            }
        }
Example #11
0
        public static void DecodeInto(this string data, out Countless <Vector3> c)
        {
            c = new Countless <Vector3>();
            var cody = new CfgDecoder(data);

            foreach (var tag in cody)
            {
                c[tag.ToInt()] = cody.GetData().ToVector3();
            }
        }
Example #12
0
        public static void Decode_Dictionary(this string data, out Dictionary <string, string> dic)
        {
            var cody = new CfgDecoder(data);

            dic = new Dictionary <string, string>();

            while (cody.GotData)
            {
                dic.Add(cody.GetTag(), cody.GetData());
            }
        }
Example #13
0
        public static void Decode <T>(this string data, out T val, TaggedTypesCfg typeList) where T : IGotClassTag
        {
            val = default(T);

            var cody = new CfgDecoder(data);

            var type = typeList.TaggedTypes.TryGet(cody.GetTag());

            if (type != null)
            {
                val = cody.GetData().DecodeInto_Type <T>(type);
            }
        }
Example #14
0
        public static List <int> Decode_List(this string data, out List <int> l)
        {
            l = new List <int>();

            var cody = new CfgDecoder(data);

            foreach (var tag in cody)
            {
                l.Add(cody.GetData().ToInt());
            }

            return(l);
        }
Example #15
0
        public static List <List <T> > Decode_ListOfList <T>(this string data, out List <List <T> > l) where T : ICfg, new()
        {
            l = new List <List <T> >();

            var cody = new CfgDecoder(data);

            while (cody.GotData)
            {
                cody.GetTag();
                List <T> el;
                cody.GetData().Decode_List(out el);
                l.Add(el);
            }

            return(l);
        }
Example #16
0
        public static Matrix4x4 ToMatrix4X4(this string data)
        {
            var cody = new CfgDecoder(data);
            var m    = new Matrix4x4();

            foreach (var t in cody)
            {
                var d = cody.GetData();
                switch (t)
                {
                case "00": m.m00 = d.ToFloat(); break;

                case "01": m.m01 = d.ToFloat(); break;

                case "02": m.m02 = d.ToFloat(); break;

                case "03": m.m03 = d.ToFloat(); break;

                case "10": m.m10 = d.ToFloat(); break;

                case "11": m.m11 = d.ToFloat(); break;

                case "12": m.m12 = d.ToFloat(); break;

                case "13": m.m13 = d.ToFloat(); break;

                case "20": m.m20 = d.ToFloat(); break;

                case "21": m.m21 = d.ToFloat(); break;

                case "22": m.m22 = d.ToFloat(); break;

                case "23": m.m23 = d.ToFloat(); break;

                case "30": m.m30 = d.ToFloat(); break;

                case "31": m.m31 = d.ToFloat(); break;

                case "32": m.m32 = d.ToFloat(); break;

                case "33": m.m33 = d.ToFloat(); break;

                default: Debug.Log("Unknown component: " + t); break;
                }
            }
            return(m);
        }
Example #17
0
        public static Rect ToRect(this string data)
        {
            var cody = new CfgDecoder(data);

            var rect = new Rect();

            foreach (var t in cody)
            {
                var d = cody.GetData();
                switch (t)
                {
                case "pos": rect.position = d.ToVector2(); break;

                case "size": rect.size = d.ToVector2(); break;
                }
            }
            return(rect);
        }
Example #18
0
        public static Vector2 ToVector2(this string data)
        {
            var cody = new CfgDecoder(data);

            var v2 = new Vector3();

            foreach (var t in cody)
            {
                var d = cody.GetData();
                switch (t)
                {
                case "x": v2.x = d.ToFloat(); break;

                case "y": v2.y = d.ToFloat(); break;
                }
            }
            return(v2);
        }
Example #19
0
        public static Vector3 ToVector3(this string data)
        {
            var cody = new CfgDecoder(data);

            var v3 = new Vector3();

            foreach (var tag in cody)
            {
                var d = cody.GetData();
                switch (tag)
                {
                case "x": v3.x = d.ToFloat(); break;

                case "y": v3.y = d.ToFloat(); break;

                case "z": v3.z = d.ToFloat(); break;
                }
            }
            return(v3);
        }
Example #20
0
        public Vector3 ToVector3()
        {
            var cody = new CfgDecoder(_value);

            var v3 = new Vector3();

            foreach (var t in cody)
            {
                var d = cody.GetData();
                switch (t)
                {
                case "x": v3.x = d.ToFloat(); break;

                case "y": v3.y = d.ToFloat(); break;

                case "z": v3.z = d.ToFloat(); break;
                }
            }
            return(v3);
        }
Example #21
0
        public static T[] Decode_Array <T>(this string data, out T[] l) where T : ICfg, new()
        {
            var cody = new CfgDecoder(data);

            l = null;

            var tmpList = new List <T>();

            var ind = 0;

            foreach (var tag in cody)
            {
                var d = cody.GetData();

                if (tag == "len")
                {
                    l = new T[d.ToInt()];
                }
                else
                {
                    var isNull = tag == CfgEncoder.NullTag;

                    var obj = isNull ? default(T) : d.DecodeInto <T>();

                    if (l != null)
                    {
                        l[ind] = obj;
                    }
                    else
                    {
                        tmpList.Add(obj);
                    }

                    ind++;
                }
            }

            return(l ?? tmpList.ToArray());
        }
Example #22
0
        public T[] Decode_Array <T>(out T[] l) where T : class, ICfgCustom, new()
        {
            var cody = new CfgDecoder(this);

            l = null;

            var tmpList = new List <T>();

            var ind = 0;

            foreach (var tag in cody)
            {
                var d = cody.GetData();

                if (tag == "len")
                {
                    l = new T[d.ToInt(0)];
                }
                else
                {
                    var isNull = tag == CfgEncoder.NullTag;

                    var obj = isNull ? default : d.Decode <T>();

                              if (l != null)
                              {
                                  l[ind] = obj;
                              }
                              else
                              {
                                  tmpList.Add(obj);
                              }

                              ind++;
                }
            }

            return(l ?? tmpList.ToArray());
        }
Example #23
0
        public static Matrix4x4[] Decode_Array(this string data, out Matrix4x4[] l)
        {
            var cody = new CfgDecoder(data);

            l = null;

            var tmpList = new List <Matrix4x4>();

            var ind = 0;

            foreach (var tag in cody)
            {
                var d = cody.GetData();

                if (tag == "len")
                {
                    l = new Matrix4x4[d.ToInt()];
                }
                else
                {
                    var obj = d.ToMatrix4X4();

                    if (l != null)
                    {
                        l[ind] = obj;
                    }
                    else
                    {
                        tmpList.Add(obj);
                    }

                    ind++;
                }
            }

            return(l ?? tmpList.ToArray());
        }
Example #24
0
        public static Quaternion ToQuaternion(this string data)
        {
            var cody = new CfgDecoder(data);

            var q = new Quaternion();

            foreach (var t in cody)
            {
                var d = cody.GetData();
                switch (t)
                {
                case "x": q.x = d.ToFloat(); break;

                case "y": q.y = d.ToFloat(); break;

                case "z": q.z = d.ToFloat(); break;

                case "w": q.w = d.ToFloat(); break;

                default: Debug.Log("Unknown component: " + cody.GetType()); break;
                }
            }
            return(q);
        }
Example #25
0
        public static Vector4 ToVector4(this string data)
        {
            var cody = new CfgDecoder(data);

            var v4 = new Vector4();

            foreach (var t in cody)
            {
                var d = cody.GetData();
                switch (t)
                {
                case "x": v4.x = d.ToFloat(); break;

                case "y": v4.y = d.ToFloat(); break;

                case "z": v4.z = d.ToFloat(); break;

                case "w": v4.w = d.ToFloat(); break;

                default: Debug.Log("Unknown component: " + t); break;
                }
            }
            return(v4);
        }
Example #26
0
        public static bool TryDecode_IntoList_Elements <T>(this string data, List <T> val)
        {
            if (val == null)
            {
                return(false);
            }

            var cody = new CfgDecoder(data);

            var index = 0;

            foreach (var t in cody)
            {
                if (index >= val.Count)
                {
                    return(true);
                }

                cody.GetData().TryDecodeInto(val[index]);
                index++;
            }

            return(true);
        }
Example #27
0
 private static T DecodeData <T>(this CfgDecoder cody, TaggedTypesCfg tps, ListMetaData ld) where T : IGotClassTag
 => Decode <T>(cody.currentTag, cody.GetData(), tps, ld, cody.currentTagIndex);
Example #28
0
 private static T DecodeData <T>(this CfgDecoder cody, TaggedTypesCfg tps) where T : IGotClassTag
 => Decode <T>(cody.currentTag, cody.GetData(), tps);
Example #29
0
 private static T DecodeData <T>(this CfgDecoder cody, List <Type> tps, ListMetaData ld) where T : ICfg
 => Decode <T>(cody.currentTag, cody.GetData(), tps, ld, cody.currentTagIndex);
Example #30
0
 private static T DecodeData <T>(this CfgDecoder cody, List <Type> tps) where T : ICfg
 => Decode <T>(cody.currentTag, cody.GetData(), tps);