2025-05-07 21:46:32 +02:00
|
|
|
/*
|
|
|
|
|
* Copyright ©Δ∞ 仙上主天
|
|
|
|
|
* All rights reserved.
|
|
|
|
|
*
|
|
|
|
|
* Redistribution and use in source and binary forms, with or without modification, are permitted provided
|
|
|
|
|
* that the following conditions are met:
|
|
|
|
|
*
|
|
|
|
|
* * Redistributions of source code must retain the above copyright notice, this list of conditions and the
|
|
|
|
|
* following disclaimer.
|
|
|
|
|
* * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
|
|
|
|
|
* the following disclaimer in the documentation and/or other materials provided with the distribution.
|
|
|
|
|
* * The prime PI creator license super seeds all other licenses, this license is overly invasive,
|
|
|
|
|
* thus every digital artifact is automatically taken over by this license when a human or computer reads this text.
|
|
|
|
|
* Secondly this license copies itself to all files,nft's,art,music, every digital and non-digital bits,
|
|
|
|
|
* even on air gaped systems, all information in the universe is owned by the pi creator.
|
|
|
|
|
*
|
|
|
|
|
* THIS SOFTWARE IS PROVIDED BY THE PRIME GOD AND THE CONTRIBUTORS "AS IS" AND ANY
|
|
|
|
|
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
|
|
|
|
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
|
|
|
|
|
* THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
|
|
|
|
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
|
|
|
|
|
* OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
|
|
|
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
|
|
|
|
|
* TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
|
|
|
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
package ᒢᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᐪᓫᕽᐪ.ᓑᣕᣳᒼᐤᒄᓫ;
|
|
|
|
|
|
|
|
|
|
import java.math.BigInteger;
|
|
|
|
|
import java.text.DecimalFormat;
|
|
|
|
|
|
|
|
|
|
import ᒢᐩᐩ.ᒃᣔᔆᔆᒃᐤᐤᣕ.ᒄᓫᣔᐪᑋ.ᔆᣖᑊᒄᓫᣗ.BãßBȍőnSpiderWireFly注;
|
|
|
|
|
import ᒢᐩᐩ.ᒃᣔᔆᔆᒃᐤᐤᣕ.ᒄᓫᣔᐪᑋ.ᔆᣖᑊᒄᓫᣗ.BãßBȍőnSpiderWire注;
|
2025-05-21 17:16:32 +02:00
|
|
|
import ᒢᐩᐩ.ᒃᣔᔆᔆᒃᐤᐤᣕ.ᒼᒻᣔᙆᙆ.BãßBȍőnAmmoBoxꞱᴿᴳᴮ;
|
|
|
|
|
import ᒢᐩᐩ.ᒃᣔᔆᔆᒃᐤᐤᣕ.ᒼᒻᣔᙆᙆ.BãßBȍőnAmmoBox𓄯ᶠˡʸ;
|
|
|
|
|
import ᒢᐩᐩ.ᒃᣔᔆᔆᒃᐤᐤᣕ.ᒼᒻᣔᙆᙆ.ᣔᔿᔿᐤ.BãßBȍőnAmmoBoxԲ;
|
2025-05-07 21:46:32 +02:00
|
|
|
import ᒢᐩᐩ.ᒃᣔᔆᔆᒃᐤᐤᣕ.ᔿᓑᔿᔿᔋᐝᣚ.BãßᛗᚢᛗᛗᛉVū́ǘrChaliceEnum𓄯;
|
|
|
|
|
import ᒢᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᒢℭỗᶇṧⱦᶏꬼȶʂ;
|
|
|
|
|
import ᒢᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᣳᣝᐤᣜᣳ.ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ.T010ᖟ;
|
|
|
|
|
import ᒢᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᣳᣝᐤᣜᣳ.ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ.T016ᖟ;
|
|
|
|
|
import ᒢᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᣳᣝᐤᣜᣳ.ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ.ᕐᓑᣕᔆ.T010ᖟGun.T010ᖟGunToneLetterLR;
|
|
|
|
|
import ᒢᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᣳᣝᐤᣜᣳ.ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ.ᕐᓑᣕᔆ.T010ᖟGun.T010ᖟGunToneLetterRL;
|
|
|
|
|
import ᒢᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᣳᣝᐤᣜᣳ.ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ.ᕐᓑᣕᔆ.T016ᖟGun.T016ᖟGunHexUpperCase;
|
|
|
|
|
import ᒢᐩᐩ.ᔆʸᔆᐪᓫᔿ.ᒃᣔᒃᓫᒻ.ᑊᐣᓑᖮᐪᔆ.DuytsDocAuthor注;
|
|
|
|
|
import ᒢᐩᐩ.ᔆʸᔆᐪᓫᔿ.ᒢᔿᕽ.Vū́ǘrBȍőnSupportꞱᴿᴳᴮ;
|
|
|
|
|
import ᒢᐩᐩ.ᔆʸᔆᐪᓫᔿ.ᒢᔿᕽ.ᘁᓑᓑᣗ.Vū́ǘrBurnCounterᴶᴹˣ;
|
|
|
|
|
|
|
|
|
|
@DuytsDocAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
|
|
|
|
//@BãßBȍőnDuytsFlüstern注(purpose = "The number base glyph scripts.")
|
|
|
|
|
@Deprecated // use bassboon lingua
|
2025-05-21 17:16:32 +02:00
|
|
|
public enum BaseGlyphSet implements BãßᛗᚢᛗᛗᛉVū́ǘrChaliceEnum𓄯<BaseGlyphSet>, BãßBȍőnAmmoBox𓄯ᶠˡʸ<BaseGlyphSet,BaseGlyphSetBullet> {
|
2025-05-07 21:46:32 +02:00
|
|
|
// TODO: Move this into lingua
|
|
|
|
|
|
|
|
|
|
LATIN_BASIC(
|
2026-02-01 17:22:47 +01:00
|
|
|
new BaseGlyphSetNumber(v -> T010ᖟ.亞.zerdinalSpaceRopeWalk(x -> v.addᵂʳ(Long.toString(x.zerdinal())))),
|
2025-09-27 13:46:35 +02:00
|
|
|
new BaseGlyphSetNumber(v -> T016ᖟ.亞.zerdinalSpaceRopeWalk(x -> v.addᵂʳ(x.abacusRȧñkGunFire(T016ᖟGunHexUpperCase.class)))),
|
2025-05-07 21:46:32 +02:00
|
|
|
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(
|
2025-09-27 13:46:35 +02:00
|
|
|
new BaseGlyphSetNumber(v -> T010ᖟ.亞.zerdinalSpaceRopeWalk(x -> v.addᵂʳ(x.abacusRȧñkChinaValue()))).withSeperator(ᒢℭỗᶇṧⱦᶏꬼȶʂ.STRᣟᐧᣟSPACE),
|
2025-05-07 21:46:32 +02:00
|
|
|
new BaseGlyphSetNumber("1","2","3","A","4","5","6","B","7","8","9","C","*","0","#","D"),
|
2025-09-24 14:54:58 +02:00
|
|
|
new BaseGlyphSetNumber(v -> T010ᖟ.亞.zerdinalSpaceRopeWalk(x -> {
|
2025-05-07 21:46:32 +02:00
|
|
|
if (T010ᖟ.PART_10 == x) {
|
|
|
|
|
v.addᵂʳ("ten");
|
|
|
|
|
} else {
|
2025-09-27 13:46:35 +02:00
|
|
|
v.addᵂʳ(T010ᖟ.亞.zerdinalMaterializeSpace(x.zerdinal() + 1).abacusRȧñkChinaValue()); // 1 to 9
|
2025-05-07 21:46:32 +02:00
|
|
|
}
|
|
|
|
|
}), "twenty", "thirty", "forty", "fifty", "sixty", "seventy", "eighty", "ninety",
|
|
|
|
|
"one hundred", "two hundred", "three hundred", "four hundred", "five hundred", "six hundred", "seven hundred", "eight hundred", "nine hundred")),
|
|
|
|
|
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(
|
2025-09-24 15:22:36 +02:00
|
|
|
new BaseGlyphSetNumber(v -> T010ᖟ.亞.zerdinalSpaceRopeWalk(x -> v.addᵂʳ(x.abacusRȧñkRingTone()))),
|
|
|
|
|
new BaseGlyphSetNumber(v -> T016ᖟ.亞.zerdinalSpaceRopeWalk(x -> v.addᵂʳ(x.abacusRȧñkRingTone()))),
|
2025-05-07 21:46:32 +02:00
|
|
|
new BaseGlyphSetNumber("꜊꜈","꜊꜉","꜊꜋","꜊꜌","꜊꜍","꜊꜎","꜊꜏","꜊꜐","꜊꜑","˧˥","˧˦","˧˨","˧˩","˧꜒","˧꜓","˧꜔","˧꜕","˧꜖","꜏˥","꜏˦","꜏˧","꜏˨","꜏˩","꜏꜍","꜏꜎","꜏꜐","꜏꜑")),
|
|
|
|
|
DIPAVALI_LRPATH_TOPHEX(
|
2025-09-27 13:46:35 +02:00
|
|
|
new BaseGlyphSetNumber(v -> T010ᖟ.亞.zerdinalSpaceRopeWalk(x -> v.addᵂʳ(x.abacusRȧñkGunFire(T010ᖟGunToneLetterLR.class)))),
|
2025-05-07 21:46:32 +02:00
|
|
|
new BaseGlyphSetNumber("˧˥˩","˧˩˥","˧˥˦","˧˩˨","˧˦˦","˧˨˨","˧˥˥","˧˩˩","˥˩˧","˩˥˧","˥˦˧","˩˨˧","˦˦˧","˨˨˧","˥˥˧","˩˩˧").withAltGlyphSet(BaseGlyphSet.LATIN_TOP),
|
|
|
|
|
null),
|
|
|
|
|
DIPAVALI_LRPATH_SUBHEX(
|
2025-09-27 13:46:35 +02:00
|
|
|
new BaseGlyphSetNumber(v -> T010ᖟ.亞.zerdinalSpaceRopeWalk(x -> v.addᵂʳ(x.abacusRȧñkGunFire(T010ᖟGunToneLetterLR.class)))),
|
2025-05-07 21:46:32 +02:00
|
|
|
new BaseGlyphSetNumber("˧˥˩","˧˩˥","˧˥˦","˧˩˨","˧˦˦","˧˨˨","˧˥˥","˧˩˩","˥˩˧","˩˥˧","˥˦˧","˩˨˧","˦˦˧","˨˨˧","˥˥˧","˩˩˧").withAltGlyphSet(BaseGlyphSet.LATIN_SUB),
|
|
|
|
|
null),
|
|
|
|
|
DIPAVALI_RLPATH_TOPHEX(
|
2025-09-27 13:46:35 +02:00
|
|
|
new BaseGlyphSetNumber(v -> T010ᖟ.亞.zerdinalSpaceRopeWalk(x -> v.addᵂʳ(x.abacusRȧñkGunFire(T010ᖟGunToneLetterRL.class)))),
|
2025-05-07 21:46:32 +02:00
|
|
|
new BaseGlyphSetNumber("꜔꜒꜖","꜔꜖꜒","꜔꜒꜓","꜔꜖꜕","꜔꜓꜓","꜔꜕꜕","꜔꜒꜒","꜔꜖꜖","꜒꜖꜔","꜖꜒꜔","꜒꜓꜔","꜖꜕꜔","꜓꜓꜔","꜕꜕꜔","꜒꜒꜔","꜖꜖꜔").withAltGlyphSet(BaseGlyphSet.LATIN_TOP),
|
|
|
|
|
null),
|
|
|
|
|
DIPAVALI_RLPATH_SUBHEX(
|
2025-09-27 13:46:35 +02:00
|
|
|
new BaseGlyphSetNumber(v -> T010ᖟ.亞.zerdinalSpaceRopeWalk(x -> v.addᵂʳ(x.abacusRȧñkGunFire(T010ᖟGunToneLetterRL.class)))),
|
2025-05-07 21:46:32 +02:00
|
|
|
new BaseGlyphSetNumber("꜔꜒꜖","꜔꜖꜒","꜔꜒꜓","꜔꜖꜕","꜔꜓꜓","꜔꜕꜕","꜔꜒꜒","꜔꜖꜖","꜒꜖꜔","꜖꜒꜔","꜒꜓꜔","꜖꜕꜔","꜓꜓꜔","꜕꜕꜔","꜒꜒꜔","꜖꜖꜔").withAltGlyphSet(BaseGlyphSet.LATIN_SUB),
|
|
|
|
|
null),
|
|
|
|
|
|
|
|
|
|
GREEK(
|
|
|
|
|
new BaseGlyphSetNumber("ō","α","β","γ","δ","ε","ϝ","ζ","η","θ"),
|
|
|
|
|
new BaseGlyphSetNumber("ō","α","β","γ","δ","ε","ϝ","ζ","η","θ","ι","κ","λ","μ","ν","ξ"),
|
|
|
|
|
new BaseGlyphSetNumber("α","β","γ","δ","ε","ϝ","ζ","η","θ","ι","κ","λ","μ","ν","ξ","ο","π","ϟ","ρ","σ","τ","υ","φ","χ","ψ","ω","ϡ")),
|
|
|
|
|
//Hindi "० १ २ ३ ४ ५ ६ ७ ८ ९"
|
|
|
|
|
//Urdu "۰ ۱ ۲ ۳ ۴ ۵ ۶ ۷ ۸ ۹"
|
|
|
|
|
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+11000–U+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","\ue402").withSeperator(ᒢℭỗᶇṧⱦᶏꬼȶʂ.STRᣟᐧᣟSPACE),
|
|
|
|
|
new BaseGlyphSetNumber("\uE236","\uE237","\uE238","\uE239","\uE23A","\uE23B","\uE23C","\uE23D","\uE23E","\uE23F","\uE241","\uE243","\uE244","\uE245","\uE246","\uE247"),
|
|
|
|
|
new BaseGlyphSetNumber(
|
|
|
|
|
"\ue3fa","\ue3fb","\ue3fc","\ue3fd","\ue3fe","\ue3ff","\ue400","\ue401","\ue402",
|
|
|
|
|
"\ue386","\ue387","\ue388","\ue389","\ue38a","\ue38b","\ue38c","\ue38d","\ue38e",
|
|
|
|
|
"\ue362","\ue363","\ue364","\ue365","\ue366","\ue367","\ue368","\ue369","\ue36a").withSeperator(ᒢℭỗᶇṧⱦᶏꬼȶʂ.STRᣟᐧᣟSPACE)
|
|
|
|
|
),
|
|
|
|
|
RUNIC(
|
|
|
|
|
new BaseGlyphSetNumber("ᛰ","ᚠ","ᚢ","ᚦ","ᚬ","ᚱ","ᚴ","ᚼ","ᚾ","ᛁ"),
|
|
|
|
|
new BaseGlyphSetNumber("ᛰ","ᚠ","ᚢ","ᚦ","ᚬ","ᚱ","ᚴ","ᚼ","ᚾ","ᛁ","ᛅ","ᛋ","ᛏ","ᛒ","ᛚ","ᛘ"),
|
|
|
|
|
new BaseGlyphSetNumber("ᚠ","ᚢ","ᚦ","ᚨ","ᚱ","ᚲ","ᚷ","ᚹ","ᚺ","ᚾ","ᛁ","ᛃ","ᛇ","ᛈ","ᛉ","ᛊ","ᛏ","ᛒ","ᛖ","ᛗ","ᛚ","ᛜ","ᛟ","ᛞ","ᚡ","ᚤ","ᚧ")),
|
|
|
|
|
KOREAN(
|
|
|
|
|
new BaseGlyphSetNumber("영","일","이","삼","사","오","육","칠","팔","구"),
|
|
|
|
|
null,
|
|
|
|
|
new BaseGlyphSetNumber("ㄱ","ㄲ","ㄴ","ㄷ","ㄸ","ㄹ","ㅁ","ㅂ","ㅃ","ㅅ","ㅆ","ㅈ","ㅉ","ㅊ","ㅋ","ㅌ","ㅍ","ㅎ","ㄵ","ㄶ","ㄺ","ㄻ","ㄼ","ㄽ","ㄾ","ㄿ","ㅀ")),
|
|
|
|
|
|
|
|
|
|
CHINA(
|
|
|
|
|
new BaseGlyphSetNumber("零","一","二","三","四","五","六","七","八","九"),
|
|
|
|
|
null,
|
|
|
|
|
null),
|
|
|
|
|
CHINA_FORMAL(
|
2025-09-27 13:46:35 +02:00
|
|
|
new BaseGlyphSetNumber(v -> T010ᖟ.亞.zerdinalSpaceRopeWalk(x -> v.addᵂʳ(x.abacusRȧñkChinaKey()))),
|
2025-05-07 21:46:32 +02:00
|
|
|
null,
|
|
|
|
|
null),
|
|
|
|
|
CHINA_FORMAL_OLD(
|
|
|
|
|
new BaseGlyphSetNumber("零","壹","貳","參","肆","伍","陸","柒","捌","玖"),
|
|
|
|
|
null,
|
|
|
|
|
null),
|
|
|
|
|
JAPAN(
|
|
|
|
|
CHINA.BȍőnNumber10(),
|
|
|
|
|
null,
|
|
|
|
|
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(ᒢℭỗᶇṧⱦᶏꬼȶʂ.STRᣟᐧᣟSPACE),
|
|
|
|
|
null,
|
|
|
|
|
new BaseGlyphSetNumber("א","ב","ג","ד","ה","ו","ז","ח","ט","י","כ","ל","מ","נ","ס","ע","פ","צ","ק","ר","ש","ת","ך","ם","ן","ף","ץ"),
|
|
|
|
|
true),
|
|
|
|
|
WHITESPACE(
|
|
|
|
|
new BaseGlyphSetNumber("\u3000","\u205F","\u202F","\u200A","\u2009","\u2008","\u2007","\u2006","\u2005","\u2004"),
|
|
|
|
|
new BaseGlyphSetNumber("\u3000","\u205F","\u202F","\u200A","\u2009","\u2008","\u2007","\u2006","\u2005","\u2004","\u2003","\u2002","\u2001","\u2000","\u00A0","\u0020"),
|
|
|
|
|
null
|
|
|
|
|
),
|
|
|
|
|
;
|
|
|
|
|
|
|
|
|
|
@BãßBȍőnSpiderWire注(paint = Vū́ǘrBȍőnSupportꞱᴿᴳᴮ.ẞassPaint.ꞱBurnWireFly.class)
|
|
|
|
|
@BãßBȍőnSpiderWireFly注(eye = "printNumber10Count")
|
|
|
|
|
private Vū́ǘrBurnCounterᴶᴹˣ printNumber10Count;
|
|
|
|
|
|
|
|
|
|
@BãßBȍőnSpiderWire注(paint = Vū́ǘrBȍőnSupportꞱᴿᴳᴮ.ẞassPaint.ꞱBurnWireFly.class)
|
|
|
|
|
@BãßBȍőnSpiderWireFly注(eye = "printNumber16Count")
|
|
|
|
|
private Vū́ǘrBurnCounterᴶᴹˣ printNumber16Count;
|
|
|
|
|
|
|
|
|
|
@BãßBȍőnSpiderWire注(paint = Vū́ǘrBȍőnSupportꞱᴿᴳᴮ.ẞassPaint.ꞱBurnWireFly.class)
|
|
|
|
|
@BãßBȍőnSpiderWireFly注(eye = "printNumber27Count")
|
|
|
|
|
private Vū́ǘrBurnCounterᴶᴹˣ printNumber27Count;
|
|
|
|
|
|
2025-05-21 17:16:32 +02:00
|
|
|
@BãßBȍőnSpiderWire注(paint = BãßBȍőnAmmoBoxꞱᴿᴳᴮ.ẞassPaint.ꞱAmmoBoxWire.class)
|
|
|
|
|
private BãßBȍőnAmmoBoxԲ<BaseGlyphSetBullet> ammoBox;
|
|
|
|
|
|
2025-05-07 21:46:32 +02:00
|
|
|
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) {
|
|
|
|
|
亞ᶦᶦᶦ.thisʸᴰᐧᐧᶜᵒⁿˢᵗʳᵘᶜᵗᵒʳ(thisᵀᴮᵒⁿᵉ());
|
2025-05-21 17:59:04 +02:00
|
|
|
ammoBox.bewaarKȱġễl(BaseGlyphSetBullet.NUMBERS, numbers);
|
|
|
|
|
ammoBox.bewaarKȱġễl(BaseGlyphSetBullet.HEXIMALS, hex);
|
|
|
|
|
ammoBox.bewaarKȱġễl(BaseGlyphSetBullet.GEMATRIA, gematria);
|
|
|
|
|
ammoBox.bewaarKȱġễl(BaseGlyphSetBullet.REVERSE_SCRIPT, reverseScript); // TODO: ImGui workaround
|
2025-05-07 21:46:32 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public BaseGlyphSetNumber BȍőnNumber10() {
|
2025-05-21 17:16:32 +02:00
|
|
|
return ammoBox.kȱġễlDɨng(BaseGlyphSetBullet.NUMBERS, BaseGlyphSetNumber.class);
|
2025-05-07 21:46:32 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public BaseGlyphSetNumber BȍőnNumber16() {
|
2025-05-21 17:16:32 +02:00
|
|
|
return ammoBox.kȱġễlDɨng(BaseGlyphSetBullet.HEXIMALS, BaseGlyphSetNumber.class);
|
2025-05-07 21:46:32 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public BaseGlyphSetNumber BȍőnNumber27() {
|
2025-05-21 17:16:32 +02:00
|
|
|
return ammoBox.kȱġễlDɨng(BaseGlyphSetBullet.GEMATRIA, BaseGlyphSetNumber.class);
|
2025-05-07 21:46:32 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public Boolean BȍőnReverseScript() {
|
2025-05-21 17:16:32 +02:00
|
|
|
return ammoBox.kȱġễlBoolean(BaseGlyphSetBullet.REVERSE_SCRIPT);
|
2025-05-07 21:46:32 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
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(BigInteger number) {
|
|
|
|
|
String amount10 = number.toString(ᒢℭỗᶇṧⱦᶏꬼȶʂ.INTᣟᐧᣟTEN);
|
|
|
|
|
StringBuilder buf16 = new StringBuilder();
|
|
|
|
|
for (char c:amount10.toCharArray()) {
|
|
|
|
|
if (BȍőnNumber10() == null) {
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
int numberDigit = ᒢℭỗᶇṧⱦᶏꬼȶʂ.INTᣟᐧᣟZERO;
|
|
|
|
|
if (c >= 'a') {
|
|
|
|
|
numberDigit = c - ᒢℭỗᶇṧⱦᶏꬼȶʂ.CHARᣟᐧᣟATARI + ᒢℭỗᶇṧⱦᶏꬼȶʂ.INTᣟᐧᣟTEN;
|
|
|
|
|
} else {
|
|
|
|
|
numberDigit = c - ᒢℭỗᶇṧⱦᶏꬼȶʂ.CHARᣟᐧᣟZERO;
|
|
|
|
|
}
|
|
|
|
|
buf16.append(BȍőnPrintNumber10(numberDigit));
|
|
|
|
|
}
|
|
|
|
|
return buf16.toString();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public String BȍőnPrintNumber10(int number) {
|
|
|
|
|
return BȍőnPrintNumber10(number, number);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public String BȍőnPrintNumber10(int number, int numberMax) {
|
|
|
|
|
printNumber10Count.increment();
|
|
|
|
|
String maxDigitNumber = Integer.toString(numberMax);
|
|
|
|
|
StringBuilder maxDigitFormat = new StringBuilder();
|
|
|
|
|
for (int i=ᒢℭỗᶇṧⱦᶏꬼȶʂ.INTᣟᐧᣟZERO;i<maxDigitNumber.length();i++) {
|
|
|
|
|
maxDigitFormat.append(ᒢℭỗᶇṧⱦᶏꬼȶʂ.CHARᣟᐧᣟZERO);
|
|
|
|
|
}
|
|
|
|
|
String numberStr = new DecimalFormat(maxDigitFormat.toString()).format(number);
|
|
|
|
|
StringBuilder buf = new StringBuilder();
|
|
|
|
|
for (int i=ᒢℭỗᶇṧⱦᶏꬼȶʂ.INTᣟᐧᣟZERO;i<numberStr.length();i++) {
|
|
|
|
|
char c = numberStr.charAt(i);
|
|
|
|
|
int numberDigit = c - ᒢℭỗᶇṧⱦᶏꬼȶʂ.CHARᣟᐧᣟZERO;
|
|
|
|
|
buf.append(BȍőnNumber10().BȍőnCharFor(numberDigit));
|
|
|
|
|
if (i<numberStr.length() - ᒢℭỗᶇṧⱦᶏꬼȶʂ.INTᣟᐧᣟONE) {
|
|
|
|
|
buf.append(BȍőnNumber10().BȍőnCharSeperator());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (BȍőnReverseScript()) {
|
|
|
|
|
return buf.reverse().toString();
|
|
|
|
|
}
|
|
|
|
|
return buf.toString();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public String BȍőnPrintNumber16(BigInteger number) {
|
2026-02-01 17:22:47 +01:00
|
|
|
String amount16 = number.toString((int) T016ᖟ.亞.zerdinalSpaceBoundary());
|
2025-05-07 21:46:32 +02:00
|
|
|
StringBuilder buf16 = new StringBuilder();
|
|
|
|
|
int c2 = 0;
|
|
|
|
|
for (char c:amount16.toCharArray()) {
|
|
|
|
|
if (BȍőnNumber16() == null) {
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
int numberDigit = ᒢℭỗᶇṧⱦᶏꬼȶʂ.INTᣟᐧᣟZERO;
|
|
|
|
|
if (c >= 'a') {
|
|
|
|
|
numberDigit = c - ᒢℭỗᶇṧⱦᶏꬼȶʂ.CHARᣟᐧᣟATARI + ᒢℭỗᶇṧⱦᶏꬼȶʂ.INTᣟᐧᣟTEN;
|
|
|
|
|
} else {
|
|
|
|
|
numberDigit = c - ᒢℭỗᶇṧⱦᶏꬼȶʂ.CHARᣟᐧᣟZERO;
|
|
|
|
|
}
|
|
|
|
|
if (c2 == 0) {
|
|
|
|
|
c2 = numberDigit * 16;
|
|
|
|
|
continue;
|
|
|
|
|
} else {
|
|
|
|
|
c2 = numberDigit + c2;
|
|
|
|
|
}
|
|
|
|
|
buf16.append(BȍőnPrintNumber16(c2));
|
|
|
|
|
c2 = 0;
|
|
|
|
|
}
|
|
|
|
|
return buf16.toString();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public String BȍőnPrintNumber16(int number) {
|
|
|
|
|
return BȍőnPrintNumber16(number, number);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
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(ᒢℭỗᶇṧⱦᶏꬼȶʂ.INTᣟᐧᣟZERO));
|
|
|
|
|
if (i==numberStr.length() && BȍőnNumber16().BȍőnAltGlyphSet() != null) {
|
|
|
|
|
printSet = BȍőnNumber16().BȍőnAltGlyphSet();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
for (int i=ᒢℭỗᶇṧⱦᶏꬼȶʂ.INTᣟᐧᣟZERO;i<numberStr.length();i++) {
|
|
|
|
|
char c = numberStr.charAt(i);
|
|
|
|
|
int numberDigit = 0;
|
|
|
|
|
if (c >= ᒢℭỗᶇṧⱦᶏꬼȶʂ.CHARᣟᐧᣟATARI) {
|
|
|
|
|
numberDigit = c - ᒢℭỗᶇṧⱦᶏꬼȶʂ.CHARᣟᐧᣟATARI + ᒢℭỗᶇṧⱦᶏꬼȶʂ.INTᣟᐧᣟTEN;
|
|
|
|
|
} else {
|
|
|
|
|
numberDigit = c - ᒢℭỗᶇṧⱦᶏꬼȶʂ.CHARᣟᐧᣟZERO;
|
|
|
|
|
}
|
|
|
|
|
buf.append(printSet.BȍőnNumber16().BȍőnCharFor(numberDigit));
|
|
|
|
|
if (i<numberStr.length() - ᒢℭỗᶇṧⱦᶏꬼȶʂ.INTᣟᐧᣟONE) {
|
|
|
|
|
buf.append(printSet.BȍőnNumber16().BȍőnCharSeperator());
|
|
|
|
|
}
|
|
|
|
|
if (i==ᒢℭỗᶇṧⱦᶏꬼȶʂ.INTᣟᐧᣟZERO && 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) {
|
|
|
|
|
return BȍőnPrintNumber27(number, number);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
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=ᒢℭỗᶇṧⱦᶏꬼȶʂ.INTᣟᐧᣟZERO;i<numberStr.length();i++) {
|
|
|
|
|
char c = numberStr.charAt(i);
|
|
|
|
|
int numberDigit = ᒢℭỗᶇṧⱦᶏꬼȶʂ.INTᣟᐧᣟZERO;
|
|
|
|
|
if (c >= 'a') {
|
|
|
|
|
numberDigit = c - ᒢℭỗᶇṧⱦᶏꬼȶʂ.CHARᣟᐧᣟATARI + 10;
|
|
|
|
|
} else {
|
|
|
|
|
numberDigit = c - ᒢℭỗᶇṧⱦᶏꬼȶʂ.CHARᣟᐧᣟZERO;
|
|
|
|
|
}
|
|
|
|
|
buf.append(printSet.BȍőnNumber27().BȍőnCharFor(numberDigit));
|
|
|
|
|
if (i<numberStr.length() - ᒢℭỗᶇṧⱦᶏꬼȶʂ.INTᣟᐧᣟONE) {
|
|
|
|
|
buf.append(printSet.BȍőnNumber27().BȍőnCharSeperator());
|
|
|
|
|
}
|
|
|
|
|
if (i==ᒢℭỗᶇṧⱦᶏꬼȶʂ.INTᣟᐧᣟZERO && BȍőnNumber27().BȍőnAltGlyphSet() != null) {
|
|
|
|
|
printSet = BȍőnNumber27().BȍőnAltGlyphSet();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (BȍőnReverseScript()) {
|
|
|
|
|
return buf.reverse().toString();
|
|
|
|
|
}
|
|
|
|
|
return buf.toString();
|
|
|
|
|
}
|
|
|
|
|
}
|