public void ToNJA(TextWriter writer, bool DX, List <string> labels, string[] textures = null) { for (int i = 1; i < Children.Count; i++) { Children[i - 1].Sibling = Children[i]; } for (int i = Children.Count - 1; i >= 0; i--) { if (!labels.Contains(Children[i].Name)) { labels.Add(Children[i].Name); Children[i].ToNJA(writer, DX, labels, textures); writer.WriteLine(); } } if (Parent == null && Sibling != null && !labels.Contains(Sibling.Name)) { labels.Add(Sibling.Name); Sibling.ToNJA(writer, DX, labels, textures); writer.WriteLine(); } writer.WriteLine("OBJECT_START"); if (Attach is BasicAttach) { BasicAttach basicattach = Attach as BasicAttach; basicattach.ToNJA(writer, DX, labels, textures); } writer.Write("OBJECT "); writer.Write(Name); writer.WriteLine("[]"); writer.WriteLine("START"); writer.WriteLine("EvalFlags ( " + ((StructEnums.NJD_EVAL)GetFlags()).ToString().Replace(", ", " | ") + " ),"); writer.WriteLine("Model " + (Attach != null ? "&" + Attach.Name : "NULL") + ","); writer.Write("OPosition ( "); foreach (float value in Position.ToArray()) { writer.Write(value.ToC()); writer.Write(", "); } writer.WriteLine("),"); writer.Write("OAngle ( "); foreach (float value in Rotation.ToArray()) { writer.Write(value.ToC()); writer.Write(", "); } writer.WriteLine("),"); writer.Write("OScale ( "); foreach (float value in Scale.ToArray()) { writer.Write(value.ToC()); writer.Write(", "); } writer.WriteLine("),"); writer.WriteLine("Child " + (Children.Count > 0 ? Children[0].Name : "NULL") + ","); writer.WriteLine("Sibling " + (Sibling != null ? Sibling.Name : "NULL")); writer.WriteLine("END"); writer.WriteLine("OBJECT_END"); }
public void ToNJA(TextWriter writer, bool DX, List <string> labels, string[] textures = null) { for (int i = 1; i < Children.Count; i++) { Children[i - 1].Sibling = Children[i]; } for (int i = Children.Count - 1; i >= 0; i--) { if (!labels.Contains(Children[i].Name)) { labels.Add(Children[i].Name); Children[i].ToNJA(writer, DX, labels, textures); writer.WriteLine(); } } if (Parent == null && Sibling != null && !labels.Contains(Sibling.Name)) { labels.Add(Sibling.Name); Sibling.ToNJA(writer, DX, labels, textures); writer.WriteLine(); } writer.WriteLine("OBJECT_START" + Environment.NewLine); if (Attach is BasicAttach) { BasicAttach basicattach = Attach as BasicAttach; basicattach.ToNJA(writer, DX, labels, textures); } else if (Attach is ChunkAttach) { //ChunkAttach ChunkAttach = Attach as ChunkAttach; //ChunkAttach.ToNJA(writer, labels, textures); } writer.Write("OBJECT "); writer.Write(Name); writer.WriteLine("[]"); writer.WriteLine("START"); writer.WriteLine("EvalFlags ( " + ((StructEnums.NJD_EVAL)GetFlags()).ToString().Replace(", ", " | ") + " ),"); writer.WriteLine("Model " + (Attach != null ? Attach.Name : "NULL") + ","); writer.WriteLine("OPosition ( " + Position.X.ToC() + ", " + Position.Y.ToC() + ", " + Position.Z.ToC() + " ),"); writer.WriteLine("OAngle ( " + ((float)Rotation.X / 182.044f).ToC() + ", " + ((float)Rotation.Y / 182.044f).ToC() + ", " + ((float)Rotation.Z / 182.044f).ToC() + " ),"); writer.WriteLine("OScale ( " + Scale.X.ToC() + ", " + Scale.Y.ToC() + ", " + Scale.Z.ToC() + " ),"); writer.WriteLine("Child " + (Children.Count > 0 ? Children[0].Name : "NULL") + ","); writer.WriteLine("Sibling " + (Sibling != null ? Sibling.Name : "NULL")); writer.WriteLine("END" + Environment.NewLine); writer.WriteLine("OBJECT_END"); if (Parent == null) { writer.WriteLine(Environment.NewLine + "DEFAULT_START"); writer.WriteLine(Environment.NewLine + "#ifndef DEFAULT_OBJECT_NAME"); writer.WriteLine("#define DEFAULT_OBJECT_NAME " + Name); writer.WriteLine("#endif"); writer.WriteLine(Environment.NewLine + "DEFAULT_END"); } }