Ejemplo n.º 1
0
        public override TsField GetTsField(NetField netField)
        {
            var f = base.GetTsField(netField);

            var isTypeValueType = csValueTypes.Contains(netField.FieldType.Name);
            var isTypeNullable  = netField.FieldType.IsNullable;
            var isModelRequired = netField.Attributes.Any(a => a.Contains("Required"));

            //if it's a value type then we will always require it
            //if it's a nullable then we will always make it optional
            //otherwise, if it's model required then it will be required
            //otherwise, it's probably a reference type and will be optional

            if (isTypeNullable)
            {
                f.IsNullable = true;
            }
            else if (isModelRequired)
            {
                f.IsNullable = false;
            }
            else if (isTypeValueType)
            {
                f.IsNullable = false;
            }
            else
            {
                f.IsNullable = true;
            }

            return(f);
        }
Ejemplo n.º 2
0
    int[] BytesAlignment(NetField nf, int index)
    {
        int[] message           = new int[2];
        int   _nComboByteLength = 0;
        int   byteFieldConunt   = index + 1;

        if (nf.length % 4 != 0)
        {
            for (int b = index + 1; b < _strlFieldWrite.Count; b++)
            {
                if (_strlFieldWrite[b].type.ToUpper().Contains("BYTE"))
                {
                    _nComboByteLength           += _strlFieldWrite[b].length;
                    byteFieldConunt              = b + 1;
                    _strlFieldWrite[b]._bCanSkip = true;
                }
                else
                {
                    break;
                }
            }
            int temp = nf.length + _nComboByteLength;
            message[0] = byteFieldConunt;
            message[1] = 4 - (temp % 4);
        }
        return(message);
    }
Ejemplo n.º 3
0
        public void TestIsTransientUnderstandsCustomTransient()
        {
            AssertIsNotTransient("CustomTransientField");
            AssertIsNotTransient("FieldWithCustomAttribute");

            NetField.MarkTransient(typeof(CustomTransientAttribute));

            AssertIsTransient("CustomTransientField");
            AssertIsNotTransient("FieldWithCustomAttribute");
        }
Ejemplo n.º 4
0
 public virtual TsField GetTsField(NetField netField)
 {
     return(new TsField
     {
         Name = GetTsName(netField.Name),
         FieldType = GetTsType(netField.FieldType),
         IsNullable = netField.FieldType.IsNullable,
         IsPublic = netField.IsPublic
     });
 }
Ejemplo n.º 5
0
        public ClientStaticMember(int typeIndex, NetField netField, bool isEditable, IUnityData unityData)
        {
            this.declaringTypeIndex = typeIndex;
            this.fieldType          = netField.fieldType;
            this.name       = netField.name;
            this.value      = netField.value;
            this.isEditable = isEditable;

            this.drawer     = TypeHandlerDrawersManager.CreateTypeHandlerDrawer(netField.handler, this.fieldType);
            this.dataDrawer = new DataDrawer(unityData);
        }
 public static bool IsUserField(FieldInfo field)
 {
     if (field.IsStatic)
     {
         return(false);
     }
     if (NetField.IsTransient(field))
     {
         return(false);
     }
     if (field.Name.IndexOf("$") != -1)
     {
         return(false);
     }
     return(true);
 }
Ejemplo n.º 7
0
        public ClientField(ClientComponent behaviour, int fieldIndex, NetField netField, IUnityData unityData)
        {
            this.unityData       = unityData;
            this.parentBehaviour = behaviour;

            this.fieldIndex = fieldIndex;

            this.fieldType     = netField.fieldType ?? TypeHandlersManager.GetClientType(netField.handler != null ? netField.handler.type : null, netField.typeSignature);
            this.name          = netField.name;
            this.isPublic      = netField.isPublic;
            this.typeSignature = netField.typeSignature;
            this.value         = netField.value;

            this.drawer     = TypeHandlerDrawersManager.CreateTypeHandlerDrawer(netField.handler, this.fieldType);
            this.dataDrawer = new DataDrawer(this.unityData);
        }
