FC18: Clean unicode renderer methods to just one renderer method
This commit is contained in:
parent
99bce14fd1
commit
5cfb4893db
21 changed files with 103 additions and 115 deletions
|
|
@ -33,8 +33,6 @@ import java.util.function.Consumer;
|
|||
|
||||
import org.x4o.fc18.cake2.FourCornerDotCake;
|
||||
import org.x4o.fc18.cake2.FourCornerX00PetitVide;
|
||||
import org.x4o.fc18.cake2.FourCornerX06BaklavaPointSequence;
|
||||
import org.x4o.fc18.cake2.FourCornerX18CakePointSequence;
|
||||
import org.x4o.fc18.cake2.pie9d.FCDotPIE9DDash09;
|
||||
import org.x4o.fc18.cake2.zero33.FCDotCDC1604DashP6;
|
||||
import org.x4o.fc18.zion7.FourCornerZion7Candlelier;
|
||||
|
|
@ -95,35 +93,11 @@ public class FourCornerUnicodeDisplay {
|
|||
return buf.toString();
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
public String renderFromX06(List<FourCornerX06BaklavaPointSequence> chars) {
|
||||
return buildString(v -> renderFromX06(chars, v));
|
||||
public String render(List<Integer> chars) {
|
||||
return buildString(v -> render(chars, v));
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
public void renderFromX06(List<FourCornerX06BaklavaPointSequence> chars, StringBuilder buf) {
|
||||
List<Integer> charPoints = new ArrayList<>(chars.size());
|
||||
chars.forEach(v -> charPoints.addAll(v.baklavaPointSequence()));
|
||||
renderFromInt18(charPoints, buf);
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
public String renderFromX18(List<FourCornerX18CakePointSequence> chars) {
|
||||
return buildString(v -> renderFromX18(chars, v));
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
public void renderFromX18(List<FourCornerX18CakePointSequence> chars, StringBuilder buf) {
|
||||
List<Integer> charPoints = new ArrayList<>(chars.size());
|
||||
chars.forEach(v -> charPoints.addAll(v.cakePointSequence()));
|
||||
renderFromInt18(charPoints, buf);
|
||||
}
|
||||
|
||||
public String renderFromInt18(List<Integer> chars) {
|
||||
return buildString(v -> renderFromInt18(chars, v));
|
||||
}
|
||||
|
||||
public void renderFromInt18(List<Integer> chars, StringBuilder buf) {
|
||||
public void render(List<Integer> chars, StringBuilder buf) {
|
||||
StenoUnicodePrinter printer = new StenoUnicodePrinter(buf);
|
||||
FourCornerZionStenoLexer lexer = new FourCornerZionStenoLexer(printer, handleEscape);
|
||||
lexer.withSmokeSignals(printer).read(chars);
|
||||
|
|
@ -262,7 +236,7 @@ public class FourCornerUnicodeDisplay {
|
|||
public void strobeNumberBASE2Lego(FCFlameFremanLegoBase2 type, BigInteger value) {
|
||||
List<Integer> numberCandy = new ArrayList<>();
|
||||
FourCornerRecipe.toDecimalsX18(numberCandy, value);
|
||||
renderFromInt18(numberCandy, output);
|
||||
render(numberCandy, output);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -272,14 +246,14 @@ public class FourCornerUnicodeDisplay {
|
|||
numberCandy.add(FCDotCDC1604DashP6.NY19_MINUS.ordinal()); // TODO: use name word symbols
|
||||
}
|
||||
FourCornerRecipe.toDecimalsX18(numberCandy, value);
|
||||
renderFromInt18(numberCandy, output);
|
||||
render(numberCandy, output);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void strobeNumberBASE8Lego(FCFlameFremanLegoBase8 type, BigInteger value) {
|
||||
List<Integer> numberCandy = new ArrayList<>();
|
||||
FourCornerRecipe.toDecimalsX18(numberCandy, value);
|
||||
renderFromInt18(numberCandy, output);
|
||||
render(numberCandy, output);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -291,7 +265,7 @@ public class FourCornerUnicodeDisplay {
|
|||
numberCandy.add(FCDotCDC1604DashP6.NX14_N.ordinal());
|
||||
numberCandy.add(FCDotCDC1604DashP6.NY15_COLON.ordinal());
|
||||
FourCornerRecipe.toDecimalsX18(numberCandy, taste.ordinal()); // fixme use HEX
|
||||
renderFromInt18(numberCandy, output);
|
||||
render(numberCandy, output);
|
||||
return;
|
||||
}
|
||||
if (taste.statusSignNegative()) {
|
||||
|
|
@ -307,7 +281,7 @@ public class FourCornerUnicodeDisplay {
|
|||
} else {
|
||||
FourCornerRecipe.toDecimalsX18(numberCandy, value);
|
||||
}
|
||||
renderFromInt18(numberCandy, output);
|
||||
render(numberCandy, output);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -332,7 +306,7 @@ public class FourCornerUnicodeDisplay {
|
|||
for (Integer num : values) {
|
||||
FourCornerRecipe.toDecimalsX18(math, num);
|
||||
}
|
||||
renderFromInt18(math, output);
|
||||
render(math, output);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -349,7 +323,7 @@ public class FourCornerUnicodeDisplay {
|
|||
FourCornerRecipe.toScriptSuperX18(numberCandy, numerator);
|
||||
numberCandy.add(FCDotCDC1604DashP6.NY02_BAR_V_RIGHT.ordinal());
|
||||
FourCornerRecipe.toScriptSubX18(numberCandy, denominator);
|
||||
renderFromInt18(numberCandy, output);
|
||||
render(numberCandy, output);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -368,7 +342,7 @@ public class FourCornerUnicodeDisplay {
|
|||
FourCornerRecipe.toScriptSuperX18(numberCandy, power);
|
||||
numberCandy.add(FCDotCDC1604DashP6.NY18_ASTERISK.ordinal());
|
||||
FourCornerRecipe.toDecimalsX18(numberCandy, coefficient);
|
||||
renderFromInt18(numberCandy, output);
|
||||
render(numberCandy, output);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -393,7 +367,7 @@ public class FourCornerUnicodeDisplay {
|
|||
}
|
||||
numberCandy.add(FCDotCDC1604DashP6.NY16_DOT.ordinal());
|
||||
FourCornerRecipe.toDecimalsX18(numberCandy, mantissa);
|
||||
renderFromInt18(numberCandy, output);
|
||||
render(numberCandy, output);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -416,7 +390,7 @@ public class FourCornerUnicodeDisplay {
|
|||
FourCornerRecipe.toDecimalsX18(numberCandy, quake);
|
||||
numberCandy.add(FCDotCDC1604DashP6.NY16_DOT.ordinal());
|
||||
FourCornerRecipe.toDecimalsX18(numberCandy, fraction);
|
||||
renderFromInt18(numberCandy, output);
|
||||
render(numberCandy, output);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@
|
|||
*/
|
||||
package org.x4o.fc18.cake2;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/// Number index retriever for four corner baklava points.
|
||||
|
|
@ -32,4 +33,10 @@ public interface FourCornerX06BaklavaPointSequence extends FourCornerX00PetitVid
|
|||
|
||||
/// One baklava piece weights 52 gram
|
||||
List<Integer> baklavaPointSequence();
|
||||
|
||||
static public List<Integer> toFC6(List<FourCornerX06BaklavaPointSequence> chars) {
|
||||
List<Integer> cakePoints = new ArrayList<>(chars.size());
|
||||
chars.forEach(v -> cakePoints.addAll(v.baklavaPointSequence()));
|
||||
return cakePoints;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -198,8 +198,8 @@ public class FourCornerZionStenoGrapher {
|
|||
outFlush();
|
||||
}
|
||||
|
||||
protected void outAddBankCake12(int cakeSel0, int cakeBank, int bankStart, BigInteger value, Function<Integer, Integer> overrideMsb) {
|
||||
sliceBankCake(NCR_BANK12_BITS, BIG_BITS_12, cakeSel0, cakeBank, bankStart, value, out, overrideMsb);
|
||||
protected void outAddBankCake12(FourCornerDotCake cakeSel0, FourCornerDotCake cakeBank, int bankStart, BigInteger value, Function<Integer, Integer> overrideMsb) {
|
||||
sliceBankCake(NCR_BANK12_BITS, BIG_BITS_12, cakeSel0.getStart(), cakeBank.getStart(), bankStart, value, out, overrideMsb);
|
||||
outFlush();
|
||||
}
|
||||
|
||||
|
|
@ -480,7 +480,7 @@ public class FourCornerZionStenoGrapher {
|
|||
requireBigMax(denominator, BIG_BITS_1148);
|
||||
requireBigNoneZero(denominator);
|
||||
BigInteger pig = numerator.shiftLeft(1152).add(denominator).add(BigInteger.valueOf(tasteFemale.ordinal()).shiftLeft(1148));
|
||||
outAddBankCake12(FourCornerDotCake.FC_RATIONAL2304_SEL0.getStart(), FourCornerDotCake.FC_RATIONAL2304_BANK.getStart(), NCR_BANK_IDX_TOPPAGE_2304, pig, v -> {
|
||||
outAddBankCake12(FourCornerDotCake.FC_RATIONAL2304_SEL0, FourCornerDotCake.FC_RATIONAL2304_BANK, NCR_BANK_IDX_TOPPAGE_2304, pig, v -> {
|
||||
return (v & 0xFF) + (tasteFemale.ordinal() << 8);
|
||||
});
|
||||
}
|
||||
|
|
@ -496,7 +496,7 @@ public class FourCornerZionStenoGrapher {
|
|||
requireBigPositive(coefficient);
|
||||
requireBigMax(coefficient, BIG_BITS_2016);
|
||||
BigInteger pig = power.shiftLeft(2016).add(coefficient);
|
||||
outAddBankCake12(FourCornerDotCake.FC_DECIMAL2304_SEL0.getStart(), FourCornerDotCake.FC_DECIMAL2304_BANK.getStart(), NCR_BANK_IDX_TOPPAGE_2304, pig, v -> {
|
||||
outAddBankCake12(FourCornerDotCake.FC_DECIMAL2304_SEL0, FourCornerDotCake.FC_DECIMAL2304_BANK, NCR_BANK_IDX_TOPPAGE_2304, pig, v -> {
|
||||
return (v & 0x7F) + (taste.ordinal() << 8) + (bias ? 1 << 7 : 0);
|
||||
});
|
||||
}
|
||||
|
|
@ -512,7 +512,7 @@ public class FourCornerZionStenoGrapher {
|
|||
requireBigPositive(mantissa);
|
||||
requireBigMax(mantissa, BIG_BITS_2016);
|
||||
BigInteger pig = exponent.shiftLeft(2016).add(mantissa);
|
||||
outAddBankCake12(FourCornerDotCake.FC_FLOAT2304_SEL0.getStart(), FourCornerDotCake.FC_FLOAT2304_BANK.getStart(), NCR_BANK_IDX_TOPPAGE_2304, pig, v -> {
|
||||
outAddBankCake12(FourCornerDotCake.FC_FLOAT2304_SEL0, FourCornerDotCake.FC_FLOAT2304_BANK, NCR_BANK_IDX_TOPPAGE_2304, pig, v -> {
|
||||
return (v & 0x7F) + (taste.ordinal() << 8) + (bias ? 1 << 7 : 0);
|
||||
});
|
||||
}
|
||||
|
|
@ -527,7 +527,7 @@ public class FourCornerZionStenoGrapher {
|
|||
requireBigPositive(fraction);
|
||||
requireBigMax(fraction, BIG_BITS_1152);
|
||||
BigInteger pig = quake.shiftLeft(1152).add(fraction);
|
||||
outAddBankCake12(FourCornerDotCake.FC_CHOPED2304_SEL0.getStart(), FourCornerDotCake.FC_CHOPED2304_BANK.getStart(), NCR_BANK_IDX_TOPPAGE_2304, pig, v -> {
|
||||
outAddBankCake12(FourCornerDotCake.FC_CHOPED2304_SEL0, FourCornerDotCake.FC_CHOPED2304_BANK, NCR_BANK_IDX_TOPPAGE_2304, pig, v -> {
|
||||
return (v & 0xFF) + (taste.ordinal() << 8);
|
||||
});
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue