Moved abacus to Listᴿᵈ interface

This commit is contained in:
Willem Cazander 2022-10-24 10:12:39 +02:00
parent be3f1a9476
commit 303f700b51
21 changed files with 101 additions and 80 deletions

View file

@ -6,7 +6,6 @@ import java.util.ResourceBundle;
import imgui.ImGui; import imgui.ImGui;
import imgui.flag.ImGuiTableFlags; import imgui.flag.ImGuiTableFlags;
import imgui.type.ImBoolean;
import imgui.type.ImInt; import imgui.type.ImInt;
import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注; import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注;
import love.distributedrebirth.bassboon.jpp.lang.number.matrix.BãßBȍőnNumberMatrixʸᴰ; import love.distributedrebirth.bassboon.jpp.lang.number.matrix.BãßBȍőnNumberMatrixʸᴰ;
@ -15,13 +14,6 @@ import love.distributedrebirth.bassboon.jpp.lang.number.matrix.NumberMatrixSet;
import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.AbstractDeskApp; import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.AbstractDeskApp;
import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.DeskAppContourSection; import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.DeskAppContourSection;
import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.DeskAppRenderer; import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.DeskAppRenderer;
import love.distributedrebirth.numberxd.base2t.Base2PartsFactory;
import love.distributedrebirth.numberxd.base2t.part.BãßBȍőnPartAlt1ʸᴰ;
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.numberxd.unicode.BaseGlyphSet;
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天") @BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
public class DemoNumberMatrixDeskApp extends AbstractDeskApp implements DeskAppRenderer { public class DemoNumberMatrixDeskApp extends AbstractDeskApp implements DeskAppRenderer {
@ -45,11 +37,9 @@ public class DemoNumberMatrixDeskApp extends AbstractDeskApp implements DeskAppR
@Override @Override
public void render() { public void render() {
List<String> bases = new ArrayList<>(); List<String> bases = new ArrayList<>();
bases.add("2"); for (int filmSequence:NumberMatrixFactory.ײاللهזأَكْبَرײ.opgenomenFilmNummers()) {
bases.add("3"); bases.add(Integer.toString(filmSequence));
bases.add("4"); }
bases.add("5");
bases.add("6");
bases.add("7"); bases.add("7");
String[] items = new String[bases.size()]; String[] items = new String[bases.size()];
items = bases.toArray(items); items = bases.toArray(items);
@ -69,7 +59,7 @@ public class DemoNumberMatrixDeskApp extends AbstractDeskApp implements DeskAppR
} }
ImGui.tableHeadersRow(); ImGui.tableHeadersRow();
for (BãßBȍőnNumberMatrixʸᴰ<?> part:numberMatrix.waardes()) { for (BãßBȍőnNumberMatrixʸᴰ<?> part:numberMatrix.waardes().iterable()) {
ImGui.tableNextRow(); ImGui.tableNextRow();
ImGui.tableNextColumn(); ImGui.tableNextColumn();

View file

@ -9,6 +9,8 @@ public enum M02MatrixBinary implements BãßBȍőnNumberMatrixʸᴰ<M02MatrixBin
M_02(0x2,0,1), M_02(0x2,0,1),
; ;
public final static M02MatrixBinary STATIC = M02MatrixBinary.M_01;
private M02MatrixBinary(int dialTone, int...args) { private M02MatrixBinary(int dialTone, int...args) {
BãßBȍőnNumberMatrixʸᴰ.Ꝑŕḯṿª.魎ᴵⁿᶦᵗ(this, dialTone, args); BãßBȍőnNumberMatrixʸᴰ.Ꝑŕḯṿª.魎ᴵⁿᶦᵗ(this, dialTone, args);
} }

View file

@ -13,6 +13,8 @@ public enum M03MatrixTrit implements BãßBȍőnNumberMatrixʸᴰ<M03MatrixTrit>
M_021(0x15,0,1,2), M_021(0x15,0,1,2),
; ;
public final static M03MatrixTrit STATIC = M03MatrixTrit.M_005;
private M03MatrixTrit(int dialTone, int...args) { private M03MatrixTrit(int dialTone, int...args) {
BãßBȍőnNumberMatrixʸᴰ.Ꝑŕḯṿª.魎ᴵⁿᶦᵗ(this, dialTone, args); BãßBȍőnNumberMatrixʸᴰ.Ꝑŕḯṿª.魎ᴵⁿᶦᵗ(this, dialTone, args);
} }

View file

@ -31,6 +31,8 @@ public enum M04MatrixQuad implements BãßBȍőnNumberMatrixʸᴰ<M04MatrixQuad>
M_0228(0x0E4,0,1,2,3), M_0228(0x0E4,0,1,2,3),
; ;
public final static M04MatrixQuad STATIC = M04MatrixQuad.M_0027;
private M04MatrixQuad(int dialTone, int...args) { private M04MatrixQuad(int dialTone, int...args) {
BãßBȍőnNumberMatrixʸᴰ.Ꝑŕḯṿª.魎ᴵⁿᶦᵗ(this, dialTone, args); BãßBȍőnNumberMatrixʸᴰ.Ꝑŕḯṿª.魎ᴵⁿᶦᵗ(this, dialTone, args);
} }

View file

@ -127,6 +127,8 @@ public enum M05MatrixPental implements BãßBȍőnNumberMatrixʸᴰ<M05MatrixPen
M_02930(0x0B72,0,1,2,3,4), M_02930(0x0B72,0,1,2,3,4),
; ;
public final static M05MatrixPental STATIC = M05MatrixPental.M_00194;
private M05MatrixPental(int dialTone, int...args) { private M05MatrixPental(int dialTone, int...args) {
BãßBȍőnNumberMatrixʸᴰ.Ꝑŕḯṿª.魎ᴵⁿᶦᵗ(this, dialTone, args); BãßBȍőnNumberMatrixʸᴰ.Ꝑŕḯṿª.魎ᴵⁿᶦᵗ(this, dialTone, args);
} }

View file

@ -727,6 +727,8 @@ public enum M06MatrixSeximal implements BãßBȍőnNumberMatrixʸᴰ<M06MatrixSe
M_044790(0x0AEF6,0,1,2,3,4,5), M_044790(0x0AEF6,0,1,2,3,4,5),
; ;
public final static M06MatrixSeximal STATIC = M06MatrixSeximal.M_001865;
private M06MatrixSeximal(int dialTone, int...args) { private M06MatrixSeximal(int dialTone, int...args) {
BãßBȍőnNumberMatrixʸᴰ.Ꝑŕḯṿª.魎ᴵⁿᶦᵗ(this, dialTone, args); BãßBȍőnNumberMatrixʸᴰ.Ꝑŕḯṿª.魎ᴵⁿᶦᵗ(this, dialTone, args);
} }

View file

@ -1,17 +1,18 @@
package love.distributedrebirth.bassboon.jpp.lang.number.matrix; package love.distributedrebirth.bassboon.jpp.lang.number.matrix;
import java.text.DecimalFormat; import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.HashMap; import java.util.HashMap;
import java.util.HashSet; import java.util.HashSet;
import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
import love.distributedrebirth.bassboon.Bãß; import love.distributedrebirth.bassboon.Bãß;
import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注; import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注;
import love.distributedrebirth.bassboon.clazz.BãßBȍőnDuytsFlüstern注; import love.distributedrebirth.bassboon.clazz.BãßBȍőnDuytsFlüstern注;
import love.distributedrebirth.bassboon.jpp.util.ArrayListᴿᵂ;
import love.distributedrebirth.bassboon.jpp.util.Listᴿᵈ;
import love.distributedrebirth.bassboon.jpp.util.Listᵂʳ;
import love.distributedrebirth.bassboon.yd.abacus.BãßBȍőnAbacusInstanceMBeanʸᴰ; import love.distributedrebirth.bassboon.yd.abacus.BãßBȍőnAbacusInstanceMBeanʸᴰ;
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天") @BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
@ -45,35 +46,37 @@ public enum NumberMatrixFactory implements BãßBȍőnAbacusInstanceMBeanʸᴰ<N
throw new IllegalArgumentException("Dimension smaller than 2 are not supported"); throw new IllegalArgumentException("Dimension smaller than 2 are not supported");
} }
if (dimension == 2) { if (dimension == 2) {
return new NumberMatrixSetEnum(M02MatrixBinary.values()); return new NumberMatrixSetEnum(M02MatrixBinary.STATIC.teŀráàmWaardes());
} else if (dimension == 3) { } else if (dimension == 3) {
return new NumberMatrixSetEnum(M03MatrixTrit.values()); return new NumberMatrixSetEnum(M03MatrixTrit.STATIC.teŀráàmWaardes());
} else if (dimension == 4) { } else if (dimension == 4) {
return new NumberMatrixSetEnum(M04MatrixQuad.values()); return new NumberMatrixSetEnum(M04MatrixQuad.STATIC.teŀráàmWaardes());
} else if (dimension == 5) { } else if (dimension == 5) {
return new NumberMatrixSetEnum(M05MatrixPental.values()); return new NumberMatrixSetEnum(M05MatrixPental.STATIC.teŀráàmWaardes());
} else if (dimension == 6) { } else if (dimension == 6) {
return new NumberMatrixSetEnum(M06MatrixSeximal.values()); return new NumberMatrixSetEnum(M06MatrixSeximal.STATIC.teŀráàmWaardes());
} }
return buildMatrixSetSpaceX(dimension); return buildMatrixSetSpaceX(dimension);
} }
static final class NumberMatrixSetEnum implements NumberMatrixSet { static final class NumberMatrixSetEnum implements NumberMatrixSet {
private final BãßBȍőnNumberMatrixʸᴰ<?>[] values; private final Listᴿᵈ<BãßBȍőnNumberMatrixʸᴰ<?>> values;
protected NumberMatrixSetEnum(BãßBȍőnNumberMatrixʸᴰ<?>[] values) { @SuppressWarnings("unchecked")
this.values = values; protected <T extends BãßBȍőnNumberMatrixʸᴰ<T>> NumberMatrixSetEnum(Listᴿᵈ<T> values) {
this.values = (Listᴿᵈ<BãßBȍőnNumberMatrixʸᴰ<?>>) values;
} }
@Override @Override
public int geefDimensie() { public int geefDimensie() {
return values[0].teŀráàmMatrixDimensie(); return values.getᴿᵈ(0).teŀráàmMatrixDimensie();
} }
@SuppressWarnings("unchecked")
@Override @Override
public BãßBȍőnNumberMatrixʸᴰ<?>[] waardes() { public <T extends BãßBȍőnNumberMatrixʸᴰ<T>> Listᴿᵈ<T> waardes() {
return values; return (Listᴿᵈ<T>) values;
} }
} }
@ -120,27 +123,19 @@ public enum NumberMatrixFactory implements BãßBȍőnAbacusInstanceMBeanʸᴰ<N
} }
cnt++; cnt++;
} }
result.initSet();
return result; return result;
} }
static final class NumberMatrixSetDimension implements NumberMatrixSet { static final class NumberMatrixSetDimension implements NumberMatrixSet {
private final int dimension; private final int dimension;
private List<Abacus> setInit = new ArrayList<>(); private Listᵂʳ<Abacus> values = new ArrayListᴿᵂ<>();
private Abacus[] values;
protected NumberMatrixSetDimension(int dimension) { protected NumberMatrixSetDimension(int dimension) {
this.dimension = dimension; this.dimension = dimension;
} }
protected void initSet() {
this.values = setInit.toArray(new Abacus[setInit.size()]);
this.setInit.clear();
this.setInit = null;
}
protected void createAbacus(int itemOrdinal, String itemName, int dialTone, int...args) { protected void createAbacus(int itemOrdinal, String itemName, int dialTone, int...args) {
setInit.add(new Abacus(itemOrdinal, itemName, dialTone, args)); values.addᵂʳ(new Abacus(itemOrdinal, itemName, dialTone, args));
} }
@Override @Override
@ -148,9 +143,10 @@ public enum NumberMatrixFactory implements BãßBȍőnAbacusInstanceMBeanʸᴰ<N
return dimension; return dimension;
} }
@SuppressWarnings("unchecked")
@Override @Override
public BãßBȍőnNumberMatrixʸᴰ<?>[] waardes() { public <T extends BãßBȍőnNumberMatrixʸᴰ<T>> Listᴿᵈ<T> waardes() {
return values; return (Listᴿᵈ<T>) values;
} }
@BãßBȍőnNumberMatrix注(dimension = -1) @BãßBȍőnNumberMatrix注(dimension = -1)
@ -176,7 +172,7 @@ public enum NumberMatrixFactory implements BãßBȍőnAbacusInstanceMBeanʸᴰ<N
} }
@Override @Override
public Abacus[] teŀráàmWaardes() { public Listᴿᵈ<Abacus> teŀráàmWaardes() {
return values; return values;
} }

