Hewbrew+unicode=hell

This commit is contained in:
Willem Cazander 2022-10-10 18:04:27 +02:00
parent 76f3da5da7
commit ca1fe9d9d0
27 changed files with 460 additions and 115 deletions

View file

@ -1,297 +0,0 @@
package love.distributedrebirth.unicode4d;
import java.text.DecimalFormat;
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
import love.distributedrebirth.bassboonyd.BãßBȍőnClassInfoʸᴰ;
import love.distributedrebirth.bassboonyd.BãßBȍőnCoffinOpenʸᴰ;
import love.distributedrebirth.bassboonyd.BãßBȍőnCoffinʸᴰ;
import love.distributedrebirth.bassboonyd.BãßBȍőnConstantsʸᴰ;
import love.distributedrebirth.bassboonyd.BãßBȍőnPackageInfoʸᴰ;
import love.distributedrebirth.bassboonyd.jmx.DefaultEnumSetᴶᴹˣ;
import love.distributedrebirth.bassboonyd.jmx.GuageCounterᴶᴹˣ;
import love.distributedrebirth.numberxd.base2t.part.T10PartDecimal;
import love.distributedrebirth.numberxd.base2t.part.T16PartHex;
@BãßBȍőnAuthorInfoʸᴰ(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
@BãßBȍőnClassInfoʸᴰ(name = "BaseGlyphSet", purpose = "The encoded base scripts.")
@BãßBȍőnPackageInfoʸᴰ(name = "love.distributedrebirth.numberxd")
public enum BaseGlyphSet implements DefaultEnumSetᴶᴹˣ<BaseGlyphSet,BãßBȍőnGlyphSetKeyʸᴰ> {
// TODO: Move this into unicode4D and TyyPartXxx
LATIN_BASIC(
new BaseGlyphSetNumber(v -> T10PartDecimal.DEFAULT.BãßVoorElk(x -> v.add(Integer.toString(x.BȍőnRangTelNul())))),
new BaseGlyphSetNumber(v -> T16PartHex.DEFAULT.BãßVoorElk(x -> v.add(x.BȍőnAlt1Value()))),
new BaseGlyphSetNumber("1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R")),
LATIN_DTMF(
new BaseGlyphSetNumber(v -> T10PartDecimal.DEFAULT.BãßVoorElk(x -> v.add(x.BȍőnChinaValue()))).withSeperator(BãßBȍőnConstantsʸᴰ.STR_SPACE),
new BaseGlyphSetNumber("1","2","3","A","4","5","6","B","7","8","9","C","*","0","#","D"),
null),
LATIN_TOP(
new BaseGlyphSetNumber("","¹","²","³","","","","","",""),
new BaseGlyphSetNumber("","¹","²","³","","","","","","","","","","","",""),
new BaseGlyphSetNumber("¹","²","³","","","","","","","","","","","","","","","","","","","","","","","Q","ᴿ")),
LATIN_SUB(
new BaseGlyphSetNumber("","","","","","","","","",""),
new BaseGlyphSetNumber("","","","","","","","","","","","","","","","բ"),
new BaseGlyphSetNumber("","","","","","","","","","","","","","","բ","G","","","","","","","","","","Q","")),
LATIN_TOPHEX(
LATIN_BASIC.BȍőnNumber10(),
LATIN_BASIC.BȍőnNumber16().withAltGlyphSet(LATIN_TOP),
null),
LATIN_SUBHEX(
LATIN_BASIC.BȍőnNumber10(),
LATIN_BASIC.BȍőnNumber16().withAltGlyphSet(LATIN_SUB),
null),
TONE_SCRIPT(
new BaseGlyphSetNumber(v -> T10PartDecimal.DEFAULT.BãßVoorElk(x -> v.add(x.BȍőnDialTone()))),
new BaseGlyphSetNumber(v -> T16PartHex.DEFAULT.BãßVoorElk(x -> v.add(x.BȍőnDialTone()))),
new BaseGlyphSetNumber("꜊꜈","꜊꜉","꜊꜋","꜊꜌","꜊꜍","꜊꜎","꜊꜏","꜊꜐","꜊꜑","˧˥","˧˦","˧˨","˧˩","˧꜒","˧꜓","˧꜔","˧꜕","˧꜖","꜏˥","꜏˦","꜏˧","꜏˨","꜏˩","꜏꜍","꜏꜎","꜏꜐","꜏꜑")),
DIPAVALI_LRPATH_TOPHEX(
new BaseGlyphSetNumber(v -> T10PartDecimal.DEFAULT.BãßVoorElk(x -> v.add(x.BȍőnAlt1Value()))),
new BaseGlyphSetNumber("˧˥˩","˧˩˥","˧˥˦","˧˩˨","˧˦˦","˧˨˨","˧˥˥","˧˩˩","˥˩˧","˩˥˧","˥˦˧","˩˨˧","˦˦˧","˨˨˧","˥˥˧","˩˩˧").withAltGlyphSet(BaseGlyphSet.LATIN_TOP),
TONE_SCRIPT.BȍőnNumber27()),
DIPAVALI_LRPATH_SUBHEX(
new BaseGlyphSetNumber(v -> T10PartDecimal.DEFAULT.BãßVoorElk(x -> v.add(x.BȍőnAlt1Value()))),
new BaseGlyphSetNumber("˧˥˩","˧˩˥","˧˥˦","˧˩˨","˧˦˦","˧˨˨","˧˥˥","˧˩˩","˥˩˧","˩˥˧","˥˦˧","˩˨˧","˦˦˧","˨˨˧","˥˥˧","˩˩˧").withAltGlyphSet(BaseGlyphSet.LATIN_SUB),
TONE_SCRIPT.BȍőnNumber27()),
DIPAVALI_RLPATH_TOPHEX(
new BaseGlyphSetNumber(v -> T10PartDecimal.DEFAULT.BãßVoorElk(x -> v.add(x.BȍőnAlt2Value()))),
new BaseGlyphSetNumber("꜔꜒꜖","꜔꜖꜒","꜔꜒꜓","꜔꜖꜕","꜔꜓꜓","꜔꜕꜕","꜔꜒꜒","꜔꜖꜖","꜒꜖꜔","꜖꜒꜔","꜒꜓꜔","꜖꜕꜔","꜓꜓꜔","꜕꜕꜔","꜒꜒꜔","꜖꜖꜔").withAltGlyphSet(BaseGlyphSet.LATIN_TOP),
TONE_SCRIPT.BȍőnNumber27()),
DIPAVALI_RLPATH_SUBHEX(
new BaseGlyphSetNumber(v -> T10PartDecimal.DEFAULT.BãßVoorElk(x -> v.add(x.BȍőnAlt2Value()))),
new BaseGlyphSetNumber("꜔꜒꜖","꜔꜖꜒","꜔꜒꜓","꜔꜖꜕","꜔꜓꜓","꜔꜕꜕","꜔꜒꜒","꜔꜖꜖","꜒꜖꜔","꜖꜒꜔","꜒꜓꜔","꜖꜕꜔","꜓꜓꜔","꜕꜕꜔","꜒꜒꜔","꜖꜖꜔").withAltGlyphSet(BaseGlyphSet.LATIN_SUB),
TONE_SCRIPT.BȍőnNumber27()),
GREEK(
new BaseGlyphSetNumber("ō","α","β","γ","δ","ε","ϝ","ζ","η","θ"),
new BaseGlyphSetNumber("ō","α","β","γ","δ","ε","ϝ","ζ","η","θ","ι","κ","λ","μ","ν","ξ"),
new BaseGlyphSetNumber("α","β","γ","δ","ε","ϝ","ζ","η","θ","ι","κ","λ","μ","ν","ξ","ο","π","ϟ","ρ","σ","τ","υ","φ","χ","ψ","ω","ϡ")),
BENGALI(
new BaseGlyphSetNumber("","","","","","","","","",""),
new BaseGlyphSetNumber("","","","","","","","","","","জ্ঞ","ক্ষ","","","",""),
new BaseGlyphSetNumber("","","","","","","","","","","","","","","","","","","","","","","","","","","")),
KANNADA(
new BaseGlyphSetNumber("","","","","","","","","",""),
new BaseGlyphSetNumber("","","","","","","","","","","","","","","",""),
new BaseGlyphSetNumber("","","","","","","","","","","","","","","","","","","","","","","","","","","")),
MALAYALAM(
new BaseGlyphSetNumber("","","","","","","","","",""),
new BaseGlyphSetNumber("","","","","","","","","","","","","","","",""),
new BaseGlyphSetNumber("","","","","","","","","","","","","","","","","","","","","","","","","","","ൿ")),
THAI(
new BaseGlyphSetNumber("","","","","","","","","",""),
new BaseGlyphSetNumber("","","","","","","","","","","","","","","",""),
new BaseGlyphSetNumber("","","","","","","","","","","","","","","","","","","","","","","","","","","")),
/* TODO: Brahmi is U+11000U+1107F and thus unsupported by ImGui
BRAHMI(
new BaseGlyphSetNumber("𑁦","𑁧","𑁨","𑁩","𑁪","𑁫","𑁬","𑁭","𑁮","𑁯"),
new BaseGlyphSetNumber("𑀮","𑀯","𑀰","𑀱","𑀮𑀺","𑀯𑀺","𑀰𑀺","𑀱𑀺","𑀮𑀽","𑀯𑀽","𑀰𑀽","𑀱𑀽","𑀮𑁄","𑀯𑁄","𑀰𑁄","𑀱𑁄"),
new BaseGlyphSetNumber("𑀓𑁆","𑀔𑁆","𑀕𑁆","𑀖𑁆","𑀗𑁆","𑀘𑁆","𑀙𑁆","𑀚𑁆","𑀛𑁆","𑀜𑁆","𑀝𑁆","𑀞𑁆","𑀟𑁆","𑀠𑁆","𑀡𑁆","𑀢𑁆","𑀣𑁆","𑀤𑁆","𑀥𑁆","𑀦𑁆","𑀧𑁆","𑀨𑁆","𑀩𑁆","𑀪𑁆","𑀫𑁆","𑀬𑁆","𑀭𑁆")),
*/
/* TODO: random selection replace with correct AND Egyptian hieroglyphs should be mapped 0x13000 to 0x1342E but for now on 0xE000 to 0xE42E (BMP) */
HIERO(
new BaseGlyphSetNumber("\ue429","\ue3fa","\ue3fb","\ue3fc","\ue3fd","\ue3fe","\ue3ff","\ue400","\ue401","\ue401").withSeperator(BãßBȍőnConstantsʸᴰ.STR_SPACE),
new BaseGlyphSetNumber("\ue254","\ue255","\ue256","\ue257","\ue258","\ue259","\ue25a","\ue25b","\ue25c","\ue25d","\ue25e","\ue25f","\ue260","\ue261","\ue262","\ue263").withSeperator(BãßBȍőnConstantsʸᴰ.STR_SPACE),
new BaseGlyphSetNumber(
"\ue3fa","\ue3fb","\ue3fc","\ue3fd","\ue3fe","\ue3ff","\ue400","\ue401","\ue401",
"\ue386","\ue387","\ue388","\ue389","\ue38a","\ue38b","\ue38c","\ue38d","\ue38e",
"\ue362","\ue363","\ue364","\ue365","\ue366","\ue367","\ue368","\ue369","\ue36a").withSeperator(BãßBȍőnConstantsʸᴰ.STR_SPACE)
),
RUNIC(
new BaseGlyphSetNumber("","","","","","","","","",""),
new BaseGlyphSetNumber("","","","","","","","","","","","","","","",""),
new BaseGlyphSetNumber("","","","","","","","","","","","","","","","","","","","","","","","","","","")),
KOREAN(
new BaseGlyphSetNumber("","","","","","","","","",""),
// TODO: replace Counting Rod Numerals Symbols are "T25PartCountingRod?"
new BaseGlyphSetNumber("𝍠","𝍡","𝍢","𝍣","𝍤","𝍥","𝍦","𝍧","𝍨","𝍩","𝍪","𝍫","𝍬","𝍭","𝍮","𝍯"),
new BaseGlyphSetNumber("","","","","","","","","","","","","","","","","","","","","","","","","","","")),
CHINA(
new BaseGlyphSetNumber("","","","","","","","","",""),
// TODO: replace Yijing Hexagram Symbols are "T64PartYijing"
new BaseGlyphSetNumber("", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""),
// TODO: replace Tai Xuan Jing Symbols are "T87PartXuanJing"
new BaseGlyphSetNumber("𝌁","𝌂","𝌃","𝌄","𝌅","𝌆","𝌇","𝌈","𝌉","𝌊","𝌋","𝌌","𝌍","𝌎","𝌏","𝌐","𝌑","𝌒","𝌓","𝌔","𝌕","𝌖","𝌗","𝌘","𝌙","𝌚","𝌛")),
CHINA_FORMAL(
new BaseGlyphSetNumber(v -> T10PartDecimal.DEFAULT.BãßVoorElk(x -> v.add(x.BȍőnChinaKey()))),
null,
null),
CHINA_FORMAL_OLD(
new BaseGlyphSetNumber("","","","","","","","","",""),
null,
null),
JAPAN(
CHINA.BȍőnNumber10(),
KOREAN.BȍőnNumber16(),
null),
JAPAN_FORMAL(
new BaseGlyphSetNumber("","","","","","","","","",""),
null,
null),
CYRILLIC(
new BaseGlyphSetNumber("Ф","А","В","Г","Д","Є","Ѕ","З","И","Ѳ"),
new BaseGlyphSetNumber("Ф","А","В","Г","Д","Є","Ѕ","З","И","Ѳ","І","К","Л","М","Н","Ѯ"),
new BaseGlyphSetNumber("А","В","Г","Д","Є","Ѕ","З","И","Ѳ","І","К","Л","М","Н","Ѯ","Ѻ","П","Ч","Р","С","Т","Ѵ","Ф","Х","Ѱ","Ѿ","Ц")),
ARABIC(
new BaseGlyphSetNumber("٠","١","٢","٣","٤","٥","٦","٧","٨","٩"),
null,
new BaseGlyphSetNumber("ا","ب","ج","د","ه","و","ز","ح","ط","ي","ك","ل","م","ن","س","ع","ف","ص","ق","ر","ش","ت","ث","خ","ذ","ض","ظ"),
true),
HEBREW(
new BaseGlyphSetNumber("אֶפֶס","אֶחָד","שְׁתַּיִם","שְׁלֹשָׁה","אַרְבַּע‎","חֲמִשָּׁה‎","שֵׁשׁ‎","שִׁבְעָה","שְׁמוֹנֶה","תִּשְׁעָה‎").withSeperator(BãßBȍőnConstantsʸᴰ.STR_SPACE),
null,
new BaseGlyphSetNumber("א","ב","ג","ד","ה","ו","ז","ח","ט","י","כ","ל","מ","נ","ס","ע","פ","צ","ק","ר","ש","ת","ך","ם","ן","ף","ץ"),
true),
;
private final GuageCounterᴶᴹˣ printNumber10Count;
private final GuageCounterᴶᴹˣ printNumber16Count;
private final GuageCounterᴶᴹˣ printNumber27Count;
private final BãßBȍőnCoffinOpenʸᴰ<BãßBȍőnGlyphSetKeyʸᴰ> BBC = BãßBȍőnCoffinOpenʸᴰ.newInstance();
public BãßBȍőnCoffinʸᴰ<BãßBȍőnGlyphSetKeyʸᴰ> GET_BBC() { return BBC; }
private BaseGlyphSet(BaseGlyphSetNumber numbers) {
this(numbers, null, null);
}
private BaseGlyphSet(BaseGlyphSetNumber numbers, BaseGlyphSetNumber hex, BaseGlyphSetNumber gematria) {
this(numbers, hex, gematria, false);
}
private BaseGlyphSet(BaseGlyphSetNumber numbers, BaseGlyphSetNumber hex, BaseGlyphSetNumber gematria, Boolean reverseScript) {
BBC.PUT_OBJ(BãßBȍőnGlyphSetKeyʸᴰ.NUMBERS, numbers);
BBC.PUT_OBJ(BãßBȍőnGlyphSetKeyʸᴰ.HEXIMALS, hex);
BBC.PUT_OBJ(BãßBȍőnGlyphSetKeyʸᴰ.GEMATRIA, gematria);
BBC.PUT_OBJ(BãßBȍőnGlyphSetKeyʸᴰ.REVERSE_SCRIPT, reverseScript); // TODO: ImGui workaround
BBC.BOON_INIT(this);
this.BȍőnJmxInit(BãßBȍőnGlyphSetKeyʸᴰ.JMX);
printNumber10Count = BȍőnJmxInitGuageCounter(BãßBȍőnGlyphSetKeyʸᴰ.JMX, "printNumber10Count");
printNumber16Count = BȍőnJmxInitGuageCounter(BãßBȍőnGlyphSetKeyʸᴰ.JMX, "printNumber16Count");
printNumber27Count = BȍőnJmxInitGuageCounter(BãßBȍőnGlyphSetKeyʸᴰ.JMX, "printNumber27Count");
}
public BaseGlyphSetNumber BȍőnNumber10() {
return GET_BBC().GET_OBJ(BãßBȍőnGlyphSetKeyʸᴰ.NUMBERS, BaseGlyphSetNumber.class);
}
public BaseGlyphSetNumber BȍőnNumber16() {
return GET_BBC().GET_OBJ(BãßBȍőnGlyphSetKeyʸᴰ.HEXIMALS, BaseGlyphSetNumber.class);
}
public BaseGlyphSetNumber BȍőnNumber27() {
return GET_BBC().GET_OBJ(BãßBȍőnGlyphSetKeyʸᴰ.GEMATRIA, BaseGlyphSetNumber.class);
}
public Boolean BȍőnReverseScript() {
return GET_BBC().GET_BOOL(BãßBȍőnGlyphSetKeyʸᴰ.REVERSE_SCRIPT);
}
public String BȍőnConvertTo(String numbers) {
StringBuilder buf = new StringBuilder();
for (char c:numbers.toCharArray()) {
for (BaseGlyphSet set:values()) {
int loc = set.BȍőnNumber10().BȍőnIndexOf(""+c);
if (loc != -1) {
buf.append(set.BȍőnNumber10().BȍőnCharFor(loc));
}
}
}
return buf.toString();
}
public String BȍőnPrintNumber10(int number, int numberMax) {
printNumber10Count.increment();
String maxDigitNumber = Integer.toString(numberMax);
StringBuilder maxDigitFormat = new StringBuilder();
for (int i=0;i<maxDigitNumber.length();i++) {
maxDigitFormat.append("0");
}
String numberStr = new DecimalFormat(maxDigitFormat.toString()).format(number);
StringBuilder buf = new StringBuilder();
for (int i=0;i<numberStr.length();i++) {
char c = numberStr.charAt(i);
int numberDigit = c - '0';
buf.append(BȍőnNumber10().BȍőnCharFor(numberDigit));
if (i<numberStr.length() - 1) {
buf.append(BȍőnNumber10().BȍőnCharSeperator());
}
}
if (BȍőnReverseScript()) {
return buf.reverse().toString();
}
return buf.toString();
}
public String BȍőnPrintNumber16(int number, int numberMax) {
printNumber16Count.increment();
String maxDigitNumber = Integer.toHexString(numberMax);
String numberStr = Integer.toHexString(number);
StringBuilder buf = new StringBuilder();
BaseGlyphSet printSet = this;
for (int i=numberStr.length();i<maxDigitNumber.length();i++) {
buf.append(printSet.BȍőnNumber16().BȍőnCharFor(0));
if (i==numberStr.length() && BȍőnNumber16().BȍőnAltGlyphSet() != null) {
printSet = BȍőnNumber16().BȍőnAltGlyphSet();
}
}
for (int i=0;i<numberStr.length();i++) {
char c = numberStr.charAt(i);
int numberDigit = 0;
if (c >= 'a') {
numberDigit = c - 'a' + 10;
} else {
numberDigit = c - '0';
}
buf.append(printSet.BȍőnNumber16().BȍőnCharFor(numberDigit));
if (i<numberStr.length() - 1) {
buf.append(printSet.BȍőnNumber16().BȍőnCharSeperator());
}
if (i==0 && BȍőnNumber16().BȍőnAltGlyphSet() != null) {
printSet = BȍőnNumber16().BȍőnAltGlyphSet();
}
}
if (BȍőnReverseScript()) {
return buf.reverse().toString();
}
return buf.toString();
}
public String BȍőnPrintNumber27(int number, int numberMax) {
printNumber27Count.increment();
String maxDigitNumber = Integer.toString(numberMax, 27);
String numberStr = Integer.toString(number, 27);
StringBuilder buf = new StringBuilder();
BaseGlyphSet printSet = this;
for (int i=numberStr.length();i<maxDigitNumber.length();i++) {
buf.append(printSet.BȍőnNumber27().BȍőnCharFor(0));
if (i==numberStr.length() && BȍőnNumber27().BȍőnAltGlyphSet() != null) {
printSet = BȍőnNumber27().BȍőnAltGlyphSet();
}
}
for (int i=0;i<numberStr.length();i++) {
char c = numberStr.charAt(i);
int numberDigit = 0;
if (c >= 'a') {
numberDigit = c - 'a' + 10;
} else {
numberDigit = c - '0';
}
buf.append(printSet.BȍőnNumber27().BȍőnCharFor(numberDigit));
if (i<numberStr.length() - 1) {
buf.append(printSet.BȍőnNumber27().BȍőnCharSeperator());
}
if (i==0 && BȍőnNumber27().BȍőnAltGlyphSet() != null) {
printSet = BȍőnNumber27().BȍőnAltGlyphSet();
}
}
if (BȍőnReverseScript()) {
return buf.reverse().toString();
}
return buf.toString();
}
}

View file

@ -1,189 +0,0 @@
package love.distributedrebirth.unicode4d;
import java.util.ArrayList;
import java.util.List;
import java.util.function.Consumer;
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
import love.distributedrebirth.numberxd.base2t.BaseAppender;
@BãßBȍőnAuthorInfoʸᴰ(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
public final class BaseGlyphSetNumber {
private final List<String> chars = new ArrayList<>();
private BaseGlyphSet altGlyphSet = null;
private String charSeperator = "";
public BaseGlyphSetNumber(String char0, String char1, String char2, String char3, String char4, String char5,
String char6, String char7, String char8, String char9) {
this.chars.add(char0);
this.chars.add(char1);
this.chars.add(char2);
this.chars.add(char3);
this.chars.add(char4);
this.chars.add(char5);
this.chars.add(char6);
this.chars.add(char7);
this.chars.add(char8);
this.chars.add(char9);
}
public BaseGlyphSetNumber(String char0, String char1, String char2, String char3, String char4, String char5,
String char6, String char7, String char8, String char9, String charA, String charB, String charC,
String charD, String charE, String charF) {
this.chars.add(char0);
this.chars.add(char1);
this.chars.add(char2);
this.chars.add(char3);
this.chars.add(char4);
this.chars.add(char5);
this.chars.add(char6);
this.chars.add(char7);
this.chars.add(char8);
this.chars.add(char9);
this.chars.add(charA);
this.chars.add(charB);
this.chars.add(charC);
this.chars.add(charD);
this.chars.add(charE);
this.chars.add(charF);
}
public BaseGlyphSetNumber(String char1, String char2, String char3, String char4, String char5, String char6,
String char7, String char8, String char9, String char10, String char20, String char30, String char40,
String char50, String char60, String char70, String char80, String char90, String char100, String char200,
String char300, String char400, String char500, String char600, String char700, String char800,
String char900) {
this.chars.add(char1);
this.chars.add(char2);
this.chars.add(char3);
this.chars.add(char4);
this.chars.add(char5);
this.chars.add(char6);
this.chars.add(char7);
this.chars.add(char8);
this.chars.add(char9);
this.chars.add(char10);
this.chars.add(char20);
this.chars.add(char30);
this.chars.add(char40);
this.chars.add(char50);
this.chars.add(char60);
this.chars.add(char70);
this.chars.add(char80);
this.chars.add(char90);
this.chars.add(char100);
this.chars.add(char200);
this.chars.add(char300);
this.chars.add(char400);
this.chars.add(char500);
this.chars.add(char600);
this.chars.add(char700);
this.chars.add(char800);
this.chars.add(char900);
}
public BaseGlyphSetNumber(List<String> chars) {
this.chars.addAll(chars);
}
public BaseGlyphSetNumber(Consumer<BaseAppender<String>> consumer) {
consumer.accept(new BaseAppender<String>() {
@Override
public void add(String value) {
chars.add(value);
}
});
}
public BaseGlyphSetNumber withAltGlyphSet(BaseGlyphSet altGlyphSet) {
BaseGlyphSetNumber result = new BaseGlyphSetNumber(chars);
result.altGlyphSet = altGlyphSet;
return result;
}
public BaseGlyphSetNumber withSeperator(String charSeperator) {
BaseGlyphSetNumber result = new BaseGlyphSetNumber(chars);
result.charSeperator = charSeperator;
return result;
}
public String BȍőnCharFor(int number) {
return chars.get(number);
}
public int BȍőnIndexOf(String str) {
return chars.indexOf(str);
}
public String BȍőnCharSeperator() {
return charSeperator;
}
public BaseGlyphSet BȍőnAltGlyphSet() {
return altGlyphSet;
}
public String BȍőnCharFor27(int number) {
switch (number) {
case 1:
return chars.get(0);
case 2:
return chars.get(1);
case 3:
return chars.get(2);
case 4:
return chars.get(3);
case 5:
return chars.get(4);
case 6:
return chars.get(5);
case 7:
return chars.get(6);
case 8:
return chars.get(7);
case 9:
return chars.get(8);
case 10:
return chars.get(9);
case 20:
return chars.get(10);
case 30:
return chars.get(11);
case 40:
return chars.get(12);
case 50:
return chars.get(13);
case 60:
return chars.get(14);
case 70:
return chars.get(15);
case 80:
return chars.get(16);
case 90:
return chars.get(17);
case 100:
return chars.get(18);
case 200:
return chars.get(19);
case 300:
return chars.get(20);
case 400:
return chars.get(21);
case 500:
return chars.get(22);
case 600:
return chars.get(23);
case 700:
return chars.get(24);
case 800:
return chars.get(25);
case 900:
return chars.get(26);
default:
throw new IllegalArgumentException("Can't handle higher numbers: "+number);
}
}
}

View file

@ -1,16 +0,0 @@
package love.distributedrebirth.unicode4d;
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
import love.distributedrebirth.bassboonyd.BãßBȍőnCoffinStoreKeyʸᴰ;
@BãßBȍőnAuthorInfoʸᴰ(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
public enum BãßBȍőnGlyphSetKeyʸᴰ implements BãßBȍőnCoffinStoreKeyʸᴰ {
JMX,
NUMBERS,
GEMATRIA,
HEXIMALS,
REVERSE_SCRIPT
;
}

View file

@ -1,406 +0,0 @@
package love.distributedrebirth.unicode4d;
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
@BãßBȍőnAuthorInfoʸᴰ(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
public enum UnicodePlaneᶻᴰ {
// =========== PLANE 0
BASIC_LATIN(0x0000, 0x007F),
LATIN1_SUPPLEMENT(0x080,0x00FF),
LATIN_EXTENDED_A(0x0100,0x017F),
LATIN_EXTENDED_B(0x0180,0x024F),
IPA_EXTENSIONS(0x0250,0x02AF),
SPACING_MODIFIER_LETTERS(0x02B0,0x02FF),
COMBINING_DIACRITICAL_MARKS(0x0300,0x036F),
GREEK_AND_COPTIC(0x0370,0x03FF),
CYRILLIC(0x0400,0x04FF),
CYRILLIC_SUPPLEMENT(0x0500,0x052F),
ARMENIAN(0x0530,0x058F),
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),
GURMUKHI(0x0A00,0x0A7F),
GUJARATI(0x0A80,0x0AFF),
ORIYA(0x0B00,0x0B7F),
TAMIL(0x0B80,0x0BFF),
TELUGU(0x0C00,0x0C7F),
KANNADA(0x0C80,0x0CFF),
MALAYALAM(0x0D00,0x0D7F),
SINHALA(0x0D80,0x0DFF),
THAI(0x0E00,0x0E7F),
LAO(0x0E80,0x0EFF),
TIBETAN(0x0F00,0x0FFF),
MYANMAR(0x1000,0x109F),
GEORGIAN(0x10A0,0x10FF),
HANGUL_JAMO(0x1100,0x11FF),
ETHIOPIC(0x1200,0x137F),
ETHIOPIC_SUPPLEMENT(0x1380,0x139F),
CHEROKEE(0x13A0,0x13FF),
UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS(0x1400,0x167F),
OGHAM(0x1680,0x169F),
RUNIC(0x16A0,0x16FF),
TAGALOG (0x1700,0x171F),
HANUNOO (0x1720,0x173F),
BUHID (0x1740,0x175F),
TAGBANWA (0x1760,0x177F),
KHMER (0x1780,0x17FF),
MONGOLIAN (0x1800,0x18AF),
UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS_EXTENDED(0x18B0,0x18FF),
LIMBU(0x1900,0x194F),
TAI_LE (0x1950,0x197F),
NEW_TAI_LUE (0x1980,0x19DF),
KHMER_SYMBOLS (0x19E0,0x19FF),
BUGINESE (0x1A00,0x1A1F),
TAI_THAM (0x1A20,0x1AAF),
COMBINING_DIACRITICAL_MARKS_EXTENDED(0x1AB0,0x1AFF),
BALINESE (0x1B00,0x1B7F),
SUNDANESE (0x1B80,0x1BBF),
BATAK (0x1BC0,0x1BFF),
LEPCHA (0x1C00,0x1C4F),
OL_CHIKI (0x1C50,0x1C7F),
CYRILLIC_EXTENDED_C (0x1C80,0x1C8F),
GEORGIAN_EXTENDED (0x1C90,0x1CBF),
SUNDANESE_SUPPLEMENT (0x1CC0,0x1CCF),
VEDIC_EXTENSIONS (0x1CD0,0x1CFF),
PHONETIC_EXTENSIONS (0x1D00,0x1D7F),
PHONETIC_EXTENSIONS_SUPPLEMENT (0x1D80,0x1DBF),
COMBINING_DIACRITICAL_MARKS_SUPPLEMENT (0x1DC0,0x1DFF),
LATIN_EXTENDED_ADDITINAL (0x1E00,0x1EFF),
GREEK_EXTENDED (0x1F00,0x1FFF),
GENERAL_PUNCTUATION (0x2000,0x206F),
SUPERSCRIPTS_AND_SUBSCRIPTS (0x2070,0x209F),
CURRENCY_SYMBOLS (0x20A0,0x20CF),
COMBINING_DIACRITICAL_MARKS_FOR_SYMBOLS (0x20D0,0x20FF),
LETTERLIKE_SYMBOLS (0x2100,0x214F),
NUMBER_FORMS (0x2150,0x218F),
ARROWS (0x2190,0x21FF),
MATHEMATICAL_OPERATORS (0x2200,0x22FF),
MISCELLANEOUS_TECHNICAL (0x2300,0x23FF),
CONTROL_PICTURES (0x2400,0x243F),
OPTICAL_CHARACTER_RECOGNITION (0x2440,0x245F),
ENCLOSED_ALPHANUMERICS (0x2460,0x24FF),
BOX_DRAWING (0x2500,0x257F),
BLOCK_ELEMENTS (0x2580,0x259F),
GEOMETRIC_SHAPES (0x25A0,0x25FF),
MISCELLANEOUS_SYMBOLS (0x2600,0x26FF),
DINGBATS (0x2700,0x27BF),
MISCELLANEOUS_MATHEMATICAL_SYMBOLS_A (0x27C0,0x27EF),
SUPPLEMENTAL_ARROWS_A (0x27F0,0x27FF),
BRAILLE_PATTERNS (0x2800,0x28FF),
SUPPLEMENTAL_ARROWS_B (0x2900,0x297F),
MISCELLANEOUS_MATHEMATICAL_SYMBOLS_B (0x2980,0x29FF),
SUPPLEMENTAL_MATHEMATICAL_OPERATORS (0x2A00,0x2AFF),
MISCELLANEOUS_SYMBOLS_AND_ARROWS (0x2B00,0x2BFF),
GLAGOLITIC (0x2C00,0x2C5F),
LATIN_EXTENDED_C (0x2C60,0x2C7F),
COPTIC (0x2C80,0x2CFF),
GEORGIAN_SUPPLEMENT (0x2D00,0x2D2F),
TIFINAGH (0x2D30,0x2D7F),
ETHIOPIC_EXTENDED (0x2D80,0x2DDF),
CYRILLIC_EXTENDED_A (0x2DE0,0x2DFF),
SUPPLEMENTAL_PUNCTUATION (0x2E00,0x2E7F),
CJK_RADICALS_SUPPLEMENT (0x2E80,0x2EFF),
KANGXI_RADICALS (0x2F00,0x2FDF),
IDEOGRAPHIC_DESCRIPTION_CHARACTERS (0x2FF0,0x2FFF),
CJK_SYMBOLS_AND_PUNCTUATION (0x3000,0x303F),
HIRAGANA (0x3040,0x309F),
KATAKANA (0x30A0,0x30FF),
BOPOMOFO (0x3100,0x312F),
HANGUL_COMPATIBILITY_JAMO (0x3130,0x318F),
KANBUN (0x3190,0x319F),
BOPOMOFO_EXTENDED (0x31A0,0x31BF),
CJK_STROKES (0x31C0,0x31EF),
KATAKANA_PHONETIC_EXTENSIONS (0x31F0,0x31FF),
ENCLOSED_CJK_LETTERS_AND_MONTHS (0x3200,0x32FF),
CJK_COMPATIBILITY (0x3300,0x33FF),
CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A (0x3400,0x4DBF),
YIJING_HEXAGRAM_SYMBOLS (0x4DC0,0x4DFF),
CJK_UNIFIED_IDEOGRAPHS (0x4E00,0x9FFF),
YI_SYLLABLES (0xA000,0xA48F),
YI_RADICALS (0xA490,0xA4CF),
LISU (0xA4D0,0xA4FF),
VAI (0xA500,0xA63F),
CYRILLIC_EXTENDED_B (0xA640,0xA69F),
BAMUM (0xA6A0,0xA6FF),
MODIFIER_TONE_LETTERS (0xA700,0xA71F),
LATIN_EXTENDED_D (0xA720,0xA7FF),
SYLOTI_NAGRI (0xA800,0xA82F),
COMMON_INDIC_NUMBER_FORMS (0xA830,0xA83F),
PHAGS_PA (0xA840,0xA87F),
SAURASHTRA (0xA880,0xA8DF),
DEVANAGARI_EXTENDED (0xA8E0,0xA8FF),
KAYAH_LI (0xA900,0xA92F),
REJANG (0xA930,0xA95F),
HANGUL_JAMO_EXTENDED_A (0xA960,0xA97F),
JAVANESE (0xA980,0xA9DF),
MYANMAR_EXTENDED_B (0xA9E0,0xA9FF),
CHAM (0xAA00,0xAA5F),
MYANMAR_EXTENDED_A (0xAA60,0xAA7F),
TAI_VIET (0xAA80,0xAADF),
MEETEI_MAYEK_EXTENSIONS (0xAAE0,0xAAFF),
ETHIOPIC_EXTENDED_A (0xAB00,0xAB2F),
LATIN_EXTENDED_E (0xAB30,0xAB6F),
CHEROKEE_SUPPLEMENT (0xAB70,0xABBF),
MEETEI_MAYEK (0xABC0,0xABFF),
HANGUL_SYLLABLES (0xAC00,0xD7AF),
HANGUL_JAMO_EXTENDED_B (0xD7B0,0xD7FF),
HIGH_SURROGATES (0xD800,0xDB7F),
HIGH_PRIVATE_USE_SURROGATES (0xDB80,0xDBFF),
LOW_SURROGATES (0xDC00,0xDFFF),
PRIVATE_USE_AREA (0xE000,0xF8FF),
CJK_COMPATIBILITY_IDEOGRAPHS (0xF900,0xFAFF),
ALPHABETIC_PRESENTATION_FORMS (0xFB00,0xFB4F),
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, false),
HALFWIDTH_AND_FULLWIDTH_FORMS (0xFF00,0xFFEF),
SPECIALS (0xFFF0,0xFFFF),
// =========== PLANE 1
LINEAR_B_SYLLABARY (0x10000,0x1007F),
LINEAR_B_IDEOGRAMS (0x10080,0x100FF),
AEGEAN_NUMBERS (0x10100,0x1013F),
ANCIENT_GREEK_NUMBERS (0x10140,0x1018F),
ANCIENT_SYMBOLS (0x10190,0x101CF),
PHAISTOS_DISC (0x101D0,0x101FF),
LYCIAN (0x10280,0x1029F),
CARIAN (0x102A0,0x102DF),
COPTIC_EPACT_NUMBERS (0x102E0,0x102FF),
OLD_ITALIC (0x10300,0x1032F),
GOTHIC (0x10330,0x1034F),
OLD_PERMIC (0x10350,0x1037F),
UGARITIC (0x10380,0x1039F),
OLD_PERSIAN (0x103A0,0x103DF, false),
DESERET (0x10400,0x1044F),
SHAVIAN (0x10450,0x1047F),
OSMANYA (0x10480,0x104AF),
OSAGE (0x104B0,0x104FF),
ELBASAN (0x10500,0x1052F),
CAUCASIAN_ALBANIAN (0x10530,0x1056F),
VITHKUQI (0x10570,0x105BF),
LINEAR_A (0x10600,0x1077F),
LATIN_EXTENDED_F (0x10780,0x107BF),
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),
SORA_SOMPENG (0x110D0,0x110FF),
CHAKMA (0x11100,0x1114F),
MAHAJANI (0x11150,0x1117F),
SHARADA (0x11180,0x111DF),
SINHALA_ARCHAIC_NUMBERS (0x111E0,0x111FF),
KHOJKI (0x11200,0x1124F),
MULTANI (0x11280,0x112AF),
KHUDAWADI (0x112B0,0x112FF),
GRANTHA (0x11300,0x1137F),
NEWA (0x11400,0x1147F),
TIRHUTA (0x11480,0x114DF),
SIDDHAM (0x11580,0x115FF),
MODI (0x11600,0x1165F),
MONGOLIAN_SUPPLEMENT (0x11660,0x1167F),
TAKRI (0x11680,0x116CF),
AHOM (0x11700,0x1174F),
DOGRA (0x11800,0x1184F),
WARANG_CITI (0x118A0,0x118FF),
DIVES_AKURU (0x11900,0x1195F),
NANDINAGARI (0x119A0,0x119FF),
ZANABAZAR_SQUARE (0x11A00,0x11A4F),
SOYOMBO (0x11A50,0x11AAF),
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),
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),
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),
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),
// =========== 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() {
return start;
}
public int getStop() {
return stop;
}
public boolean isLeftToRight() {
return leftToRight;
}
public boolean isPlane0() {
return getStart() < 0xFFFF;
}
public static UnicodePlaneᶻᴰ valueOfUnicode(int unicode) {
for (UnicodePlaneᶻᴰ value:values()) {
if (unicode >= value.getStart() && unicode <= value.getStop()) {
return value;
}
}
return UnicodePlaneᶻᴰ.UNKNOWN;
}
}

