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); } }
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); } }
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 }
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()); }