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 b844c993..4bcbf17f 100644 --- a/src/main/java/com/minelittlepony/api/pony/meta/SizePreset.java +++ b/src/main/java/com/minelittlepony/api/pony/meta/SizePreset.java @@ -14,9 +14,10 @@ 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), - STOCKY (0xb2e7dd, 0.45F, 0.8F, 0.8F), UNSET (0x000000, 1, 1, 1); private final int triggerValue; diff --git a/src/main/java/com/minelittlepony/client/transform/PonyTransformation.java b/src/main/java/com/minelittlepony/client/transform/PonyTransformation.java index 92676ffc..098f8df9 100644 --- a/src/main/java/com/minelittlepony/client/transform/PonyTransformation.java +++ b/src/main/java/com/minelittlepony/client/transform/PonyTransformation.java @@ -39,26 +39,27 @@ public enum PonyTransformation { } } }, - STOCKY(SizePreset.STOCKY, 0, 3.2F, 0.75F) { + 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.2F, -0.2F); + if (model.getAttributes().isSitting) stack.translate(0, -0.25F, -0.2F); switch (part) { case NECK: + stack.translate(0, -0.05F, -0.04F); stack.scale(1.4F, 1, 1.2F); - if (model.getAttributes().isCrouching) stack.translate(-0.03F, 0.03F, 0.13F); + if (model.getAttributes().isCrouching) stack.translate(-0.03F, 0.03F, 0.15F); 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.1F, -0.05F); + 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); @@ -245,6 +246,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()));