View file

@ -13,9 +13,10 @@ import love.distributedrebirth.unicode4d.draw.DrawGlyphPath.ImGlyphQuadCurveTo;
public class ImCharacter {
public static final float HEIGHT = 26f;
public static final float WIDTH = 22f;
public static final float MARGIN_MENUBAR = 4f;
private static final ImVec2 SIZE = new ImVec2(22f, HEIGHT);
private static final int COLOR = ImColor.intToColor(255, 255, 255, 255);
private static final ImVec2 SIZE = new ImVec2(WIDTH, HEIGHT);
private static final int DEFAULT_COLOR = ImColor.intToColor(255, 255, 255, 255);
public static void render(DrawCharacter drawChar) {
ImGui.invisibleButton("canvas", SIZE.x, SIZE.y);
@ -23,10 +24,13 @@ public class ImCharacter {
ImVec2 p1 = ImGui.getItemRectMax(); // p1 = p0 + size
ImDrawList drawList = ImGui.getWindowDrawList();
drawList.pushClipRect(p0.x, p0.y, p1.x, p1.y);
// draw unicode4D
float xOff = p0.x;
float yOff = p0.y + 19f;
drawUnicode4D(drawChar, p0.x, p0.y, DEFAULT_COLOR, drawList);
drawList.popClipRect();
}
public static void drawUnicode4D(DrawCharacter drawChar, float posX, float posY, int color, ImDrawList drawList) {
float xOff = posX;
float yOff = posY + 19f;
float yFlip = -1f;
float scale = 0.0199f;
if (drawChar.getyMax() > 900) {
@ -47,7 +51,7 @@ public class ImCharacter {
yOff+prev.getY()*scale*yFlip,
xOff+lineTo.getX()*scale,
yOff+lineTo.getY()*scale*yFlip,
COLOR);
color);
prev = cmd;
continue;
}
@ -60,7 +64,7 @@ public class ImCharacter {
yOff+quadCurveTo.getY1()*scale*yFlip,
xOff+quadCurveTo.getX()*scale,
yOff+quadCurveTo.getY()*scale*yFlip,
COLOR,
color,
1);
prev = cmd;
continue;
@ -71,11 +75,8 @@ public class ImCharacter {
yOff+prev.getY()*scale*yFlip,
xOff+first.getX()*scale,
yOff+first.getY()*scale*yFlip,
COLOR);
color);
}
}
//drawList.addQuad(p0.x, p0.y, p0.x+size.x, p0.y, p1.x, p1.y, p0.x, p0.y+size.y,
// ImColor.intToColor(127, 127, 255, 255), 1f);
drawList.popClipRect();
}
}
}

