@@ -33,7 +33,7 @@ impl FontWeight {
33
33
_ => FontWeight :: Regular ,
34
34
}
35
35
}
36
- pub fn to_u16 ( self ) -> u16 {
36
+ pub fn as_u16 ( self ) -> u16 {
37
37
match self {
38
38
FontWeight :: Thin => 100 ,
39
39
FontWeight :: ExtraLight => 200 ,
@@ -70,7 +70,7 @@ impl FontStyle {
70
70
}
71
71
}
72
72
73
- pub fn to_u8 ( self ) -> u8 {
73
+ pub fn as_u8 ( self ) -> u8 {
74
74
match self {
75
75
FontStyle :: Normal => 0 ,
76
76
FontStyle :: Italic => 1 ,
@@ -102,3 +102,103 @@ impl Default for Font {
102
102
}
103
103
}
104
104
}
105
+
106
+ impl Font {
107
+ pub fn new ( family : & str , weight : FontWeight , style : FontStyle ) -> Self {
108
+ Self {
109
+ family : family. to_owned ( ) ,
110
+ weight,
111
+ style,
112
+ cached_face_id : None ,
113
+ }
114
+ }
115
+ pub fn regular ( family : & str ) -> Self {
116
+ Self {
117
+ family : family. to_owned ( ) ,
118
+ ..Default :: default ( )
119
+ }
120
+ }
121
+ pub fn from_font_enum ( value : u32 ) -> Option < Font > {
122
+ return Some ( match value {
123
+ 0 => Font :: regular ( & "rbxasset://fonts/families/LegacyArial.json" ) ,
124
+ 1 => Font :: regular ( & "rbxasset://fonts/families/Arial.json" ) ,
125
+ 2 => Font :: new (
126
+ & "rbxasset://fonts/families/Arial.json" ,
127
+ FontWeight :: Bold ,
128
+ FontStyle :: Normal ,
129
+ ) ,
130
+ 3 => Font :: regular ( & "rbxasset://fonts/families/SourceSansPro.json" ) ,
131
+ 4 => Font :: new (
132
+ & "rbxasset://fonts/families/SourceSansPro.json" ,
133
+ FontWeight :: Bold ,
134
+ FontStyle :: Normal ,
135
+ ) ,
136
+ 16 => Font :: new (
137
+ & "rbxasset://fonts/families/SourceSansPro.json" ,
138
+ FontWeight :: SemiBold ,
139
+ FontStyle :: Normal ,
140
+ ) ,
141
+ 5 => Font :: new (
142
+ & "rbxasset://fonts/families/SourceSansPro.json" ,
143
+ FontWeight :: Light ,
144
+ FontStyle :: Normal ,
145
+ ) ,
146
+ 6 => Font :: new (
147
+ & "rbxasset://fonts/families/SourceSansPro.json" ,
148
+ FontWeight :: Regular ,
149
+ FontStyle :: Italic ,
150
+ ) ,
151
+ 7 => Font :: regular ( & "rbxasset://fonts/families/AccanthisADFStd.json" ) ,
152
+ 8 => Font :: regular ( & "rbxasset://fonts/families/Guru.json" ) ,
153
+ 9 => Font :: regular ( & "rbxasset://fonts/families/ComicNeueAngular.json" ) ,
154
+ 10 => Font :: regular ( & "rbxasset://fonts/families/Inconsolata.json" ) ,
155
+ 11 => Font :: regular ( & "rbxasset://fonts/families/HighwayGothic.json" ) ,
156
+ 12 => Font :: regular ( & "rbxasset://fonts/families/Zekton.json" ) ,
157
+ 13 => Font :: regular ( & "rbxasset://fonts/families/PressStart2P.json" ) ,
158
+ 14 => Font :: regular ( & "rbxasset://fonts/families/Balthazar.json" ) ,
159
+ 15 => Font :: regular ( & "rbxasset://fonts/families/RomanAntique.json" ) ,
160
+ 17 => Font :: regular ( & "rbxasset://fonts/families/GothamSSm.json" ) ,
161
+ 18 => Font :: new (
162
+ & "rbxasset://fonts/families/GothamSSm.json" ,
163
+ FontWeight :: Medium ,
164
+ FontStyle :: Normal ,
165
+ ) ,
166
+ 19 => Font :: new (
167
+ & "rbxasset://fonts/families/GothamSSm.json" ,
168
+ FontWeight :: Bold ,
169
+ FontStyle :: Normal ,
170
+ ) ,
171
+ 20 => Font :: new (
172
+ & "rbxasset://fonts/families/GothamSSm.json" ,
173
+ FontWeight :: Heavy ,
174
+ FontStyle :: Normal ,
175
+ ) ,
176
+ 21 => Font :: regular ( & "rbxasset://fonts/families/AmaticSC.json" ) ,
177
+ 22 => Font :: regular ( & "rbxasset://fonts/families/Bangers.json" ) ,
178
+ 23 => Font :: regular ( & "rbxasset://fonts/families/Creepster.json" ) ,
179
+ 24 => Font :: regular ( & "rbxasset://fonts/families/DenkOne.json" ) ,
180
+ 25 => Font :: regular ( & "rbxasset://fonts/families/Fondamento.json" ) ,
181
+ 26 => Font :: regular ( & "rbxasset://fonts/families/FredokaOne.json" ) ,
182
+ 27 => Font :: regular ( & "rbxasset://fonts/families/GrenzeGotisch.json" ) ,
183
+ 28 => Font :: regular ( & "rbxasset://fonts/families/IndieFlower.json" ) ,
184
+ 29 => Font :: regular ( & "rbxasset://fonts/families/JosefinSans.json" ) ,
185
+ 30 => Font :: regular ( & "rbxasset://fonts/families/Jura.json" ) ,
186
+ 31 => Font :: regular ( & "rbxasset://fonts/families/Kalam.json" ) ,
187
+ 32 => Font :: regular ( & "rbxasset://fonts/families/LuckiestGuy.json" ) ,
188
+ 33 => Font :: regular ( & "rbxasset://fonts/families/Merriweather.json" ) ,
189
+ 34 => Font :: regular ( & "rbxasset://fonts/families/Michroma.json" ) ,
190
+ 35 => Font :: regular ( & "rbxasset://fonts/families/Nunito.json" ) ,
191
+ 36 => Font :: regular ( & "rbxasset://fonts/families/Oswald.json" ) ,
192
+ 37 => Font :: regular ( & "rbxasset://fonts/families/PatrickHand.json" ) ,
193
+ 38 => Font :: regular ( & "rbxasset://fonts/families/PermanentMarker.json" ) ,
194
+ 39 => Font :: regular ( & "rbxasset://fonts/families/Roboto.json" ) ,
195
+ 40 => Font :: regular ( & "rbxasset://fonts/families/RobotoCondensed.json" ) ,
196
+ 41 => Font :: regular ( & "rbxasset://fonts/families/RobotoMono.json" ) ,
197
+ 42 => Font :: regular ( & "rbxasset://fonts/families/Sarpanch.json" ) ,
198
+ 43 => Font :: regular ( & "rbxasset://fonts/families/SpecialElite.json" ) ,
199
+ 44 => Font :: regular ( & "rbxasset://fonts/families/TitilliumWeb.json" ) ,
200
+ 45 => Font :: regular ( & "rbxasset://fonts/families/Ubuntu.json" ) ,
201
+ _ => return None ,
202
+ } ) ;
203
+ }
204
+ }
0 commit comments