gdxapp4d/core/src/love/distributedrebirth/numberxd/ŌṁKaassGetậl4D.java

75 lines
2 KiB
Java
Raw Normal View History

2022-01-30 22:00:16 +01:00
package love.distributedrebirth.numberxd;
2022-01-30 22:00:16 +01:00
import love.distributedrebirth.numberxd.base2t.BaseNumberTyte;
import love.distributedrebirth.numberxd.base2t.T08PartOctalBaseAppender;
import love.distributedrebirth.numberxd.base2t.T08PartOctalBaseIterator;
import love.distributedrebirth.numberxd.base2t.V009TyteBaseAppender;
2022-01-30 19:04:03 +01:00
/**
* Array of KlompGetậl sliced as cheese.
*
* @author willemtsade ©Δ 仙上主天
*
*/
2022-01-30 21:50:19 +01:00
public class ŌṁKaassGetậl4D implements BaseNumberTyte<ŌṁKaassGetậl4D> {
2022-01-30 19:04:03 +01:00
2022-01-30 21:50:19 +01:00
private ŌṁKlompGetậl4D[] kaas;
2022-01-30 19:04:03 +01:00
private final int kaasCuts;
2022-01-30 21:50:19 +01:00
public ŌṁKaassGetậl4D(int kaasCuts) {
2022-01-30 19:04:03 +01:00
this.kaasCuts = kaasCuts;
2022-01-30 21:50:19 +01:00
this.kaas = new ŌṁKlompGetậl4D[kaasCuts];
2022-01-30 19:04:03 +01:00
}
public final int getKaasCuts() {
return kaasCuts;
}
private final int validatePartRequest(int part) {
if (part < 0) {
throw new IllegalArgumentException("Requested part is negative");
}
if (part > kaasCuts) {
throw new IllegalArgumentException("Requested part exceeds kaasCuts storage");
}
return part;
}
2022-01-30 21:50:19 +01:00
public final ŌṁKlompGetậl4D getValue(int part) {
2022-01-30 19:04:03 +01:00
return kaas[validatePartRequest(part)];
}
2022-01-30 21:50:19 +01:00
public final void setValue(int part, ŌṁKlompGetậl4D value) {
2022-01-30 19:04:03 +01:00
kaas[validatePartRequest(part)] = value;
}
@Override
2022-01-30 21:50:19 +01:00
public final ŌṁKaassGetậl4D toClone() {
ŌṁKaassGetậl4D result = new ŌṁKaassGetậl4D(getKaasCuts());
2022-01-31 13:15:04 +01:00
T08PartOctalBaseIterator clonedOctals = iteratorOctalsByClone();
2022-01-30 19:04:03 +01:00
for (int i=0;i<getKaasCuts();i++) {
2022-01-30 21:50:19 +01:00
result.setValue(i, new ŌṁKlompGetậl4D(clonedOctals));
2022-01-30 19:04:03 +01:00
}
return result;
}
@Override
public final int getBitCount() {
2022-01-30 21:50:19 +01:00
return ŌṁKlompGetậl4D.BIT_COUNT * kaasCuts;
2022-01-30 19:04:03 +01:00
}
@Override
2022-01-31 13:15:04 +01:00
public final void fillOctalsByClone(T08PartOctalBaseAppender appender) {
2022-01-30 21:50:19 +01:00
for (ŌṁKlompGetậl4D value:kaas) {
2022-01-31 13:15:04 +01:00
value.fillOctalsByClone(appender);
2022-01-30 19:04:03 +01:00
}
}
@Override
2022-01-31 13:15:04 +01:00
public void fillTytesByReference(V009TyteBaseAppender appender) {
2022-01-30 21:50:19 +01:00
for (ŌṁKlompGetậl4D value:kaas) {
2022-01-31 13:15:04 +01:00
value.fillTytesByReference(appender);
2022-01-30 19:04:03 +01:00
}
}
}