From a99b3f861bac223f91fc7996bb7fc3a4ceed6ebc Mon Sep 17 00:00:00 2001 From: SKL <37816816+SuperKirbylover@users.noreply.github.com> Date: Fri, 13 Dec 2024 16:06:37 -0500 Subject: [PATCH] 2 New Bodytypes + Minor Bugfix (#294) - added stocky bodytype with the trigger pixel of #b2e7dd - added SQUAT bodytype, based on "big daddy's" and 2 other background pony bodytypes - fixed #289 --- build.gradle | 2 +- .../api/pony/meta/SizePreset.java | 2 + .../client/transform/PonyTransformation.java | 81 ++++++++++++++++++- 3 files changed, 82 insertions(+), 3 deletions(-) diff --git a/build.gradle b/build.gradle index 42915b88..71fa5818 100644 --- a/build.gradle +++ b/build.gradle @@ -175,4 +175,4 @@ publishing { } } } -} +} \ No newline at end of file diff --git a/src/main/java/com/minelittlepony/api/pony/meta/SizePreset.java b/src/main/java/com/minelittlepony/api/pony/meta/SizePreset.java index d49c2223..f96e1bab 100644 --- a/src/main/java/com/minelittlepony/api/pony/meta/SizePreset.java +++ b/src/main/java/com/minelittlepony/api/pony/meta/SizePreset.java @@ -14,6 +14,8 @@ public enum SizePreset implements Size { BULKY (0xce3254, 0.5f, 1, 1.05F), LANKY (0x3254ce, 0.45F, 0.85F, 0.9F), NORMAL (0x000000, 0.4f, 0.8F, 0.8F), + STOCKY (0xb2e7dd, 0.45F, 0.8F, 0.8F), + SQUAT (0xa3d2c7, 0.4F, 0.7F, 0.67F), YEARLING(0x53beff, 0.4F, 0.6F, 0.65F), FOAL (0xffbe53, 0.25f, 0.6F, 0.5F), UNSET (0x000000, 1, 1, 1); diff --git a/src/main/java/com/minelittlepony/client/transform/PonyTransformation.java b/src/main/java/com/minelittlepony/client/transform/PonyTransformation.java index dbdc2f8e..2bb5665b 100644 --- a/src/main/java/com/minelittlepony/client/transform/PonyTransformation.java +++ b/src/main/java/com/minelittlepony/client/transform/PonyTransformation.java @@ -29,8 +29,8 @@ public enum PonyTransformation { if (model.getAttributes().isCrouching) stack.translate(-0.03F, 0.03F, 0.13F); break; case HEAD: - if (model.getAttributes().isLyingDown) stack.translate(-0.05F, -0.05F, 0); - if (model.getAttributes().isCrouching) stack.translate(0, 0.1F, -0); + if (model.getAttributes().isLyingDown) stack.translate(0, -0.05F, 0); + if (model.getAttributes().isCrouching) stack.translate(0, 0.1F, 0); break; case BACK: translateForRider(stack); @@ -39,6 +39,43 @@ public enum PonyTransformation { } } }, + STOCKY(SizePreset.STOCKY, 0, 3F, 0.75F) { + @Override + public void transform(PonyModel model, BodyPart part, MatrixStack stack) { + if (model.getAttributes().isSwimming) stack.translate(0, -0.3F, 0); + if (model.getAttributes().isCrouching) stack.translate(0, -0.2F, 0); + if (model.getAttributes().isLyingDown) stack.translate(0, -0.77F, 0.1F); + if (model.getAttributes().isSleeping) stack.translate(0, 0.16F, 0); + if (model.getAttributes().isSitting) stack.translate(0, -0.25F, -0.2F); + + switch (part) { + case NECK: + stack.translate(-0.015F, -0.05F, -0.04F); + stack.scale(1.4F, 1, 1.2F); + if (model.getAttributes().isCrouching) stack.translate(-0.025F, 0.03F, 0.15F); + if (model.getAttributes().isSitting) stack.translate(0, 0, 0.03F); + break; + case HEAD: + if (model.getAttributes().isLyingDown) stack.translate(0, -0.05F, 0); + if (model.getAttributes().isCrouching) stack.translate(0, 0.1F, 0); + break; + case BODY: + stack.translate(0, -0.15F, -0.05F); + if (model.getAttributes().isCrouching) stack.translate(0, -0.07F, 0.04F); + if (model.getAttributes().isLyingDown) stack.translate(0, -0.1F, 0); + stack.scale(1.4F, 1.3F, 1.1F); + break; + case LEGS: + stack.translate(0, 0, -0.1F); + if (model.getAttributes().isCrouching) stack.translate(0, 0, 0.1F); + stack.scale(1.1F, 1, 1.1F); + break; + case BACK: + translateForRider(stack); + break; + } + } + }, LANKY(SizePreset.LANKY, 0, 2.6F, 0.75F) { @Override public void transform(PonyModel model, BodyPart part, MatrixStack stack) { @@ -210,6 +247,46 @@ public enum PonyTransformation { break; } } + }, + SQUAT(SizePreset.SQUAT, 0, 3.4F, 0.75F) { + @Override + public void transform(PonyModel model, BodyPart part, MatrixStack stack) { + if (model.getAttributes().isSwimming) stack.translate(0, -0.6F, 0); + if (model.getAttributes().isCrouching) stack.translate(0, -0.2F, 0); + if (model.getAttributes().isLyingDown) stack.translate(0, -1, 0); + if (model.getAttributes().isSleeping) stack.translate(0, 0.2F, 0); + if (model.getAttributes().isSitting) stack.translate(0, -0.5F, -0.2F); + + stack.translate(0, -0.05F, 0); + + switch (part) { + case NECK: + stack.translate(-0.01F, 0.1F, 0.03F); + stack.scale(1.4F, 1, 1.1F); + if (model.getAttributes().isCrouching) stack.translate(-0.03F, 0.04F, 0.1F); + break; + case HEAD: + stack.translate(0, 0.07F, 0); + stack.scale(1.15F, 1.15F, 1.15F); + if (model.getAttributes().isCrouching) stack.translate(0, 0.07F, 0); + break; + case BODY: + stack.scale(1.4F, 1.3F, 1); + if (model.getAttributes().isCrouching) stack.translate(0, -0.05F, 0); + break; + case TAIL: + stack.translate(0, -0.1F, 0); + break; + case LEGS: + stack.translate(0, 0.35F, 0.02F); + stack.scale(1.1F, 0.8F, 1.1F); + if (model.getAttributes().isLyingDown) stack.translate(0, -0.1F, 0); + break; + case BACK: + translateForRider(stack); + break; + } + } }; private static final Map REGISTRY = Arrays.stream(values()).collect(Collectors.toMap(i -> i.size, Function.identity()));