package love.distributedrebirth.numberxd; 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 { private final V036Teger value; private static final Character LEFT_TO_RIGHT_MARK = 0x200E; private static final Character RIGHT_TO_LEFT_MARK = 0x200F; public Gê̄ldGetậl(BaseIteratorOctal values) { this (new V036Teger(values)); } public Gê̄ldGetậl(V036Teger value) { this.value = value; } public Gê̄ldGetậl(String money) { if (money == null) { throw new NullPointerException("Can't parse null money"); } if (money.isEmpty()) { throw new IllegalArgumentException("Can't parse zero money length"); } if (money.length() > 8) { // RL + 4 chars + 3 vowels throw new IllegalArgumentException("Money length should not exceed 8 codepoints"); } List result = new ArrayList<>(); Gê̄ldGetậlÅtHebrew geldDigit = null; for (int i=0;i 1) { deelA = result.get(1); } else { deelA = new Gê̄ldGetậlÅtHebrew(); } if (result.size() > 2) { deelB = result.get(2); } else { deelB = new Gê̄ldGetậlÅtHebrew(); } if (result.size() > 3) { deelC = result.get(3); } else { deelC = new Gê̄ldGetậlÅtHebrew(); } value = new V036Teger(); 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()); } 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 = hasHebrewLetters(nummerDeelA, nummerDeelB, nummerDeelC); double totalDecimalValue = nummerFull0.toDecimalValue(hasFourDigits); if (!Gê̄ldGetậlÅtHebrewLetter.NONE.equals(nummerDeelA.getLetter())) { totalDecimalValue += nummerDeelA.toDecimalValue(false); } if (!Gê̄ldGetậlÅtHebrewLetter.NONE.equals(nummerDeelB.getLetter())) { totalDecimalValue += nummerDeelB.toDecimalValue(false); } if (!Gê̄ldGetậlÅtHebrewLetter.NONE.equals(nummerDeelC.getLetter())) { totalDecimalValue += nummerDeelC.toDecimalValue(false); } 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() { return toHebrewString(false); } public String toHebrewString(boolean reverse) { 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(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()); if (!Gê̄ldGetậlÅtHebrewVowel.NONE.equals(nummerDeelA.getVowel())) { buf.append(nummerDeelA.getVowel().getCharacter()); } } if (!Gê̄ldGetậlÅtHebrewLetter.NONE.equals(nummerDeelB.getLetter())) { buf.append(nummerDeelB.getLetter().getCharacter()); if (!Gê̄ldGetậlÅtHebrewVowel.NONE.equals(nummerDeelB.getVowel())) { buf.append(nummerDeelB.getVowel().getCharacter()); } } if (!Gê̄ldGetậlÅtHebrewLetter.NONE.equals(nummerDeelC.getLetter())) { buf.append(nummerDeelC.getLetter().getCharacter()); if (!Gê̄ldGetậlÅtHebrewVowel.NONE.equals(nummerDeelC.getVowel())) { buf.append(nummerDeelC.getVowel().getCharacter()); } } if (reverse) { return buf.reverse().toString(); // ImGui skips RL marker so renders wrong.... } return buf.toString(); } @Override public int getMatrix1Length() { return T04PartQuad.DEFAULT.BãßĦǿɇṽḝę̃ɬḪễïđ(); } @Override public V009Tyte getValue() { return value.getTytePart(T04PartQuad.values()[matrix1]); } @Override public Gê̄ldGetậl toClone(BaseIteratorOctal values) { return new Gê̄ldGetậl(values); } @Override public BaseIteratorOctal iteratorOctalsByClone() { return value.iteratorOctalsByClone(); } }