Hewbrew+unicode=hell
This commit is contained in:
parent
76f3da5da7
commit
ca1fe9d9d0
|
@ -29,7 +29,7 @@ Unicode4D should be based on a extended version of the four corner method;
|
|||
When the underlining data storage is china keyed we can render any glyph with it;
|
||||
[Example](https://kanji.sljfaq.org/four.html)
|
||||
|
||||
A mimetype based link chain sea file/package manager model aggregates into one hash;
|
||||
A mimetype based link chain red sea file/package manager model aggregates into one hash;
|
||||
- "RandomHashKey" Some random app
|
||||
- "XHTML7HashKey" Some static documents
|
||||
- "OtherHashKey" One music album
|
||||
|
@ -105,6 +105,7 @@ Mentat training goals;
|
|||
* Learn LR dutch language and culture
|
||||
* Learn RL hebrew based numbers
|
||||
* Learn the GLYPH china key value (nozero)
|
||||
* Brainspeed overclocking [JewishDirectMemoryAccess](https://www.youtube.com/watch?v=Hzz2Qo0pX3w) error results
|
||||
* Run mental simulation in FTL etherspace
|
||||
|
||||
True coders have fake love with an human partner because they love the machine by heart.
|
||||
|
|
|
@ -10,7 +10,7 @@ import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
|
|||
import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.AbstractDeskApp;
|
||||
import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.DeskAppContourSection;
|
||||
import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.DeskAppRenderer;
|
||||
import love.distributedrebirth.unicode4d.BaseGlyphSet;
|
||||
import love.distributedrebirth.numberxd.unicode.BaseGlyphSet;
|
||||
|
||||
@BãßBȍőnAuthorInfoʸᴰ(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
||||
public class CalculatorDeskApp extends AbstractDeskApp implements DeskAppRenderer {
|
||||
|
@ -58,7 +58,7 @@ public class CalculatorDeskApp extends AbstractDeskApp implements DeskAppRendere
|
|||
String selectedItem = items[selectedNumberGlyph.get()];
|
||||
BaseGlyphSet baseNumber = BaseGlyphSet.valueOf(selectedItem);
|
||||
if (changedLoc) {
|
||||
valueLoc = baseNumber.BȍőnPrintNumber10(valueNum, 9999999);
|
||||
valueLoc = baseNumber.BȍőnPrintNumber10(valueNum);
|
||||
}
|
||||
|
||||
ImGui.text("Value:");
|
||||
|
@ -68,7 +68,7 @@ public class CalculatorDeskApp extends AbstractDeskApp implements DeskAppRendere
|
|||
|
||||
if (value.length() > 8) {
|
||||
value = "0"; // dirty limit for parseInt
|
||||
valueLoc = baseNumber.BȍőnPrintNumber10(Integer.parseInt(value), 9999999);
|
||||
valueLoc = baseNumber.BȍőnPrintNumber10(Integer.parseInt(value));
|
||||
}
|
||||
|
||||
if (ImGui.button(baseNumber.BȍőnNumber10().BȍőnCharFor(7), buttonSize, buttonSize)) {
|
||||
|
@ -173,7 +173,7 @@ public class CalculatorDeskApp extends AbstractDeskApp implements DeskAppRendere
|
|||
}
|
||||
int v2 = Integer.parseInt(value);
|
||||
if (valueArg.isEmpty()) {
|
||||
valueLoc = baseNumber.BȍőnPrintNumber10(v2, 9999999);
|
||||
valueLoc = baseNumber.BȍőnPrintNumber10(v2);
|
||||
return;
|
||||
}
|
||||
int v1 = Integer.parseInt(valueArg);
|
||||
|
@ -197,7 +197,7 @@ public class CalculatorDeskApp extends AbstractDeskApp implements DeskAppRendere
|
|||
}
|
||||
valueNum = result;
|
||||
value = "" + valueNum;
|
||||
valueLoc = baseNumber.BȍőnPrintNumber10(valueNum, 9999999);
|
||||
valueLoc = baseNumber.BȍőnPrintNumber10(valueNum);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -9,7 +9,7 @@ import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
|
|||
import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.AbstractDeskApp;
|
||||
import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.DeskAppContourSection;
|
||||
import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.DeskAppRenderer;
|
||||
import love.distributedrebirth.unicode4d.BaseGlyphSet;
|
||||
import love.distributedrebirth.numberxd.unicode.BaseGlyphSet;
|
||||
|
||||
@BãßBȍőnAuthorInfoʸᴰ(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
||||
public class DemoGlyphSetDeskApp extends AbstractDeskApp {
|
||||
|
|
|
@ -18,7 +18,7 @@ import love.distributedrebirth.numberxd.base2t.part.BãßBȍőnPartAlt2ʸᴰ;
|
|||
import love.distributedrebirth.numberxd.base2t.part.BãßBȍőnPartAlt3ʸᴰ;
|
||||
import love.distributedrebirth.numberxd.base2t.part.BãßBȍőnPartAlt4ʸᴰ;
|
||||
import love.distributedrebirth.numberxd.base2t.part.BãßBȍőnPartʸᴰ;
|
||||
import love.distributedrebirth.unicode4d.BaseGlyphSet;
|
||||
import love.distributedrebirth.numberxd.unicode.BaseGlyphSet;
|
||||
|
||||
@BãßBȍőnAuthorInfoʸᴰ(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
||||
public class DemoNumberPartDeskApp extends AbstractDeskApp implements DeskAppRenderer {
|
||||
|
|
|
@ -12,7 +12,7 @@ import love.distributedrebirth.gdxapp4d.vrgem4.service.VrGem4Unicode4DService;
|
|||
import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.AbstractDeskApp;
|
||||
import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.DeskAppContourSection;
|
||||
import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.DeskAppRenderer;
|
||||
import love.distributedrebirth.unicode4d.UnicodePlaneᶻᴰ;
|
||||
import love.distributedrebirth.numberxd.unicode.UnicodePlane;
|
||||
import love.distributedrebirth.unicode4d.draw.DrawCharacter;
|
||||
import love.distributedrebirth.unicode4d.draw.ImCharacter;
|
||||
|
||||
|
@ -45,7 +45,7 @@ public class DemoUnicodePlaneDeskApp extends AbstractDeskApp implements DeskAppR
|
|||
ImGui.tableSetupColumn(getTxt("colPlane"));
|
||||
ImGui.tableSetupColumn(getTxt("colText"));
|
||||
ImGui.tableHeadersRow();
|
||||
for (UnicodePlaneᶻᴰ plane:UnicodePlaneᶻᴰ.values()) {
|
||||
for (UnicodePlane plane:UnicodePlane.values()) {
|
||||
ImGui.tableNextRow();
|
||||
ImGui.tableNextColumn();
|
||||
ImGui.text(plane.name());
|
||||
|
|
|
@ -1,19 +1,53 @@
|
|||
package love.distributedrebirth.gdxapp4d.app.hewallet;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import imgui.ImGui;
|
||||
import imgui.flag.ImGuiTableFlags;
|
||||
import imgui.type.ImInt;
|
||||
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
|
||||
import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.AbstractDeskApp;
|
||||
import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.DeskAppContourSection;
|
||||
import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.DeskAppRenderer;
|
||||
import love.distributedrebirth.numberxd.Gê̄ldGetậl;
|
||||
import love.distributedrebirth.numberxd.unicode.BaseGlyphSet;
|
||||
import love.distributedrebirth.numberxd.unicode.SourceGlyphCharSet;
|
||||
|
||||
@BãßBȍőnAuthorInfoʸᴰ(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
||||
public class HeWalletDeskApp extends AbstractDeskApp implements DeskAppRenderer {
|
||||
|
||||
private final List<String> walletData = new ArrayList<String>();
|
||||
private final List<String> paymentData = new ArrayList<String>();
|
||||
private final ImInt selectedNumberGlyph = new ImInt();
|
||||
private final ImInt selectedSourceGlyph = new ImInt();
|
||||
|
||||
public void create() {
|
||||
getContours().setTitle("Hebrew Wallet");
|
||||
getContours().registrateContour(DeskAppContourSection.MAIN, this);
|
||||
|
||||
String[] walletDataExample = {
|
||||
"יהוה","יְסוֺד","ה","מ","מָ","ח","חֱ","חֱמָא",
|
||||
"א","בד","ב","ד","ץףן",
|
||||
"הזפץ","מספר","צצצצ","ץאאא","ץאא","דואר"
|
||||
};
|
||||
String[] paymentDataExample = {
|
||||
"מִזְ","מ֗וֹר","לְאָ֫","סָ֥ף","אֱלֹ","הִ֗ים","נִצָּ֥ב","בַּֽעֲדַ","ת־","אֵ֑ל","בְּקֶ֖","רֶב","אֱלֹ","הִ֣ים","יִשְׁ","פֹּֽט",
|
||||
"עַד־","מָתַ֣י","תִּ","שְׁפְּ","טוּ־","עָ֑וֶל","וּפְנֵ֥י","רְ֜שָׁ","עִ֗ים","תִּשְׂ","אוּ־סֶֽ","לָה",
|
||||
"שִׁפְט","וּ־דָ֥ל","וְיָת֑","וֹם","עָנִ֖י","וָרָ֣שׁ","הַצְדִּֽ","יקוּ",
|
||||
"פַּלְּט","וּ־דַ֣ל","וְאֶבְ","י֑וֹן","מִיַּ֖ד","רְשָׁ","עִ֣ים","הַצִּֽ","ילוּ",
|
||||
"לֹ֚יָֽ","דְע֨וּ","וְלֹ֬א","יָבִ֗","ינוּ","בַּֽחֲ","שֵׁכָ֥ה","יִתְהַ","לָּ֑כוּ","יִ֜מּ֗","וֹטוּ","כָּל־מ֥","וֹסְדֵי","אָֽרֶץ",
|
||||
"אֲֽנִ֣י","אָ֖מַ","רְתִּי","אֱלֹ","הִ֣ים","אַתֶּ֑ם","וּבְנֵ֖י","עֶלְ","י֣וֹן","כֻּלְּ","כֶֽם",
|
||||
"אָכֵ֥ן","כְּאָ","דָ֣ם","תְּמוּ","ת֑וּן","וּכְאַ","חַ֖ד","הַשָּׂ","רִ֣ים","תִּפֹּֽ","לוּ",
|
||||
"קוּ","מָ֣ה","אֱ֖לֹ","הִים","שָׁפְ","טָ֣ה","הָאָ֑","רֶץ","כִּֽי־","אַתָּ֥ה","תִ֜נְ",
|
||||
"חַ֗ל","בְּכָל","־הַגּ","וֹיִֽם",
|
||||
};
|
||||
for (String data:walletDataExample) {
|
||||
walletData.add(data);
|
||||
}
|
||||
for (String data:paymentDataExample) {
|
||||
paymentData.add(data);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -22,21 +56,39 @@ public class HeWalletDeskApp extends AbstractDeskApp implements DeskAppRenderer
|
|||
ImGui.sameLine();
|
||||
ImGui.text("0000");
|
||||
ImGui.separator();
|
||||
if (ImGui.button("Pay")) {
|
||||
|
||||
List<String> bases = new ArrayList<>();
|
||||
for (BaseGlyphSet base:BaseGlyphSet.values()) {
|
||||
bases.add(base.name());
|
||||
}
|
||||
String[] items = new String[bases.size()];
|
||||
items = bases.toArray(items);
|
||||
ImGui.combo("GlyphType", selectedNumberGlyph, items);
|
||||
String selectedItem = items[selectedNumberGlyph.get()];
|
||||
BaseGlyphSet baseNumber = BaseGlyphSet.valueOf(selectedItem);
|
||||
|
||||
|
||||
List<String> bases2 = new ArrayList<>();
|
||||
for (SourceGlyphCharSet base2:SourceGlyphCharSet.values()) {
|
||||
bases2.add(base2.name());
|
||||
}
|
||||
String[] items2 = new String[bases2.size()];
|
||||
items2 = bases2.toArray(items2);
|
||||
ImGui.combo("SourceType", selectedSourceGlyph, items2);
|
||||
String selectedItem2 = items2[selectedSourceGlyph.get()];
|
||||
SourceGlyphCharSet sourceCharset = SourceGlyphCharSet.valueOf(selectedItem2);
|
||||
|
||||
if (!paymentData.isEmpty() && ImGui.button("Pay" )) {
|
||||
walletData.add(paymentData.remove(0));
|
||||
}
|
||||
int flags = ImGuiTableFlags.ScrollX | ImGuiTableFlags.RowBg | ImGuiTableFlags.BordersOuter | ImGuiTableFlags.BordersV | ImGuiTableFlags.Resizable;
|
||||
ImGui.beginTable("wallet", 4, flags);
|
||||
ImGui.tableSetupColumn("In/Out");
|
||||
ImGui.tableSetupColumn("AmountRaw");
|
||||
ImGui.tableSetupColumn("AmountFix");
|
||||
ImGui.tableSetupColumn("Amount");
|
||||
ImGui.tableSetupColumn("Fraction");
|
||||
ImGui.tableSetupColumn("Decimal");
|
||||
ImGui.tableHeadersRow();
|
||||
|
||||
String[] walletData = {
|
||||
"ה","מ","מָ","ח","חֱ","חֱמָא",
|
||||
"א","בד","ב","ד","ץףן",
|
||||
"הזפץ","מספר","צצצצ","ץאאא","דואר"
|
||||
};
|
||||
for (String data:walletData) {
|
||||
Gê̄ldGetậl geld = new Gê̄ldGetậl(data);
|
||||
Gê̄ldGetậl geld2 = geld.toClone(); // unit test
|
||||
|
@ -44,11 +96,11 @@ public class HeWalletDeskApp extends AbstractDeskApp implements DeskAppRenderer
|
|||
ImGui.tableNextColumn();
|
||||
ImGui.text(data.length()==2||data.length()==3?"OUT":"IN");
|
||||
ImGui.tableNextColumn();
|
||||
ImGui.text(data);
|
||||
ImGui.tableNextColumn();
|
||||
ImGui.text(geld2.toHebrewString(true)); // true=reverse for ImGui
|
||||
ImGui.tableNextColumn();
|
||||
ImGui.text(Double.toString(geld.getTotalDecimalValue()));
|
||||
ImGui.text(geld2.toFractionNotation(baseNumber, sourceCharset));
|
||||
ImGui.tableNextColumn();
|
||||
ImGui.text(Double.toString(geld.toDecimalValue()));
|
||||
}
|
||||
ImGui.endTable();
|
||||
}
|
||||
|
|
|
@ -1,21 +1,58 @@
|
|||
package love.distributedrebirth.gdxapp4d.app.notepad;
|
||||
|
||||
import java.util.Random;
|
||||
|
||||
import imgui.ImDrawList;
|
||||
import imgui.ImGui;
|
||||
import imgui.ImVec2;
|
||||
import imgui.type.ImInt;
|
||||
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
|
||||
import love.distributedrebirth.gdxapp4d.vrgem4.service.VrGem4Unicode4DService;
|
||||
import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.AbstractDeskApp;
|
||||
import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.DeskAppContourSection;
|
||||
import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.DeskAppRenderer;
|
||||
import love.distributedrebirth.numberxd.unicode.UnicodePlane;
|
||||
import love.distributedrebirth.unicode4d.draw.DrawCharacter;
|
||||
import love.distributedrebirth.unicode4d.draw.ImCharacter;
|
||||
|
||||
@BãßBȍőnAuthorInfoʸᴰ(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
||||
public class NotepadDeskApp extends AbstractDeskApp implements DeskAppRenderer {
|
||||
|
||||
private final VrGem4Unicode4DService unicode4DService;
|
||||
private String value = "";
|
||||
private final int gridWidth = 120;
|
||||
private final int gridHeight = 40;
|
||||
private final String gridChars;
|
||||
private final int[][] gridBuffer;
|
||||
private final int[] gridRank;
|
||||
private final Random random;
|
||||
private int runCounter;
|
||||
private final ImInt runSpeed = new ImInt(30);
|
||||
private final static UnicodePlane[] GRID_PLANES = {
|
||||
UnicodePlane.BRAHMI,
|
||||
UnicodePlane.UGARITIC,
|
||||
UnicodePlane.BAMUM_SUPPLEMENT,
|
||||
UnicodePlane.TAI_XUAN_JING_SYMBOLS
|
||||
};
|
||||
|
||||
public NotepadDeskApp(VrGem4Unicode4DService unicode4DService) {
|
||||
this.unicode4DService = unicode4DService;
|
||||
this.gridBuffer = new int[gridHeight][gridWidth];
|
||||
this.gridRank = new int[gridWidth];
|
||||
this.random = new Random();
|
||||
for (int y=0; y<gridWidth; y++) {
|
||||
gridRank[y] = 0;
|
||||
for (int x=0; x<gridHeight; x++) {
|
||||
gridBuffer[x][y] = ' ';
|
||||
}
|
||||
}
|
||||
StringBuilder buf = new StringBuilder();
|
||||
buf.append("仙上主天");
|
||||
for (UnicodePlane plane:GRID_PLANES) {
|
||||
for (int i=plane.getStart();i<plane.getStop();i++) {
|
||||
buf.appendCodePoint(i);
|
||||
}
|
||||
}
|
||||
gridChars = buf.toString();
|
||||
}
|
||||
|
||||
public void create() {
|
||||
|
@ -25,27 +62,53 @@ public class NotepadDeskApp extends AbstractDeskApp implements DeskAppRenderer {
|
|||
|
||||
@Override
|
||||
public void render() {
|
||||
ImGui.text("Value:");
|
||||
ImGui.text(value);
|
||||
ImGui.sliderInt("RunSpeed", runSpeed.getData(), 0, 60);
|
||||
ImGui.invisibleButton("matrix", ImGui.getWindowWidth(), ImGui.getWindowHeight()-(2*ImGui.getFontSize()));
|
||||
ImVec2 p0 = ImGui.getItemRectMin();
|
||||
ImVec2 p1 = ImGui.getItemRectMax();
|
||||
ImDrawList drawList = ImGui.getWindowDrawList();
|
||||
drawList.pushClipRect(p0.x, p0.y, p1.x, p1.y);
|
||||
for(int y=0; y<gridHeight; y++) {
|
||||
for(int x=0; x<gridWidth; x++) {
|
||||
int unicodeChar = gridBuffer[y][x];
|
||||
DrawCharacter drawChar = unicode4DService.getCharacterForUnicode(unicodeChar);
|
||||
if (drawChar == null) {
|
||||
drawChar = unicode4DService.getCharacterForUnicode('ﷲ');
|
||||
}
|
||||
ImCharacter.drawUnicode4D(drawChar, x*ImCharacter.WIDTH, y*ImCharacter.HEIGHT, 0x3c68bb5b, drawList);
|
||||
}
|
||||
}
|
||||
drawList.popClipRect();
|
||||
updateGrid();
|
||||
}
|
||||
|
||||
ImCharacter.render(unicode4DService.getCharacterForUnicode('ﷲ'));
|
||||
ImGui.sameLine();
|
||||
ImCharacter.render(unicode4DService.getCharacterForUnicode('v'));
|
||||
ImGui.sameLine();
|
||||
ImCharacter.render(unicode4DService.getCharacterForUnicode('r'));
|
||||
ImGui.sameLine();
|
||||
ImCharacter.render(unicode4DService.getCharacterForUnicode('G'));
|
||||
ImGui.sameLine();
|
||||
ImCharacter.render(unicode4DService.getCharacterForUnicode('E'));
|
||||
ImGui.sameLine();
|
||||
ImCharacter.render(unicode4DService.getCharacterForUnicode('M'));
|
||||
ImGui.sameLine();
|
||||
ImCharacter.render(unicode4DService.getCharacterForUnicode('⁴'));
|
||||
|
||||
ImCharacter.render(unicode4DService.getCharacterForUnicode('M'));
|
||||
ImGui.sameLine();
|
||||
ImCharacter.render(unicode4DService.getCharacterForUnicode(Integer.parseInt("27d6", 16)));
|
||||
ImGui.sameLine();
|
||||
ImCharacter.render(unicode4DService.getCharacterForUnicode('仙'));
|
||||
private void updateGrid() {
|
||||
runCounter++;
|
||||
if (runCounter < runSpeed.get()) {
|
||||
return;
|
||||
}
|
||||
runCounter = 0;
|
||||
for (int x=gridHeight-1; x>0; x--) {
|
||||
for (int y=0; y<gridWidth; y++) {
|
||||
gridBuffer[x][y] = gridBuffer[x-1][y];
|
||||
}
|
||||
}
|
||||
for (int y=0; y<gridWidth; y++) {
|
||||
int charSelect = 0;
|
||||
for (int i=0;i<4;i++) {
|
||||
charSelect = gridChars.codePointAt(random.nextInt(gridChars.length()));
|
||||
DrawCharacter drawChar = unicode4DService.getCharacterForUnicode(charSelect);
|
||||
if (drawChar != null) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
int charRandom = gridRank[y]>0?(random.nextInt(100)<70? charSelect:' '):(random.nextInt(100)<1? charSelect:' ');
|
||||
gridBuffer[0][y] = charRandom;
|
||||
if (gridBuffer[0][y]==' ') {
|
||||
gridRank[y] = 0;
|
||||
} else {
|
||||
gridRank[y]++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4,16 +4,19 @@ import java.util.ArrayList;
|
|||
import java.util.List;
|
||||
|
||||
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
|
||||
import love.distributedrebirth.bassboonyd.BãßBȍőnConstantsʸᴰ;
|
||||
import love.distributedrebirth.numberxd.base2t.BaseIteratorOctal;
|
||||
import love.distributedrebirth.numberxd.base2t.part.T04PartQuad;
|
||||
import love.distributedrebirth.numberxd.base2t.type.V009Tyte;
|
||||
import love.distributedrebirth.numberxd.base2t.type.V036Teger;
|
||||
import love.distributedrebirth.numberxd.unicode.BaseGlyphSet;
|
||||
import love.distributedrebirth.numberxd.unicode.SourceGlyph;
|
||||
import love.distributedrebirth.numberxd.unicode.SourceGlyphCharSet;
|
||||
|
||||
@BãßBȍőnAuthorInfoʸᴰ(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
||||
public class Gê̄ldGetậl extends AbstractBaseGetậlMatrix1<Gê̄ldGetậl,V009Tyte> {
|
||||
|
||||
private final V036Teger value;
|
||||
private final double totalDecimalValue;
|
||||
private static final Character LEFT_TO_RIGHT_MARK = 0x200E;
|
||||
private static final Character RIGHT_TO_LEFT_MARK = 0x200F;
|
||||
|
||||
|
@ -23,7 +26,6 @@ public class Gê̄ldGetậl extends AbstractBaseGetậlMatrix1<Gê̄ldGetậl,V0
|
|||
|
||||
public Gê̄ldGetậl(V036Teger value) {
|
||||
this.value = value;
|
||||
this.totalDecimalValue = calculateDecimalValue();
|
||||
}
|
||||
|
||||
public Gê̄ldGetậl(String money) {
|
||||
|
@ -58,6 +60,10 @@ public class Gê̄ldGetậl extends AbstractBaseGetậlMatrix1<Gê̄ldGetậl,V0
|
|||
result.add(geldDigit);
|
||||
}
|
||||
}
|
||||
Gê̄ldGetậlÅtHebrewVowel vowel = Gê̄ldGetậlÅtHebrewVowel.valueOfCharacter(codePoint);
|
||||
if (!Gê̄ldGetậlÅtHebrewVowel.NONE.equals(vowel)) {
|
||||
continue; // ignore multiple vowels on letters
|
||||
}
|
||||
Gê̄ldGetậlÅtHebrewLetter letter = Gê̄ldGetậlÅtHebrewLetter.valueOfCharacter(codePoint);
|
||||
if (Gê̄ldGetậlÅtHebrewLetter.NONE.equals(letter)) {
|
||||
throw new IllegalArgumentException("Unknown fraction codepoint: 0x"+Integer.toHexString(codePoint));
|
||||
|
@ -71,7 +77,7 @@ public class Gê̄ldGetậl extends AbstractBaseGetậlMatrix1<Gê̄ldGetậl,V0
|
|||
if (result.isEmpty()) {
|
||||
throw new IllegalArgumentException("No hebrew money found");
|
||||
}
|
||||
Gê̄ldGetậlÅtHebrew full = result.get(0);
|
||||
Gê̄ldGetậlÅtHebrew full0 = result.get(0);
|
||||
Gê̄ldGetậlÅtHebrew deelA = null;
|
||||
Gê̄ldGetậlÅtHebrew deelB = null;
|
||||
Gê̄ldGetậlÅtHebrew deelC = null;
|
||||
|
@ -91,23 +97,28 @@ public class Gê̄ldGetậl extends AbstractBaseGetậlMatrix1<Gê̄ldGetậl,V0
|
|||
deelC = new Gê̄ldGetậlÅtHebrew();
|
||||
}
|
||||
value = new V036Teger();
|
||||
value.setTytePart(T04PartQuad.PART_1, full.toTyte());
|
||||
value.setTytePart(T04PartQuad.PART_1, full0.toTyte());
|
||||
value.setTytePart(T04PartQuad.PART_2, deelA.toTyte());
|
||||
value.setTytePart(T04PartQuad.PART_3, deelB.toTyte());
|
||||
value.setTytePart(T04PartQuad.PART_4, deelC.toTyte());
|
||||
this.totalDecimalValue = calculateDecimalValue();
|
||||
}
|
||||
|
||||
private double calculateDecimalValue() {
|
||||
Gê̄ldGetậlÅtHebrew nummerAlphabet = new Gê̄ldGetậlÅtHebrew(value.getTytePart(T04PartQuad.PART_1));
|
||||
private boolean hasHebrewLetters(Gê̄ldGetậlÅtHebrew...nummers) {
|
||||
for (Gê̄ldGetậlÅtHebrew nummer:nummers) {
|
||||
if (Gê̄ldGetậlÅtHebrewLetter.NONE.equals(nummer.getLetter())) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public double toDecimalValue() {
|
||||
Gê̄ldGetậlÅtHebrew nummerFull0 = new Gê̄ldGetậlÅtHebrew(value.getTytePart(T04PartQuad.PART_1));
|
||||
Gê̄ldGetậlÅtHebrew nummerDeelA = new Gê̄ldGetậlÅtHebrew(value.getTytePart(T04PartQuad.PART_2));
|
||||
Gê̄ldGetậlÅtHebrew nummerDeelB = new Gê̄ldGetậlÅtHebrew(value.getTytePart(T04PartQuad.PART_3));
|
||||
Gê̄ldGetậlÅtHebrew nummerDeelC = new Gê̄ldGetậlÅtHebrew(value.getTytePart(T04PartQuad.PART_4));
|
||||
boolean hasFourDigits =
|
||||
!Gê̄ldGetậlÅtHebrewLetter.NONE.equals(nummerDeelA.getLetter()) &&
|
||||
!Gê̄ldGetậlÅtHebrewLetter.NONE.equals(nummerDeelB.getLetter()) &&
|
||||
!Gê̄ldGetậlÅtHebrewLetter.NONE.equals(nummerDeelC.getLetter());
|
||||
double totalDecimalValue = nummerAlphabet.toDecimalValue(hasFourDigits);
|
||||
boolean hasFourDigits = hasHebrewLetters(nummerDeelA, nummerDeelB, nummerDeelC);
|
||||
double totalDecimalValue = nummerFull0.toDecimalValue(hasFourDigits);
|
||||
if (!Gê̄ldGetậlÅtHebrewLetter.NONE.equals(nummerDeelA.getLetter())) {
|
||||
totalDecimalValue += nummerDeelA.toDecimalValue(false);
|
||||
}
|
||||
|
@ -120,8 +131,34 @@ public class Gê̄ldGetậl extends AbstractBaseGetậlMatrix1<Gê̄ldGetậl,V0
|
|||
return totalDecimalValue;
|
||||
}
|
||||
|
||||
public double getTotalDecimalValue() {
|
||||
return totalDecimalValue;
|
||||
public String toFractionNotation(BaseGlyphSet glyphCharset, SourceGlyphCharSet sourceCharset) {
|
||||
Gê̄ldGetậlÅtHebrew nummerFull0 = new Gê̄ldGetậlÅtHebrew(value.getTytePart(T04PartQuad.PART_1));
|
||||
Gê̄ldGetậlÅtHebrew nummerDeelA = new Gê̄ldGetậlÅtHebrew(value.getTytePart(T04PartQuad.PART_2));
|
||||
Gê̄ldGetậlÅtHebrew nummerDeelB = new Gê̄ldGetậlÅtHebrew(value.getTytePart(T04PartQuad.PART_3));
|
||||
Gê̄ldGetậlÅtHebrew nummerDeelC = new Gê̄ldGetậlÅtHebrew(value.getTytePart(T04PartQuad.PART_4));
|
||||
boolean hasFourDigits = hasHebrewLetters(nummerDeelA, nummerDeelB, nummerDeelC);
|
||||
StringBuilder buf = new StringBuilder();
|
||||
buf.append(LEFT_TO_RIGHT_MARK);
|
||||
nummerFull0.toFractionNotation(hasFourDigits, buf, glyphCharset, sourceCharset);
|
||||
if (!Gê̄ldGetậlÅtHebrewLetter.NONE.equals(nummerDeelA.getLetter())) {
|
||||
buf.append(BãßBȍőnConstantsʸᴰ.STR_SPACE);
|
||||
buf.append(sourceCharset.print(SourceGlyph.MATH_PLUS));
|
||||
buf.append(BãßBȍőnConstantsʸᴰ.STR_SPACE);
|
||||
nummerDeelA.toFractionNotation(false, buf, glyphCharset, sourceCharset);
|
||||
}
|
||||
if (!Gê̄ldGetậlÅtHebrewLetter.NONE.equals(nummerDeelB.getLetter())) {
|
||||
buf.append(BãßBȍőnConstantsʸᴰ.STR_SPACE);
|
||||
buf.append(sourceCharset.print(SourceGlyph.MATH_PLUS));
|
||||
buf.append(BãßBȍőnConstantsʸᴰ.STR_SPACE);
|
||||
nummerDeelB.toFractionNotation(false, buf, glyphCharset, sourceCharset);
|
||||
}
|
||||
if (!Gê̄ldGetậlÅtHebrewLetter.NONE.equals(nummerDeelC.getLetter())) {
|
||||
buf.append(BãßBȍőnConstantsʸᴰ.STR_SPACE);
|
||||
buf.append(sourceCharset.print(SourceGlyph.MATH_PLUS));
|
||||
buf.append(BãßBȍőnConstantsʸᴰ.STR_SPACE);
|
||||
nummerDeelC.toFractionNotation(false, buf, glyphCharset, sourceCharset);
|
||||
}
|
||||
return buf.toString();
|
||||
}
|
||||
|
||||
public String toHebrewString() {
|
||||
|
@ -129,15 +166,15 @@ public class Gê̄ldGetậl extends AbstractBaseGetậlMatrix1<Gê̄ldGetậl,V0
|
|||
}
|
||||
|
||||
public String toHebrewString(boolean reverse) {
|
||||
Gê̄ldGetậlÅtHebrew nummerAlphabet = new Gê̄ldGetậlÅtHebrew(value.getTytePart(T04PartQuad.PART_1));
|
||||
Gê̄ldGetậlÅtHebrew nummerFull0 = new Gê̄ldGetậlÅtHebrew(value.getTytePart(T04PartQuad.PART_1));
|
||||
Gê̄ldGetậlÅtHebrew nummerDeelA = new Gê̄ldGetậlÅtHebrew(value.getTytePart(T04PartQuad.PART_2));
|
||||
Gê̄ldGetậlÅtHebrew nummerDeelB = new Gê̄ldGetậlÅtHebrew(value.getTytePart(T04PartQuad.PART_3));
|
||||
Gê̄ldGetậlÅtHebrew nummerDeelC = new Gê̄ldGetậlÅtHebrew(value.getTytePart(T04PartQuad.PART_4));
|
||||
StringBuilder buf = new StringBuilder();
|
||||
buf.append(RIGHT_TO_LEFT_MARK);
|
||||
buf.append(nummerAlphabet.getLetter().getCharacter());
|
||||
if (!Gê̄ldGetậlÅtHebrewVowel.NONE.equals(nummerAlphabet.getVowel())) {
|
||||
buf.append(nummerAlphabet.getVowel().getCharacter());
|
||||
buf.append(nummerFull0.getLetter().getCharacter());
|
||||
if (!Gê̄ldGetậlÅtHebrewVowel.NONE.equals(nummerFull0.getVowel())) {
|
||||
buf.append(nummerFull0.getVowel().getCharacter());
|
||||
}
|
||||
if (!Gê̄ldGetậlÅtHebrewLetter.NONE.equals(nummerDeelA.getLetter())) {
|
||||
buf.append(nummerDeelA.getLetter().getCharacter());
|
||||
|
@ -158,7 +195,7 @@ public class Gê̄ldGetậl extends AbstractBaseGetậlMatrix1<Gê̄ldGetậl,V0
|
|||
}
|
||||
}
|
||||
if (reverse) {
|
||||
buf.reverse(); // ImGui skips RL marker so renders wrong....
|
||||
return buf.reverse().toString(); // ImGui skips RL marker so renders wrong....
|
||||
}
|
||||
return buf.toString();
|
||||
}
|
||||
|
|
|
@ -4,6 +4,9 @@ import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
|
|||
import love.distributedrebirth.numberxd.base2t.part.T03PartTrit;
|
||||
import love.distributedrebirth.numberxd.base2t.part.T08PartOctal;
|
||||
import love.distributedrebirth.numberxd.base2t.type.V009Tyte;
|
||||
import love.distributedrebirth.numberxd.unicode.BaseGlyphSet;
|
||||
import love.distributedrebirth.numberxd.unicode.SourceGlyph;
|
||||
import love.distributedrebirth.numberxd.unicode.SourceGlyphCharSet;
|
||||
|
||||
@BãßBȍőnAuthorInfoʸᴰ(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
||||
public class Gê̄ldGetậlÅtHebrew {
|
||||
|
@ -40,18 +43,36 @@ public class Gê̄ldGetậlÅtHebrew {
|
|||
return new V009Tyte(value0, value1, value2);
|
||||
}
|
||||
|
||||
public double toDecimalValue(boolean firstChar) {
|
||||
public double toDecimalValue(boolean useFullValue) {
|
||||
double fraction = letter.getDecimal();
|
||||
if (firstChar) {
|
||||
return fraction; // use full value
|
||||
}
|
||||
if (!Gê̄ldGetậlÅtHebrewVowel.NONE.equals(vowel)) {
|
||||
fraction = fraction * Math.pow(FRACTION_POWER, vowel.getFractionOffset());
|
||||
}
|
||||
if (useFullValue) {
|
||||
return fraction;
|
||||
}
|
||||
double result = NUMERATOR_ONE/fraction;
|
||||
return result;
|
||||
}
|
||||
|
||||
public void toFractionNotation(boolean useFullValue, StringBuilder buf, BaseGlyphSet glyphCharset, SourceGlyphCharSet sourceCharset) {
|
||||
String fraction = glyphCharset.BȍőnPrintNumber10(letter.getDecimal());
|
||||
if (!Gê̄ldGetậlÅtHebrewVowel.NONE.equals(vowel)) {
|
||||
fraction = sourceCharset.print(SourceGlyph.PART_BRACKET_BEGIN)
|
||||
+ fraction
|
||||
+ sourceCharset.print(SourceGlyph.MATH_MULTIPLY)
|
||||
+ glyphCharset.BȍőnPrintNumber10(FRACTION_POWER)
|
||||
+ sourceCharset.print(SourceGlyph.MATH_POWER)
|
||||
+ glyphCharset.BȍőnPrintNumber10(vowel.getFractionOffset())
|
||||
+ sourceCharset.print(SourceGlyph.PART_BRACKET_CLOSE);
|
||||
}
|
||||
if (!useFullValue) {
|
||||
buf.append(glyphCharset.BȍőnPrintNumber10((int)NUMERATOR_ONE));
|
||||
buf.append(sourceCharset.print(SourceGlyph.MATH_DIVIDE));
|
||||
}
|
||||
buf.append(fraction);
|
||||
}
|
||||
|
||||
public Gê̄ldGetậlÅtHebrewLetter getLetter() {
|
||||
return letter;
|
||||
}
|
||||
|
|
|
@ -55,6 +55,25 @@ public enum Gê̄ldGetậlÅtHebrewVowel {
|
|||
}
|
||||
|
||||
public static Gê̄ldGetậlÅtHebrewVowel valueOfCharacter(char codePoint) {
|
||||
// TODO add & move complete alias map
|
||||
if (codePoint == 0x591 || codePoint == 0x596 || codePoint == 0x597 || codePoint == 0x59a || codePoint == 0x59c) {
|
||||
return VOWEL_1;
|
||||
}
|
||||
if (codePoint == 0x5a5 || codePoint == 0x5a8 || codePoint == 0x5ab || codePoint == 0x5ac) {
|
||||
return VOWEL_1;
|
||||
}
|
||||
if (codePoint == 0x5ba || codePoint == 0x5bc || codePoint == 0x5bd) {
|
||||
return VOWEL_1;
|
||||
}
|
||||
if (codePoint == 0x5c1 || codePoint == 0x5c2) {
|
||||
return VOWEL_1;
|
||||
}
|
||||
if (codePoint == 0x5b0) {
|
||||
return VOWEL_2;
|
||||
}
|
||||
if (codePoint == 0x592 || codePoint == 0x5bb) {
|
||||
return VOWEL_3;
|
||||
}
|
||||
return CHAR_MAP.getOrDefault(codePoint, Gê̄ldGetậlÅtHebrewVowel.NONE);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
package love.distributedrebirth.unicode4d;
|
||||
package love.distributedrebirth.numberxd.unicode;
|
||||
|
||||
import java.text.DecimalFormat;
|
||||
|
||||
|
@ -16,7 +16,7 @@ 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ʸᴰ> {
|
||||
public enum BaseGlyphSet implements DefaultEnumSetᴶᴹˣ<BaseGlyphSet,BaseGlyphSetKeyʸᴰ> {
|
||||
// TODO: Move this into unicode4D and TyyPartXxx
|
||||
|
||||
LATIN_BASIC(
|
||||
|
@ -94,7 +94,7 @@ public enum BaseGlyphSet implements DefaultEnumSetᴶᴹˣ<BaseGlyphSet,BãßBȍ
|
|||
/* 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("\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","\ue401",
|
||||
"\ue386","\ue387","\ue388","\ue389","\ue38a","\ue38b","\ue38c","\ue38d","\ue38e",
|
||||
|
@ -152,8 +152,8 @@ public enum BaseGlyphSet implements DefaultEnumSetᴶᴹˣ<BaseGlyphSet,BãßBȍ
|
|||
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 final BãßBȍőnCoffinOpenʸᴰ<BaseGlyphSetKeyʸᴰ> BBC = BãßBȍőnCoffinOpenʸᴰ.newInstance();
|
||||
public BãßBȍőnCoffinʸᴰ<BaseGlyphSetKeyʸᴰ> GET_BBC() { return BBC; }
|
||||
|
||||
private BaseGlyphSet(BaseGlyphSetNumber numbers) {
|
||||
this(numbers, null, null);
|
||||
|
@ -164,31 +164,31 @@ public enum BaseGlyphSet implements DefaultEnumSetᴶᴹˣ<BaseGlyphSet,BãßBȍ
|
|||
}
|
||||
|
||||
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.PUT_OBJ(BaseGlyphSetKeyʸᴰ.NUMBERS, numbers);
|
||||
BBC.PUT_OBJ(BaseGlyphSetKeyʸᴰ.HEXIMALS, hex);
|
||||
BBC.PUT_OBJ(BaseGlyphSetKeyʸᴰ.GEMATRIA, gematria);
|
||||
BBC.PUT_OBJ(BaseGlyphSetKeyʸᴰ.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");
|
||||
this.BȍőnJmxInit(BaseGlyphSetKeyʸᴰ.JMX);
|
||||
printNumber10Count = BȍőnJmxInitGuageCounter(BaseGlyphSetKeyʸᴰ.JMX, "printNumber10Count");
|
||||
printNumber16Count = BȍőnJmxInitGuageCounter(BaseGlyphSetKeyʸᴰ.JMX, "printNumber16Count");
|
||||
printNumber27Count = BȍőnJmxInitGuageCounter(BaseGlyphSetKeyʸᴰ.JMX, "printNumber27Count");
|
||||
}
|
||||
|
||||
public BaseGlyphSetNumber BȍőnNumber10() {
|
||||
return GET_BBC().GET_OBJ(BãßBȍőnGlyphSetKeyʸᴰ.NUMBERS, BaseGlyphSetNumber.class);
|
||||
return GET_BBC().GET_OBJ(BaseGlyphSetKeyʸᴰ.NUMBERS, BaseGlyphSetNumber.class);
|
||||
}
|
||||
|
||||
public BaseGlyphSetNumber BȍőnNumber16() {
|
||||
return GET_BBC().GET_OBJ(BãßBȍőnGlyphSetKeyʸᴰ.HEXIMALS, BaseGlyphSetNumber.class);
|
||||
return GET_BBC().GET_OBJ(BaseGlyphSetKeyʸᴰ.HEXIMALS, BaseGlyphSetNumber.class);
|
||||
}
|
||||
|
||||
public BaseGlyphSetNumber BȍőnNumber27() {
|
||||
return GET_BBC().GET_OBJ(BãßBȍőnGlyphSetKeyʸᴰ.GEMATRIA, BaseGlyphSetNumber.class);
|
||||
return GET_BBC().GET_OBJ(BaseGlyphSetKeyʸᴰ.GEMATRIA, BaseGlyphSetNumber.class);
|
||||
}
|
||||
|
||||
public Boolean BȍőnReverseScript() {
|
||||
return GET_BBC().GET_BOOL(BãßBȍőnGlyphSetKeyʸᴰ.REVERSE_SCRIPT);
|
||||
return GET_BBC().GET_BOOL(BaseGlyphSetKeyʸᴰ.REVERSE_SCRIPT);
|
||||
}
|
||||
|
||||
public String BȍőnConvertTo(String numbers) {
|
||||
|
@ -204,6 +204,10 @@ public enum BaseGlyphSet implements DefaultEnumSetᴶᴹˣ<BaseGlyphSet,BãßBȍ
|
|||
return buf.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);
|
|
@ -1,10 +1,10 @@
|
|||
package love.distributedrebirth.unicode4d;
|
||||
package love.distributedrebirth.numberxd.unicode;
|
||||
|
||||
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ʸᴰ {
|
||||
public enum BaseGlyphSetKeyʸᴰ implements BãßBȍőnCoffinStoreKeyʸᴰ {
|
||||
|
||||
JMX,
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package love.distributedrebirth.unicode4d;
|
||||
package love.distributedrebirth.numberxd.unicode;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
|
@ -0,0 +1,64 @@
|
|||
package love.distributedrebirth.numberxd.unicode;
|
||||
|
||||
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
|
||||
|
||||
@BãßBȍőnAuthorInfoʸᴰ(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
||||
public enum SourceGlyph {
|
||||
// Death to latin
|
||||
// Death to unicode
|
||||
|
||||
MATH_PLUS("+","\uE3F6", "+"),
|
||||
MATH_MINUS("-","\uE3F3", "-"),
|
||||
MATH_MULTIPLY("*","\uE3F4", "*"),
|
||||
MATH_DIVIDE("/","\uE3F1", "/"),
|
||||
MATH_POWER("^","\uE1F9", "^"),
|
||||
|
||||
LOGIC_NOT("!","\uE374", "‡"),
|
||||
LOGIC_AND("&","\uE396", "&"),
|
||||
LOGIC_OR("|","\uE39B", "︱"),
|
||||
|
||||
VAR_ASSIGN("=","\uE3F7", "〒"),
|
||||
VAR_PERCENTAGE("%","\uE35D", "%"),
|
||||
VAR_TEMPLATE("$","\uE1E3", "$"),
|
||||
VAR_COMMENT("#","\uE1E6", "#"),
|
||||
VAR_AT("@","\uE3F2", "@"),
|
||||
|
||||
PART_BRACKET_BEGIN("(","\uE286", "〔"),
|
||||
PART_BRACKET_CLOSE(")","\uE287", "〕"),
|
||||
PART_ARRAY_BEGIN("[","\uE288", "「"),
|
||||
PART_ARRAY_CLOSE("]","\uE289", "」"),
|
||||
PART_BLOCK_BEGIN("{","\uE25A", "〖"),
|
||||
PART_BLOCK_CLOSE("}","\uE25B", "〗"),
|
||||
PART_TAG_BEGIN("<","\uE339", "〈"),
|
||||
PART_TAG_CLOSE(">","\uE33A", "〉"),
|
||||
|
||||
PART_EXT_ARRAY_BEGIN("˧[","\uE258", "⦗ "),
|
||||
PART_EXT_ARRAY_CLOSE("]꜔","\uE25D", "⦘"),
|
||||
PART_EXT_BLOCK_BEGIN("˧{","\uE259", "【"),
|
||||
PART_EXT_BLOCK_CLOSE("}꜔","\uE25C", "】"),
|
||||
PART_EXT_TAG_BEGIN("˧<","\uE255", "《"),
|
||||
PART_EXT_TAG_CLOSE(">꜔","\uE256", "》"),
|
||||
;
|
||||
|
||||
private final String charLatin;
|
||||
private final String charHiero;
|
||||
private final String charChina;
|
||||
|
||||
private SourceGlyph(String charLatin, String charHiero, String charChina) {
|
||||
this.charLatin = charLatin;
|
||||
this.charHiero = charHiero;
|
||||
this.charChina = charChina;
|
||||
}
|
||||
|
||||
public String getCharLatin() {
|
||||
return charLatin;
|
||||
}
|
||||
|
||||
public String getCharHiero() {
|
||||
return charHiero;
|
||||
}
|
||||
|
||||
public String getCharChina() {
|
||||
return charChina;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,26 @@
|
|||
package love.distributedrebirth.numberxd.unicode;
|
||||
|
||||
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
|
||||
|
||||
@BãßBȍőnAuthorInfoʸᴰ(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
||||
public enum SourceGlyphCharSet {
|
||||
|
||||
LATIN,
|
||||
HIERO,
|
||||
CHINA,
|
||||
;
|
||||
|
||||
public String print(SourceGlyph ugs) {
|
||||
if (this == HIERO) {
|
||||
StringBuilder buf = new StringBuilder();
|
||||
buf.append("\u2006"); // TODO: find better hiero font
|
||||
buf.append(ugs.getCharHiero());
|
||||
buf.append("\u2006");
|
||||
return buf.toString();
|
||||
}
|
||||
if (this == CHINA) {
|
||||
return ugs.getCharChina();
|
||||
}
|
||||
return ugs.getCharLatin();
|
||||
}
|
||||
}
|
|
@ -1,9 +1,9 @@
|
|||
package love.distributedrebirth.unicode4d;
|
||||
package love.distributedrebirth.numberxd.unicode;
|
||||
|
||||
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
|
||||
|
||||
@BãßBȍőnAuthorInfoʸᴰ(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
||||
public enum UnicodePlaneᶻᴰ {
|
||||
public enum UnicodePlane {
|
||||
|
||||
// =========== PLANE 0
|
||||
|
||||
|
@ -369,11 +369,11 @@ public enum UnicodePlaneᶻᴰ {
|
|||
private final int stop;
|
||||
private final boolean leftToRight;
|
||||
|
||||
private UnicodePlaneᶻᴰ(int start, int stop) {
|
||||
private UnicodePlane(int start, int stop) {
|
||||
this(start, stop, true);
|
||||
}
|
||||
|
||||
private UnicodePlaneᶻᴰ(int start, int stop, boolean leftToRight) {
|
||||
private UnicodePlane(int start, int stop, boolean leftToRight) {
|
||||
this.start = start;
|
||||
this.stop = stop;
|
||||
this.leftToRight = leftToRight;
|
||||
|
@ -395,12 +395,12 @@ public enum UnicodePlaneᶻᴰ {
|
|||
return getStart() < 0xFFFF;
|
||||
}
|
||||
|
||||
public static UnicodePlaneᶻᴰ valueOfUnicode(int unicode) {
|
||||
for (UnicodePlaneᶻᴰ value:values()) {
|
||||
public static UnicodePlane valueOfUnicode(int unicode) {
|
||||
for (UnicodePlane value:values()) {
|
||||
if (unicode >= value.getStart() && unicode <= value.getStop()) {
|
||||
return value;
|
||||
}
|
||||
}
|
||||
return UnicodePlaneᶻᴰ.UNKNOWN;
|
||||
return UnicodePlane.UNKNOWN;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,29 @@
|
|||
package love.distributedrebirth.numberxd;
|
||||
|
||||
import org.junit.jupiter.api.Assertions;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
|
||||
|
||||
@BãßBȍőnAuthorInfoʸᴰ(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
||||
public class Gê̄ldGetậlTest {
|
||||
|
||||
@Test
|
||||
public void testHebrewAliases() {
|
||||
String[] paymentDataExample = {
|
||||
"מִזְ","מ֗וֹר","לְאָ֫","סָ֥ף","אֱלֹ","הִ֗ים","נִצָּ֥ב","בַּֽעֲדַ","ת־","אֵ֑ל","בְּקֶ֖","רֶב","אֱלֹ","הִ֣ים","יִשְׁ","פֹּֽט",
|
||||
"עַד־","מָתַ֣י","תִּ","שְׁפְּ","טוּ־","עָ֑וֶל","וּפְנֵ֥י","רְ֜שָׁ","עִ֗ים","תִּשְׂ","אוּ־סֶֽ","לָה",
|
||||
"שִׁפְט","וּ־דָ֥ל","וְיָת֑","וֹם","עָנִ֖י","וָרָ֣שׁ","הַצְדִּֽ","יקוּ",
|
||||
"פַּלְּט","וּ־דַ֣ל","וְאֶבְ","י֑וֹן","מִיַּ֖ד","רְשָׁ","עִ֣ים","הַצִּֽ","ילוּ",
|
||||
"לֹ֚יָֽ","דְע֨וּ","וְלֹ֬א","יָבִ֗","ינוּ","בַּֽחֲ","שֵׁכָ֥ה","יִתְהַ","לָּ֑כוּ","יִ֜מּ֗","וֹטוּ","כָּל־מ֥","וֹסְדֵי","אָֽרֶץ",
|
||||
"אֲֽנִ֣י","אָ֖מַ","רְתִּי","אֱלֹ","הִ֣ים","אַתֶּ֑ם","וּבְנֵ֖י","עֶלְ","י֣וֹן","כֻּלְּ","כֶֽם",
|
||||
"אָכֵ֥ן","כְּאָ","דָ֣ם","תְּמוּ","ת֑וּן","וּכְאַ","חַ֖ד","הַשָּׂ","רִ֣ים","תִּפֹּֽ","לוּ",
|
||||
"קוּ","מָ֣ה","אֱ֖לֹ","הִים","שָׁפְ","טָ֣ה","הָאָ֑","רֶץ","כִּֽי־","אַתָּ֥ה","תִ֜נְ",
|
||||
"חַ֗ל","בְּכָל","־הַגּ","וֹיִֽם",
|
||||
};
|
||||
for (String data:paymentDataExample) {
|
||||
Gê̄ldGetậl geld = new Gê̄ldGetậl(data);
|
||||
Assertions.assertNotNull(geld.toHebrewString());
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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);
|
||||
drawUnicode4D(drawChar, p0.x, p0.y, DEFAULT_COLOR, drawList);
|
||||
drawList.popClipRect();
|
||||
}
|
||||
|
||||
// draw unicode4D
|
||||
float xOff = p0.x;
|
||||
float yOff = p0.y + 19f;
|
||||
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();
|
||||
}
|
||||
}
|
|
@ -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"));
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -107,8 +107,9 @@ public enum GDXAppTos4 implements DefaultEnumInstanceᴶᴹˣ<GDXAppTos4,GDXAppT
|
|||
screen.dispose();
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
@Override
|
||||
public void selectScreen(Class<? extends Screen> screenClass) {
|
||||
public <T extends Screen> T selectScreen(Class<T> screenClass) {
|
||||
Screen screen = screens.get(screenClass);
|
||||
if (screen == null) {
|
||||
throw new NullPointerException("Unknow screen: "+screenClass);
|
||||
|
@ -120,5 +121,6 @@ public enum GDXAppTos4 implements DefaultEnumInstanceᴶᴹˣ<GDXAppTos4,GDXAppT
|
|||
this.screen.show();
|
||||
this.screen.resize(Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
|
||||
selectScreenCounter.increment();
|
||||
return (T)screen;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -125,6 +125,7 @@ public class GDXAppTos4BootFactory {
|
|||
"love.distributedrebirth.numberxd.base2t.part,"+
|
||||
"love.distributedrebirth.numberxd.base2t.type,"+
|
||||
"love.distributedrebirth.numberxd.base2t.typexl,"+
|
||||
"love.distributedrebirth.numberxd.unicode,"+
|
||||
"love.distributedrebirth.numberxd.x4o,"+
|
||||
"love.distributedrebirth.warpme,"+
|
||||
"love.distributedrebirth.warpme.core,"+
|
||||
|
|
|
@ -11,5 +11,5 @@ public interface SystemGdxTerminal {
|
|||
|
||||
void disposeScreen(Screen screen);
|
||||
|
||||
void selectScreen(Class<? extends Screen> screenClass);
|
||||
<T extends Screen> T selectScreen(Class<T> screenClass);
|
||||
}
|
||||
|
|
|
@ -35,7 +35,7 @@ import love.distributedrebirth.gdxapp4d.vrgem4.service.VrGem4Unicode4DService;
|
|||
import love.distributedrebirth.numberxd.base2t.Base2PartsFactory;
|
||||
import love.distributedrebirth.numberxd.base2t.Base2Terminator;
|
||||
import love.distributedrebirth.numberxd.base2t.Base2WarpCore;
|
||||
import love.distributedrebirth.unicode4d.BaseGlyphSet;
|
||||
import love.distributedrebirth.numberxd.unicode.BaseGlyphSet;
|
||||
import love.distributedrebirth.warpme.ship.WaterShipOcean;
|
||||
|
||||
@BãßBȍőnAuthorInfoʸᴰ(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
||||
|
|
|
@ -34,6 +34,9 @@ public class DeskAppController {
|
|||
|
||||
public void removeDeskApp(DeskApp deskApp) {
|
||||
deskApps.remove(deskApp);
|
||||
if (currentDeskApp == deskApp) {
|
||||
currentDeskApp = null;
|
||||
}
|
||||
}
|
||||
|
||||
public List<DeskApp> getDeskApps() {
|
||||
|
|
|
@ -55,13 +55,32 @@ public class DeskTopScreenMenu {
|
|||
}
|
||||
|
||||
private void renderSelfMenu(DeskTopScreen appScreen, DeskApp deskApp) {
|
||||
if (ImGui.beginMenu(deskApp.getContours().getTitle())) {;
|
||||
if (ImGui.beginMenu(deskApp.getContours().getTitle())) {
|
||||
if (ImGui.menuItem(FontAwesomeIcons.FolderMinus + " Minimize", "", fileMinimizeSelected, deskApp != null )) {
|
||||
fileMinimizeSelected.set(false);
|
||||
if (deskApp != null) {
|
||||
appScreen.getDeskAppController().setCurrentDeskApp(null);
|
||||
}
|
||||
}
|
||||
if (ImGui.beginMenu(FontAwesomeIcons.WindowRestore + " Move")) {
|
||||
if (ImGui.menuItem("Desktop1", "", false, !(appScreen instanceof ScreenDesktop1))) {
|
||||
appScreen.getDeskAppController().removeDeskApp(deskApp);
|
||||
terminal.selectScreen(ScreenDesktop1.class).getDeskAppController().addDeskApp(deskApp);
|
||||
}
|
||||
if (ImGui.menuItem("Desktop2", "", false, !(appScreen instanceof ScreenDesktop2))) {
|
||||
appScreen.getDeskAppController().removeDeskApp(deskApp);
|
||||
terminal.selectScreen(ScreenDesktop2.class).getDeskAppController().addDeskApp(deskApp);
|
||||
}
|
||||
if (ImGui.menuItem("Desktop3", "", false, !(appScreen instanceof ScreenDesktop3))) {
|
||||
appScreen.getDeskAppController().removeDeskApp(deskApp);
|
||||
terminal.selectScreen(ScreenDesktop3.class).getDeskAppController().addDeskApp(deskApp);
|
||||
}
|
||||
if (ImGui.menuItem("Desktop4", "", false, !(appScreen instanceof ScreenDesktop4))) {
|
||||
appScreen.getDeskAppController().removeDeskApp(deskApp);
|
||||
terminal.selectScreen(ScreenDesktop4.class).getDeskAppController().addDeskApp(deskApp);
|
||||
}
|
||||
ImGui.endMenu();
|
||||
}
|
||||
if (ImGui.menuItem(FontAwesomeIcons.WindowClose + " Exit", "", fileCloseSelected, deskApp != null)) {
|
||||
fileCloseSelected.set(false);
|
||||
if (deskApp != null) {
|
||||
|
|
1
pom.xml
1
pom.xml
|
@ -127,6 +127,7 @@
|
|||
love.distributedrebirth.numberxd.base2t.part,
|
||||
love.distributedrebirth.numberxd.base2t.type,
|
||||
love.distributedrebirth.numberxd.base2t.typexl,
|
||||
love.distributedrebirth.numberxd.unicode,
|
||||
love.distributedrebirth.numberxd.x4o,
|
||||
love.distributedrebirth.warpme,
|
||||
love.distributedrebirth.warpme.core,
|
||||
|
|
Loading…
Reference in a new issue