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

@ -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.

View file

@ -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);
}
}
}

View file

@ -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 {

View file

@ -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 {

View file

@ -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());

View file

@ -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();
}

View file

@ -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);
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('仙'));
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();
}
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]++;
}
}
}
}

View file

@ -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();
}

View file

@ -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;
}

View file

@ -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);
}
}

View file

@ -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);

View file

@ -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,

View file

@ -1,4 +1,4 @@
package love.distributedrebirth.unicode4d;
package love.distributedrebirth.numberxd.unicode;
import java.util.ArrayList;
import java.util.List;

View file

@ -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;
}
}

View file

@ -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();
}
}

View file

@ -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;
}
}

View file

@ -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());
}
}
}

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);
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();
}
}

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;

View file

@ -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;
}
}

View file

@ -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,"+

View file

@ -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);
}

View file

@ -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 = "©Δ∞ 仙上主天")

View file

@ -34,6 +34,9 @@ public class DeskAppController {
public void removeDeskApp(DeskApp deskApp) {
deskApps.remove(deskApp);
if (currentDeskApp == deskApp) {
currentDeskApp = null;
}
}
public List<DeskApp> getDeskApps() {

View file

@ -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) {

View file

@ -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,