-
Notifications
You must be signed in to change notification settings - Fork 0
/
Triangle.cs
43 lines (42 loc) · 1.34 KB
/
Triangle.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
using ThemModdingHerds.IO.Binary;
namespace ThemModdingHerds.Levels.SGM;
public class Triangle
{
public short FirstIndex {get; set;}
public short SecondIndex {get; set;}
public short ThirdIndex {get; set;}
}
public static class TriangleExt
{
public static Triangle ReadSGMTriangle(this Reader reader)
{
reader.Endianness = IO.Endianness.Big;
return new()
{
FirstIndex = reader.ReadShort(),
SecondIndex = reader.ReadShort(),
ThirdIndex = reader.ReadShort()
};
}
public static void Write(this Writer writer,Triangle Triangle)
{
writer.Endianness = IO.Endianness.Big;
writer.Write(Triangle.FirstIndex);
writer.Write(Triangle.SecondIndex);
writer.Write(Triangle.ThirdIndex);
}
public static List<Triangle> ReadSGMTriangles(this Reader reader,ulong count)
{
reader.Endianness = IO.Endianness.Big;
List<Triangle> Triangles = [];
for(ulong i = 0;i < count;i++)
Triangles.Add(ReadSGMTriangle(reader));
return Triangles;
}
public static void Write(this Writer writer,IEnumerable<Triangle> Triangles)
{
writer.Endianness = IO.Endianness.Big;
foreach(Triangle Triangle in Triangles)
Write(writer,Triangle);
}
}