This commit is contained in:
Braydon 2024-04-11 04:48:12 -04:00
parent dbeeb77fc8
commit 4f24b8eee5
4 changed files with 13 additions and 36 deletions

@ -31,11 +31,11 @@ import me.braydon.mc.model.skin.Skin;
import java.awt.image.BufferedImage;
/**
* A basic 2D renderer for a {@link ISkinPart.Basic#BODY}.
* A basic 2D renderer for a {@link ISkinPart.Custom#BODY}.
*
* @author Braydon
*/
public final class BodySkinPartRenderer extends SkinRenderer<ISkinPart.Basic> {
public final class BodySkinPartRenderer extends SkinRenderer<ISkinPart.Custom> {
public static final BodySkinPartRenderer INSTANCE = new BodySkinPartRenderer();
/**
@ -49,7 +49,7 @@ public final class BodySkinPartRenderer extends SkinRenderer<ISkinPart.Basic> {
* @return the rendered skin part
*/
@Override @NonNull
public BufferedImage render(@NonNull Skin skin, @NonNull ISkinPart.Basic part, boolean overlays, int size) {
public BufferedImage render(@NonNull Skin skin, @NonNull ISkinPart.Custom part, boolean overlays, int size) {
return getVanillaSkinPart(skin, ISkinPart.Vanilla.FACE, size);
}
}

@ -33,12 +33,12 @@ import java.awt.geom.AffineTransform;
import java.awt.image.BufferedImage;
/**
* A isometric 3D renderer for a {@link ISkinPart.Isometric}.
* A isometric 3D renderer for a {@link ISkinPart.Custom#HEAD}.
*
* @author Braydon
*/
public final class IsometricSkinPartRenderer extends SkinRenderer<ISkinPart.Isometric> {
public static final IsometricSkinPartRenderer INSTANCE = new IsometricSkinPartRenderer();
public final class IsometricHeadSkinPartRenderer extends SkinRenderer<ISkinPart.Custom> {
public static final IsometricHeadSkinPartRenderer INSTANCE = new IsometricHeadSkinPartRenderer();
private static final double SKEW_A = 26D / 45D; // 0.57777777
private static final double SKEW_B = SKEW_A * 2D; // 1.15555555
@ -58,7 +58,7 @@ public final class IsometricSkinPartRenderer extends SkinRenderer<ISkinPart.Isom
* @return the rendered skin part
*/
@Override @NonNull
public BufferedImage render(@NonNull Skin skin, @NonNull ISkinPart.Isometric part, boolean overlays, int size) {
public BufferedImage render(@NonNull Skin skin, @NonNull ISkinPart.Custom part, boolean overlays, int size) {
double scale = (size / 8D) / 2.5;
double zOffset = scale * 3.5D;
double xOffset = scale * 2D;

@ -26,7 +26,7 @@ package me.braydon.mc.model.skin;
import lombok.*;
import me.braydon.mc.common.renderer.SkinRenderer;
import me.braydon.mc.common.renderer.impl.BodySkinPartRenderer;
import me.braydon.mc.common.renderer.impl.IsometricSkinPartRenderer;
import me.braydon.mc.common.renderer.impl.IsometricHeadSkinPartRenderer;
import me.braydon.mc.common.renderer.impl.VanillaSkinPartRenderer;
import java.awt.image.BufferedImage;
@ -37,7 +37,7 @@ import java.awt.image.BufferedImage;
* @author Braydon
*/
public interface ISkinPart {
Enum<?>[][] TYPES = { Vanilla.values(), Basic.values(), Isometric.values() };
Enum<?>[][] TYPES = { Vanilla.values(), Custom.values() };
/**
* Get the name of this part.
@ -170,19 +170,17 @@ public interface ISkinPart {
}
/**
* A basic part of a skin.
* <p>
* These parts have custom renderers!
* </p>
* A custom part of a skin.
*/
@AllArgsConstructor @Getter
enum Basic implements ISkinPart {
enum Custom implements ISkinPart {
HEAD(IsometricHeadSkinPartRenderer.INSTANCE),
BODY(BodySkinPartRenderer.INSTANCE);
/**
* The custom renderer to use for this part.
*/
@NonNull private final SkinRenderer<Basic> renderer;
@NonNull private final SkinRenderer<Custom> renderer;
/**
* Render a part of a skin.
@ -197,24 +195,4 @@ public interface ISkinPart {
return renderer.render(skin, this, overlays, size);
}
}
/**
* A isometric part of a skin.
*/
enum Isometric implements ISkinPart {
HEAD;
/**
* Render a part of a skin.
*
* @param skin the skin to render the part for
* @param overlays whether to render overlays
* @param size the size to scale the skin part to
* @return the rendered skin part
*/
@Override @NonNull
public BufferedImage render(@NonNull Skin skin, boolean overlays, int size) {
return IsometricSkinPartRenderer.INSTANCE.render(skin, this, overlays, size);
}
}
}

@ -31,7 +31,6 @@ import me.braydon.mc.model.Player;
import java.util.HashMap;
import java.util.Map;
import java.util.function.Consumer;
/**
* A skin for a {@link Player}.