From 109d832ac79c373484d54170d44935aad81ca1a8 Mon Sep 17 00:00:00 2001 From: trunksbomb Date: Mon, 23 Mar 2026 15:28:35 -0400 Subject: [PATCH] make cards more card like instead of just layers of flat textures. --- .../client/render/TriadCardItemRenderer.java | 33 ++++++++++++++++--- 1 file changed, 28 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/trunksbomb/minetriad/client/render/TriadCardItemRenderer.java b/src/main/java/com/trunksbomb/minetriad/client/render/TriadCardItemRenderer.java index 5b9fb89..a9be10c 100644 --- a/src/main/java/com/trunksbomb/minetriad/client/render/TriadCardItemRenderer.java +++ b/src/main/java/com/trunksbomb/minetriad/client/render/TriadCardItemRenderer.java @@ -27,12 +27,15 @@ import org.joml.Matrix4f; public final class TriadCardItemRenderer extends BlockEntityWithoutLevelRenderer { private static final float CARD_MIN = -0.42F; private static final float CARD_MAX = 0.42F; - private static final float FRONT_Z = 0.024F; - private static final float BACK_Z = -0.024F; - private static final float BORDER_Z = 0.026F; - private static final float VALUE_Z = 0.030F; + private static final float CARD_DEPTH = 0.024F; + private static final float FRONT_Z = CARD_DEPTH; + private static final float BACK_Z = -CARD_DEPTH; + private static final float ART_Z = FRONT_Z + 0.004F; + private static final float BORDER_Z = FRONT_Z + 0.008F; + private static final float VALUE_Z = FRONT_Z + 0.012F; private static final float INNER_MIN = -0.37F; private static final float INNER_MAX = 0.37F; + private static final float[] EDGE_COLOR = new float[] {0.18F, 0.14F, 0.10F}; private static TriadCardItemRenderer INSTANCE; private static final CardPalette NEUTRAL_PALETTE = new CardPalette( new float[] {0.97F, 0.93F, 0.80F}, @@ -77,6 +80,7 @@ public final class TriadCardItemRenderer extends BlockEntityWithoutLevelRenderer CardDefinition card = cardData == null || cardData.equals(CardStackData.EMPTY) ? null : CardRegistry.get(cardData.cardId()); poseStack.pushPose(); + drawCardBody(poseStack, buffer); drawBack(poseStack, buffer); if (card != null) { drawFrontArt(poseStack, buffer, artTexture(card)); @@ -94,6 +98,25 @@ public final class TriadCardItemRenderer extends BlockEntityWithoutLevelRenderer poseStack.popPose(); } + private static void drawCardBody(PoseStack poseStack, MultiBufferSource buffer) { + float r = EDGE_COLOR[0]; + float g = EDGE_COLOR[1]; + float b = EDGE_COLOR[2]; + LevelRenderer.addChainedFilledBoxVertices( + poseStack, + buffer.getBuffer(RenderType.debugFilledBox()), + CARD_MIN, + CARD_MIN, + BACK_Z, + CARD_MAX, + CARD_MAX, + FRONT_Z, + r, + g, + b, + 1.0F); + } + private static String displayRank(int rank) { return rank == 10 ? "A" : Integer.toString(rank); } @@ -161,7 +184,7 @@ public final class TriadCardItemRenderer extends BlockEntityWithoutLevelRenderer } private static void drawFrontArt(PoseStack poseStack, MultiBufferSource buffer, ResourceLocation textureLocation) { - drawTexturedQuad(poseStack, buffer, textureLocation, FRONT_Z, false); + drawTexturedQuad(poseStack, buffer, textureLocation, ART_Z, false); } private static void drawTexturedQuad(PoseStack poseStack, MultiBufferSource buffer, ResourceLocation textureLocation, float z, boolean reverseWinding) {