mirror of
https://github.com/openeggbert/sprite-utils.git
synced 2025-03-14 23:33:28 +01:00
Added new features and some improvements
This commit is contained in:
parent
d5c106d8b9
commit
0b2efe092f
@ -359,12 +359,14 @@ public class DrawCommand implements Command {
|
||||
int endY = startY + row.getHeight() - 1;
|
||||
|
||||
boolean numberDoubleSized = spriteUtilsOptions.isNumberDoubleSized();
|
||||
var enoughSpace = row.getWidth() > (numberDoubleSized ? 6 : 3);
|
||||
if(!enoughSpace && numberDoubleSized && row.getWidth() > 4) {
|
||||
numberDoubleSized = false;
|
||||
if(numberDoubleSized) {
|
||||
if(row.getWidth() < 23) {
|
||||
numberDoubleSized = false;
|
||||
}
|
||||
}
|
||||
if(spriteUtilsOptions.isDrawNumberEnabled() && enoughSpace) {
|
||||
drawNumber(row.getNumberPerSheet(), g, endX - 2, endY - 1, numberDoubleSized);
|
||||
|
||||
if(spriteUtilsOptions.isDrawNumberEnabled()) {
|
||||
drawNumber(row.getNumberPerSheet(), g, endX - 2, endY - 1, numberDoubleSized, spriteUtilsOptions);
|
||||
}
|
||||
|
||||
g.setStroke(dashedStroke);
|
||||
@ -378,6 +380,10 @@ public class DrawCommand implements Command {
|
||||
private Stroke configureGraphics(Graphics2D g) {
|
||||
g.setColor(Color.black);
|
||||
Stroke originalStroke = g.getStroke();
|
||||
if(false)
|
||||
{
|
||||
return originalStroke;
|
||||
}
|
||||
Stroke dashedStroke = new BasicStroke(1, BasicStroke.CAP_SQUARE, BasicStroke.CAP_SQUARE,
|
||||
0, new float[]{1, 3}, 0);
|
||||
g.setStroke(dashedStroke);
|
||||
@ -405,12 +411,12 @@ public class DrawCommand implements Command {
|
||||
}
|
||||
}
|
||||
|
||||
private void drawNumber(int number, Graphics2D g, int endX, int endY, boolean doubleSize) {
|
||||
private void drawNumber(int number, Graphics2D g, int endX, int endY, boolean doubleSize, SpriteUtilsOptions spriteUtilsOptions) {
|
||||
LOG.debug("Drawing number {}", number);
|
||||
Point end = new Point(endX, endY);
|
||||
String numberString = String.valueOf(number);
|
||||
|
||||
if (!doubleSize) {
|
||||
if (!doubleSize && spriteUtilsOptions.isDrawNumberBackgroundEnabled()) {
|
||||
Color oldColor = g.getColor();
|
||||
g.setColor(Color.WHITE);
|
||||
g.fillRect(endX + 1, endY - 5 * (doubleSize ? 2 : 1), 1, 6 * (doubleSize ? 2 : 1));
|
||||
@ -419,11 +425,11 @@ public class DrawCommand implements Command {
|
||||
|
||||
for (int i = 0; i < numberString.length(); i++) {
|
||||
char digit = numberString.charAt(numberString.length() - 1 - i);
|
||||
drawANumber(Character.getNumericValue(digit), g, end.x - (i * 4 * (doubleSize ? 2 : 1)), end.y, doubleSize);
|
||||
drawANumber(Character.getNumericValue(digit), g, end.x - (i * 4 * (doubleSize ? 2 : 1)), end.y, doubleSize, spriteUtilsOptions);
|
||||
}
|
||||
}
|
||||
|
||||
private void drawANumber(int number, Graphics2D g, int endX, int endY, boolean doubleSize) {
|
||||
private void drawANumber(int number, Graphics2D g, int endX, int endY, boolean doubleSize, SpriteUtilsOptions spriteUtilsOptions) {
|
||||
Point end = new Point(endX, endY);
|
||||
var data0 = doubleSize ? digitDataDoubleSized : digitData;
|
||||
boolean[] data = data0.get((char) ('0' + number));
|
||||
@ -435,10 +441,14 @@ public class DrawCommand implements Command {
|
||||
start.addToX((doubleSize ? -1 : 0) -2 * (doubleSize ? 2 : 1));
|
||||
start.addToY((doubleSize ? -2 : 0) -4 * (doubleSize ? 2 : 1));
|
||||
Color currentColor = g.getColor();
|
||||
if(spriteUtilsOptions.isDrawNumberBackgroundEnabled()) {
|
||||
g.setColor(Color.WHITE);
|
||||
g.fillRect(start.x - 1, start.y - 1, 4 * (doubleSize ? 2 : 1), 6 * (doubleSize ? 2 : 1));
|
||||
g.setColor(currentColor);
|
||||
}
|
||||
g.setColor(spriteUtilsOptions.isDrawNumberBackgroundEnabled() ? Color.BLACK : Color.YELLOW);
|
||||
drawANumber(g, start, data, doubleSize);
|
||||
g.setColor(currentColor);
|
||||
}
|
||||
|
||||
private void drawANumber(Graphics2D g, Point start, boolean[] data, boolean doubleSize) {
|
||||
|
@ -60,12 +60,19 @@ public class SpriteUtilsArgs {
|
||||
for (int i = 1;i< args.length;i++) {
|
||||
|
||||
String key = args[i];
|
||||
if(!key.startsWith("--")) {
|
||||
throw new SpriteUtilsException("Invalid option (does not start with --): " + key);
|
||||
}
|
||||
if(args.length < (i+2)) {
|
||||
throw new SpriteUtilsException("Missing value for option: " + key);
|
||||
}
|
||||
++i;
|
||||
String value = args[i];
|
||||
|
||||
if(value.startsWith("--")) {
|
||||
throw new SpriteUtilsException("Invalid value (starts with --): " + key);
|
||||
}
|
||||
|
||||
internalMap.put(key, value);
|
||||
}
|
||||
for (String key : internalMap.keySet()) {
|
||||
|
@ -41,6 +41,9 @@ public class SpriteUtilsOptions {
|
||||
public boolean isDrawNumberEnabled() {
|
||||
return spriteUtilsArgs.getOptionalBooleanArgument("--draw-number", true);
|
||||
}
|
||||
public boolean isDrawNumberBackgroundEnabled() {
|
||||
return spriteUtilsArgs.getOptionalBooleanArgument("--draw-number-background", true);
|
||||
}
|
||||
public boolean isNumberDoubleSized() {
|
||||
return spriteUtilsArgs.getBooleanArgument("--double-sized-number");
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user