Esempio n. 1
0
 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");
 }
Esempio n. 2
0
        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");
            }
        }