Ejemplo n.º 8
0
        public virtual string WriteField(NetField netField)
        {
            var modStr = (netField is NetFieldDeclaration)
                ? GetFieldDeclarationTypeString(((NetFieldDeclaration)netField).FieldDeclarationType) + " "
                : "";
            var isPublic     = netField.IsPublic ? "public " : "";
            var staticStr    = netField.IsStatic ? "static " : "";
            var nullableStr  = netField.FieldType.IsNullable ? "?" : "";
            var defaultValue = netField.DefaultValue;

            if (string.IsNullOrWhiteSpace(defaultValue))
            {
                defaultValue = "";
            }
            else
            {
                defaultValue = " = " + defaultValue + "";
            }

            return($"{isPublic}{modStr}{staticStr}{WriteTypeName(netField.FieldType)}{nullableStr} {netField.Name}{defaultValue}");
        }
Ejemplo n.º 9
0
 private static bool IsTransient(string name)
 {
     return(NetField.IsTransient(typeof(Item).GetField(name)));
 }
Ejemplo n.º 10
0
 public void SetUp()
 {
     NetField.ResetTransientMarkers();
 }
Ejemplo n.º 11
0
    public static void InitNetFiled()
    {
        PlayerStateFields = new NetField[30];

        PlayerStateFields[idx] = new NetField("commandTime", GetFieldSize(), 32);
        PlayerStateFields[idx] = new NetField("pmType", GetFieldSize(), 8);
        PlayerStateFields[idx] = new NetField("bobCycle", GetFieldSize(), 8);
        PlayerStateFields[idx] = new NetField("pmFlags", GetFieldSize(), 16);

        PlayerStateFields[idx] = new NetField("pmTime", GetFieldSize(), -16);
        PlayerStateFields[idx] = new NetField("origin.x", GetFieldSize(), 32);     //0
        PlayerStateFields[idx] = new NetField("origin.y", GetFieldSize(), 32);
        PlayerStateFields[idx] = new NetField("origin.z", GetFieldSize(), 32);     //1
        PlayerStateFields[idx] = new NetField("velocity.x", GetFieldSize(), 32);   //2
        PlayerStateFields[idx] = new NetField("velocity.y", GetFieldSize(), 32);   //5
        PlayerStateFields[idx] = new NetField("velocity.z", GetFieldSize(), 32);   //3
        PlayerStateFields[idx] = new NetField("gravity", GetFieldSize(), 16);      //4
        PlayerStateFields[idx] = new NetField("speed", GetFieldSize(), 16);        //7

        PlayerStateFields[idx] = new NetField("deltaAngles.x", GetFieldSize(), 32);
        PlayerStateFields[idx] = new NetField("deltaAngles.y", GetFieldSize(), 32);
        PlayerStateFields[idx] = new NetField("deltaAngles.z", GetFieldSize(), 32);
        PlayerStateFields[idx] = new NetField("groundEntityNum", GetFieldSize(), CConstVar.GENTITYNUM_BITS); //8
        PlayerStateFields[idx] = new NetField("entityID", GetFieldSize(), 0);                                //6
        PlayerStateFields[idx] = new NetField("movementDir", GetFieldSize(), 4);
        PlayerStateFields[idx] = new NetField("entityFlags", GetFieldSize(), 16);
        PlayerStateFields[idx] = new NetField("eventSequence", GetFieldSize(), 16);

        PlayerStateFields[idx] = new NetField("events.0", GetFieldSize(), 8);
        PlayerStateFields[idx] = new NetField("events.1", GetFieldSize(), 8);

        PlayerStateFields[idx] = new NetField("eventParams.0", GetFieldSize(), 8);
        PlayerStateFields[idx] = new NetField("eventParams.1", GetFieldSize(), 8);

        PlayerStateFields[idx] = new NetField("externalEvent", GetFieldSize(), 8);
        PlayerStateFields[idx] = new NetField("externalEventParam", GetFieldSize(), 8);
        PlayerStateFields[idx] = new NetField("externalEventTime", GetFieldSize(), -16);
        PlayerStateFields[idx] = new NetField("clientNum", GetFieldSize(), 8);

        PlayerStateFields[idx] = new NetField("viewangles.x", GetFieldSize(), 0);
        PlayerStateFields[idx] = new NetField("viewangles.y", GetFieldSize(), 0);
        PlayerStateFields[idx] = new NetField("viewangles.z", GetFieldSize(), 0);

        PlayerStateFields[idx] = new NetField("viewHeight", GetFieldSize(), 0);
        PlayerStateFields[idx] = new NetField("damageEvent", GetFieldSize(), 8);
        PlayerStateFields[idx] = new NetField("damageCount", GetFieldSize(), 8);

        PlayerStateFields[idx] = new NetField("states.0", GetFieldSize(), 0);
        PlayerStateFields[idx] = new NetField("states.1", GetFieldSize(), 0);
        PlayerStateFields[idx] = new NetField("states.2", GetFieldSize(), 0);
        PlayerStateFields[idx] = new NetField("states.3", GetFieldSize(), 0);
        PlayerStateFields[idx] = new NetField("states.4", GetFieldSize(), 0);
        PlayerStateFields[idx] = new NetField("states.5", GetFieldSize(), 0);
        PlayerStateFields[idx] = new NetField("states.6", GetFieldSize(), 0);
        PlayerStateFields[idx] = new NetField("states.7", GetFieldSize(), 0);
        PlayerStateFields[idx] = new NetField("states.8", GetFieldSize(), 0);
        PlayerStateFields[idx] = new NetField("states.9", GetFieldSize(), 0);
        PlayerStateFields[idx] = new NetField("states.10", GetFieldSize(), 0);
        PlayerStateFields[idx] = new NetField("states.11", GetFieldSize(), 0);
        PlayerStateFields[idx] = new NetField("states.12", GetFieldSize(), 0);
        PlayerStateFields[idx] = new NetField("states.13", GetFieldSize(), 0);
        PlayerStateFields[idx] = new NetField("states.14", GetFieldSize(), 0);
        PlayerStateFields[idx] = new NetField("states.15", GetFieldSize(), 0);

        PlayerStateFields[idx] = new NetField("persistant.0", GetFieldSize(), 0);
        PlayerStateFields[idx] = new NetField("persistant.1", GetFieldSize(), 0);
        PlayerStateFields[idx] = new NetField("persistant.2", GetFieldSize(), 0);
        PlayerStateFields[idx] = new NetField("persistant.3", GetFieldSize(), 0);
        PlayerStateFields[idx] = new NetField("persistant.4", GetFieldSize(), 0);
        PlayerStateFields[idx] = new NetField("persistant.5", GetFieldSize(), 0);
        PlayerStateFields[idx] = new NetField("persistant.6", GetFieldSize(), 0);
        PlayerStateFields[idx] = new NetField("persistant.7", GetFieldSize(), 0);
        PlayerStateFields[idx] = new NetField("persistant.8", GetFieldSize(), 0);
        PlayerStateFields[idx] = new NetField("persistant.9", GetFieldSize(), 0);
        PlayerStateFields[idx] = new NetField("persistant.10", GetFieldSize(), 0);
        PlayerStateFields[idx] = new NetField("persistant.11", GetFieldSize(), 0);
        PlayerStateFields[idx] = new NetField("persistant.12", GetFieldSize(), 0);
        PlayerStateFields[idx] = new NetField("persistant.13", GetFieldSize(), 0);
        PlayerStateFields[idx] = new NetField("persistant.14", GetFieldSize(), 0);
        PlayerStateFields[idx] = new NetField("persistant.15", GetFieldSize(), 0);

        PlayerStateFields[idx] = new NetField("ping", GetFieldSize(), 0);

        PlayerStateFields[idx] = new NetField("pm_framecount", GetFieldSize(), 0);
        PlayerStateFields[idx] = new NetField("entityEventSequence", GetFieldSize(), 0);

        var tmps = new string[] {
            "commandTime",
            "origin.x",
            "origin.y",
            "bobCycle",
            "velocity.x",
            "velocity.y",
            "viewangles.y",
            "viewangles.x",
            "origin.z",
            "velocity.z",
            "pmTime",
            "eventSequence",
            "movementDir",
            "events[0]",
            "pmFlags",
            "groundEntityNum",
            "entityFlags",
            "externalEvent",
            "gravity",
            "speed",
            "deltaAngles.y",
            "externalEventParam",
            "viewHeight",
            "damageEvent",
            "damageCount",
            "pmType",
            "deltaAngles.x",
            "deltaAngles.z",
            "eventParams.0",
            "eventParams.1",
            "clientNum",
            "viewangles.z",
        };

        System.Array.Sort(PlayerStateFields, (x1, x2) => {
            var i1 = System.Array.IndexOf(tmps, x1.name);
            var i2 = System.Array.IndexOf(tmps, x2.name);
            if (i1 < 0 && i2 < 0)
            {
                // CLog.Error("playerStateFields sort failed");
                return(0);
            }
            else if (i1 < 0)
            {
                return(1);
            }
            else if (i2 < 0)
            {
                return(-1);
            }
            return(i1 - i2);
        });
    }
