public virtual void ToStream(Stream s, bool id) { PmxHeader header = Header; header.ElementFormat.WithID = id; PmxTextureTable pmxTextureTable = new PmxTextureTable(MaterialList); UpdateElementFormatSize(header.ElementFormat, pmxTextureTable); header.ToStreamEx(s); ModelInfo.ToStreamEx(s, header.ElementFormat); PmxStreamHelper.WriteElement_Int32(s, VertexList.Count); for (int i = 0; i < VertexList.Count; i++) { VertexList[i].ToStreamEx(s, header.ElementFormat); } PmxStreamHelper.WriteElement_Int32(s, FaceList.Count); for (int j = 0; j < FaceList.Count; j++) { PmxStreamHelper.WriteElement_Int32(s, FaceList[j], header.ElementFormat.VertexSize, signed: false); } pmxTextureTable.ToStreamEx(s, header.ElementFormat); PmxStreamHelper.WriteElement_Int32(s, MaterialList.Count); for (int k = 0; k < MaterialList.Count; k++) { MaterialList[k].ToStreamEx_TexTable(s, pmxTextureTable, header.ElementFormat); } PmxStreamHelper.WriteElement_Int32(s, BoneList.Count); for (int l = 0; l < BoneList.Count; l++) { BoneList[l].ToStreamEx(s, header.ElementFormat); } if (header.Ver < 2.1f) { int num = MorphList.Where((PmxMorph mp) => mp.IsImpulse).Count(); PmxStreamHelper.WriteElement_Int32(s, MorphList.Count - num); } else { PmxStreamHelper.WriteElement_Int32(s, MorphList.Count); } for (int m = 0; m < MorphList.Count; m++) { MorphList[m].ToStreamEx(s, header.ElementFormat); } PmxStreamHelper.WriteElement_Int32(s, NodeList.Count); for (int n = 0; n < NodeList.Count; n++) { NodeList[n].ToStreamEx(s, header.ElementFormat); } PmxStreamHelper.WriteElement_Int32(s, BodyList.Count); for (int num2 = 0; num2 < BodyList.Count; num2++) { BodyList[num2].ToStreamEx(s, header.ElementFormat); } PmxStreamHelper.WriteElement_Int32(s, JointList.Count); for (int num3 = 0; num3 < JointList.Count; num3++) { JointList[num3].ToStreamEx(s, header.ElementFormat); } if (header.Ver >= 2.1f) { PmxStreamHelper.WriteElement_Int32(s, SoftBodyList.Count); for (int num4 = 0; num4 < SoftBodyList.Count; num4++) { SoftBodyList[num4].ToStreamEx(s, header.ElementFormat); } } if (id) { PmxStreamHelper.WriteString(s, FilePath, header.ElementFormat); } header.ElementFormat.WithID = false; }