mirror of
https://github.com/MightyPirates/OpenComputers.git
synced 2025-09-15 18:30:27 -04:00
update font.hex (thanks @asie) and drop wcwidth.bin
now server loads glyph sizes by parsing font.hex closes #2676
This commit is contained in:
parent
9c509508a7
commit
d67156ed52
@ -186,8 +186,8 @@
|
||||
00B9:00307030303030300000000000000000
|
||||
00BA:0000003C6666663C007E000000000000
|
||||
00BB:0000000000CC663366CC000000000000
|
||||
00BC:000066E66C6C18183032666ACFC20000
|
||||
00BD:000066E66C6C181830306C66CCCE0000
|
||||
00BC:000046C64C4C58183032666ACFC20000
|
||||
00BD:000046C64C4C581830306C66CCCE0000
|
||||
00BE:0000C6266C2CD8183032666ACFC20000
|
||||
00BF:0018180000183030606066663C000000
|
||||
00C0:301800183C6666667E66666666000000
|
||||
@ -910,13 +910,14 @@
|
||||
201D:66CC0000000000000000000000000000
|
||||
2020:00001818187E18181818181818000000
|
||||
2021:00001818187E1818187E181818000000
|
||||
2022:0000000018183C3C3C3C181800000000
|
||||
2022:000000000000183C3C18000000000000
|
||||
2024:00000000000000000000181818000000
|
||||
2025:00000000000000000000666666660000
|
||||
2026:00000000000000000000009292000000
|
||||
2030:0000C6C6CCCC18186060DBDBDBDB0000
|
||||
2031:0000C6C6CCCC18186060D5D5D5D50000
|
||||
203C:66666666666666666666000066660000
|
||||
2044:000006060C0C181830306060C0C00000
|
||||
2047:CCCC66666666CCCCCCCC0000CCCC0000
|
||||
2048:E6E6363636366666C6C60000C6C60000
|
||||
2049:DCDCC6C6C6C6CCCCD8D80000D8D80000
|
||||
@ -928,11 +929,31 @@
|
||||
2078:00386C6C386C6C380000000000000000
|
||||
2079:00386C6C3C0C0C380000000000000000
|
||||
207F:000000786C6C6C6C0000000000000000
|
||||
20A3:00007E6060607C6060F8606060000000
|
||||
20A4:0000386C6C60F060F0606666FC000000
|
||||
20A7:00FC66667C62666F666666F300000000
|
||||
20AA:000000FA8AAAAAAAAAA2BE0000000000
|
||||
20AC:00003C666660FC60F86066663C000000
|
||||
2117:7E7E8181B9B9A5A5B9B9A1A181817E7E
|
||||
2120:006A8E8E4A2A2ACA0000000000000000
|
||||
2122:00EA4E4E4A4A4A4A0000000000000000
|
||||
2150:000046C64C4C581830376162C2C20000
|
||||
2151:000046C64C4C581830366967C1C60000
|
||||
2152:000046C64C4C581A36326062C5C20000
|
||||
2153:000046C64C4C581830366162C1C60000
|
||||
2154:0000C6264C8CF81830366162C1C60000
|
||||
2155:000046C64C4C5818303E686CC2CC0000
|
||||
2156:0000C6264C8CF818303E686CC2CC0000
|
||||
2157:0000C6266C2CD818303E686CC2CC0000
|
||||
2158:00002666ACFC3818303E686CC2CC0000
|
||||
2159:000046C64C4C58183036686EC9C60000
|
||||
215A:0000E686CC2CD8183036686EC9C60000
|
||||
215B:000046C64C4C581830366966C9C60000
|
||||
215C:0000C6266C2CD81830366966C9C60000
|
||||
215D:0000E686CC2CD81830366966C9C60000
|
||||
215E:0000E6264C4C581830366966C9C60000
|
||||
215F:000046C64C4C581830306060C0C00000
|
||||
2189:000046A6ACAC581830366162C1C60000
|
||||
2190:000000000010307F7F30100000000000
|
||||
2191:183C7E18181818181818181818181818
|
||||
2192:0000000000080CFEFE0C080000000000
|
||||
@ -943,26 +964,53 @@
|
||||
2199:000004040E0E1C1CB8B8F0F0E0E0F0F0
|
||||
21A5:183C7E181818181818181818187E3C18
|
||||
21A8:183C7E1818181818181818187E3C18FF
|
||||
21E6:181838386F6FC1C1C1C16F6F38381818
|
||||
21E7:18183C3C6666C3C3E7E7242424243C3C
|
||||
21E8:18181C1CF6F683838383F6F61C1C1818
|
||||
21E9:3C3C24242424E7E7C3C366663C3C1818
|
||||
21E6:0000000018386FC1C16F381800000000
|
||||
21E7:00000000183C66C3E724243C00000000
|
||||
21E8:00000000181CF68383F61C1800000000
|
||||
21E9:000000003C2424E7C3663C1800000000
|
||||
220E:00000000007E7E7E7E7E7E0000000000
|
||||
2211:0000FEC06030180C183060C0FE000000
|
||||
2212:000000000000007E0000000000000000
|
||||
2218:000000003C3C666666663C3C00000000
|
||||
2213:000000007E001818187E181818000000
|
||||
2214:0000001818001818187E181818000000
|
||||
2215:000006060C0C181830306060C0C00000
|
||||
2218:0000000000003C66663C000000000000
|
||||
2219:000000000000183C3C18000000000000
|
||||
221A:0003030606060606CCCC6C3818000000
|
||||
221B:0063132616660606CCCC6C3818000000
|
||||
221C:002363A6F6262606CCCC6C3818000000
|
||||
221E:000000000076DBDBDB6E000000000000
|
||||
221F:000000000000FE060606060000000000
|
||||
2223:00001818181818181818181818000000
|
||||
2224:000018181A1C18183858181818000000
|
||||
2225:00006C6C6C6C6C6C6C6C6C6C6C000000
|
||||
2226:00006C6C6E6C6C7C6C6CEC6C6C000000
|
||||
2229:0000003C666666666666666600000000
|
||||
222A:00000066666666666666663C00000000
|
||||
222B:00000E1B18181818181818D870000000
|
||||
2248:0000000072D69C0072D69C0000000000
|
||||
2261:000000007E00007E00007E0000000000
|
||||
2264:000000000C18306030180C007E000000
|
||||
2265:0000000030180C060C1830007E000000
|
||||
2295:0000000000385492FE92543800000000
|
||||
2296:0000000000384482FE82443800000000
|
||||
2297:00000000003844AA92AA443800000000
|
||||
2298:000000000038448A92A2443800000000
|
||||
2299:00000000003844829282443800000000
|
||||
229A:0000000000384492AA92443800000000
|
||||
229C:00000000003844BA82BA443800000000
|
||||
229D:0000000000384482BA82443800000000
|
||||
229E:0000000000FE9292FE9292FE00000000
|
||||
229F:0000000000FE8282FE8282FE00000000
|
||||
22A0:0000000000FEC6AA92AAC6FE00000000
|
||||
22A1:0000000000FE8282928282FE00000000
|
||||
22C5:00000000181818180000000000000000
|
||||
2320:00000E1B1B1B18181818181818181818
|
||||
2321:181818181818181818D8D8D870000000
|
||||
23E9:000000008888CCCCEEEECCCC88880000
|
||||
23EA:0000000022226666EEEE666622220000
|
||||
23EB:101038387C7C0000101038387C7C0000
|
||||
23EC:000000008888CCCCEEEECCCC88880000
|
||||
23EC:7C7C3838101000007C7C383810100000
|
||||
2500:00000000000000FFFF00000000000000
|
||||
2501:000000000000FFFFFFFF000000000000
|
||||
2502:18181818181818181818181818181818
|
||||
@ -1123,20 +1171,20 @@
|
||||
259D:0F0F0F0F0F0F0F0F0000000000000000
|
||||
259E:0F0F0F0F0F0F0F0FF0F0F0F0F0F0F0F0
|
||||
259F:0F0F0F0F0F0F0F0FFFFFFFFFFFFFFFFF
|
||||
25A0:00007E7E7E7E7E7E7E7E7E7E7E7E0000
|
||||
25A1:00007E7E66666666666666667E7E0000
|
||||
25A2:7C7CC6C6C6C6C6C6C6C6C6C67C7C0000
|
||||
25A3:FEFE8282BABABABABABA8282FEFE0000
|
||||
25A0:00000000007E7E7E7E7E7E0000000000
|
||||
25A1:00000000007E666666667E0000000000
|
||||
25A2:000000007CC6C6C6C6C67C0000000000
|
||||
25A3:00000000FE82BABABA82FE0000000000
|
||||
25A4:FF00FF00FF00FF00FF00FF00FF00FF00
|
||||
25A5:AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
25A6:44FF444444FF444444FF444444FF4444
|
||||
25A7:88884444222211118888444422221111
|
||||
25A8:11112222444488881111222244448888
|
||||
25A9:AAAA4444AAAA1111AAAA4444AAAA1111
|
||||
25AA:00000000383838383838000000000000
|
||||
25AB:00000000383828283838000000000000
|
||||
25AC:00000000000000007E7E7E7E7E7E0000
|
||||
25AD:00000000000000007E7E66667E7E0000
|
||||
25AA:00000000000038383800000000000000
|
||||
25AB:00000000000038283800000000000000
|
||||
25AC:0000000000000000007E7E7E00000000
|
||||
25AD:0000000000000000007E667E00000000
|
||||
25AE:3C3C3C3C3C3C3C3C3C3C3C3C3C3C0000
|
||||
25AF:3C3C242424242424242424243C3C0000
|
||||
25B0:00000000000000003F3F7E7EFCFC0000
|
||||
@ -1147,8 +1195,8 @@
|
||||
25B5:000010103828286C4444C68282FE0000
|
||||
25B6:80C0E0F0F8FCFEFFFEFCF8F0E0C08000
|
||||
25B7:80C0E0F0D8CCC6C3C6CCD8F0E0C08000
|
||||
25B8:00000000406070787C78706040000000
|
||||
25B9:00000000406050484448506040000000
|
||||
25B8:000000002030383C3E3C383020000000
|
||||
25B9:00000000203028242224283020000000
|
||||
25BA:00000000C0F0FCFFFCF0C00000000000
|
||||
25BB:00000000C0F0DCC7DCF0C00000000000
|
||||
25BC:FEFEFEFE7C7C7C7C3838383810101010
|
||||
@ -1164,25 +1212,25 @@
|
||||
25C6:18183C3C7E7EFFFFFFFF7E7E3C3C1818
|
||||
25C7:18183C3C6666C3C3C3C366663C3C1818
|
||||
25C8:181824245A5ABDBDBDBD5A5A24241818
|
||||
25C9:3C3C6666C3C3DBDBDBDBC3C366663C3C
|
||||
25C9:000000003C66C3DBDBC3663C00000000
|
||||
25CA:101038386C6CC6C6C6C66C6C38381010
|
||||
25CB:00003C3C66664242424266663C3C0000
|
||||
25CC:10104444000082820000444410100000
|
||||
25CD:000038386C6CAAAAAAAA6C6C38380000
|
||||
25CE:383844449292AAAA9292444438380000
|
||||
25CF:00003C3C7E7E7E7E7E7E7E7E3C3C0000
|
||||
25D0:3C3C7676F3F3F3F3F3F3F3F376763C3C
|
||||
25D1:3C3C6E6ECFCFCFCFCFCFCFCF6E6E3C3C
|
||||
25D2:3C3C6666C3C3C3C3FFFFFFFF7E7E3C3C
|
||||
25D3:3C3C7E7EFFFFFFFFC3C3C3C366663C3C
|
||||
25D4:3C3C6E6ECFCFCFCFC3C3C3C366663C3C
|
||||
25D5:3C3C6E6ECFCFCFCFFFFFFFFF7E7E3C3C
|
||||
25CB:00000000003C664242663C0000000000
|
||||
25CC:00000000104400820044100000000000
|
||||
25CD:0000000000386CAAAA6C380000000000
|
||||
25CE:00000000384492AA9244380000000000
|
||||
25CF:00000000003C7E7E7E7E3C0000000000
|
||||
25D0:000000003C76F3F3F3F3763C00000000
|
||||
25D1:000000003C6ECFCFCFCF6E3C00000000
|
||||
25D2:000000003C66C3C3FFFF7E3C00000000
|
||||
25D3:000000003C7EFFFFC3C3663C00000000
|
||||
25D4:000000003C6ECFCFC3C3663C00000000
|
||||
25D5:000000003C6ECFCFFFFF7E3C00000000
|
||||
25D6:00030F1F1F3F3F3F3F3F1F1F0F030000
|
||||
25D7:00C0F0F8F8FCFCFCFCFCF8F8F0C00000
|
||||
25D8:FFFFFFFFE7E7C3C3C3C3E7E7FFFFFFFF
|
||||
25D9:FFFFC3C39999BDBDBDBD9999C3C3FFFF
|
||||
25DA:FFFFC3C39999BDBD0000000000000000
|
||||
25DB:0000000000000000BDBD9999C3C3FFFF
|
||||
25D8:FFFFFFFFFFFFE7C3C3E7FFFFFFFFFFFF
|
||||
25D9:FFFFFFFFFFC399BDBD99C3FFFFFFFFFF
|
||||
25DA:FFFFFFFFFFC399BD0000000000000000
|
||||
25DB:0000000000000000BD99C3FFFFFFFFFF
|
||||
25DC:38386060C0C0C0C00000000000000000
|
||||
25DD:1C1C0606030303030000000000000000
|
||||
25DE:00000000000000000303030306061C1C
|
||||
@ -1193,32 +1241,38 @@
|
||||
25E3:8080C0C0E0E0F0F0F8F8FCFCFEFEFFFF
|
||||
25E4:FFFFFEFEFCFCF8F8F0F0E0E0C0C08080
|
||||
25E5:FFFF7F7F3F3F1F1F0F0F070703030101
|
||||
25E6:00000000181824242424181800000000
|
||||
25E7:FFFFF3F3F3F3F3F3F3F3F3F3F3F3FFFF
|
||||
25E8:FFFFCFCFCFCFCFCFCFCFCFCFCFCFFFFF
|
||||
25E9:FFFFFFFFFFFFFBFBF3F3E3E3C3C3FFFF
|
||||
25EA:FFFFC3C3C7C7CFCFDFDFFFFFFFFFFFFF
|
||||
25EB:FFFFDBDBDBDBDBDBDBDBDBDBDBDBFFFF
|
||||
25E6:00000000000018242418000000000000
|
||||
25E7:00000000FFF3F3F3F3F3F3FF00000000
|
||||
25E8:00000000FFCFCFCFCFCFCFFF00000000
|
||||
25E9:00000000FFFFFFFBF3E3C3FF00000000
|
||||
25EA:00000000FFC3C7CFDFFFFFFF00000000
|
||||
25EB:00000000FFDBDBDBDBDBDBFF00000000
|
||||
25EC:18181818242442425A5A99998181FFFF
|
||||
25ED:181818183C3C76767676F3F3F3F3FFFF
|
||||
25EE:181818183C3C6E6E6E6ECFCFCFCFFFFF
|
||||
25EF:3C3C6666C3C3C3C3C3C3C3C366663C3C
|
||||
25F0:FFFFDBDBDBDBDBDBFBFBC3C3C3C3FFFF
|
||||
25F1:FFFFC3C3C3C3C3C3FBFBDBDBDBDBFFFF
|
||||
25F2:FFFFC3C3C3C3C3C3DFDFDBDBDBDBFFFF
|
||||
25F3:FFFFDBDBDBDBDBDBDFDFC3C3C3C3FFFF
|
||||
25F4:3C3C7E7EDBDBDBDBFBFBC3C366663C3C
|
||||
25F5:3C3C6666C3C3FBFBDBDBDBDB7E7E3C3C
|
||||
25F6:3C3C6666C3C3DFDFDBDBDBDB7E7E3C3C
|
||||
25F7:3C3C7E7EDBDBDBDBDFDFC3C366663C3C
|
||||
25EF:000000003C66C3C3C3C3663C00000000
|
||||
25F0:00000000FFDBDBDBFBC3C3FF00000000
|
||||
25F1:00000000FFC3C3C3FBDBDBFF00000000
|
||||
25F2:00000000FFC3C3C3DFDBDBFF00000000
|
||||
25F3:00000000FFDBDBDBDFC3C3FF00000000
|
||||
25F4:000000003C7EDBDBFBC3663C00000000
|
||||
25F5:000000003C66C3FBDBDB7E3C00000000
|
||||
25F6:000000003C66C3DFDBDB7E3C00000000
|
||||
25F7:000000003C7EDBDBDFC3663C00000000
|
||||
25F8:FFFFC6C6CCCCD8D8F0F0E0E0C0C08080
|
||||
25F9:FFFF636333331B1B0F0F070703030101
|
||||
25FA:0101030307070F0F1B1B33336363FFFF
|
||||
25FB:00007C7C6C6C6C6C6C6C7C7C00000000
|
||||
25FC:00007C7C7C7C7C7C7C7C7C7C00000000
|
||||
25FD:000000003C3C242424243C3C00000000
|
||||
25FE:000000003C3C3C3C3C3C3C3C00000000
|
||||
25FF:8080C0C0E0E0F0F0D8D8CCCCC6C6FFFF
|
||||
25FA:8080C0C0E0E0F0F0D8D8CCCCC6C6FFFF
|
||||
25FB:00000000007C6C6C6C7C000000000000
|
||||
25FC:00000000007C7C7C7C7C000000000000
|
||||
25FD:0000000000003C24243C000000000000
|
||||
25FE:0000000000003C3C3C3C000000000000
|
||||
25FF:0101030307070F0F1B1B33336363FFFF
|
||||
2605:000001000380038007C03FF87FFC3FF80FE00FE01FF03C783018000000000000
|
||||
2606:000001000380038006C03C78600C38380C600C601BB03C783018000000000000
|
||||
2609:00000000003C425A5A423C0000000000
|
||||
2610:00000000FE8282828282FE0000000000
|
||||
2611:00000000FE868AAA9282FE0000000000
|
||||
2612:00000000FE82AA92AA82FE0000000000
|
||||
2625:00007CC6C66C38FE3838383838000000
|
||||
2628:000018183C18187E1818181818000000
|
||||
262F:0000003C428D81B3FFCF7E3C00000000
|
||||
@ -1230,9 +1284,12 @@
|
||||
2635:00000000C6C60000FEFE0000C6C60000
|
||||
2636:00000000FEFE0000C6C60000C6C60000
|
||||
2637:00000000C6C60000C6C60000C6C60000
|
||||
2639:00003C4281A5818199BD81423C000000
|
||||
263A:00003C4281A58181BD9981423C000000
|
||||
263B:00003C7EFFDBFFFFC3E7FF7E3C000000
|
||||
2639:0000007E81A5A5818199BD817E000000
|
||||
263A:0000007E81A5A58181BD99817E000000
|
||||
263B:0000007EFFDBDBFFFFC3E7FF7E000000
|
||||
2640:0000003C6666663C187E181800000000
|
||||
2641:00000018187E183C6666663C00000000
|
||||
2642:0000001E0E1A78CCCCCCCC7800000000
|
||||
2660:00000010387CFEFEFE38387C00000000
|
||||
2661:0000006CFEC6C6C66C6C381000000000
|
||||
2662:0000001038386CC66C38381000000000
|
||||
@ -1251,9 +1308,9 @@
|
||||
268D:0000000000000000C6C60000FEFE0000
|
||||
268E:0000000000000000FEFE0000C6C60000
|
||||
268F:0000000000000000C6C60000C6C60000
|
||||
26AA:000000003C3C4242424242423C3C0000
|
||||
26AB:000000003C3C7E7E7E7E7E7E3C3C0000
|
||||
26AC:000038387C7C6C6C7C7C383800000000
|
||||
26AA:0000000000003C4242423C0000000000
|
||||
26AB:0000000000003C7E7E7E3C0000000000
|
||||
26AC:0000000000387C6C7C38000000000000
|
||||
2708:303038389C9CFFFFFFFF9C9C38383030
|
||||
2734:929254543838FEFE3838545492920000
|
||||
2800:00000000000000000000000000000000
|
||||
@ -1513,10 +1570,17 @@
|
||||
28FE:0F0F0F0FFFFFFFFFFFFFFFFFFFFFFFFF
|
||||
28FF:FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
|
||||
2913:181818181818181818181818187E3C18
|
||||
2A00:000007C01C7030183018600C638C638C638C600C301830181C7007C000000000
|
||||
2A01:000007C01D7031183118610C610C7FFC610C610C311831181D7007C000000000
|
||||
2A02:000007C01C70301838386C6C66CC638C66CC6C6C383830181C7007C000000000
|
||||
2A03:44444444444454544444444438380000
|
||||
2A04:4444444454547C7C5454444438380000
|
||||
2A05:7C7C4444444444444444444444440000
|
||||
2A06:4444444444444444444444447C7C0000
|
||||
2B1D:00000000000018181818000000000000
|
||||
2B24:3C3C7E7EFFFFFFFFFFFFFFFF7E7E3C3C
|
||||
2B55:3C3C7E7EE7E7C3C3C3C3E7E77E7E3C3C
|
||||
2B58:00003C3C7E7E666666667E7E3C3C0000
|
||||
2B24:000000003C7EFFFFFFFF7E3C00000000
|
||||
2B55:000000003C7EE7C3C3E77E3C00000000
|
||||
2B58:00000000003C7E66667E3C0000000000
|
||||
2E2E:3C3C6666666630301818000018180000
|
||||
3000:0000000000000000000000000000000000000000000000000000000000000000
|
||||
3001:0000000000000000000000000000000000000000000000002000100008000800
|
||||
@ -8509,125 +8573,6 @@ EC03:000052523434060660602C2C4A4A0000
|
||||
EC04:000010102C2C3A3A5C5C343404040000
|
||||
EC05:525244442D2DC4C41111B4B423234A4A
|
||||
EC06:9191525200000303C0C000004A4A8989
|
||||
EC07:00003C7EFF99FFFFC3BDFF7E3C000000
|
||||
EC08:7E7EC3C3D3D3D3D3DBDBC3C3C3C37E7E
|
||||
EC09:18183C3C3C3C3C3C7E7E101038381010
|
||||
EC0A:0505050505050D0D0D0D191979797171
|
||||
EC0B:A0A0A0A0A0A0B0B0B0B098989E9E8E8E
|
||||
EC0C:10105454545454545454545454549292
|
||||
EC0D:7070C6C6C4C4C0C0C4C4C6C670700000
|
||||
EC0E:181818183C3C7E7EFFFFDBDB18183C3C
|
||||
EC0F:3C3C1818DBDBFFFF7E7E3C3C18181818
|
||||
EC10:0C0C1C1C3939FFFFFFFF39391C1C0C0C
|
||||
EC11:BABAEEEEAAAA38383838BABAFEFEBABA
|
||||
EC12:BABAFEFEBABA38383838AAAAEEEEBABA
|
||||
EC13:E7E74242FFFFF9F9FFFF4242E7E70000
|
||||
EC14:E7E74242FFFF9F9FFFFF4242E7E70000
|
||||
EC15:22226363F7F7B7B7FFFF7E7E3C3C3C3C
|
||||
EC16:3C3C7E7EFFFFBFBFFFFF7E7E3C3C3C3C
|
||||
EC17:3C3C3C3C18183C3C3C3C3C3C3C3C1818
|
||||
EC18:18183C3C3C3C3C3C3C3C18183C3C3C3C
|
||||
EC19:000000007B7BFFFFFFFF7B7B00000000
|
||||
EC1A:00000000DEDEFFFFFFFFDEDE00000000
|
||||
EC1B:2020606020202020303028283C3C3C3C
|
||||
EC1C:000030305858FDFDFFFF797930300000
|
||||
EC1D:00000C0C1A1ABFBFFFFF9E9E0C0C0000
|
||||
EC1E:000030305858FDFD3F3FF9F930300000
|
||||
EC1F:00000C0C1A1ABFBFFCFC9F9F0C0C0000
|
||||
EC20:101028286868BCBCFCFC787810103838
|
||||
EC21:00000000FCFC1C1C7F7F63633E3E0000
|
||||
EC22:3838383892927C7C1010282828282828
|
||||
EC23:383838381010FEFE1010282844448282
|
||||
EC24:8282444428281010FEFE101038383838
|
||||
EC25:11111212D4D4F8F8D4D4121211110000
|
||||
EC26:888848482B2B1F1F2B2B484888880000
|
||||
EC27:3838383812127C7C9090282824242222
|
||||
EC28:3838383890907C7C1212282848488888
|
||||
EC29:383838381010FEFE101038387C7CFEFE
|
||||
EC2A:8181C3C3E7E7FFFFFFFF99992424C3C3
|
||||
EC2B:00007C7CD6D67C7C3838545492920000
|
||||
EC2C:0000000038385454FEFE000000000000
|
||||
EC2D:3C3C5A5AFFFFE7E77E7E242442428181
|
||||
EC2E:3C3C5A5AFFFFE7E77E7E242424246666
|
||||
EC2F:08081C1C2A2A7F7F77773E3E36366363
|
||||
EC30:08081C1C2A2A7F7F77773E3E36361414
|
||||
EC31:4141A2A23C3C5A5A7E7EFFFF42426363
|
||||
EC32:828245453C3C5A5A7E7EFFFF4242C6C6
|
||||
EC33:00005A5ABDBD99992424424224240000
|
||||
EC34:8181A5A55A5A181818182424C3C30000
|
||||
EC35:000024247E7EBDBD7E7E24242424E7E7
|
||||
EC36:24247E7EBDBD7E7E242442424242C3C3
|
||||
EC37:3C3C5A5AFFFFABABD5D5FFFFDDDD8989
|
||||
EC38:3C3C5A5AFFFFABABD5D5FFFF77772222
|
||||
EC39:3C3C4242A5A5818199998181D5D5AAAA
|
||||
EC3A:3C3C4242A5A5818199998181ABAB5555
|
||||
EC3B:181824247E7EFFFF5A5A242400000000
|
||||
EC3C:3C3CFFFFFFFF18180C0C181830301818
|
||||
EC3D:3C3C4242ABABD5D51010101014140808
|
||||
EC3E:0000C0C0C8C854545454555522220000
|
||||
EC3F:FFFF89899191C5C5A3A389899191FFFF
|
||||
EC40:FFFFC3C3A5A599999999A5A5C3C3FFFF
|
||||
EC41:FFFF99999999FFFFFFFF99999999FFFF
|
||||
EC42:FFFF8181A5A581818181A5A58181FFFF
|
||||
EC43:E7E7818181810000000081818181E7E7
|
||||
EC44:92925454383810101010101010101010
|
||||
EC45:38381010383810103838101038381010
|
||||
EC46:000000000000AAAAFFFFAAAA00000000
|
||||
EC47:7E7E42427E7E42427E7E42427E7E4242
|
||||
EC48:0000FFFF5555555555555555FFFF0000
|
||||
EC49:000000000000C0C0B0B08C8C8383FFFF
|
||||
EC4A:00000000000003030D0D3131C1C1FFFF
|
||||
EC4B:0F0F303040404E4E8A8A8E8E80808181
|
||||
EC4C:F0F00C0C020272725151717101018181
|
||||
EC4D:0F0F3030404040408E8E808080808181
|
||||
EC4E:F0F00C0C020202027171010101018181
|
||||
EC4F:81818080888884844343404030300F0F
|
||||
EC50:8181010111112121C2C202020C0CF0F0
|
||||
EC51:81818080808087874040404030300F0F
|
||||
EC52:818101010101E1E1020202020C0CF0F0
|
||||
EC53:81818080838384844343404030300F0F
|
||||
EC54:81810101C1C12121C2C202020C0CF0F0
|
||||
EC55:81818080878788884848404030300F0F
|
||||
EC56:81810101E1E11111121202020C0CF0F0
|
||||
EC57:07070F0F1F1F1818181810101E1E1717
|
||||
EC58:F0F0F8F8ECEC0404040404043C3C5454
|
||||
EC59:11110B0B0D0D060607072E2E39393838
|
||||
EC5A:04042828D8D82828D0D01010E0E00000
|
||||
EC5B:00000303040408083F3F7F7FFFFF3F3F
|
||||
EC5C:0000C0C020201010FCFCFEFEFFFFFCFC
|
||||
EC5D:03030C0C3F3F3F3FFFFF7F7F37371F1F
|
||||
EC5E:C0C03030B8B8DCDCEEEEF6F6FBFBFBFB
|
||||
EC5F:04044E4EE4E446466F6F7F7F60603F3F
|
||||
EC60:2020727227276262F6F6FEFE0606FCFC
|
||||
EC61:3B3B31311B1B1F1F10101F1F0F0F0707
|
||||
EC62:DCDC8C8CD8D8F8F80808F8F8F0F0E0E0
|
||||
EC63:010133337B7B59598C8CDFDF7F7F3F3F
|
||||
EC64:8080CCCCDEDE9A9A3131FBFBFEFEFCFC
|
||||
EC65:01010303070706060E0E3E3E70703030
|
||||
EC66:8080C0C0E0E0606070707C7C0E0E0C0C
|
||||
EC67:787870706060E0E0C0C0ECECFEFED1D1
|
||||
EC68:1E1E0E0E06060707030337377F7F8B8B
|
||||
EC69:3F3F1F1F1F1F0F0F0F0F7F7F0000FFFF
|
||||
EC6A:FCFCF8F8F8F8F0F0F0F0FEFE0000FFFF
|
||||
EC6B:0000010102020404020201011F1F1F1F
|
||||
EC6C:000080804040202040408080F8F8F8F8
|
||||
EC6D:02020202020202021F1F20207F7F0000
|
||||
EC6E:4040404040404040F8F80404FEFE0000
|
||||
EC6F:7373737373737F7F3F3F1F1F0F0F0F0F
|
||||
EC70:CECECECECECEFEFEFCFCF8F8F0F0F0F0
|
||||
EC71:0F0F0F0F0F0F18187F7F40407F7FFFFF
|
||||
EC72:F0F0F0F0F0F01818FEFE0202FEFEFFFF
|
||||
EC73:F8F8444442422121212142424444F8F8
|
||||
EC74:FFFF050507070000000007070505FFFF
|
||||
EC75:FCFC868682828181818182828686FCFC
|
||||
EC76:00000000808040407F7F808000000000
|
||||
EC77:0000010106061D1D2A2A2A2A2A2A1F1F
|
||||
EC78:1B1B8F8F65651111C9C9A9A9B1B1F3F3
|
||||
EC79:4C4CF7F7F0F01818070702023E3EFEFE
|
||||
EC7A:7F7F9F9F3131414181818181F9F9FDFD
|
||||
EC7B:5F5F60606363626264647B7B60605F5F
|
||||
EC7C:FFFF04040303FCFC0202FCFC0404F8F8
|
||||
EC7D:FCFC0202FCFC00000000000000000000
|
||||
FE81:7E801010101010101010000000000000
|
||||
FE82:3C401010101010101F0F000000000000
|
||||
FE84:30403840101010101F0F000000000000
|
||||
@ -8781,7 +8726,9 @@ FF37:00000000781E781E781E781E781E799E7BDE7FFE7E7E7C3E781E000000000000
|
||||
FF38:00000000F00F781E3C3C1E780FF007E00FF01E783C3C781EF00F000000000000
|
||||
FF39:00000000F00F781E3C3C1E780FF007E003C003C003C003C003C0000000000000
|
||||
FF3A:000000003FFC003C007800F001E003C007800F001E003C003FFC000000000000
|
||||
FF3B:00000FF00F000F000F000F000F000F000F000F000F000F000F000FF000000000
|
||||
FF3C:F00078003C001E000F00078003C001E000F00078003C001E000F000700000000
|
||||
FF3D:00000FF000F000F000F000F000F000F000F000F000F000F000F00FF000000000
|
||||
FF3E:000003C007E00FF01E783C3C781E000000000000000000000000000000000000
|
||||
FF3F:0000000000000000000000000000000000000000000000000000000000007FFE
|
||||
FF40:000003C001E000F0003C00000000000000000000000000000000000000000000
|
||||
@ -8811,9 +8758,12 @@ FF57:000000000000000000000000781E781E799E7BDE7FFE3FFC1E78000000000000
|
||||
FF58:000000000000000000000000781E3C3C1E780FF01E783C3C781E000000000000
|
||||
FF59:0000000000000000000000003C3C3C3C3C3C3C3C3C3C3C3C0FFC003C003C0FF0
|
||||
FF5A:0000000000000000000000003FFC003C00F003C00F003C003FFC000000000000
|
||||
FF5C:0000007E01E001E001E001E003C07F8003C001E001E001E001E0007E00000000
|
||||
FF5B:0000007E01E001E001E001E003C07F8003C001E001E001E001E0007E00000000
|
||||
FF5C:03C003C003C003C003C003C003C003C003C003C003C003C003C003C000000000
|
||||
FF5D:00007E00078007800780078003C001FE03C007800780078007807E0000000000
|
||||
FF5E:00001F867BDE60F8000000000000000000000000000000000000000000000000
|
||||
FF5F:00000330066006600CC00CC00CC00CC00CC00CC00CC006600660033000000000
|
||||
FF60:00000CC0066006600330033003300330033003300330066006600CC000000000
|
||||
FF61:000000000000000000386C6C38000000
|
||||
FF62:001E1818181800000000000000000000
|
||||
FF63:00000000000000000018181818780000
|
||||
@ -8964,7 +8914,3 @@ FF9F:00386C6C380000000000000000000000
|
||||
1D354:929200009292000092920000FEFE0000
|
||||
1D355:929200009292000092920000C6C60000
|
||||
1D356:92920000929200009292000092920000
|
||||
1F34E:080810106C6CFEFEFCFCFCFC7E7E6C6C
|
||||
1F34F:080810106C6C82828484848452526C6C
|
||||
1F352:00000606080810103030787878783030
|
||||
1F860:1010383838383838383838387C7CD6D6
|
||||
|
Binary file not shown.
@ -17,7 +17,7 @@ public class FontParserHex implements IGlyphProvider {
|
||||
private static final byte[] OPAQUE = {(byte) 255, (byte) 255, (byte) 255, (byte) 255};
|
||||
private static final byte[] TRANSPARENT = {0, 0, 0, 0};
|
||||
|
||||
private final byte[][] glyphs = new byte[0x10000][];
|
||||
private final byte[][] glyphs = new byte[FontUtils.codepoint_limit()][];
|
||||
|
||||
@Override
|
||||
public void initialize() {
|
||||
@ -26,7 +26,6 @@ public class FontParserHex implements IGlyphProvider {
|
||||
}
|
||||
try {
|
||||
final InputStream font = Minecraft.getMinecraft().getResourceManager().getResource(new ResourceLocation(Settings.resourceDomain(), "font.hex")).getInputStream();
|
||||
OpenComputers.log().info("Initialized unicode glyph provider.");
|
||||
try {
|
||||
OpenComputers.log().info("Initializing unicode glyph provider.");
|
||||
final BufferedReader input = new BufferedReader(new InputStreamReader(font));
|
||||
|
@ -1,28 +1,182 @@
|
||||
package li.cil.oc.util
|
||||
|
||||
import java.io.IOException
|
||||
import java.io.{BufferedReader, InputStreamReader}
|
||||
import java.nio.charset.StandardCharsets
|
||||
import scala.collection.mutable.BitSet
|
||||
|
||||
import li.cil.oc.OpenComputers
|
||||
|
||||
object FontUtils {
|
||||
// Note: we load the widths from a file (one byte per width) because the Scala
|
||||
// compiler craps its pants when we try to have it as an array in the source
|
||||
// file... seems having an array with 0x10000 entries leads to stack overflows,
|
||||
// who would have known!
|
||||
private val widths = {
|
||||
val ba = Array.fill[Byte](0x10000)(-1)
|
||||
// Note to self: NOT VIA THE FUCKING RESOURCE SYSTEM BECAUSE IT'S FUCKING CLIENT ONLY YOU IDIOT.
|
||||
val is = FontUtils.getClass.getResourceAsStream("/assets/opencomputers/wcwidth.bin")
|
||||
if (is != null) {
|
||||
try {
|
||||
is.read(ba)
|
||||
is.close()
|
||||
} catch {
|
||||
case e: IOException => OpenComputers.log.warn("Failed loading character widths. Font rendering will probably be derpy as all hell.", e)
|
||||
}
|
||||
}
|
||||
ba
|
||||
}
|
||||
private val defined_double_wide: BitSet = BitSet()
|
||||
|
||||
// font.hex actually has some codepoints larger than 0x10000
|
||||
// but, UnicodeAPI.scala is using java's Integer.ToChar which only supports the utf-16 range
|
||||
// and thus will truncate any incoming codepoint, forcing it below 0x10000
|
||||
// I believe the solution is to use StringBuffer.appendCodePoint
|
||||
// but that change would deserve a bit of testing first, postponing for a later update
|
||||
// review http://www.oracle.com/us/technologies/java/supplementary-142654.html
|
||||
val codepoint_limit: Int = 0x10000
|
||||
def wcwidth(charCode: Int): Int = if (defined_double_wide(charCode)) 2 else 1
|
||||
|
||||
def wcwidth(ch: Int) = if (ch < 0 || ch >= widths.length) -1 else widths(ch)
|
||||
{
|
||||
val table = Array[Int](
|
||||
16,16,16,18,19,20,21,22,23,24,25,26,27,28,29,30,31,16,16,32,16,16,16,33,34,35,
|
||||
36,37,38,39,16,16,40,16,16,16,16,16,16,16,16,16,16,16,41,42,16,16,43,16,16,16,
|
||||
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,
|
||||
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,
|
||||
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,
|
||||
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,
|
||||
16,16,16,16,16,16,16,16,16,16,44,16,45,46,47,48,16,16,16,16,16,16,16,16,16,16,
|
||||
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,
|
||||
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,
|
||||
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,49,16,16,50,51,16,52,16,16,
|
||||
16,16,16,16,16,16,53,16,16,16,16,16,54,55,16,16,16,16,56,16,16,16,16,16,16,16,
|
||||
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,
|
||||
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,
|
||||
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,
|
||||
16,16,16,57,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,
|
||||
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,
|
||||
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,
|
||||
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,58,59,16,
|
||||
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,
|
||||
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,
|
||||
255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
|
||||
255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,248,3,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,254,255,255,255,255,191,
|
||||
182,0,0,0,0,0,0,0,31,0,255,7,0,0,0,0,0,248,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,
|
||||
0,192,191,159,61,0,0,0,128,2,0,0,0,255,255,255,7,0,0,0,0,0,0,0,0,0,0,192,255,
|
||||
1,0,0,0,0,0,0,248,15,0,0,0,192,251,239,62,0,0,0,0,0,14,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,240,255,255,127,7,0,0,0,0,0,0,20,254,33,254,0,12,0,0,0,2,0,0,0,0,0,
|
||||
0,16,30,32,0,0,12,0,0,0,6,0,0,0,0,0,0,16,134,57,2,0,0,0,35,0,6,0,0,0,0,0,0,16,
|
||||
190,33,0,0,12,0,0,0,2,0,0,0,0,0,0,144,30,32,64,0,12,0,0,0,4,0,0,0,0,0,0,0,1,
|
||||
32,0,0,0,0,0,0,0,0,0,0,0,0,0,192,193,61,96,0,12,0,0,0,0,0,0,0,0,0,0,144,64,48,
|
||||
0,0,12,0,0,0,0,0,0,0,0,0,0,0,30,32,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,4,92,0,0,0,
|
||||
0,0,0,0,0,0,0,0,242,7,128,127,0,0,0,0,0,0,0,0,0,0,0,0,242,27,0,63,0,0,0,0,0,0,
|
||||
0,0,0,3,0,0,160,2,0,0,0,0,0,0,254,127,223,224,255,254,255,255,255,31,64,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,224,253,102,0,0,0,195,1,0,30,0,100,32,0,32,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,224,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
28,0,0,0,28,0,0,0,12,0,0,0,12,0,0,0,0,0,0,0,176,63,64,254,15,32,0,0,0,0,0,56,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,135,1,4,
|
||||
14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,1,0,0,0,0,0,0,64,
|
||||
127,229,31,248,159,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,0,0,208,23,4,0,0,
|
||||
0,0,248,15,0,3,0,0,0,60,11,0,0,0,0,0,0,64,163,3,0,0,0,0,0,0,240,207,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,247,255,253,33,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,255,255,255,255,127,0,0,240,0,248,0,0,0,124,0,0,0,0,0,0,31,
|
||||
252,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,6,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,247,63,0,0,0,128,0,0,0,0,0,
|
||||
0,0,0,0,0,3,0,68,8,0,0,96,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,255,
|
||||
255,3,0,0,0,0,0,192,63,0,0,128,255,3,0,0,0,0,0,7,0,0,0,0,0,200,19,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,126,102,0,8,16,0,0,0,0,0,0,0,0,0,0,0,0,157,193,2,0,0,0,0,48,64,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,33,0,0,0,0,0,64,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,127,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,32,110,240,0,0,0,0,0,135,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,255,127,0,0,0,0,0,0,0,3,0,0,0,0,0,120,38,0,0,
|
||||
0,0,0,0,0,0,7,0,0,0,128,239,31,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,192,127,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,40,191,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,128,3,248,255,231,15,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
28,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||
)
|
||||
val wtable = Array[Int](
|
||||
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,18,16,16,16,16,16,16,16,16,
|
||||
16,16,16,16,16,16,16,16,16,19,16,16,16,16,16,16,16,16,16,16,20,21,22,23,24,17,
|
||||
17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,25,
|
||||
17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,
|
||||
17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,
|
||||
17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,
|
||||
17,17,17,17,17,17,17,17,26,16,16,16,16,27,16,16,17,17,17,17,17,17,17,17,17,17,
|
||||
17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,
|
||||
17,17,17,17,17,17,17,28,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,
|
||||
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,17,17,16,16,16,29,30,16,16,16,16,
|
||||
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,
|
||||
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,
|
||||
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,
|
||||
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,
|
||||
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,
|
||||
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,
|
||||
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,31,16,16,16,16,16,16,16,16,16,
|
||||
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,
|
||||
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,
|
||||
16,16,16,16,32,16,16,16,16,16,16,16,16,16,16,16,16,16,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,
|
||||
255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
|
||||
255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,
|
||||
0,248,0,0,0,0,0,0,0,0,0,0,252,0,0,0,0,0,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,251,255,255,255,
|
||||
255,255,255,255,255,255,255,15,0,255,255,255,255,255,255,255,255,255,255,255,
|
||||
255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,63,0,0,0,255,15,
|
||||
255,255,255,255,255,255,255,127,254,255,255,255,255,255,255,255,255,255,127,
|
||||
254,255,255,255,255,255,255,255,255,255,255,255,255,224,255,255,255,255,63,
|
||||
254,255,255,255,255,255,255,255,255,255,255,127,255,255,255,255,255,7,255,255,
|
||||
255,255,15,0,255,255,255,255,255,127,255,255,255,255,255,0,255,255,255,255,
|
||||
255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,127,255,
|
||||
255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
|
||||
255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,
|
||||
255,255,255,255,255,255,31,255,255,255,255,255,255,127,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,255,255,255,31,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,
|
||||
255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,15,0,255,
|
||||
255,127,248,255,255,255,255,255,15,0,0,255,3,0,0,255,255,255,255,247,255,127,
|
||||
15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,254,255,255,255,255,255,255,255,255,
|
||||
255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,255,255,255,255,255,7,255,1,3,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||
)
|
||||
def c_wcwidth(charCode: Int): Int = {
|
||||
if (charCode < 0xFF) {
|
||||
if (((charCode + 1) & 0x7F) >= 0x21) 1
|
||||
else if (charCode > 0) -1
|
||||
else 0
|
||||
}
|
||||
else if ((charCode & 0xfffeffff) < 0xfffe) {
|
||||
if (((table(table(charCode >> 8) * 32 + ((charCode & 0xFF) >> 3)) >> (charCode & 7)) & 1) == 1) 0
|
||||
else if (((wtable(wtable(charCode >> 8) * 32 + ((charCode & 0xFF) >> 3)) >> (charCode & 7)) & 1) == 1) 2
|
||||
else 1
|
||||
}
|
||||
else if ((charCode & 0xfffe) == 0xfffe) -1
|
||||
else if ((charCode - 0x20000) < 0x20000) 2
|
||||
else if ((charCode == 0xe0001) || ((charCode - 0xe0020) < 0x5f) || ((charCode - 0xe0100) < 0xef)) 0
|
||||
else 1
|
||||
}
|
||||
OpenComputers.log.info("Initializing unicode wcwidth.")
|
||||
for (i <- 0 until codepoint_limit) {
|
||||
if (c_wcwidth(i) == 2)
|
||||
defined_double_wide += i
|
||||
}
|
||||
try {
|
||||
OpenComputers.log.info("Initializing font glyph widths.")
|
||||
val font = FontUtils.getClass.getResourceAsStream("/assets/opencomputers/font.hex")
|
||||
try {
|
||||
var line: String = null
|
||||
val input = new BufferedReader(new InputStreamReader(font, StandardCharsets.UTF_8))
|
||||
while ({line = input.readLine; line != null}) {
|
||||
val info = line.split(":")
|
||||
val charCode = Integer.parseInt(info(0), 16)
|
||||
if (charCode >= 0 && charCode < codepoint_limit) {
|
||||
info(1).trim.length match {
|
||||
case 64 => defined_double_wide += charCode
|
||||
case 32 => defined_double_wide -= charCode
|
||||
case n => OpenComputers.log.warn(s"Invalid glyph size detected in font.hex. Expected 64 or 32, got: $n")
|
||||
}
|
||||
} else {
|
||||
OpenComputers.log.warn(f"Invalid glyph char code detected in font.hex. Expected 0<= charCode <$codepoint_limit%X, got: $charCode%X")
|
||||
}
|
||||
}
|
||||
} finally {
|
||||
try {
|
||||
font.close()
|
||||
} catch {
|
||||
case ex: Throwable => OpenComputers.log.error(s"Error closing font.hex: $ex")
|
||||
}
|
||||
}
|
||||
} catch {
|
||||
case ex: Throwable => OpenComputers.log.error(s"Error parsing glyphs to determine widths: $ex")
|
||||
}
|
||||
OpenComputers.log.info("glyph width ready.")
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user