diff --git a/lib-numberxd/src/test/love/distributedrebirth/numberxd/base2t/T10PartDecimalTest.java b/lib-numberxd/src/test/love/distributedrebirth/numberxd/base2t/T10PartDecimalTest.java index 7a9f8218..bce8ae22 100644 --- a/lib-numberxd/src/test/love/distributedrebirth/numberxd/base2t/T10PartDecimalTest.java +++ b/lib-numberxd/src/test/love/distributedrebirth/numberxd/base2t/T10PartDecimalTest.java @@ -22,8 +22,8 @@ public class T10PartDecimalTest { public void testToneMap() { Assertions.assertEquals(T10PartDecimal.PART_1, T10PartDecimal.PART_1.BãßValueOfDialTone("˥")); Assertions.assertEquals(T10PartDecimal.PART_2, T10PartDecimal.PART_1.BãßValueOfDialTone("˦")); - Assertions.assertEquals(T10PartDecimal.PART_9, T10PartDecimal.PART_1.BãßValueOfDialTone("꜕")); - Assertions.assertEquals(T10PartDecimal.PART_10, T10PartDecimal.PART_1.BãßValueOfDialTone("꜖")); + Assertions.assertEquals(T10PartDecimal.PART_9, T10PartDecimal.PART_1.BãßValueOfDialTone("꜓")); + Assertions.assertEquals(T10PartDecimal.PART_10, T10PartDecimal.PART_1.BãßValueOfDialTone("꜒")); } @Test diff --git a/lib-unicodezd/src/main/love/distributedrebirth/unicode4d/CodePointCommandᶻᴰ.java b/lib-unicodezd/src/main/love/distributedrebirth/unicode4d/CodePointCommandᶻᴰ.java index 6894045b..d538caa4 100644 --- a/lib-unicodezd/src/main/love/distributedrebirth/unicode4d/CodePointCommandᶻᴰ.java +++ b/lib-unicodezd/src/main/love/distributedrebirth/unicode4d/CodePointCommandᶻᴰ.java @@ -5,7 +5,10 @@ import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ; @BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天") public enum CodePointCommandᶻᴰ { NOP, - START, // PART_1 = modifier, PART_2 = direction + START_LR, // PART_1 = modifier + START_RL, + START_TB, + START_BT, UNICODE, NUMBER, ADVANCE, diff --git a/lib-unicodezd/src/main/love/distributedrebirth/unicode4d/CodePointᶻᴰ.java b/lib-unicodezd/src/main/love/distributedrebirth/unicode4d/CodePointᶻᴰ.java index da51c9d3..3b1d574c 100644 --- a/lib-unicodezd/src/main/love/distributedrebirth/unicode4d/CodePointᶻᴰ.java +++ b/lib-unicodezd/src/main/love/distributedrebirth/unicode4d/CodePointᶻᴰ.java @@ -1,8 +1,11 @@ package love.distributedrebirth.unicode4d; +import java.util.List; + import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ; import love.distributedrebirth.numberxd.base2t.part.T02PartBinary; import love.distributedrebirth.numberxd.base2t.type.V036Teger; +import love.distributedrebirth.numberxd.base2t.type.V072Tong; @BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天") public enum CodePointᶻᴰ { @@ -65,4 +68,28 @@ public enum CodePointᶻᴰ { teger.getValue(T02PartBinary.PART_1).setValueNumber((value1 & MASK_ARGU) + (((mode >> 0) & 0b111) << 15)); teger.getValue(T02PartBinary.PART_2).setValueNumber((value2 & MASK_ARGU) + (((mode >> 3) & 0b111) << 15)); } + + public int searchUnicode(List tongs) { + for (V072Tong tong:tongs) { + if (CodePointCommandᶻᴰ.UNICODE.equals(CodePointᶻᴰ.INSTANCE.getCommand(tong.getValue(T02PartBinary.PART_1)))) { + return CodePointᶻᴰ.INSTANCE.getArgumentUnicode(tong.getValue(T02PartBinary.PART_1)); + } + if (CodePointCommandᶻᴰ.UNICODE.equals(CodePointᶻᴰ.INSTANCE.getCommand(tong.getValue(T02PartBinary.PART_2)))) { + return CodePointᶻᴰ.INSTANCE.getArgumentUnicode(tong.getValue(T02PartBinary.PART_2)); + } + } + return -1; + } + + public int searchNumber(List tongs) { + for (V072Tong tong:tongs) { + if (CodePointCommandᶻᴰ.NUMBER.equals(CodePointᶻᴰ.INSTANCE.getCommand(tong.getValue(T02PartBinary.PART_1)))) { + return CodePointᶻᴰ.INSTANCE.getArgumentUnicode(tong.getValue(T02PartBinary.PART_1)); + } + if (CodePointCommandᶻᴰ.NUMBER.equals(CodePointᶻᴰ.INSTANCE.getCommand(tong.getValue(T02PartBinary.PART_2)))) { + return CodePointᶻᴰ.INSTANCE.getArgumentUnicode(tong.getValue(T02PartBinary.PART_2)); + } + } + return -1; + } } diff --git a/lib-unicodezd/src/main/love/distributedrebirth/unicode4d/Stringᶻᴰ.java b/lib-unicodezd/src/main/love/distributedrebirth/unicode4d/Stringᶻᴰ.java index b34a9402..b6ff5ac6 100644 --- a/lib-unicodezd/src/main/love/distributedrebirth/unicode4d/Stringᶻᴰ.java +++ b/lib-unicodezd/src/main/love/distributedrebirth/unicode4d/Stringᶻᴰ.java @@ -34,7 +34,13 @@ public class Stringᶻᴰ { int result = 0; for (V072Tong points:string) { CodePointCommandᶻᴰ cmd = CodePointᶻᴰ.INSTANCE.getCommand(points.getValue(T02PartBinary.PART_1)); - if (cmd == CodePointCommandᶻᴰ.START) { + if (cmd == CodePointCommandᶻᴰ.START_LR) { + result++; + } else if (cmd == CodePointCommandᶻᴰ.START_RL) { + result++; + } else if (cmd == CodePointCommandᶻᴰ.START_TB) { + result++; + } else if (cmd == CodePointCommandᶻᴰ.START_BT) { result++; } } diff --git a/lib-unicodezd/src/main/love/distributedrebirth/unicode4d/base/UnicodePlaneᶻᴰ.java b/lib-unicodezd/src/main/love/distributedrebirth/unicode4d/UnicodePlaneᶻᴰ.java similarity index 58% rename from lib-unicodezd/src/main/love/distributedrebirth/unicode4d/base/UnicodePlaneᶻᴰ.java rename to lib-unicodezd/src/main/love/distributedrebirth/unicode4d/UnicodePlaneᶻᴰ.java index 7403725f..02940a38 100644 --- a/lib-unicodezd/src/main/love/distributedrebirth/unicode4d/base/UnicodePlaneᶻᴰ.java +++ b/lib-unicodezd/src/main/love/distributedrebirth/unicode4d/UnicodePlaneᶻᴰ.java @@ -1,4 +1,4 @@ -package love.distributedrebirth.unicode4d.base; +package love.distributedrebirth.unicode4d; import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ; @@ -19,17 +19,17 @@ public enum UnicodePlaneᶻᴰ { CYRILLIC_SUPPLEMENT(0x0500,0x052F), ARMENIAN(0x0530,0x058F), - HEBREW(0x0590,0x05FF), - ARABIC(0x0600,0x06FF), - SYRIAC(0x0700,0x074F), - ARABIC_SUPPLEMENT(0x0750,0x077F), - THAANA(0x0780,0x07BF), - NKO(0x07C0,0x07FF), - SAMARITAN(0x0800,0x083F), - MANDAIC(0x0840,0x085F), - SYRIAC_SUPPLEMENT(0x0860,0x086F), - ARABIC_EXTENDED_B(0x0870,0x089F), - ARABIV_EXTENDED_A(0x08A0,0x08FF), + HEBREW(0x0590,0x05FF, false), + ARABIC(0x0600,0x06FF, false), + SYRIAC(0x0700,0x074F, false), + ARABIC_SUPPLEMENT(0x0750,0x077F, false), + THAANA(0x0780,0x07BF, false), + NKO(0x07C0,0x07FF, false), + SAMARITAN(0x0800,0x083F, false), + MANDAIC(0x0840,0x085F, false), + SYRIAC_SUPPLEMENT(0x0860,0x086F, false), + ARABIC_EXTENDED_B(0x0870,0x089F, false), + ARABIV_EXTENDED_A(0x08A0,0x08FF, false), DEVANAGARI(0x0900,0x097F), BENGALI(0x0980,0x09FF), @@ -176,13 +176,13 @@ public enum UnicodePlaneᶻᴰ { PRIVATE_USE_AREA (0xE000,0xF8FF), CJK_COMPATIBILITY_IDEOGRAPHS (0xF900,0xFAFF), ALPHABETIC_PRESENTATION_FORMS (0xFB00,0xFB4F), - ARABIC_PRESENTATION_FORMS_A (0xFB50,0xFDFF), + ARABIC_PRESENTATION_FORMS_A (0xFB50,0xFDFF, false), VARIATION_SELECTORS (0xFE00,0xFE0F), VERTICAL_FORMS (0xFE10,0xFE1F), COMBINING_HALF_MARKS (0xFE20,0xFE2F), CJK_COMPATIBILITY_FORMS (0xFE30,0xFE4F), SMALL_FORM_VARIANTS (0xFE50,0xFE6F), - ARABIC_PRESENTATION_FORMS_B (0xFE70,0xFEFF), + ARABIC_PRESENTATION_FORMS_B (0xFE70,0xFEFF, false), HALFWIDTH_AND_FULLWIDTH_FORMS (0xFF00,0xFFEF), SPECIALS (0xFFF0,0xFFFF), @@ -201,7 +201,7 @@ public enum UnicodePlaneᶻᴰ { GOTHIC (0x10330,0x1034F), OLD_PERMIC (0x10350,0x1037F), UGARITIC (0x10380,0x1039F), - OLD_PERSIAN (0x103A0,0x103DF), + OLD_PERSIAN (0x103A0,0x103DF, false), DESERET (0x10400,0x1044F), SHAVIAN (0x10450,0x1047F), OSMANYA (0x10480,0x104AF), @@ -212,33 +212,33 @@ public enum UnicodePlaneᶻᴰ { LINEAR_A (0x10600,0x1077F), LATIN_EXTENDED_F (0x10780,0x107BF), - CYPRIOT_SYLLABARY (0x10800,0x1083F), - IMPERIAL_ARAMAIC (0x10840,0x1085F), - PALMYRENE (0x10860,0x1087F), - NABATAEAN (0x10880,0x108AF), - HATRAN (0x108E0,0x108FF), - PHOENICIAN (0x10900,0x1091F), - LYDIAN (0x10920,0x1093F), - MEROITIC_HIEROGLYPHS (0x10980,0x1099F), - MEROITIC_CURSIVE (0x109A0,0x109FF), - KHAROSHTHI (0x10A00,0x10A5F), - OLD_SOUTH_ARABIAN (0x10A60,0x10A7F), - OLD_NORTH_ARABIAN (0x10A80,0x10A9F), - MANICHAEAN (0x10AC0,0x10AFF), - AVESTAN (0x10B00,0x10B3F), - INSCRIPTIONAL_PARTHIAN (0x10B40,0x10B5F), - INSCRIPTIONAL_PAHLAVI (0x10B60,0x10B7F), - PSALTER_PAHLAVI (0x10B80,0x10BAF), - OLD_TURKIC (0x10C00,0x10C4F), - OLD_HUNGARIAN (0x10C80,0x10CFF), - HANIFI_ROHINGYA (0x10D00,0x10D3F), - RUMI_NUMERAL_SYMBOLS (0x10E60,0x10E7F), - YEZIDI (0x10E80,0x10EBF), - OLD_SOGDIAN (0x10F00,0x10F2F), - SOGDIAN (0x10F30,0x10F6F), - OLD_UYGHUR (0x10F70,0x10FAF), - CHORASMIAN (0x10FB0,0x10FDF), - ELYMAIC (0x10FE0,0x10FFF), + CYPRIOT_SYLLABARY (0x10800,0x1083F, false), + IMPERIAL_ARAMAIC (0x10840,0x1085F, false), + PALMYRENE (0x10860,0x1087F, false), + NABATAEAN (0x10880,0x108AF, false), + HATRAN (0x108E0,0x108FF, false), + PHOENICIAN (0x10900,0x1091F, false), + LYDIAN (0x10920,0x1093F, false), + MEROITIC_HIEROGLYPHS (0x10980,0x1099F, false), + MEROITIC_CURSIVE (0x109A0,0x109FF, false), + KHAROSHTHI (0x10A00,0x10A5F, false), + OLD_SOUTH_ARABIAN (0x10A60,0x10A7F, false), + OLD_NORTH_ARABIAN (0x10A80,0x10A9F, false), + MANICHAEAN (0x10AC0,0x10AFF, false), + AVESTAN (0x10B00,0x10B3F, false), + INSCRIPTIONAL_PARTHIAN (0x10B40,0x10B5F, false), + INSCRIPTIONAL_PAHLAVI (0x10B60,0x10B7F, false), + PSALTER_PAHLAVI (0x10B80,0x10BAF, false), + OLD_TURKIC (0x10C00,0x10C4F, false), + OLD_HUNGARIAN (0x10C80,0x10CFF, false), + HANIFI_ROHINGYA (0x10D00,0x10D3F, false), + RUMI_NUMERAL_SYMBOLS (0x10E60,0x10E7F, false), + YEZIDI (0x10E80,0x10EBF, false), + OLD_SOGDIAN (0x10F00,0x10F2F, false), + SOGDIAN (0x10F30,0x10F6F, false), + OLD_UYGHUR (0x10F70,0x10FAF, false), + CHORASMIAN (0x10FB0,0x10FDF, false), + ELYMAIC (0x10FE0,0x10FFF, false), BRAHMI (0x11000,0x1107F), KAITHI (0x11080,0x110CF), @@ -265,93 +265,118 @@ public enum UnicodePlaneᶻᴰ { ZANABAZAR_SQUARE (0x11A00,0x11A4F), SOYOMBO (0x11A50,0x11AAF), - UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS_EXTENDED_A (0X11AB0,0X11ABF), + UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS_EXTENDED_A (0x11AB0,0x11ABF), - PAU_CIN_HAU (0X11AC0,0X11AFF), - BHAIKSUKI (0X11C00,0X11C6F), - MARCHEN (0X11C70,0X11CBF), - MASARAM_GONDI (0X11D00,0X11D5F), - GUNJALA_GONDI (0X11D60,0X11DAF), - MAKASAR (0X11EE0,0X11EFF), + PAU_CIN_HAU (0x11AC0,0x11AFF), + BHAIKSUKI (0x11C00,0x11C6F), + MARCHEN (0x11C70,0x11CBF), + MASARAM_GONDI (0x11D00,0x11D5F), + GUNJALA_GONDI (0x11D60,0x11DAF), + MAKASAR (0x11EE0,0x11EFF), - LISU_SUPPLEMENT (0X11FB0,0X11FBF), - TAMIL_SUPPLEMENT (0X11FC0,0X11FFF), - CUNEIFORM (0X12000,0X123FF), - CUNEIFORM_NUMBERS_AND_PUNCTUATION (0X12400,0X1247F), - EARLY_DYNASTIC_CUNEIFORM (0X12480,0X1254F), - CYPRO_MINOAN (0X12F90,0X12FFF), - EGYPTIAN_HIEROGLYPHS (0X13000,0X1342F), - EGYPTIAN_HIEROGLYPH_FORMAT_CONTROLS (0X13430,0X1343F), - ANATOLIAN_HIEROGLYPHS (0X14400,0X1467F), - BAMUM_SUPPLEMENT (0X16800,0X16A3F), - MRO (0X16A40,0X16A6F), - TANGSA (0X16A70,0X16ACF), - BASSA_VAH (0X16AD0,0X16AFF), - PAHAWH_HMONG (0X16B00,0X16B8F), - MEDEFAIDRIN (0X16E40,0X16E9F), - MIAO (0X16F00,0X16F9F), - IDEOGRAPHIC_SYMBOLS_AND_PUNCTUATION (0X16FE0,0X16FFF), - TANGUT (0X17000,0X187FF), - TANGUT_COMPONENTS (0X18800,0X18AFF), - KHITAN_SMALL_SCRIPT (0X18B00,0X18CFF), - TANGUT_SUPPLEMENT (0X18D00,0X18D7F), - KANA_EXTENDED_B (0X1AFF0,0X1AFFF), - KANA_SUPPLEMENT (0X1B000,0X1B0FF), - KANA_EXTENDED_A (0X1B100,0X1B12F), - SMALL_KANA_EXTENSION (0X1B130,0X1B16F), - NUSHU (0X1B170,0X1B2FF), - DUPLOYAN (0X1BC00,0X1BC9F), - SHORTHAND_FORMAT_CONTROLS (0X1BCA0,0X1BCAF), + LISU_SUPPLEMENT (0x11FB0,0x11FBF), + TAMIL_SUPPLEMENT (0x11FC0,0x11FFF), + CUNEIFORM (0x12000,0x123FF), + CUNEIFORM_NUMBERS_AND_PUNCTUATION (0x12400,0x1247F), + EARLY_DYNASTIC_CUNEIFORM (0x12480,0x1254F), + CYPRO_MINOAN (0x12F90,0x12FFF), + EGYPTIAN_HIEROGLYPHS (0x13000,0x1342F), + EGYPTIAN_HIEROGLYPH_FORMAT_CONTROLS (0x13430,0x1343F), + ANATOLIAN_HIEROGLYPHS (0x14400,0x1467F), + BAMUM_SUPPLEMENT (0x16800,0x16A3F), + MRO (0x16A40,0x16A6F), + TANGSA (0x16A70,0x16ACF), + BASSA_VAH (0x16AD0,0x16AFF), + PAHAWH_HMONG (0x16B00,0x16B8F), + MEDEFAIDRIN (0x16E40,0x16E9F), + MIAO (0x16F00,0x16F9F), + IDEOGRAPHIC_SYMBOLS_AND_PUNCTUATION (0x16FE0,0x16FFF), + TANGUT (0x17000,0x187FF), + TANGUT_COMPONENTS (0x18800,0x18AFF), + KHITAN_SMALL_SCRIPT (0x18B00,0x18CFF), + TANGUT_SUPPLEMENT (0x18D00,0x18D7F), + KANA_EXTENDED_B (0x1AFF0,0x1AFFF), + KANA_SUPPLEMENT (0x1B000,0x1B0FF), + KANA_EXTENDED_A (0x1B100,0x1B12F), + SMALL_KANA_EXTENSION (0x1B130,0x1B16F), + NUSHU (0x1B170,0x1B2FF), + DUPLOYAN (0x1BC00,0x1BC9F), + SHORTHAND_FORMAT_CONTROLS (0x1BCA0,0x1BCAF), - ZNAMENNY_MUSICAL_NOTATION (0X1CF00,0X1CFCF), - BYZANTINE_MUSICAL_SYMBOLS (0X1D000,0X1D0FF), - MUSICAL_SYMBOLS (0X1D100,0X1D1FF), - ANCIENT_GREEK_MUSICAL_NOTATION (0X1D200,0X1D24F), - MAYAN_NUMERALS (0X1D2E0,0X1D2FF), - TAI_XUAN_JING_SYMBOLS (0X1D300,0X1D35F), - COUNTING_ROD_NUMERALS (0X1D360,0X1D37F), - MATHEMATICAL_ALPHANUMERIC_SYMBOLS (0X1D400,0X1D7FF), - SUTTON_SIGNWRITING (0X1D800,0X1DAAF), + ZNAMENNY_MUSICAL_NOTATION (0x1CF00,0x1CFCF), + BYZANTINE_MUSICAL_SYMBOLS (0x1D000,0x1D0FF), + MUSICAL_SYMBOLS (0x1D100,0x1D1FF), + ANCIENT_GREEK_MUSICAL_NOTATION (0x1D200,0x1D24F), + MAYAN_NUMERALS (0x1D2E0,0x1D2FF), + TAI_XUAN_JING_SYMBOLS (0x1D300,0x1D35F), + COUNTING_ROD_NUMERALS (0x1D360,0x1D37F), + MATHEMATICAL_ALPHANUMERIC_SYMBOLS (0x1D400,0x1D7FF), + SUTTON_SIGNWRITING (0x1D800,0x1DAAF), - LATIN_EXTENDED_G (0X1DF00,0X1DFFF), - GLAGOLITIC_SUPPLEMENT (0X1E000,0X1E02F), - NYIAKENG_PUACHUE_HMONG (0X1E100,0X1E14F), - TOTO (0X1E290,0X1E2BF), - WANCHO (0X1E2C0,0X1E2FF), - ETHIOPIC_EXTENDED_B (0X1E7E0,0X1E7FF), - MENDE_KIKAKUI (0X1E800,0X1E8DF), - ADLAM (0X1E900,0X1E95F), - INDIC_SIYAQ_NUMBERS (0X1EC70,0X1ECBF), - OTTOMAN_SIYAQ_NUMBERS (0X1ED00,0X1ED4F), - ARABIC_MATHEMATICAL_ALPHABETIC_SYMBOLS (0X1EE00,0X1EEFF), + LATIN_EXTENDED_G (0x1DF00,0x1DFFF), + GLAGOLITIC_SUPPLEMENT (0x1E000,0x1E02F), + NYIAKENG_PUACHUE_HMONG (0x1E100,0x1E14F), + TOTO (0x1E290,0x1E2BF), + WANCHO (0x1E2C0,0x1E2FF), + ETHIOPIC_EXTENDED_B (0x1E7E0,0x1E7FF), + MENDE_KIKAKUI (0x1E800,0x1E8DF), + ADLAM (0x1E900,0x1E95F), + INDIC_SIYAQ_NUMBERS (0x1EC70,0x1ECBF), + OTTOMAN_SIYAQ_NUMBERS (0x1ED00,0x1ED4F), + ARABIC_MATHEMATICAL_ALPHABETIC_SYMBOLS (0x1EE00,0x1EEFF, false), - MAHJONG_TILES (0X1F000,0X1F02F), - DOMINO_TILES (0X1F030,0X1F09F), - PLAYING_CARDS (0X1F0A0,0X1F0FF), + MAHJONG_TILES (0x1F000,0x1F02F), + DOMINO_TILES (0x1F030,0x1F09F), + PLAYING_CARDS (0x1F0A0,0x1F0FF), - ENCLOSED_ALPHANUMERIC_SUPPLEMENT (0X1F100,0X1F1FF), - ENCLOSED_IDEOGRAPHIC_SUPPLEMENT (0X1F200,0X1F2FF), - MISCELLANEOUS_SYMBOLS_AND_PICTOGRAPHS (0X1F300,0X1F5FF), - EMOTICONS (0X1F600,0X1F64F), - ORNAMENTAL_DINGBATS (0X1F650,0X1F67F), - TRANSPORT_AND_MAP_SYMBOLS (0X1F680,0X1F6FF), - ALCHEMICAL_SYMBOLS (0X1F700,0X1F77F), - GEOMETRIC_SHAPES_EXTENDED (0X1F780,0X1F7FF), - SUPPLEMENTAL_ARROWS_C (0X1F800,0X1F8FF), - SUPPLEMENTAL_SYMBOLS_AND_PICTOGRAPHS (0X1F900,0X1F9FF), - CHESS_SYMBOLS (0X1FA00,0X1FA6F), - SYMBOLS_AND_PICTOGRAPHS_EXTENDED_A (0X1FA70,0X1FAFF), - SYMBOLS_FOR_LEGACY_COMPUTING (0X1FB00,0X1FBFF), + ENCLOSED_ALPHANUMERIC_SUPPLEMENT (0x1F100,0x1F1FF), + ENCLOSED_IDEOGRAPHIC_SUPPLEMENT (0x1F200,0x1F2FF), + MISCELLANEOUS_SYMBOLS_AND_PICTOGRAPHS (0x1F300,0x1F5FF), + EMOTICONS (0x1F600,0x1F64F), + ORNAMENTAL_DINGBATS (0x1F650,0x1F67F), + TRANSPORT_AND_MAP_SYMBOLS (0x1F680,0x1F6FF), + ALCHEMICAL_SYMBOLS (0x1F700,0x1F77F), + GEOMETRIC_SHAPES_EXTENDED (0x1F780,0x1F7FF), + SUPPLEMENTAL_ARROWS_C (0x1F800,0x1F8FF), + SUPPLEMENTAL_SYMBOLS_AND_PICTOGRAPHS (0x1F900,0x1F9FF), + CHESS_SYMBOLS (0x1FA00,0x1FA6F), + SYMBOLS_AND_PICTOGRAPHS_EXTENDED_A (0x1FA70,0x1FAFF), + SYMBOLS_FOR_LEGACY_COMPUTING (0x1FB00,0x1FBFF), - UNKNOWN(0X1FC00,0XFFFFF) + // =========== PLANE 2 + + CJK_UNIFIED_IDEOGRAPHS_EXTENSION_B (0x20000,0x2A6DF), + CJK_UNIFIED_IDEOGRAPHS_EXTENSION_C (0x2A700,0x2B73F), + CJK_UNIFIED_IDEOGRAPHS_EXTENSION_D (0x2B740,0x2B81F), + CJK_UNIFIED_IDEOGRAPHS_EXTENSION_E (0x2B820,0x2CEAF), + CJK_UNIFIED_IDEOGRAPHS_EXTENSION_F (0x2CEB0,0x2EBEF), + CJK_COMPATIBILITY_IDEOGRAPHS_SUPPLEMENT (0x2F800,0x2FA1F), + + // =========== PLANE 3 + + CJK_UNIFIED_IDEOGRAPHS_EXTENSION_G (0x30000,0x3134F), + + // =========== PLANE UNALLOCATED + + UNALLOCATED(0x31350,0xFFFFF), + + // =========== PLANE UNKNOWN + + UNKNOWN(0x0FF00000,0x0FFFFFFF) ; private final int start; private final int stop; + private final boolean leftToRight; private UnicodePlaneᶻᴰ(int start, int stop) { + this(start, stop, true); + } + + private UnicodePlaneᶻᴰ(int start, int stop, boolean leftToRight) { this.start = start; this.stop = stop; + this.leftToRight = leftToRight; } public int getStart() { @@ -362,6 +387,10 @@ public enum UnicodePlaneᶻᴰ { return stop; } + public boolean isLeftToRight() { + return leftToRight; + } + public static UnicodePlaneᶻᴰ valueOfUnicode(int unicode) { for (UnicodePlaneᶻᴰ value:values()) { if (unicode >= value.getStart() && unicode <= value.getStop()) { diff --git a/lib-unicodezd/src/main/love/distributedrebirth/unicode4d/atlas/FontAtlas.java b/lib-unicodezd/src/main/love/distributedrebirth/unicode4d/atlas/FontAtlas.java new file mode 100644 index 00000000..1623ccf8 --- /dev/null +++ b/lib-unicodezd/src/main/love/distributedrebirth/unicode4d/atlas/FontAtlas.java @@ -0,0 +1,35 @@ +package love.distributedrebirth.unicode4d.atlas; + +import java.util.Collection; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ; + +@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天") +public class FontAtlas { + + private Map stores = new HashMap<>(); + + public FontAtlas() { + } + + public FontAtlasStore getStoreByName(String name) { + return stores.get(name); + } + + public Collection getStores() { + return stores.values(); + } + + public void setStores(List planes) { + for (FontAtlasStore plane:planes) { + addStore(plane); + } + } + + public void addStore(FontAtlasStore plane) { + this.stores.put(plane.getName(), plane); + } +} diff --git a/lib-unicodezd/src/main/love/distributedrebirth/unicode4d/base/UnicodePlaneDriver.java b/lib-unicodezd/src/main/love/distributedrebirth/unicode4d/atlas/FontAtlasDriver.java similarity index 62% rename from lib-unicodezd/src/main/love/distributedrebirth/unicode4d/base/UnicodePlaneDriver.java rename to lib-unicodezd/src/main/love/distributedrebirth/unicode4d/atlas/FontAtlasDriver.java index 2040ee38..3375ef64 100644 --- a/lib-unicodezd/src/main/love/distributedrebirth/unicode4d/base/UnicodePlaneDriver.java +++ b/lib-unicodezd/src/main/love/distributedrebirth/unicode4d/atlas/FontAtlasDriver.java @@ -1,4 +1,4 @@ -package love.distributedrebirth.unicode4d.base; +package love.distributedrebirth.unicode4d.atlas; import org.x4o.xml.X4ODriver; import org.x4o.xml.X4ODriverManager; @@ -6,9 +6,9 @@ import org.x4o.xml.X4ODriverManager; import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ; @BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天") -public class UnicodePlaneDriver extends X4ODriver { +public class FontAtlasDriver extends X4ODriver { - static final public String LANGUAGE_NAME = "unicode-plane"; + static final public String LANGUAGE_NAME = "unicode4d-atlas"; static final public String[] LANGUAGE_VERSIONS = new String[]{X4ODriver.DEFAULT_LANGUAGE_VERSION}; @Override @@ -21,7 +21,7 @@ public class UnicodePlaneDriver extends X4ODriver { return LANGUAGE_VERSIONS; } - static public UnicodePlaneDriver newInstance() { - return (UnicodePlaneDriver)X4ODriverManager.getX4ODriver(LANGUAGE_NAME); + static public FontAtlasDriver newInstance() { + return (FontAtlasDriver)X4ODriverManager.getX4ODriver(LANGUAGE_NAME); } } diff --git a/lib-unicodezd/src/main/love/distributedrebirth/unicode4d/atlas/FontAtlasStore.java b/lib-unicodezd/src/main/love/distributedrebirth/unicode4d/atlas/FontAtlasStore.java new file mode 100644 index 00000000..2c7f8445 --- /dev/null +++ b/lib-unicodezd/src/main/love/distributedrebirth/unicode4d/atlas/FontAtlasStore.java @@ -0,0 +1,38 @@ +package love.distributedrebirth.unicode4d.atlas; + +import java.util.ArrayList; +import java.util.List; + +import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ; + +@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天") +public class FontAtlasStore { + + private String name; + private List glyphs = new ArrayList<>(); + + public FontAtlasStore() { + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public List getGlyphs() { + return glyphs; + } + + public void setGlyphs(List glyphs) { + for (FontAtlasStoreGlyph baseGlyph:glyphs) { + addGlyph(baseGlyph); + } + } + + public void addGlyph(FontAtlasStoreGlyph baseGlyph) { + this.glyphs.add(baseGlyph); + } +} diff --git a/lib-unicodezd/src/main/love/distributedrebirth/unicode4d/base/UnicodePlaneBaseGlyph.java b/lib-unicodezd/src/main/love/distributedrebirth/unicode4d/atlas/FontAtlasStoreGlyph.java similarity index 64% rename from lib-unicodezd/src/main/love/distributedrebirth/unicode4d/base/UnicodePlaneBaseGlyph.java rename to lib-unicodezd/src/main/love/distributedrebirth/unicode4d/atlas/FontAtlasStoreGlyph.java index b546f571..9f415688 100644 --- a/lib-unicodezd/src/main/love/distributedrebirth/unicode4d/base/UnicodePlaneBaseGlyph.java +++ b/lib-unicodezd/src/main/love/distributedrebirth/unicode4d/atlas/FontAtlasStoreGlyph.java @@ -1,4 +1,4 @@ -package love.distributedrebirth.unicode4d.base; +package love.distributedrebirth.unicode4d.atlas; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; @@ -12,38 +12,29 @@ import love.distributedrebirth.numberxd.base2t.Base2Terminator; import love.distributedrebirth.numberxd.base2t.type.V072Tong; @BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天") -public class UnicodePlaneBaseGlyph { +public class FontAtlasStoreGlyph { - private String unicode; - private List glyph = new ArrayList<>(); + private List tongs = new ArrayList<>(); - public UnicodePlaneBaseGlyph() { + public FontAtlasStoreGlyph() { } - public String getUnicode() { - return unicode; + public List getTongs() { + return tongs; } - public void setUnicode(String unicode) { - this.unicode = unicode; + public void setTongs(List glyph) { + this.tongs = glyph; } - public List getGlyph() { - return glyph; - } - - public void setGlyph(List glyph) { - this.glyph = glyph; - } - - public void addGlyph(V072Tong glyph) { - this.glyph.add(glyph); + public void addTong(V072Tong glyph) { + this.tongs.add(glyph); } public String getBase64() { ByteArrayOutputStream baos = new ByteArrayOutputStream(); try { - Base2Terminator.INSTANCE.Bãß2WriteTong(glyph, baos); + Base2Terminator.INSTANCE.Bãß2WriteTong(tongs, baos); } catch (IOException e) { throw new RuntimeException(e); } @@ -56,7 +47,7 @@ public class UnicodePlaneBaseGlyph { try { List result = new ArrayList<>(); Base2Terminator.INSTANCE.Bãß2ReadTong(bais, result); - glyph = result; + tongs = result; } catch (IOException e) { throw new RuntimeException(e); } diff --git a/lib-unicodezd/src/main/love/distributedrebirth/unicode4d/base/UnicodePlane.java b/lib-unicodezd/src/main/love/distributedrebirth/unicode4d/base/UnicodePlane.java deleted file mode 100644 index 0a983d72..00000000 --- a/lib-unicodezd/src/main/love/distributedrebirth/unicode4d/base/UnicodePlane.java +++ /dev/null @@ -1,35 +0,0 @@ -package love.distributedrebirth.unicode4d.base; - -import java.util.Collection; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ; - -@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天") -public class UnicodePlane { - - private Map planes = new HashMap<>(); - - public UnicodePlane() { - } - - public UnicodePlaneBase getPlaneByName(String name) { - return planes.get(name); - } - - public Collection getPlanes() { - return planes.values(); - } - - public void setPlanes(List planes) { - for (UnicodePlaneBase plane:planes) { - addPlane(plane); - } - } - - public void addPlane(UnicodePlaneBase plane) { - this.planes.put(plane.getName(), plane); - } -} diff --git a/lib-unicodezd/src/main/love/distributedrebirth/unicode4d/base/UnicodePlaneBase.java b/lib-unicodezd/src/main/love/distributedrebirth/unicode4d/base/UnicodePlaneBase.java deleted file mode 100644 index a4d02abe..00000000 --- a/lib-unicodezd/src/main/love/distributedrebirth/unicode4d/base/UnicodePlaneBase.java +++ /dev/null @@ -1,44 +0,0 @@ -package love.distributedrebirth.unicode4d.base; - -import java.util.Collection; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ; - -@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天") -public class UnicodePlaneBase { - - private String name; - private Map baseGlyphs = new HashMap<>(); - - public UnicodePlaneBase() { - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public UnicodePlaneBaseGlyph getBaseGlyphByUnicode(String unicode) { - return baseGlyphs.get(unicode); - } - - public Collection getBaseGlyphs() { - return baseGlyphs.values(); - } - - public void setBaseGlyphs(List baseGlyphs) { - for (UnicodePlaneBaseGlyph baseGlyph:baseGlyphs) { - addBaseGlyph(baseGlyph); - } - } - - public void addBaseGlyph(UnicodePlaneBaseGlyph baseGlyph) { - this.baseGlyphs.put(baseGlyph.getUnicode(),baseGlyph); - } -} diff --git a/lib-unicodezd/src/resources/META-INF/unicode-plane/unicode-plane-lang.eld b/lib-unicodezd/src/resources/META-INF/unicode-plane/unicode-plane-lang.eld deleted file mode 100644 index 85c4118c..00000000 --- a/lib-unicodezd/src/resources/META-INF/unicode-plane/unicode-plane-lang.eld +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/lib-unicodezd/src/resources/META-INF/unicode4d-atlas/unicode4d-atlas-lang.eld b/lib-unicodezd/src/resources/META-INF/unicode4d-atlas/unicode4d-atlas-lang.eld new file mode 100644 index 00000000..81d26862 --- /dev/null +++ b/lib-unicodezd/src/resources/META-INF/unicode4d-atlas/unicode4d-atlas-lang.eld @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/lib-unicodezd/src/resources/META-INF/unicode-plane/unicode-plane-modules.xml b/lib-unicodezd/src/resources/META-INF/unicode4d-atlas/unicode4d-atlas-modules.xml similarity index 85% rename from lib-unicodezd/src/resources/META-INF/unicode-plane/unicode-plane-modules.xml rename to lib-unicodezd/src/resources/META-INF/unicode4d-atlas/unicode4d-atlas-modules.xml index 70accdd3..e77b8634 100644 --- a/lib-unicodezd/src/resources/META-INF/unicode-plane/unicode-plane-modules.xml +++ b/lib-unicodezd/src/resources/META-INF/unicode4d-atlas/unicode4d-atlas-modules.xml @@ -5,6 +5,6 @@ xsi:schemaLocation="http://language.x4o.org/xml/ns/modules http://language.x4o.org/xml/ns/modules-1.0.xsd" > - unicode-plane-lang.eld + unicode4d-atlas-lang.eld diff --git a/lib-unicodezd/src/resources/META-INF/x4o-drivers.xml b/lib-unicodezd/src/resources/META-INF/x4o-drivers.xml index 11957498..1f10134f 100644 --- a/lib-unicodezd/src/resources/META-INF/x4o-drivers.xml +++ b/lib-unicodezd/src/resources/META-INF/x4o-drivers.xml @@ -4,5 +4,5 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://language.x4o.org/xml/ns/drivers http://language.x4o.org/xml/ns/drivers-1.0.xsd" > - + diff --git a/lib-unicodezd/src/test/love/distributedrebirth/unicode4d/TestConvFont.java b/lib-unicodezd/src/test/love/distributedrebirth/unicode4d/TestConvFont.java index a21b403c..e768046e 100644 --- a/lib-unicodezd/src/test/love/distributedrebirth/unicode4d/TestConvFont.java +++ b/lib-unicodezd/src/test/love/distributedrebirth/unicode4d/TestConvFont.java @@ -18,11 +18,10 @@ import org.xml.sax.XMLReader; import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ; import love.distributedrebirth.numberxd.base2t.part.T02PartBinary; import love.distributedrebirth.numberxd.base2t.type.V072Tong; -import love.distributedrebirth.unicode4d.base.UnicodePlane; -import love.distributedrebirth.unicode4d.base.UnicodePlaneBase; -import love.distributedrebirth.unicode4d.base.UnicodePlaneBaseGlyph; -import love.distributedrebirth.unicode4d.base.UnicodePlaneDriver; -import love.distributedrebirth.unicode4d.base.UnicodePlaneᶻᴰ; +import love.distributedrebirth.unicode4d.atlas.FontAtlas; +import love.distributedrebirth.unicode4d.atlas.FontAtlasDriver; +import love.distributedrebirth.unicode4d.atlas.FontAtlasStore; +import love.distributedrebirth.unicode4d.atlas.FontAtlasStoreGlyph; @BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天") public class TestConvFont { @@ -33,97 +32,61 @@ public class TestConvFont { } public void run() { - UnicodePlane unicodePlane = new UnicodePlane(); - try { - List results = new ArrayList<>(); - // NOTE: Are in order like the FontAtlas of ImGui - results.add(conf(unicodePlane, new File("../conv-font/bin/code-2000.xml"))); - results.add(conf(unicodePlane, new File("../conv-font/bin/code-2001.xml"))); - results.add(conf(unicodePlane, new File("../conv-font/bin/code-2002.xml"))); - results.add(conf(unicodePlane, new File("../conv-font/bin/free-sans.xml"))); - results.add(conf(unicodePlane, new File("../conv-font/bin/new-gardiner-bmp.xml"))); - results.add(conf(unicodePlane, new File("../conv-font/bin/fa-solid-900.xml"))); - results.add(conf(unicodePlane, new File("../conv-font/bin/noto-sans-brahmi.xml"))); - - int totalChars = 0; - for (FontContentResult result:results) { - totalChars += result.getGlyphCounter(); - } - System.out.println("Writing export unicode4d with characters: "+totalChars); - - UnicodePlaneDriver.newInstance().createWriter().writeFile(unicodePlane, "../main-gdxapp/assets/font/unicode4d.xml"); - - for (FontContentResult result:results) { - System.out.println("Glyphs import: "+result.getGlyphCounter()+" dropped: "+result.getGlyphDropped()+" from: "+result.getInputName()); - } + conf("Code2000", new File("../conv-font/bin/code-2000.xml"), new File("../main-gdxapp/assets/font/code-2000.xml")); + conf("Code2001", new File("../conv-font/bin/code-2001.xml"), new File("../main-gdxapp/assets/font/code-2001.xml")); + conf("Code2002", new File("../conv-font/bin/code-2002.xml"), new File("../main-gdxapp/assets/font/code-2002.xml")); + conf("Free Sans", new File("../conv-font/bin/free-sans.xml"), new File("../main-gdxapp/assets/font/free-sans.xml")); + conf("New Gardiner BMP", new File("../conv-font/bin/new-gardiner-bmp.xml"), new File("../main-gdxapp/assets/font/new-gardiner-bmp.xml")); + conf("Font Awesome", new File("../conv-font/bin/fa-solid-900.xml"), new File("../main-gdxapp/assets/font/fa-solid-900.xml")); + conf("Noto Sans Brahmi", new File("../conv-font/bin/noto-sans-brahmi.xml"), new File("../main-gdxapp/assets/font/noto-sans-brahmi.xml")); + } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } - public FontContentResult conf(UnicodePlane unicodePlane, File input) throws Exception { + public void conf(String fontName, File input, File output) throws Exception { System.out.println("START WITH: "+input); + SAXParserFactory factory = SAXParserFactory.newInstance(); SAXParser parser = factory.newSAXParser(); XMLReader reader = parser.getXMLReader(); - FontContentHandler fontContentHandler = new FontContentHandler(unicodePlane, input.getName()); + + FontAtlas fontAtlas = new FontAtlas(); + FontAtlasStore fontStore = new FontAtlasStore(); + fontStore.setName(fontName); + fontAtlas.addStore(fontStore); + FontContentHandler fontContentHandler = new FontContentHandler(fontStore, input.getName()); reader.setContentHandler(fontContentHandler); InputSource inputSource = new InputSource(new FileInputStream(input)); reader.parse(inputSource); - return fontContentHandler.getResult(); - } - - class FontContentResult { - private final String inputName; - private int glyphCounter = 0; - private int glyphDropped = 0; - public FontContentResult(String inputName) { - this.inputName = inputName; - } + FontAtlasDriver.newInstance().createWriter().writeFile(fontAtlas, output); - public String getInputName() { - return inputName; - } - - public int getGlyphCounter() { - return glyphCounter; - } - - public void incGlyphCounter() { - this.glyphCounter++; - } - - public int getGlyphDropped() { - return glyphDropped; - } - - public void incGlyphDropped() { - this.glyphDropped++; - } + System.out.println("END WITH: "+output+" wrote: "+fontContentHandler.getGlyphCounter()); } class FontContentHandler implements ContentHandler { - private final UnicodePlane unicodePlane; - private final FontContentResult result; - private List glyph; + private FontAtlasStore fontStore; + private int glyphCounter; + private List tongs; private boolean startPoint = false; private V072Tong point = null; private int unicode = -1; + private UnicodePlaneᶻᴰ unicodePlane2; - public FontContentHandler(UnicodePlane unicodePlane, String inputName) { - this.unicodePlane = unicodePlane; - this.result = new FontContentResult(inputName); + public FontContentHandler(FontAtlasStore fontStore, String inputName) { + this.fontStore = fontStore; } - public FontContentResult getResult() { - return result; + public int getGlyphCounter() { + return glyphCounter; } @Override @@ -141,35 +104,12 @@ public class TestConvFont { } else if ("glyph".equals(qName)) { if (CodePointCommandᶻᴰ.NOP != CodePointᶻᴰ.INSTANCE.getCommand(point.getValue(T02PartBinary.PART_1))) { - glyph.add(point); + tongs.add(point); } - UnicodePlaneᶻᴰ plane = UnicodePlaneᶻᴰ.valueOfUnicode(unicode); - - UnicodePlaneBase planeBase = unicodePlane.getPlaneByName(plane.name()); - if (planeBase == null) { - planeBase = new UnicodePlaneBase(); - planeBase.setName(plane.name()); - unicodePlane.addPlane(planeBase); - } - String unicodeHex = Integer.toHexString(unicode); - UnicodePlaneBaseGlyph baseGlyph = planeBase.getBaseGlyphByUnicode(unicodeHex); - if (baseGlyph != null) { - //System.out.println("============== DUP unicode: "+unicodeHex); - result.incGlyphDropped(); - return; - } - result.incGlyphCounter(); - baseGlyph = new UnicodePlaneBaseGlyph(); - baseGlyph.setUnicode(unicodeHex); - baseGlyph.setGlyph(glyph); - planeBase.addBaseGlyph(baseGlyph); - - //try { - //FileOutputStream out = new FileOutputStream("../conv-font/bin/test/"+unicode+".u4d"); - //Base2Terminator.INSTANCE.Bãß2WriteTong(glyph, out); - //} catch (Exception e) { - // throw new SAXException(e); - //} + glyphCounter++; + FontAtlasStoreGlyph baseGlyph = new FontAtlasStoreGlyph(); + baseGlyph.setTongs(tongs); + fontStore.addGlyph(baseGlyph); } else if ("contour".equals(qName)) { @@ -206,12 +146,13 @@ public class TestConvFont { if ("opentype".equals(qName)) { } else if ("glyph".equals(qName)) { - glyph = new ArrayList<>(); + tongs = new ArrayList<>(); point = new V072Tong(); CodePointᶻᴰ.INSTANCE.setCommand(point.getValue(T02PartBinary.PART_1), CodePointCommandᶻᴰ.NOP); CodePointᶻᴰ.INSTANCE.setCommand(point.getValue(T02PartBinary.PART_2), CodePointCommandᶻᴰ.NOP); unicode = Integer.parseInt(atts.getValue("unicode"), 16); + unicodePlane2 = UnicodePlaneᶻᴰ.valueOfUnicode(unicode); int xMax = Integer.parseInt(atts.getValue("xMax")); int yMax = Integer.parseInt(atts.getValue("yMax")); int xMin = Integer.parseInt(atts.getValue("xMin")); @@ -223,7 +164,11 @@ public class TestConvFont { V072Tong v1 = new V072Tong(); V072Tong v2 = new V072Tong(); - CodePointᶻᴰ.INSTANCE.setCommand(v0.getValue(T02PartBinary.PART_1), CodePointCommandᶻᴰ.START); + if (unicodePlane2.isLeftToRight()) { + CodePointᶻᴰ.INSTANCE.setCommand(v0.getValue(T02PartBinary.PART_1), CodePointCommandᶻᴰ.START_LR); + } else { + CodePointᶻᴰ.INSTANCE.setCommand(v0.getValue(T02PartBinary.PART_1), CodePointCommandᶻᴰ.START_RL); + } CodePointᶻᴰ.INSTANCE.setCommand(v0.getValue(T02PartBinary.PART_2), CodePointCommandᶻᴰ.UNICODE); CodePointᶻᴰ.INSTANCE.setArgumentUnicode(v0.getValue(T02PartBinary.PART_2), unicode); @@ -242,9 +187,9 @@ public class TestConvFont { CodePointᶻᴰ.INSTANCE.setCommand(v2.getValue(T02PartBinary.PART_2), CodePointCommandᶻᴰ.NOP); - glyph.add(v0); - glyph.add(v1); - glyph.add(v2); + tongs.add(v0); + tongs.add(v1); + tongs.add(v2); } else if ("contour".equals(qName)) { startPoint = true; @@ -274,7 +219,7 @@ public class TestConvFont { CodePointᶻᴰ.INSTANCE.setArgument(point.getValue(part), T02PartBinary.PART_1, x); CodePointᶻᴰ.INSTANCE.setArgument(point.getValue(part), T02PartBinary.PART_2, y); if (part == T02PartBinary.PART_2) { - glyph.add(point); + tongs.add(point); point = new V072Tong(); CodePointᶻᴰ.INSTANCE.setCommand(point.getValue(T02PartBinary.PART_1), CodePointCommandᶻᴰ.NOP); CodePointᶻᴰ.INSTANCE.setCommand(point.getValue(T02PartBinary.PART_2), CodePointCommandᶻᴰ.NOP); diff --git a/main-gdxapp/src/main/love/distributedrebirth/gdxapp/GDXAppMain.java b/main-gdxapp/src/main/love/distributedrebirth/gdxapp/GDXAppMain.java index c11ca811..61e1d5e0 100644 --- a/main-gdxapp/src/main/love/distributedrebirth/gdxapp/GDXAppMain.java +++ b/main-gdxapp/src/main/love/distributedrebirth/gdxapp/GDXAppMain.java @@ -43,8 +43,8 @@ import love.distributedrebirth.numberxd.base2t.Base2PartsFactory; import love.distributedrebirth.numberxd.base2t.Base2Terminator; import love.distributedrebirth.numberxd.base2t.part.warp.TOSWarpCore; import love.distributedrebirth.numberxd.glyph.BaseGlyphSet; -import love.distributedrebirth.unicode4d.base.UnicodePlane; -import love.distributedrebirth.unicode4d.base.UnicodePlaneDriver; +import love.distributedrebirth.unicode4d.atlas.FontAtlas; +import love.distributedrebirth.unicode4d.atlas.FontAtlasDriver; import love.distributedrebirth.warpme.TOSWarpCoreDriver; import love.distributedrebirth.warpme.core.WaterBucket; import net.spookygames.gdx.nativefilechooser.NativeFileChooser; @@ -66,7 +66,7 @@ public enum GDXAppMain implements DefaultEnumInstanceᴶᴹˣ,Screen> screens; private DeskTopScreenMenu screenMenu; @@ -114,7 +114,7 @@ public enum GDXAppMain implements DefaultEnumInstanceᴶᴹˣ tongs = glyph.getTongs(); } public void render() {