View file

@ -18,6 +18,7 @@ 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.numberxd.unicode.UnicodePlane;
import love.distributedrebirth.unicode4d.atlas.FontAtlas;
import love.distributedrebirth.unicode4d.atlas.FontAtlasDriver;
import love.distributedrebirth.unicode4d.atlas.FontAtlasStore;
@ -144,7 +145,7 @@ public class TestConvFont {
private boolean startPoint = false;
private V072Tong point = null;
private int unicode = -1;
private UnicodePlaneᶻᴰ unicodePlane2;
private UnicodePlane unicodePlane2;
public FontContentHandler(FontAtlasStore fontStore, String inputName) {
@ -222,7 +223,7 @@ public class TestConvFont {
unicodeStr = unicodeStr.substring(7);
}
unicode = Integer.parseInt(unicodeStr, 16);
unicodePlane2 = UnicodePlaneᶻᴰ.valueOfUnicode(unicode);
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"));

View file

@ -10,6 +10,7 @@ import javax.swing.JTable;
import javax.swing.SwingUtilities;
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
import love.distributedrebirth.numberxd.unicode.UnicodePlane;
@BãßBȍőnAuthorInfoʸᴰ(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
public class TestSwingPlane extends JPanel {
@ -21,10 +22,10 @@ public class TestSwingPlane extends JPanel {
String[] columnNames = { "Plane", "Example"};
Object[][] data = new Object[UnicodePlaneᶻᴰ.values().length][2];
Object[][] data = new Object[UnicodePlane.values().length][2];
int x=0;
for (UnicodePlaneᶻᴰ plane:UnicodePlaneᶻᴰ.values()) {
for (UnicodePlane plane:UnicodePlane.values()) {
data[x][0] = plane.name();
StringBuilder buf = new StringBuilder();
int offset = 33;