Ejemplo n.º 12
0
    private void OnGUI()
    {
        EditorGUILayout.BeginVertical();
        _nCreateTypeIndex = EditorGUILayout.Popup("Choose The Type", _nCreateTypeIndex, createTypeArray);
        if (lastIndex != _nCreateTypeIndex)
        {
            _nTypeIndex = 0;
        }
        lastIndex     = _nCreateTypeIndex;
        _strNameSpace = EditorGUILayout.TextField("Please Input NameSpaceName", _strNameSpace);
        fileName      = EditorGUILayout.TextField("Please Input FileName", fileName);
        _nMainID      = EditorGUILayout.IntField("MainID", _nMainID);
        _nSubID       = EditorGUILayout.IntField("SubID", _nSubID);
        if (_strlFieldWrite.Count != 0)
        {
            EditorGUILayout.BeginVertical();
            for (int i = 0; i < _strlFieldWrite.Count; i++)
            {
                EditorGUILayout.BeginHorizontal();
                string s = "";
                if (_strlFieldWrite[i].type == "string" || _strlFieldWrite[i].type.Contains("[]"))
                {
                    s = _strlFieldWrite[i].type + " " + _strlFieldWrite[i].name + " //" + _strlFieldWrite[i].note + " Length:" + _strlFieldWrite[i].length;
                }
                else
                {
                    s = _strlFieldWrite[i].type + " " + _strlFieldWrite[i].name + " //" + _strlFieldWrite[i].note;
                }
                EditorGUILayout.LabelField(s, GUILayout.Width(300));
                if (GUILayout.Button("Remove This Field"))
                {
                    _strlFieldWrite.Remove(_strlFieldWrite[i]);
                    StringClear();
                }
                EditorGUILayout.EndHorizontal();
            }
            EditorGUILayout.EndVertical();
        }
        EditorGUILayout.BeginHorizontal();
        if (_nCreateTypeIndex == 0)
        {
            _nTypeIndex = EditorGUILayout.Popup(_nTypeIndex, _strArTypeNameReq, GUILayout.Width(50));
            fieldName   = EditorGUILayout.TextField(fieldName, GUILayout.Width(100));
            _strNote    = EditorGUILayout.TextField("Note", _strNote);

            if (_strArTypeNameReq[_nTypeIndex] == "string" || _strArTypeNameReq[_nTypeIndex].Contains("[]"))
            {
                _nLength = EditorGUILayout.IntField("Length", _nLength);
            }
        }
        else
        {
            _nTypeIndex = EditorGUILayout.Popup(_nTypeIndex, _strArTypeNameResp, GUILayout.Width(50));
            fieldName   = EditorGUILayout.TextField(fieldName, GUILayout.Width(100));
            _strNote    = EditorGUILayout.TextField("Note", _strNote);

            if (_strArTypeNameResp[_nTypeIndex] == "string" || _strArTypeNameResp[_nTypeIndex].Contains("[]"))
            {
                _nLength = EditorGUILayout.IntField("Length", _nLength);
            }
        }

        EditorGUILayout.EndHorizontal();
        EditorGUILayout.BeginVertical();
        if (GUILayout.Button("Add New Field"))
        {
            NetField nf = new NetField();
            if (_nCreateTypeIndex == 0)
            {
                nf.type = _strArTypeNameReq[_nTypeIndex];
            }
            else
            {
                nf.type = _strArTypeNameResp[_nTypeIndex];
            }
            nf.name = fieldName;
            nf.note = _strNote;
            if (nf.type == "string" || nf.type.Contains("[]"))
            {
                nf.length = _nLength;
            }
            else
            {
                nf.length = -1;
                switch (nf.type)
                {
                case "short":
                    nf.length = 2;
                    break;

                case "ushort":
                    nf.length = 2;
                    break;

                case "double":
                    nf.length = 8;
                    break;

                case "byte":
                    nf.length = 1;
                    break;

                case "bool":
                    nf.length = 1;
                    break;
                }
                if (nf.length == -1)
                {
                    nf.length = 4;
                }
            }
            nf._bCanSkip = false;
            _strlFieldWrite.Add(nf);
            StringClear();
        }
        if (_strlFieldWrite.Count > 0)
        {
            if (GUILayout.Button("Create New CS File"))
            {
                if (_nCreateTypeIndex == 0)
                {
                    CreateReqCsFile();
                    _nMainID    = 0;
                    _nSubID     = 0;
                    totalLength = 0;
                }
                else
                {
                    CreateRespCsFile();
                    _nMainID    = 0;
                    _nSubID     = 0;
                    totalLength = 0;
                }
                AssetDatabase.Refresh();
            }
        }
        EditorGUILayout.EndVertical();
        EditorGUILayout.EndVertical();
    }
