public override void Serialize(MoSerializer archive) { archive.WriteByte(Index); archive.WriteVariableString(Name); archive.WriteVariableString(NameEn); archive.WriteByteString(Path, 256); archive.WriteByte(TimelinePanelRowsCount); archive.WriteInt32(BoneNames.Count); foreach (string name in BoneNames) { archive.WriteVariableString(name); } archive.WriteInt32(MorphNames.Count); foreach (string name in MorphNames) { archive.WriteVariableString(name); } archive.WriteInt32(IKBoneIndices.Count); foreach (int idx in IKBoneIndices) { archive.WriteInt32(idx); } archive.WriteInt32(ExternalParentBoneIndices.Count); foreach (int idx in ExternalParentBoneIndices) { archive.WriteInt32(idx); } archive.WriteByte(RenderingOrder); archive.WriteByte((byte)(IsVisible ? 1 : 0)); archive.WriteInt32(SelectedBoneIndex); archive.Serialize(MorphPanel); archive.WriteByte((byte)BoneGroupsExpansion.Count); foreach (bool item in BoneGroupsExpansion) { archive.WriteByte((byte)(item ? 1 : 0)); } archive.WriteInt32(TimelinePanelTopRowIndex); archive.WriteInt32(LastFrameIndex); archive.SerializeListWithoutCount(InitialBoneKeyFrames); archive.SerializeList(BoneKeyFrames); archive.SerializeListWithoutCount(InitialMorphKeyFrames); archive.SerializeList(MorphKeyFrames); archive.Serialize(InitialModelKeyFrame); archive.SerializeList(ModelKeyFrames); archive.SerializeListWithoutCount(CurrentBoneStatuses); archive.SerializeListWithoutCount(CurrentMorphStatuses); foreach (bool status in IKBonesEnabled) { archive.WriteByte((byte)(status ? 1 : 0)); } archive.SerializeListWithoutCount(ExternalParentStatuses); archive.WriteByte((byte)(IsAdditiveBlending ? 1 : 0)); archive.WriteSingle(EdgeWidth); archive.WriteByte((byte)(IsSelfShadowEnabled ? 1 : 0)); archive.WriteByte(CalculationOrder); }