示例#1
0
 public static void WriteCameras(BinaryWriter bw, List<Camera> cameras)
 {
     bw.Write(cameras.Count);
     foreach (var camera in cameras)
     {
         bw.WriteCoordinate(camera.EyePosition);
         bw.WriteCoordinate(camera.LookPosition);
     }
 }
示例#2
0
 private static void WritePathNode(BinaryWriter bw, PathNode node)
 {
     bw.WriteCoordinate(node.Position);
     bw.Write(node.ID);
     bw.WriteFixedLengthString(Encoding.UTF8, 128, node.Name);
     bw.Write(node.Properties.Count);
     foreach (var property in node.Properties)
     {
         WriteProperty(bw, property);
     }
 }
示例#3
0
 private static void WriteMapEntity(BinaryWriter bw, Entity ent)
 {
     bw.WriteCString("CMapEntity");
     WriteMapBase(bw, ent);
     WriteEntityData(bw, ent.EntityData);
     bw.Write(new byte[2]); // Unused
     bw.WriteCoordinate(ent.Origin);
     bw.Write(new byte[4]); // Unused
 }
示例#4
0
 private static void WriteFace(BinaryWriter bw, Face face)
 {
     bw.WriteFixedLengthString(Encoding.UTF8, 256, face.Texture.Name);
     bw.Write(new byte[4]);
     bw.WriteCoordinate(face.Texture.UAxis);
     bw.WriteDecimalAsSingle(face.Texture.XShift);
     bw.WriteCoordinate(face.Texture.VAxis);
     bw.WriteDecimalAsSingle(face.Texture.YShift);
     bw.WriteDecimalAsSingle(face.Texture.Rotation);
     bw.WriteDecimalAsSingle(face.Texture.XScale);
     bw.WriteDecimalAsSingle(face.Texture.YScale);
     bw.Write(new byte[16]);
     bw.Write(face.Vertices.Count);
     foreach (var vertex in face.Vertices)
     {
         bw.WriteCoordinate(vertex.Location);
     }
     bw.WritePlane(face.Vertices.Select(v => v.Location).ToArray());
 }