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

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