示例#1
0
 public void Execute(BinaryWriter writer, IWritingSession session)
 {
     using (writer.BeginMoostaBlock())
     {
         try
         {
             writer.Write(this._serializer.TargetGuid.ToByteArray());
             writer.Write(this._serializer.FormatVersion);
             writer.Write(session.GetKey(this._target));
             this._serializer.Write(writer, this._target, session);
         }
         catch (Exception)
         {
         }
     }
 }
示例#2
0
 public static void WriteMoostaObject(this BinaryWriter writer, object obj, IWritingSession session)
 {
     using (writer.BeginMoostaBlock())
     {
         ISerializer[] array;
         if (obj != null && Serialization._type2serializers.TryGetValue(obj.GetType(), out array))
         {
             try
             {
                 ISerializer serializer = array[array.Length - 1];
                 writer.Write(serializer.TargetGuid.ToByteArray());
                 writer.Write(serializer.FormatVersion);
                 writer.Write(session.GetKey(obj));
                 serializer.Write(writer, obj, session);
             }
             catch (Exception)
             {
             }
         }
     }
 }
示例#3
0
 protected override void WriteTarget(BinaryWriter writer, DanceModelInfo target, IWritingSession session)
 {
     writer.Write(target.ModelName);
     writer.Write(target.BonePositions.Count);
     foreach (KeyValuePair <string, CtVector3D> current in target.BonePositions)
     {
         writer.Write(current.Key);
         writer.Write(current.Value.X);
         writer.Write(current.Value.Y);
         writer.Write(current.Value.Z);
     }
 }
示例#4
0
 protected override void WriteTarget(BinaryWriter writer, DanceMotion target, IWritingSession session)
 {
     writer.WriteMoostaString(target.Name);
     writer.Write(target.BeatCount);
     writer.Write(target.Tags.Length);
     string[] tags = target.Tags;
     for (int i = 0; i < tags.Length; i++)
     {
         string str = tags[i];
         writer.WriteMoostaString(str);
     }
     string[] boneNames = target.FirstPose.BoneNames;
     writer.Write(boneNames.Length);
     string[] array = boneNames;
     for (int j = 0; j < array.Length; j++)
     {
         string str2 = array[j];
         writer.WriteMoostaString(str2);
     }
     string[] skinNames = target.FirstPose.SkinNames;
     writer.Write(skinNames.Length);
     string[] array2 = skinNames;
     for (int k = 0; k < array2.Length; k++)
     {
         string str3 = array2[k];
         writer.WriteMoostaString(str3);
     }
     writer.Write(target.Poses.Length);
     DancePose[] poses = target.Poses;
     for (int l = 0; l < poses.Length; l++)
     {
         DancePose dancePose = poses[l];
         string[]  array3    = boneNames;
         for (int m = 0; m < array3.Length; m++)
         {
             string       boneName = array3[m];
             CtQuaternion rotate   = dancePose[boneName].Rotate;
             writer.Write(rotate.X);
             writer.Write(rotate.Y);
             writer.Write(rotate.Z);
             writer.Write(rotate.W);
         }
         string[] array4 = skinNames;
         for (int n = 0; n < array4.Length; n++)
         {
             string skinName = array4[n];
             writer.Write(dancePose.GetSkinState(skinName).Weight);
         }
     }
 }
示例#5
0
 protected abstract void WriteTarget(BinaryWriter writer, T target, IWritingSession session);
示例#6
0
 public void Write(BinaryWriter writer, object target, IWritingSession session)
 {
     this.WriteTarget(writer, (T)((object)target), session);
 }