Ejemplo n.º 13
0
    private void CreateReqCsFile()
    {
        string       path = EditorUtility.SaveFilePanel("Save The Msg CS", "", fileName + ".cs", "cs");
        StreamWriter sw   = new StreamWriter(path, false);

        Write(sw, 0, "using UnityEngine;");
        Write(sw, 0, "using System.Collections;");
        Write(sw, 0, "using KK.Frame.Net;");
        Write(sw, 0, "");
        Write(sw, 0, "namespace " + _strNameSpace);
        Write(sw, 0, "{");
        Write(sw, 1, "[ProtoNetMsg(mainID = " + _nMainID + ", " + "subID = " + _nSubID + ", " + "msgTyp = ProtoNetMsgAttribute.MsgType.Req)]");
        Write(sw, 1, string.Format("public class {0} : CMD_Base_Req", fileName));
        Write(sw, 1, "{");
        Write(sw, 2, "public override short MainId { get { return " + _nMainID + "; }}");
        Write(sw, 2, "public override short SubId { get { return " + _nSubID + "; }}");
        Write(sw, 0, "");
        Write(sw, 2, "// 消息字段///");
        Write(sw, 0, "");
        for (int i = 0; i < _strlFieldWrite.Count; i++)
        {
            string s = "public " + _strlFieldWrite[i].type + " " + _strlFieldWrite[i].name + ";  //" + _strlFieldWrite[i].note;
            Write(sw, 2, s);
        }
        Write(sw, 0, "");
        Write(sw, 2, "protected override void WriteData(ByteBuffer buffer)");
        Write(sw, 2, "{");
        int  totalAlignment = 0;
        int  differ         = 0;
        int  writeIndex     = 999;
        bool _bIsAddToEnd   = false;

        for (int i = 0; i < _strlFieldWrite.Count; i++)
        {
            NetField nf = _strlFieldWrite[i];
            string   s  = nf.type;
            if (s == "string" || s.Contains("[]"))
            {
                string temp = s.Substring(0, 1).ToUpper();
                temp += s.Substring(1, s.Length - 1);
                string f = "";
                if (!s.Contains("[]"))
                {
                    f = "buffer.Write" + temp + "(" + "KKNetUtil.Get4scalPasswordCN(" + nf.name + "," + nf.length + "));";
                }
                else
                {
                    if (s == "byte[]")
                    {
                        string ft = temp.Replace("[]", "s");
                        f = "buffer.Write" + ft + "(" + nf.name + ");";
                    }
                    else
                    {
                        string ft = temp.Replace("[]", "Array");
                        f = "buffer.Write" + ft + "(" + nf.name + ");";
                    }
                }
                if (i == writeIndex)
                {
                    AutoWriteByte(sw, differ);
                    totalAlignment += differ;
                }
                Write(sw, 3, f);
            }
            else
            {
                string temp = s.Substring(0, 1).ToUpper();
                if (s == "ushort")
                {
                    string temptwo = s.Substring(1, 1).ToUpper();
                    temp += temptwo;
                    temp += s.Substring(2, s.Length - 2);
                }
                else
                {
                    temp += s.Substring(1, s.Length - 1);
                }
                string f = "buffer.Write" + temp + "(" + nf.name + ");";
                if (i == writeIndex)
                {
                    AutoWriteByte(sw, differ);
                    totalAlignment += differ;
                }
                Write(sw, 3, f);
            }
            if (nf._bCanSkip == false)
            {
                if (nf.length % 4 != 0)
                {
                    int[] byteMessageArray = BytesAlignment(nf, i);
                    writeIndex = byteMessageArray[0];
                    if (writeIndex >= _strlFieldWrite.Count)
                    {
                        _bIsAddToEnd = true;
                    }
                    differ = byteMessageArray[1];
                }
            }
        }
        if (_bIsAddToEnd)
        {
            AutoWriteByte(sw, differ);
            totalAlignment += differ;
        }
        Write(sw, 2, "}");
        Write(sw, 0, "");
        Write(sw, 2, "protected override int GetDataSize()");
        Write(sw, 2, "{");
        for (int i = 0; i < _strlFieldWrite.Count; i++)
        {
            totalLength += _strlFieldWrite[i].length;
        }
        totalLength += totalAlignment;
        Write(sw, 3, "return NetDefine.HEAD_LEN + " + totalLength + ";");
        Write(sw, 2, "}");
        Write(sw, 2, "public static CMD_Base_Req CreateInstance()");
        Write(sw, 2, "{");
        Write(sw, 3, "return new " + fileName + "();");
        Write(sw, 2, "}");
        Write(sw, 1, "}");
        Write(sw, 0, "}");
        sw.Close();
        _strlFieldWrite.Clear();
        totalAlignment = 0;
        fileName       = "";
        fieldName      = "";
        _strNameSpace  = "";
    }