View file

@ -2,6 +2,7 @@ package love.distributedrebirth.bassboon.jpp.lang.number.matrix;
import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注; import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注;
import love.distributedrebirth.bassboon.clazz.BãßBȍőnDuytschen注; import love.distributedrebirth.bassboon.clazz.BãßBȍőnDuytschen注;
import love.distributedrebirth.bassboon.jpp.util.Listᴿᵈ;
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天") @BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
public interface NumberMatrixSet { public interface NumberMatrixSet {
@ -10,5 +11,5 @@ public interface NumberMatrixSet {
int geefDimensie(); int geefDimensie();
@BãßBȍőnDuytschen注(中國 = "價值觀", BASIC = "VALUES", 𓃬𓍄𓋹𓀭 = "𓅱𓅂𓃭𓅱𓋴") @BãßBȍőnDuytschen注(中國 = "價值觀", BASIC = "VALUES", 𓃬𓍄𓋹𓀭 = "𓅱𓅂𓃭𓅱𓋴")
BãßBȍőnNumberMatrixʸᴰ<?>[] waardes(); <T extends BãßBȍőnNumberMatrixʸᴰ<T>> Listᴿᵈ<T> waardes();
} }

View file

@ -1,6 +1,7 @@
package love.distributedrebirth.bassboon.jpp.util; package love.distributedrebirth.bassboon.jpp.util;
import java.util.Spliterator; import java.util.Spliterator;
import java.util.Spliterators;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import java.util.stream.Stream; import java.util.stream.Stream;
import java.util.stream.StreamSupport; import java.util.stream.StreamSupport;
@ -31,7 +32,7 @@ public interface Collectionᴿᵈ<E> extends Iterableᴿᵈ<E> {
} }
default Spliterator<E> spliteratorᴿᵈ() { default Spliterator<E> spliteratorᴿᵈ() {
return streamᴿᵈ().spliterator(); return Spliterators.spliteratorUnknownSize(iteratorᴿᵈ().iteratorᴼᶠ(), Spliterator.ORDERED);
} }
default Object[] toArrayᴿᵈ() { default Object[] toArrayᴿᵈ() {

View file

@ -1,5 +1,6 @@
package love.distributedrebirth.bassboon.jpp.util; package love.distributedrebirth.bassboon.jpp.util;
import java.util.Iterator;
import java.util.Spliterator; import java.util.Spliterator;
import java.util.Spliterators; import java.util.Spliterators;
import java.util.function.Consumer; import java.util.function.Consumer;
@ -18,4 +19,14 @@ public interface Iterableᴿᵈ<E> {
default Spliterator<E> spliteratorᴿᵈ() { default Spliterator<E> spliteratorᴿᵈ() {
return Spliterators.spliteratorUnknownSize(iteratorᴿᵈ().iteratorᴼᶠ(), Spliterator.ORDERED); return Spliterators.spliteratorUnknownSize(iteratorᴿᵈ().iteratorᴼᶠ(), Spliterator.ORDERED);
} }
default Iterable<E> iterable() {
return new Iterable<>() {
@Override
public Iterator<E> iterator() {
return iteratorᴿᵈ().iteratorᴼᶠ();
}
};
}
} }

View file

@ -3,6 +3,7 @@ package love.distributedrebirth.bassboon.yd.abacus;
import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注; import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注;
import love.distributedrebirth.bassboon.clazz.BãßBȍőnDuytsFlüstern注; import love.distributedrebirth.bassboon.clazz.BãßBȍőnDuytsFlüstern注;
import love.distributedrebirth.bassboon.clazz.BãßBȍőnDuytschen注; import love.distributedrebirth.bassboon.clazz.BãßBȍőnDuytschen注;
import love.distributedrebirth.bassboon.jpp.util.Listᴿᵈ;
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天") @BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
@BãßBȍőnDuytsFlüstern注(purpose = "The manual octopussy calculator.") @BãßBȍőnDuytsFlüstern注(purpose = "The manual octopussy calculator.")
@ -22,7 +23,7 @@ public interface BãßBȍőnAbacus<T> {
int rȧñkTelEen(); int rȧñkTelEen();
@BãßBȍőnDuytschen注(中國 = "算盤 籙", BASIC = "ABACUS_VALUES", 𓃬𓍄𓋹𓀭 = "𓅂𓃀𓅂𓎡𓅱𓋴 𓅱𓅂𓃭𓅱𓋴") @BãßBȍőnDuytschen注(中國 = "算盤 籙", BASIC = "ABACUS_VALUES", 𓃬𓍄𓋹𓀭 = "𓅂𓃀𓅂𓎡𓅱𓋴 𓅱𓅂𓃭𓅱𓋴")
T[] teŀráàmWaardes(); Listᴿᵈ<T> teŀráàmWaardes();
@BãßBȍőnDuytschen注(中國 = "算盤 尺寸", BASIC = "ABACUS_SIZE", 𓃬𓍄𓋹𓀭 = "𓅂𓃀𓅂𓎡𓅱𓋴 𓋴𓇋 𓋊") @BãßBȍőnDuytschen注(中國 = "算盤 尺寸", BASIC = "ABACUS_SIZE", 𓃬𓍄𓋹𓀭 = "𓅂𓃀𓅂𓎡𓅱𓋴 𓋴𓇋 𓋊")
int teŀráàmGroote(); int teŀráàmGroote();

View file

@ -16,6 +16,8 @@ import love.distributedrebirth.bassboon.clazz.pirate.BãßBȍőnPirateʸᴰ;
import love.distributedrebirth.bassboon.clazz.pirate.BãßBȍőnꝐŕḯṿª; import love.distributedrebirth.bassboon.clazz.pirate.BãßBȍőnꝐŕḯṿª;
import love.distributedrebirth.bassboon.death.spider.BãßBȍőnSpiderWire注; import love.distributedrebirth.bassboon.death.spider.BãßBȍőnSpiderWire注;
import love.distributedrebirth.bassboon.jpp.lang.StringGhostKey; import love.distributedrebirth.bassboon.jpp.lang.StringGhostKey;
import love.distributedrebirth.bassboon.jpp.util.ArrayListᴿᵂ;
import love.distributedrebirth.bassboon.jpp.util.Listᴿᵈ;
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天") @BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
public interface BãßBȍőnAbacusEnumBaseʸᴰ<T extends BãßBȍőnʸᴰ<T> & AbacusEnum & BãßBȍőnAbacus<T>> extends AbacusEnum, BãßBȍőnAbacus<T>, DefaultBãßBȍőnʸᴰ<T> { public interface BãßBȍőnAbacusEnumBaseʸᴰ<T extends BãßBȍőnʸᴰ<T> & AbacusEnum & BãßBȍőnAbacus<T>> extends AbacusEnum, BãßBȍőnAbacus<T>, DefaultBãßBȍőnʸᴰ<T> {
@ -26,6 +28,7 @@ public interface BãßBȍőnAbacusEnumBaseʸᴰ<T extends BãßBȍőnʸᴰ<T> &
private static final StringGhostKey GHOST_LENGTH = StringGhostKey.asciiᴳʰᵒˢᵗ(); private static final StringGhostKey GHOST_LENGTH = StringGhostKey.asciiᴳʰᵒˢᵗ();
private static final StringGhostKey GHOST_RANK_RING_TONE = StringGhostKey.asciiᴳʰᵒˢᵗ(); private static final StringGhostKey GHOST_RANK_RING_TONE = StringGhostKey.asciiᴳʰᵒˢᵗ();
private static final StringGhostKey GHOST_MAP_TONE = StringGhostKey.asciiᴳʰᵒˢᵗ(); private static final StringGhostKey GHOST_MAP_TONE = StringGhostKey.asciiᴳʰᵒˢᵗ();
private static final StringGhostKey GHOST_ENUM_LIST = StringGhostKey.asciiᴳʰᵒˢᵗ();
@BãßBȍőnSpiderWire注 @BãßBȍőnSpiderWire注
private BãßBȍőnAbacusEnumBaseʸᴰ<?> boon; private BãßBȍőnAbacusEnumBaseʸᴰ<?> boon;
@ -45,6 +48,7 @@ public interface BãßBȍőnAbacusEnumBaseʸᴰ<T extends BãßBȍőnʸᴰ<T> &
@Override @Override
public void lock() { public void lock() {
boon.teŀráàmWaardes();
boon.teŀráàmGroote(); boon.teŀráàmGroote();
boon.teŀráàmWaardeVanRingToon(boon.rȧñkRingToon()); boon.teŀráàmWaardeVanRingToon(boon.rȧñkRingToon());
} }
@ -74,7 +78,7 @@ public interface BãßBȍőnAbacusEnumBaseʸᴰ<T extends BãßBȍőnʸᴰ<T> &
default int teŀráàmGroote() { default int teŀráàmGroote() {
Integer result = toBBC().UNHOLY(Ꝑŕḯṿª.class).GHOST_INT(Ꝑŕḯṿª.GHOST_LENGTH); Integer result = toBBC().UNHOLY(Ꝑŕḯṿª.class).GHOST_INT(Ꝑŕḯṿª.GHOST_LENGTH);
if (result == null) { if (result == null) {
result = teŀráàmWaardes().length; result = teŀráàmWaardes().sizeᴿᵈ();
toBBC().UNHOLY_SPELL(Ꝑŕḯṿª.class).PUT_GHOST(Ꝑŕḯṿª.GHOST_LENGTH, result); toBBC().UNHOLY_SPELL(Ꝑŕḯṿª.class).PUT_GHOST(Ꝑŕḯṿª.GHOST_LENGTH, result);
} }
return result; return result;
@ -82,21 +86,29 @@ public interface BãßBȍőnAbacusEnumBaseʸᴰ<T extends BãßBȍőnʸᴰ<T> &
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
@Override @Override
default T[] teŀráàmWaardes() { default Listᴿᵈ<T> teŀráàmWaardes() {
Listᴿᵈ<T> result = toBBC().UNHOLY(Ꝑŕḯṿª.class).GHOST_OBJ(Ꝑŕḯṿª.GHOST_ENUM_LIST, Listᴿᵈ.class);
if (result!=null) {
return result;
}
if (!getClass().isEnum()) { if (!getClass().isEnum()) {
throw new IllegalArgumentException("Class is not an enum: "+getClass()); throw new IllegalArgumentException("Class is not an enum: "+getClass());
} }
return (T[]) getClass().getEnumConstants(); // note: highly unholy, but without it is not an abacus // note: highly unholy, but without it is not an abacus
List<T> values = Arrays.asList((T[]) getClass().getEnumConstants());
result = new ArrayListᴿᵂ<>(values);
toBBC().UNHOLY_SPELL(Ꝑŕḯṿª.class).PUT_GHOST(Ꝑŕḯṿª.GHOST_ENUM_LIST, result);
return result;
} }
@BãßBȍőnDuytschen注(中國 = "算盤 籙 列表", BASIC = "ABACUS_VALUES_LIST", 𓃬𓍄𓋹𓀭 = "𓅂𓃀𓅂𓎡𓅱𓋴 𓅱𓅂𓃭𓅱𓋴 𓃭𓇋𓋴𓈏") // @BãßBȍőnDuytschen注(中國 = "算盤 籙 列表", BASIC = "ABACUS_VALUES_LIST", 𓃬𓍄𓋹𓀭 = "𓅂𓃀𓅂𓎡𓅱𓋴 𓅱𓅂𓃭𓅱𓋴 𓃭𓇋𓋴𓈏")
default List<T> teŀráàmWaardesLijst() { // default List<T> teŀráàmWaardesLijst() {
return Arrays.asList(teŀráàmWaardes()); // return teŀráàmWaardes();
} // }
@BãßBȍőnDuytschen注(中國 = "算盤 籙 至 地圖", BASIC = "ABACUS_VALUES_TO_MAP", 𓃬𓍄𓋹𓀭 = "𓅂𓃀𓅂𓎡𓅱𓋴 𓅱𓅂𓃭𓅱𓋴 𓅲 𓅕𓅂𓉱") @BãßBȍőnDuytschen注(中國 = "算盤 籙 至 地圖", BASIC = "ABACUS_VALUES_TO_MAP", 𓃬𓍄𓋹𓀭 = "𓅂𓃀𓅂𓎡𓅱𓋴 𓅱𓅂𓃭𓅱𓋴 𓅲 𓅕𓅂𓉱")
default Map<String,T> teŀráàmWaardesNaarMap(Function<T,String> keyMapper) { default Map<String,T> teŀráàmWaardesNaarMap(Function<T,String> keyMapper) {
return teŀráàmWaardesLijst().stream().collect(Collectors.toMap(keyMapper, v -> v)); return teŀráàmWaardes().streamᴿᵈ().collect(Collectors.toMap(keyMapper, v -> v));
} }
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")

View file

@ -10,6 +10,6 @@ public interface BãßBȍőnAbacusInstanceʸᴰ<T extends BãßBȍőnʸᴰ<T> &
@BãßBȍőnDuytschen注(中國 = "算盤", BASIC = "ABACUS", 𓃬𓍄𓋹𓀭 = "𓅂𓃀𓅂𓎡𓅱𓋴") @BãßBȍőnDuytschen注(中國 = "算盤", BASIC = "ABACUS", 𓃬𓍄𓋹𓀭 = "𓅂𓃀𓅂𓎡𓅱𓋴")
default T teŀráàm() { default T teŀráàm() {
return teŀráàmWaardes()[Bãß.ℭỗᶇṧⱦᶏꬼȶʂ.INT_ZERO]; return teŀráàmWaardes().getᴿᵈ(Bãß.ℭỗᶇṧⱦᶏꬼȶʂ.INT_ZERO);
} }
} }

View file

@ -6,57 +6,56 @@ import love.distributedrebirth.bassboon.Bãß;
import love.distributedrebirth.bassboon.BãßBȍőnʸᴰ; import love.distributedrebirth.bassboon.BãßBȍőnʸᴰ;
import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注; import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注;
import love.distributedrebirth.bassboon.clazz.BãßBȍőnDuytschen注; import love.distributedrebirth.bassboon.clazz.BãßBȍőnDuytschen注;
import love.distributedrebirth.bassboon.jpp.util.Listᴿᵈ;
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天") @BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
public interface BãßBȍőnAbacusSetʸᴰ<T extends BãßBȍőnʸᴰ<T> & AbacusEnum & BãßBȍőnAbacus<T>> extends BãßBȍőnAbacusEnumBaseʸᴰ<T> { public interface BãßBȍőnAbacusSetʸᴰ<T extends BãßBȍőnʸᴰ<T> & AbacusEnum & BãßBȍőnAbacus<T>> extends BãßBȍőnAbacusEnumBaseʸᴰ<T> {
@BãßBȍőnDuytschen注(中國 = "算盤 討厭 第一的", BASIC = "RANK_TO_FIRST", 𓃬𓍄𓋹𓀭 = "𓂏𓅃𓈁𓎡 𓅲 𓊲𓇋𓁹𓆘𓋶") @BãßBȍőnDuytschen注(中國 = "算盤 討厭 第一的", BASIC = "RANK_TO_FIRST", 𓃬𓍄𓋹𓀭 = "𓂏𓅃𓈁𓎡 𓅲 𓊲𓇋𓁹𓆘𓋶")
default T rȧñkNaarEerste() { default T rȧñkNaarEerste() {
return teŀráàmWaardes()[Bãß.ℭỗᶇṧⱦᶏꬼȶʂ.INT_ZERO]; return teŀráàmWaardes().getᴿᵈ(Bãß.ℭỗᶇṧⱦᶏꬼȶʂ.INT_ZERO);
} }
@BãßBȍőnDuytschen注(中國 = "算盤 討厭 最後的", BASIC = "RANK_TO_LAST", 𓃬𓍄𓋹𓀭 = "𓂏𓅃𓈁𓎡 𓅲 𓆅𓅃𓆘𓋶") @BãßBȍőnDuytschen注(中國 = "算盤 討厭 最後的", BASIC = "RANK_TO_LAST", 𓃬𓍄𓋹𓀭 = "𓂏𓅃𓈁𓎡 𓅲 𓆅𓅃𓆘𓋶")
default T rȧñkNaarLaatste() { default T rȧñkNaarLaatste() {
T[] values = teŀráàmWaardes(); Listᴿᵈ<T> values = teŀráàmWaardes();
return values[values.length - Bãß.ℭỗᶇṧⱦᶏꬼȶʂ.INT_ONE]; return values.getᴿᵈ(values.sizeᴿᵈ() - Bãß.ℭỗᶇṧⱦᶏꬼȶʂ.INT_ONE);
} }
@BãßBȍőnDuytschen注(中國 = "算盤 討厭 比鄰", BASIC = "RANK_TO_NEXT", 𓃬𓍄𓋹𓀭 = "𓂏𓅃𓈁𓎡 𓅲 𓌒𓎡𓋶𓌟") @BãßBȍőnDuytschen注(中國 = "算盤 討厭 比鄰", BASIC = "RANK_TO_NEXT", 𓃬𓍄𓋹𓀭 = "𓂏𓅃𓈁𓎡 𓅲 𓌒𓎡𓋶𓌟")
default T rȧñkNaarVolgende() { default T rȧñkNaarVolgende() {
T[] values = teŀráàmWaardes(); Listᴿᵈ<T> values = teŀráàmWaardes();
int resultIndex = Bãß.ℭỗᶇṧⱦᶏꬼȶʂ.INT_ZERO; int resultIndex = Bãß.ℭỗᶇṧⱦᶏꬼȶʂ.INT_ZERO;
for (int i=Bãß.ℭỗᶇṧⱦᶏꬼȶʂ.INT_ZERO;i<values.length;i++) { for (int i=Bãß.ℭỗᶇṧⱦᶏꬼȶʂ.INT_ZERO;i<values.sizeᴿᵈ();i++) {
if (this == values[i]) { if (this == values.getᴿᵈ(i)) {
resultIndex = i + Bãß.ℭỗᶇṧⱦᶏꬼȶʂ.INT_ONE; resultIndex = i + Bãß.ℭỗᶇṧⱦᶏꬼȶʂ.INT_ONE;
break; break;
} }
} }
if (resultIndex == values.length) { if (resultIndex == values.sizeᴿᵈ()) {
resultIndex = Bãß.ℭỗᶇṧⱦᶏꬼȶʂ.INT_ZERO; resultIndex = Bãß.ℭỗᶇṧⱦᶏꬼȶʂ.INT_ZERO;
} }
return values[resultIndex]; return values.getᴿᵈ(resultIndex);
} }
@BãßBȍőnDuytschen注(中國 = "算盤 討厭 以前的", BASIC = "RANK_TO_PREVIOUS", 𓃬𓍄𓋹𓀭 = "𓂏𓅃𓈁𓎡 𓅲 𓉯𓏓𓅦𓇏𓅱") @BãßBȍőnDuytschen注(中國 = "算盤 討厭 以前的", BASIC = "RANK_TO_PREVIOUS", 𓃬𓍄𓋹𓀭 = "𓂏𓅃𓈁𓎡 𓅲 𓉯𓏓𓅦𓇏𓅱")
default T rȧñkNaarVorige() { default T rȧñkNaarVorige() {
T[] values = teŀráàmWaardes(); Listᴿᵈ<T> values = teŀráàmWaardes();
int resultIndex = Bãß.ℭỗᶇṧⱦᶏꬼȶʂ.INT_ZERO; int resultIndex = Bãß.ℭỗᶇṧⱦᶏꬼȶʂ.INT_ZERO;
for (int i=Bãß.ℭỗᶇṧⱦᶏꬼȶʂ.INT_ZERO;i<values.length;i++) { for (int i=Bãß.ℭỗᶇṧⱦᶏꬼȶʂ.INT_ZERO;i<values.sizeᴿᵈ();i++) {
if (this == values[i]) { if (this == values.getᴿᵈ(i)) {
resultIndex = i - Bãß.ℭỗᶇṧⱦᶏꬼȶʂ.INT_ONE; resultIndex = i - Bãß.ℭỗᶇṧⱦᶏꬼȶʂ.INT_ONE;
break; break;
} }
} }
if (resultIndex < Bãß.ℭỗᶇṧⱦᶏꬼȶʂ.INT_ZERO) { if (resultIndex < Bãß.ℭỗᶇṧⱦᶏꬼȶʂ.INT_ZERO) {
resultIndex = values.length - Bãß.ℭỗᶇṧⱦᶏꬼȶʂ.INT_ONE; resultIndex = values.sizeᴿᵈ() - Bãß.ℭỗᶇṧⱦᶏꬼȶʂ.INT_ONE;
} }
return values[resultIndex]; return values.getᴿᵈ(resultIndex);
} }
@BãßBȍőnDuytschen注(中國 = "算盤 對於 每個", BASIC = "ABACUS_FOR_EACH", 𓃬𓍄𓋹𓀭 = "𓅂𓃀𓅂𓎡𓅱𓋴 𓆑𓁹 𓇋𓏀") @BãßBȍőnDuytschen注(中國 = "算盤 對於 每個", BASIC = "ABACUS_FOR_EACH", 𓃬𓍄𓋹𓀭 = "𓅂𓃀𓅂𓎡𓅱𓋴 𓆑𓁹 𓇋𓏀")
default void teŀráàmVoorElk(Consumer<T> consumer) { default void teŀráàmVoorElk(Consumer<T> consumer) {
for (T value:teŀráàmWaardes()) { teŀráàmWaardes().forEachᴿᵈ(consumer);
consumer.accept(value);
}
} }
} }

View file

@ -31,7 +31,7 @@ public class NumberMatrixFactoryTest {
for (int i=2;i<4;i++) { for (int i=2;i<4;i++) {
NumberMatrixSet film = NumberMatrixFactory.ײاللهזأَكْبَرײ.geefFilmSet(i); NumberMatrixSet film = NumberMatrixFactory.ײاللهזأَكْبَرײ.geefFilmSet(i);
Assertions.assertEquals(i, film.geefDimensie()); Assertions.assertEquals(i, film.geefDimensie());
Assertions.assertEquals(film.waardes().length, film.waardes()[0].teŀráàmGroote()); Assertions.assertEquals(film.waardes().sizeᴿᵈ(), film.waardes().getᴿᵈ(0).teŀráàmGroote());
} }
} }
} }

View file

@ -18,7 +18,7 @@ public class WavẽWorstGetậl1ⁿᴰ extends AbstractBaseGetậlMatrix1<Wavẽ
public WavẽWorstGetậl1ⁿᴰ(BãßBȍőnPartʸᴰ<?> worstCut) { public WavẽWorstGetậl1ⁿᴰ(BãßBȍőnPartʸᴰ<?> worstCut) {
this.worstCut = worstCut; this.worstCut = worstCut;
this.worstCutLength = worstCut.teŀráàmWaardes().length; this.worstCutLength = worstCut.teŀráàmWaardes().sizeᴿᵈ();
this.values = new V0x0013B0ˣᴸ[this.worstCutLength]; this.values = new V0x0013B0ˣᴸ[this.worstCutLength];
for (int i=0;i<this.values.length;i++) { for (int i=0;i<this.values.length;i++) {
this.values[i] = new V0x0013B0ˣᴸ(); this.values[i] = new V0x0013B0ˣᴸ();
@ -27,7 +27,7 @@ public class WavẽWorstGetậl1ⁿᴰ extends AbstractBaseGetậlMatrix1<Wavẽ
public WavẽWorstGetậl1ⁿᴰ(BãßBȍőnPartʸᴰ<?> worstCut, BaseIteratorOctal values) { public WavẽWorstGetậl1ⁿᴰ(BãßBȍőnPartʸᴰ<?> worstCut, BaseIteratorOctal values) {
this.worstCut = worstCut; this.worstCut = worstCut;
this.worstCutLength = worstCut.teŀráàmWaardes().length; this.worstCutLength = worstCut.teŀráàmWaardes().sizeᴿᵈ();
this.values = new V0x0013B0ˣᴸ[this.worstCutLength]; this.values = new V0x0013B0ˣᴸ[this.worstCutLength];
for (int i=0;i<this.values.length;i++) { for (int i=0;i<this.values.length;i++) {
this.values[i] = new V0x0013B0ˣᴸ(values); this.values[i] = new V0x0013B0ˣᴸ(values);

View file

@ -20,9 +20,9 @@ public class WavẽWorstGetậl2ⁿᴰ extends AbstractBaseGetậlMatrix2<Wavẽ
public WavẽWorstGetậl2ⁿᴰ(BãßBȍőnPartʸᴰ<?> worstCut, BãßBȍőnPartʸᴰ<?> worstChannel) { public WavẽWorstGetậl2ⁿᴰ(BãßBȍőnPartʸᴰ<?> worstCut, BãßBȍőnPartʸᴰ<?> worstChannel) {
this.worstCut = worstCut; this.worstCut = worstCut;
this.worstCutLength = worstCut.teŀráàmWaardes().length; this.worstCutLength = worstCut.teŀráàmWaardes().sizeᴿᵈ();
this.worstChannel = worstChannel; this.worstChannel = worstChannel;
this.worstChannelLength = worstChannel.teŀráàmWaardes().length; this.worstChannelLength = worstChannel.teŀráàmWaardes().sizeᴿᵈ();
this.values = new V0x0013B0ˣᴸ[this.worstCutLength][this.worstChannelLength]; this.values = new V0x0013B0ˣᴸ[this.worstCutLength][this.worstChannelLength];
for (int x=0;x<this.worstCutLength;x++) { for (int x=0;x<this.worstCutLength;x++) {
for (int y=0;y<this.worstChannelLength;y++) { for (int y=0;y<this.worstChannelLength;y++) {
@ -33,9 +33,9 @@ public class WavẽWorstGetậl2ⁿᴰ extends AbstractBaseGetậlMatrix2<Wavẽ
public WavẽWorstGetậl2ⁿᴰ(BãßBȍőnPartʸᴰ<?> worstCut, BãßBȍőnPartʸᴰ<?> worstChannel, BaseIteratorOctal values) { public WavẽWorstGetậl2ⁿᴰ(BãßBȍőnPartʸᴰ<?> worstCut, BãßBȍőnPartʸᴰ<?> worstChannel, BaseIteratorOctal values) {
this.worstCut = worstCut; this.worstCut = worstCut;
this.worstCutLength = worstCut.teŀráàmWaardes().length; this.worstCutLength = worstCut.teŀráàmWaardes().sizeᴿᵈ();
this.worstChannel = worstChannel; this.worstChannel = worstChannel;
this.worstChannelLength = worstChannel.teŀráàmWaardes().length; this.worstChannelLength = worstChannel.teŀráàmWaardes().sizeᴿᵈ();
this.values = new V0x0013B0ˣᴸ[this.worstCutLength][this.worstChannelLength]; this.values = new V0x0013B0ˣᴸ[this.worstCutLength][this.worstChannelLength];
for (int x=0;x<this.worstCutLength;x++) { for (int x=0;x<this.worstCutLength;x++) {
for (int y=0;y<this.worstChannelLength;y++) { for (int y=0;y<this.worstChannelLength;y++) {

View file

@ -99,8 +99,8 @@ public class ŌctopǔsALU {
var valResultNum = valANum + valBNum; var valResultNum = valANum + valBNum;
if (valResultNum > valA.teŀráàmWaardes().length) { if (valResultNum > valA.teŀráàmWaardes().sizeᴿᵈ()) {
valResultNum = valA.teŀráàmWaardes().length -1; valResultNum = valA.teŀráàmWaardes().sizeᴿᵈ() -1;
} }
T08PartOctal valResult = T08PartOctal.values()[valResultNum]; T08PartOctal valResult = T08PartOctal.values()[valResultNum];

View file

@ -73,7 +73,7 @@ public enum Base2WarpCore implements BãßBȍőnAbacusInstanceMBeanʸᴰ<Base2Wa
for (int base:Base2PartsFactory.INSTANCE.BãßBases()) { for (int base:Base2PartsFactory.INSTANCE.BãßBases()) {
WaterCipherHeart heart = new WaterCipherHeart(); WaterCipherHeart heart = new WaterCipherHeart();
BãßBȍőnPartʸᴰ<?>[] bases = Base2PartsFactory.INSTANCE.BãßBuildPartsByBase(base); BãßBȍőnPartʸᴰ<?>[] bases = Base2PartsFactory.INSTANCE.BãßBuildPartsByBase(base);
heart.setBass(bases[0].teŀráàmWaardes().length); heart.setBass(bases[0].teŀráàmWaardes().sizeᴿᵈ());
for (BãßBȍőnPartʸᴰ<?> part:bases) { for (BãßBȍőnPartʸᴰ<?> part:bases) {
WaterCipherHeartTone tone = new WaterCipherHeartTone(); WaterCipherHeartTone tone = new WaterCipherHeartTone();
tone.setPart(part.rȧñkNaam()); tone.setPart(part.rȧñkNaam());

View file

@ -34,7 +34,7 @@ public enum BaseGlyphSet implements BãßBȍőnAbacusSetMBeanʸᴰ<BaseGlyphSet>
if (T10PartDecimal.PART_10 == x) { if (T10PartDecimal.PART_10 == x) {
v.add("ten"); v.add("ten");
} else { } else {
v.add(T10PartDecimal.STATIC.teŀráàmWaardes()[x.rȧñkTelEen()].rȧñkChinaWaarde()); // 1 to 9 v.add(T10PartDecimal.STATIC.teŀráàmWaardes().getᴿᵈ(x.rȧñkTelEen()).rȧñkChinaWaarde()); // 1 to 9
} }
}), "twenty", "thirty", "forty", "fifty", "sixty", "seventy", "eighty", "ninety", }), "twenty", "thirty", "forty", "fifty", "sixty", "seventy", "eighty", "ninety",
"one hundred", "two hundred", "three hundred", "four hundred", "five hundred", "six hundred", "seven hundred", "eight hundred", "nine hundred")), "one hundred", "two hundred", "three hundred", "four hundred", "five hundred", "six hundred", "seven hundred", "eight hundred", "nine hundred")),

View file

@ -105,7 +105,7 @@ public class NumberXDModuleLoader implements X4OLanguageModuleLoader {
} }
private void configBãßBȍőnPartAttributes(X4OLanguage language,ElementClass ec, BãßBȍőnPartʸᴰ<?> basePart) throws X4OLanguageModuleLoaderException { private void configBãßBȍőnPartAttributes(X4OLanguage language,ElementClass ec, BãßBȍőnPartʸᴰ<?> basePart) throws X4OLanguageModuleLoaderException {
for (BãßBȍőnPartʸᴰ<?> part: basePart.teŀráàmWaardes()) { for (BãßBȍőnPartʸᴰ<?> part: basePart.teŀráàmWaardes().iterable()) {
ec.addElementClassAttribute(createElementClassAttribute(language,part.rȧñkChinaSleutel(),true,new BãßBȍőnPartDialToneConverter(part))); ec.addElementClassAttribute(createElementClassAttribute(language,part.rȧñkChinaSleutel(),true,new BãßBȍőnPartDialToneConverter(part)));
} }
} }