Beispiel #1
0
        internal override void InternalDeserialize(NetIncomingMessage lidgrenMsg)
        {
            base.InternalDeserialize(lidgrenMsg);

            PartFlightId = lidgrenMsg.ReadUInt32();
            ModuleName   = lidgrenMsg.ReadString();
            FieldName    = lidgrenMsg.ReadString();

            FieldType = (PartSyncFieldType)lidgrenMsg.ReadByte();

            switch (FieldType)
            {
            case PartSyncFieldType.Boolean:
                BoolValue = lidgrenMsg.ReadBoolean();
                break;

            case PartSyncFieldType.Integer:
                IntValue = lidgrenMsg.ReadInt32();
                break;

            case PartSyncFieldType.Float:
                FloatValue = lidgrenMsg.ReadFloat();
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }
        }
        internal override void InternalDeserialize(NetIncomingMessage lidgrenMsg)
        {
            base.InternalDeserialize(lidgrenMsg);

            PartFlightId = lidgrenMsg.ReadUInt32();
            ModuleName   = lidgrenMsg.ReadString();
            FieldName    = lidgrenMsg.ReadString();

            FieldType = (PartSyncFieldType)lidgrenMsg.ReadByte();

            switch (FieldType)
            {
            case PartSyncFieldType.Boolean:
                BoolValue = lidgrenMsg.ReadBoolean();
                break;

            case PartSyncFieldType.Integer:
                IntValue = lidgrenMsg.ReadInt32();
                break;

            case PartSyncFieldType.Float:
                FloatValue = lidgrenMsg.ReadFloat();
                break;

            case PartSyncFieldType.Double:
                DoubleValue = lidgrenMsg.ReadDouble();
                break;

            case PartSyncFieldType.Vector3:
                for (var i = 0; i < 3; i++)
                {
                    VectorValue[i] = lidgrenMsg.ReadFloat();
                }
                break;

            case PartSyncFieldType.Quaternion:
                for (var i = 0; i < 4; i++)
                {
                    VectorValue[i] = lidgrenMsg.ReadFloat();
                }
                break;

            case PartSyncFieldType.Object:
            case PartSyncFieldType.String:
                StrValue = lidgrenMsg.ReadString();
                break;

            case PartSyncFieldType.Enum:
                IntValue = lidgrenMsg.ReadInt32();
                StrValue = lidgrenMsg.ReadString();
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }
        }