@@ -13,7 +13,10 @@ public PaletteMap(string filename)
13
13
14
14
public PaletteMap ( Image < Rgba32 > img )
15
15
{
16
- Palette = new ( Color , byte ) [ 256 ] ;
16
+ Verify . AreEqual ( 16 , img . Height ) ;
17
+ Verify . AreEqual ( 16 , img . Height ) ;
18
+
19
+ Palette = new ( Color , byte ) [ img . Width * img . Height ] ;
17
20
for ( var y = 0 ; y < img . Height ; ++ y )
18
21
{
19
22
for ( var x = 0 ; x < img . Width ; ++ x )
@@ -26,23 +29,21 @@ public PaletteMap(Image<Rgba32> img)
26
29
27
30
public PaletteMap ( Color [ ] _palette )
28
31
{
29
- _ = Verify . Equals ( _palette . Length , 256 ) ;
30
- Palette = new ( Color , byte ) [ 256 ] ;
32
+ Verify . AreEqual ( 256 , _palette . Length ) ;
33
+ Palette = new ( Color , byte ) [ _palette . Length ] ;
31
34
32
- for ( var i = 0 ; i < 256 ; ++ i )
35
+ for ( var i = 0 ; i < _palette . Length ; ++ i )
33
36
{
34
37
Palette [ i ] = ( _palette [ i ] , ( byte ) i ) ;
35
38
}
36
39
}
37
40
38
41
public ( Color Color , byte Index ) [ ] Palette { get ; set ; }
39
42
40
- public Color [ ] PaletteColours => Palette . Select ( x => x . Color ) . ToArray ( ) ;
41
-
42
43
public ( Color Color , byte Index ) Transparent
43
44
=> ( Color . FromRgba ( 0 , 0 , 0 , 0 ) , 0 ) ; //Palette[0];
44
45
45
- public ( Color Color , byte Index ) [ ] DirectXReserved
46
+ public ( Color Color , byte Index ) [ ] TextRendering
46
47
=> Palette [ 1 ..7 ] ;
47
48
48
49
public ( Color Color , byte Index ) [ ] PrimaryRemapColours
@@ -58,7 +59,57 @@ public PaletteMap(Color[] _palette)
58
59
=> [ .. Palette [ 10 ..202 ] , .. Palette [ 214 ..246 ] ] ;
59
60
60
61
public ( Color Color , byte Index ) [ ] ReservedColours
61
- => [ Transparent , .. DirectXReserved , .. PrimaryRemapColours , .. SecondaryRemapColours , ChunkedTransparent ] ;
62
+ => [ Transparent , .. TextRendering , .. PrimaryRemapColours , .. SecondaryRemapColours , ChunkedTransparent ] ;
63
+
64
+ #region Colour Swatches
65
+
66
+ public ( Color Color , byte Index ) [ ] Black
67
+ => Palette [ 10 ..22 ] ;
68
+ public ( Color Color , byte Index ) [ ] Bronze
69
+ => Palette [ 22 ..34 ] ;
70
+ public ( Color Color , byte Index ) [ ] Copper
71
+ => Palette [ 34 ..46 ] ;
72
+ public ( Color Color , byte Index ) [ ] Yellow
73
+ => Palette [ 46 ..58 ] ;
74
+ public ( Color Color , byte Index ) [ ] Rose
75
+ => Palette [ 58 ..70 ] ;
76
+ public ( Color Color , byte Index ) [ ] GrassGreen
77
+ => Palette [ 70 ..82 ] ;
78
+ public ( Color Color , byte Index ) [ ] AvocadoGreen
79
+ => Palette [ 82 ..94 ] ;
80
+ public ( Color Color , byte Index ) [ ] Green
81
+ => Palette [ 94 ..106 ] ;
82
+ public ( Color Color , byte Index ) [ ] Brass
83
+ => Palette [ 106 ..118 ] ;
84
+ public ( Color Color , byte Index ) [ ] Lavender
85
+ => Palette [ 118 ..130 ] ;
86
+ public ( Color Color , byte Index ) [ ] Blue
87
+ => Palette [ 130 ..142 ] ;
88
+ public ( Color Color , byte Index ) [ ] SeaGreen
89
+ => Palette [ 142 ..154 ] ;
90
+ public ( Color Color , byte Index ) [ ] Purple
91
+ => Palette [ 154 ..166 ] ;
92
+ public ( Color Color , byte Index ) [ ] Red
93
+ => Palette [ 166 ..178 ] ;
94
+ public ( Color Color , byte Index ) [ ] Orange
95
+ => Palette [ 178 ..190 ] ;
96
+ public ( Color Color , byte Index ) [ ] Teal
97
+ => Palette [ 190 ..202 ] ;
98
+ public ( Color Color , byte Index ) [ ] Brown
99
+ => Palette [ 214 ..226 ] ;
100
+ public ( Color Color , byte Index ) [ ] Amber
101
+ => [ .. Palette [ 230 ..240 ] , .. Palette [ 244 ..246 ] ] ;
102
+
103
+ #endregion
104
+
105
+ #region Misc Usable Colours
106
+
107
+ public ( Color Color , byte Index ) [ ] MiscGrey
108
+ => [ Palette [ 226 ] , Palette [ 240 ] , Palette [ 241 ] , Palette [ 242 ] ] ;
109
+ public ( Color Color , byte Index ) [ ] MiscYellow
110
+ => [ Palette [ 227 ] , Palette [ 228 ] , Palette [ 229 ] ] ;
111
+
112
+ #endregion
62
113
63
114
public byte [ ] ConvertRgba32ImageToG1Data ( Image < Rgba32 > img , G1ElementFlags flags )
64
115
{
0 commit comments