diff options
| author | 2024-06-16 02:27:41 -0500 | |
|---|---|---|
| committer | 2024-06-16 02:27:41 -0500 | |
| commit | 6e675c05431af68cd7827e07543022647d975439 (patch) | |
| tree | 882544d0e8124b39bff54564bb6f2642b983e8ad /src/main/java/dev/figboot/cuberender/test/GraphicsPanel.java | |
| parent | fix minor plane fighting (diff) | |
refactor into PlayerModel part 1
Diffstat (limited to 'src/main/java/dev/figboot/cuberender/test/GraphicsPanel.java')
| -rw-r--r-- | src/main/java/dev/figboot/cuberender/test/GraphicsPanel.java | 45 |
1 files changed, 4 insertions, 41 deletions
diff --git a/src/main/java/dev/figboot/cuberender/test/GraphicsPanel.java b/src/main/java/dev/figboot/cuberender/test/GraphicsPanel.java index 0473be4..12ca9ef 100644 --- a/src/main/java/dev/figboot/cuberender/test/GraphicsPanel.java +++ b/src/main/java/dev/figboot/cuberender/test/GraphicsPanel.java @@ -1,5 +1,6 @@ package dev.figboot.cuberender.test; +import dev.figboot.cuberender.api.SkinUtil; import dev.figboot.cuberender.math.*; import dev.figboot.cuberender.state.BlendMode; import dev.figboot.cuberender.state.Framebuffer; @@ -14,12 +15,11 @@ import java.awt.*; import java.awt.event.ComponentAdapter; import java.awt.event.ComponentEvent; import java.awt.image.BufferedImage; -import java.io.File; import java.io.IOException; import java.io.InputStream; import java.util.EnumMap; -public class GraphicsPanel extends JPanel { +class GraphicsPanel extends JPanel { private Framebuffer framebuffer; private final EnumMap<BodyPart, Mesh<?>> meshes = new EnumMap<>(BodyPart.class); @@ -54,43 +54,6 @@ public class GraphicsPanel extends JPanel { private BodyPart[] overlayParts; private BodyPart[] overlayPartsSlim; - private void copyLimbFlipped(BufferedImage src, BufferedImage target) { - for (int y = 4, maxY = src.getHeight(); y < maxY; ++y) { - for (int x = 0; x < 4; ++x) { - target.setRGB(x, y, src.getRGB(11 - x, y)); - target.setRGB(x + 4, y, src.getRGB(7 - x, y)); - target.setRGB(x + 8, y, src.getRGB(3 - x, y)); - target.setRGB(x + 12, y, src.getRGB(15 - x, y)); - } - } - - for (int y = 0; y < 4; ++y) { - for (int x = 0; x < 4; ++x) { - target.setRGB(x + 4, y, src.getRGB(7 - x, y)); - target.setRGB(x + 8, y, src.getRGB(11 - x, y)); - } - } - } - - private BufferedImage convertToModernSkin(BufferedImage bi) { - BufferedImage realBI = new BufferedImage(64, 64, BufferedImage.TYPE_INT_ARGB); - Graphics2D g2d = realBI.createGraphics(); - - g2d.drawImage(bi, 0, 0, 64, 32, null); - - copyLimbFlipped(bi.getSubimage(0, 16, 16, 16), realBI.getSubimage(16, 48, 16, 16)); - copyLimbFlipped(bi.getSubimage(40, 16, 16, 16), realBI.getSubimage(32, 48, 16, 16)); - g2d.dispose(); - - try { - ImageIO.write(realBI, "PNG", new File("test.png")); - } catch (IOException ex) { - throw new RuntimeException(ex); - } - - return realBI; - } - public GraphicsPanel() { addComponentListener(new ComponentAdapter() { @Override @@ -114,7 +77,7 @@ public class GraphicsPanel extends JPanel { } if (bi.getHeight() == 32) { - bi = convertToModernSkin(bi); + bi = SkinUtil.convertToModernSkin(bi, null); } Texture tex = new Texture(bi); @@ -310,7 +273,7 @@ public class GraphicsPanel extends JPanel { } @RequiredArgsConstructor - public enum BodyPart { + private enum BodyPart { HEAD(8/16f, 8/16f, 8/16f, 8/64f, 56/64f), TORSO(8/16f, 12/16f, 4/16f, 20/64f, 44/64f), LEFT_ARM(4/16f, 12/16f, 4/16f, 44/64f, 44/64f), |
