diff --git a/src/main/java/org/nanoboot/spriteutils/commands/DrawCommand.java b/src/main/java/org/nanoboot/spriteutils/commands/DrawCommand.java index f7f0852..b568bb4 100644 --- a/src/main/java/org/nanoboot/spriteutils/commands/DrawCommand.java +++ b/src/main/java/org/nanoboot/spriteutils/commands/DrawCommand.java @@ -27,6 +27,7 @@ import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import java.util.HashMap; +import java.util.List; import java.util.Map; import java.util.function.BiConsumer; import java.util.function.BiFunction; @@ -288,6 +289,9 @@ public class DrawCommand implements Command { if (spriteUtilsOptions.getFileName().isPresent() && !spriteUtilsOptions.getFileName().get().equals(imageFile.getName())) { continue; } + if(imageFile.getName().endsWith(".backup")) { + continue; + } File backupFile = new File(imageFile.getAbsolutePath() + ".backup"); try { @@ -310,14 +314,20 @@ public class DrawCommand implements Command { throw new SpriteUtilsException("Reading image failed", e); } BufferedImage bi = image.getImage(); - Graphics2D g = bi.createGraphics(); + Supplier randomByte = () -> random.apply(0, 255); - Stroke dashedStroke = configureGraphics(g); + SpriteSheet spriteSheet = new SpriteSheet(new File(spriteUtilsOptions.getSpriteSheetPath())); - spriteSheet - .getSpriteSheets(imageFile.getName().toLowerCase()) + final List spriteSheetRows = spriteSheet + .getSpriteSheetRows(imageFile.getName().toLowerCase()); + Graphics2D g = bi.createGraphics(); + Stroke dashedStroke = configureGraphics(g); + if(spriteSheetRows == null) { + continue; + } + spriteSheetRows .stream() .filter(s -> spriteUtilsOptions.getRow().isEmpty() ? true : (spriteUtilsOptions.getRow().get() == s.getRow())) .forEach(row -> { diff --git a/src/main/java/org/nanoboot/spriteutils/core/SpriteSheet.java b/src/main/java/org/nanoboot/spriteutils/core/SpriteSheet.java index 4844e13..40540c3 100644 --- a/src/main/java/org/nanoboot/spriteutils/core/SpriteSheet.java +++ b/src/main/java/org/nanoboot/spriteutils/core/SpriteSheet.java @@ -25,6 +25,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Optional; +import java.util.stream.Collectors; import lombok.Data; import lombok.ToString; @@ -146,8 +147,11 @@ public class SpriteSheet { spriteSheetRow.numberPerSheet = 1; } - public List getSpriteSheets(String file) { + public List getSpriteSheetRows(String file) { + System.out.println("getSpriteSheetRows() file=" + file); return map.get(file); } - + public List getSpriteSheetRows() { + return map.keySet().stream().map(k -> map.get(k)).flatMap(List::stream).collect(Collectors.toList()); + } }