Ejemplo n.º 14
0
 internal static void MarkTransient(String marker)
 {
     NetField.MarkTransient(marker);
 }
Ejemplo n.º 15
0
    public static void InitNetField()
    {
        entityStateFields = new NetField[46];
        //把经常改变的量放到前面
        entityStateFields[0] = new NetField("id", 0, 32);
        entityStateFields[1] = new NetField("idx", sizeof(int), 32);
        entityStateFields[2] = new NetField("eType", sizeof(int) * 2, 8);
        entityStateFields[3] = new NetField("eFlag", sizeof(int) * 3, 32);

        entityStateFields[4]  = new NetField("pos.trType", sizeof(int) * 4, 8);
        entityStateFields[5]  = new NetField("pos.trTime", sizeof(int) * 5, 32);     //0
        entityStateFields[6]  = new NetField("pos.trDur", sizeof(int) * 6, 32);
        entityStateFields[7]  = new NetField("pos.trBase.x", sizeof(int) * 7, 0);    //1
        entityStateFields[8]  = new NetField("pos.trBase.y", sizeof(int) * 8, 0);    //2
        entityStateFields[9]  = new NetField("pos.trBase.z", sizeof(int) * 9, 0);    //5
        entityStateFields[10] = new NetField("pos.trDelta.x", sizeof(int) * 10, 0);  //3
        entityStateFields[11] = new NetField("pos.trDelta.y", sizeof(int) * 11, 0);  //4
        entityStateFields[12] = new NetField("pos.trDelta.z", sizeof(int) * 12, 0);  //7

        entityStateFields[13] = new NetField("apos.trType", sizeof(int) * 13, 8);
        entityStateFields[14] = new NetField("apos.trTime", sizeof(int) * 14, 32);
        entityStateFields[15] = new NetField("apos.trDur", sizeof(int) * 15, 32);
        entityStateFields[16] = new NetField("apos.trBase.x", sizeof(int) * 16, 0);      //8
        entityStateFields[17] = new NetField("apos.trBase.y", sizeof(int) * 17, 0);      //6
        entityStateFields[18] = new NetField("apos.trBase.z", sizeof(int) * 18, 0);
        entityStateFields[19] = new NetField("apos.trDelta.x", sizeof(int) * 19, 0);
        entityStateFields[20] = new NetField("apos.trDelta.y", sizeof(int) * 20, 0);
        entityStateFields[21] = new NetField("apos.trDelta.z", sizeof(int) * 21, 0);

        entityStateFields[22] = new NetField("time", sizeof(int) * 22, 32);
        entityStateFields[23] = new NetField("time2", sizeof(int) * 23, 32);

        entityStateFields[24] = new NetField("origin.x", sizeof(int) * 24, 0);
        entityStateFields[25] = new NetField("origin.y", sizeof(int) * 25, 0);
        entityStateFields[26] = new NetField("origin.z", sizeof(int) * 26, 0);

        entityStateFields[27] = new NetField("origin2.x", sizeof(int) * 27, 0);
        entityStateFields[28] = new NetField("origin2.y", sizeof(int) * 28, 0);
        entityStateFields[29] = new NetField("origin2.z", sizeof(int) * 29, 0);

        entityStateFields[30] = new NetField("angles.x", sizeof(int) * 30, 0);
        entityStateFields[31] = new NetField("angles.y", sizeof(int) * 31, 0);
        entityStateFields[32] = new NetField("angles.z", sizeof(int) * 32, 0);

        entityStateFields[33] = new NetField("angles2.x", sizeof(int) * 33, 0);
        entityStateFields[34] = new NetField("angles2.y", sizeof(int) * 34, 0);
        entityStateFields[35] = new NetField("angles2.z", sizeof(int) * 35, 0);

        entityStateFields[36] = new NetField("oeIdx", sizeof(int) * 36, CConstVar.GENTITYNUM_BITS);
        entityStateFields[37] = new NetField("oeIdx2", sizeof(int) * 37, CConstVar.GENTITYNUM_BITS);

        entityStateFields[38] = new NetField("sourceID", sizeof(int) * 38, 32);
        entityStateFields[39] = new NetField("source2ID", sizeof(int) * 39, 32);
        entityStateFields[40] = new NetField("clientNum", sizeof(int) * 40, 8);
        entityStateFields[41] = new NetField("frame", sizeof(int) * 41, 32);
        entityStateFields[42] = new NetField("solid", sizeof(int) * 42, 32);
        entityStateFields[43] = new NetField("eventID", sizeof(int) * 43, 32);
        entityStateFields[44] = new NetField("eventParam", sizeof(int) * 44, 32);
        entityStateFields[45] = new NetField("generic1", sizeof(int) * 45, 8);

        var tmps = new string[] {
            "pos.trTime",
            "pos.trBase.x",
            "pos.trBase.y",
            "pos.trDelta.x",
            "pos.trDelta.y",
            "pos.trBase.z",
            "apos.trBase.y",
            "pos.trDelta.z",
            "apos.trBase.x",
            "eventID",
            "angles2.y",
            "eType",
            "eventParam",
            "pos.trType",
            "eFlag",
            "oeIdx",
            "clientNum",
            "angles.y",
            "pos.trDur",
            "apos.trType",
            "origin.x",
            "origin.y",
            "origin.z",
            "solid",
            "sourceID",
            "oeIdx2",
            "generic1",
            "origin2.z",
            "origin2.x",
            "origin2.y",
            "source2ID",
            "angles.x",
            "time",
            "apos.trTime",
            "apos.trDur",
            "apos.trBase.z",
            "apos.trDelta.x",
            "apos.trDelta.y",
            "apos.trDelta.z",
            "time2",
            "angles.z",
            "angles2.x",
            "angles2.z",
            "frame",
            "id",
            "idx",
        };

        Array.Sort(entityStateFields, (x1, x2) => {
            var i1 = Array.IndexOf(tmps, x1.name);
            var i2 = Array.IndexOf(tmps, x2.name);
            if (i1 < 0 || i2 < 0)
            {
                CLog.Error("entityStateFields sort failed");
                return(0);
            }
            return(i1 - i2);
        });
    }
Ejemplo n.º 16
0
 private void ConnectField(NetType type, NetField field, IGraphDatabaseTransaction tx)
 {
     tx.CreateRelationship(type, field, Relationship.DEFINES_FIELD);
     tx.CreateRelationship(field, field.Type, Relationship.HAS_TYPE);
 }