From 3ae6a4820415b939029a0e791df5f933ace84d59 Mon Sep 17 00:00:00 2001 From: Sollace Date: Mon, 25 Sep 2023 01:56:15 +0100 Subject: [PATCH 01/35] Fixed horns not glowing --- .../minelittlepony/client/model/part/UnicornHorn.java | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/minelittlepony/client/model/part/UnicornHorn.java b/src/main/java/com/minelittlepony/client/model/part/UnicornHorn.java index 4f1a5002..56601d1b 100644 --- a/src/main/java/com/minelittlepony/client/model/part/UnicornHorn.java +++ b/src/main/java/com/minelittlepony/client/model/part/UnicornHorn.java @@ -26,13 +26,11 @@ public class UnicornHorn implements IPart { @Override public void renderPart(MatrixStack stack, VertexConsumer vertices, int overlayUv, int lightUv, float red, float green, float blue, float alpha, ModelAttributes attributes) { - if (visible) { - horn.render(stack, vertices, overlayUv, lightUv, red, green, blue, alpha); - } + horn.render(stack, vertices, overlayUv, lightUv, red, green, blue, alpha); } public void renderMagic(MatrixStack stack, VertexConsumer verts, int tint) { - if (visible) { + if (glow.visible) { Immediate immediate = MinecraftClient.getInstance().getBufferBuilders().getEntityVertexConsumers(); VertexConsumer vertices = immediate.getBuffer(MagicGlow.getRenderLayer()); @@ -43,6 +41,7 @@ public class UnicornHorn implements IPart { @Override public void setVisible(boolean visible, ModelAttributes attributes) { - this.visible = visible; + horn.visible = visible; + glow.visible = visible; } } From be5382ebadf2ba3341cab2f942b64356081c2743 Mon Sep 17 00:00:00 2001 From: Sollace Date: Tue, 26 Sep 2023 16:45:25 +0100 Subject: [PATCH 02/35] Fixed bat ponies' wings rotating incorrectly and move them up a bit --- .../minelittlepony/models/entity/components/bat_wings.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/resources/assets/minelittlepony/models/entity/components/bat_wings.json b/src/main/resources/assets/minelittlepony/models/entity/components/bat_wings.json index adcf0208..07dc9b9f 100644 --- a/src/main/resources/assets/minelittlepony/models/entity/components/bat_wings.json +++ b/src/main/resources/assets/minelittlepony/models/entity/components/bat_wings.json @@ -10,7 +10,7 @@ "folded": { "texture": {"u": 56, "v": 16, "w": 64, "h": 64}, "rotate": [90, 0, 0], - "pivot": [-0.5, 13, -4], + "pivot": [-0.5, 12, -4], "cubes": [ { "from": [3.15, 5, 4], "size": [1, 4, 1] }, { "from": [ 3.5, 5, 6], "size": [1, 7, 1] }, @@ -61,8 +61,8 @@ "data": { "folded": { "texture": {"u": 56, "v": 16, "w": 64, "h": 64}, - "rotate": [90, 0, 140], - "pivot": [-0.5, 13, -4], + "rotate": [90, 0, 0], + "pivot": [-0.5, 12, -4], "mirror": true, "cubes": [ { "from": [-3.15, 5, 4], "size": [1, 4, 1] }, From d3a5c809818887ea2edf072d758dc8ba18172379 Mon Sep 17 00:00:00 2001 From: Sollace Date: Tue, 26 Sep 2023 17:14:09 +0100 Subject: [PATCH 03/35] Fixed trident animation. Closes #250 --- .../com/minelittlepony/client/model/AbstractPonyModel.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/minelittlepony/client/model/AbstractPonyModel.java b/src/main/java/com/minelittlepony/client/model/AbstractPonyModel.java index b3dc4957..ed55aca6 100644 --- a/src/main/java/com/minelittlepony/client/model/AbstractPonyModel.java +++ b/src/main/java/com/minelittlepony/client/model/AbstractPonyModel.java @@ -437,7 +437,8 @@ public abstract class AbstractPonyModel extends ClientPo break; case THROW_SPEAR: arm.pitch = MathUtil.Angles._90_DEG * 2; - arm.roll += 0.3F * -limbSpeed * sigma; + arm.roll += (0.3F * -limbSpeed + 0.6F) * sigma; + arm.pivotY ++; break; case SPYGLASS: float addedPitch = sneaking ? -0.2617994F : 0; @@ -604,10 +605,10 @@ public abstract class AbstractPonyModel extends ClientPo matrices.translate(left / 10, -0.2F, -0.5F); } - matrices.translate(left * 0.1F, 0.45F, 0); + matrices.translate(-left * 0.1F, 0.45F, 0); if (getAttributes().heldStack.getUseAction() == UseAction.BLOCK && getAttributes().itemUseTime == 0) { - matrices.translate(left * -0.1F, -0.25F, 0); + matrices.translate(left * 0.02F, -0.25F, 0); } } From 31857e2de0287e3f0d861bbf8d61d5278d9229d0 Mon Sep 17 00:00:00 2001 From: Sollace Date: Tue, 26 Sep 2023 17:57:18 +0100 Subject: [PATCH 04/35] The direction a pony's head faces when lying in a bed is now determined by which way you're looking when you climb in --- .../api/model/ModelAttributes.java | 12 +++++++++--- .../client/model/AbstractPonyModel.java | 18 ++++++++++-------- .../client/model/entity/SkeleponyModel.java | 2 +- .../client/model/entity/race/SeaponyModel.java | 2 +- .../client/model/part/SeaponyTail.java | 2 +- .../client/transform/PonyPosture.java | 2 +- .../client/transform/PonyTransformation.java | 16 ++++++++-------- 7 files changed, 31 insertions(+), 23 deletions(-) diff --git a/src/main/java/com/minelittlepony/api/model/ModelAttributes.java b/src/main/java/com/minelittlepony/api/model/ModelAttributes.java index 6a4dc40e..7eb10d9f 100644 --- a/src/main/java/com/minelittlepony/api/model/ModelAttributes.java +++ b/src/main/java/com/minelittlepony/api/model/ModelAttributes.java @@ -20,6 +20,11 @@ public class ModelAttributes { * True if the model is sleeping in a bed. */ public boolean isSleeping; + + /** + * True if the model is lying down comfortably + */ + public boolean isLyingDown; /** * True if the model is flying like a pegasus. */ @@ -145,9 +150,10 @@ public class ModelAttributes { public void updateLivingState(LivingEntity entity, IPony pony, Mode mode) { visualHeight = entity.getHeight() + 0.125F; isSitting = PonyPosture.isSitting(entity); - isCrouching = !isSitting && mode == Mode.THIRD_PERSON && PonyPosture.isCrouching(pony, entity); - isSleeping = entity.isAlive() && entity.isSleeping(); - isFlying = mode == Mode.THIRD_PERSON && PonyPosture.isFlying(entity); + isSleeping = entity.isAlive() && entity.isSleeping();; + isLyingDown = isSleeping; + isCrouching = !isLyingDown && !isSitting && mode == Mode.THIRD_PERSON && PonyPosture.isCrouching(pony, entity); + isFlying = !isLyingDown && mode == Mode.THIRD_PERSON && PonyPosture.isFlying(entity); isGliding = entity.isFallFlying(); isSwimming = mode == Mode.THIRD_PERSON && PonyPosture.isSwimming(entity); isSwimmingRotated = isSwimming; diff --git a/src/main/java/com/minelittlepony/client/model/AbstractPonyModel.java b/src/main/java/com/minelittlepony/client/model/AbstractPonyModel.java index ed55aca6..8aca7121 100644 --- a/src/main/java/com/minelittlepony/client/model/AbstractPonyModel.java +++ b/src/main/java/com/minelittlepony/client/model/AbstractPonyModel.java @@ -119,11 +119,10 @@ public abstract class AbstractPonyModel extends ClientPo } protected void setModelAngles(T entity, float limbAngle, float limbSpeed, float animationProgress, float headYaw, float headPitch) { - - float pitch = (float)Math.toRadians(attributes.motionPitch); + float pitch = attributes.motionPitch * MathHelper.RADIANS_PER_DEGREE; head.setAngles( MathHelper.clamp(attributes.isSleeping ? 0.1f : headPitch / 57.29578F, -1.25f - pitch, 0.5f - pitch), - attributes.isSleeping ? (Math.abs(entity.getUuid().getMostSignificantBits()) % 2.8F) - 1.9F : headYaw / 57.29578F, + attributes.isSleeping ? (Math.signum(MathHelper.wrapDegrees(headYaw)) * 1.3F) : headYaw * MathHelper.RADIANS_PER_DEGREE, 0 ); @@ -149,7 +148,7 @@ public abstract class AbstractPonyModel extends ClientPo } else { adjustBody(0, ORIGIN); - if (!attributes.isSleeping) { + if (!attributes.isLyingDown) { animateBreathing(animationProgress); } @@ -159,7 +158,7 @@ public abstract class AbstractPonyModel extends ClientPo } } - if (attributes.isSleeping) { + if (attributes.isLyingDown) { ponySleep(); } @@ -197,7 +196,6 @@ public abstract class AbstractPonyModel extends ClientPo leftLeg.pitch = MathUtil.Angles._90_DEG; HEAD_SLEEPING.set(head); - head.pivotZ = sneaking ? -1 : 1; FONT_LEGS_SLEEPING.add(rightArm); FONT_LEGS_SLEEPING.add(leftArm); @@ -341,7 +339,7 @@ public abstract class AbstractPonyModel extends ClientPo } protected float getLegOutset() { - if (attributes.isSleeping) { + if (attributes.isLyingDown) { return 3.6f; } @@ -491,7 +489,7 @@ public abstract class AbstractPonyModel extends ClientPo * @param entity The entity we are being called for. */ protected void swingItem(T entity) { - if (getSwingAmount() > 0 && !attributes.isSleeping) { + if (getSwingAmount() > 0 && !attributes.isLyingDown) { Arm mainSide = getPreferredArm(entity); swingArm(getArm(mainSide)); @@ -624,6 +622,10 @@ public abstract class AbstractPonyModel extends ClientPo stack.multiply(RotationAxis.POSITIVE_Y.rotationDegrees(180)); } + if (attributes.isLyingDown && !attributes.isSleeping) { + stack.translate(0, 1.35F, 0); + } + if (attributes.isHorsey) { if (part == BodyPart.BODY) { stack.scale(1.5F, 1, 1.5F); diff --git a/src/main/java/com/minelittlepony/client/model/entity/SkeleponyModel.java b/src/main/java/com/minelittlepony/client/model/entity/SkeleponyModel.java index f5e1bada..578b8bd6 100644 --- a/src/main/java/com/minelittlepony/client/model/entity/SkeleponyModel.java +++ b/src/main/java/com/minelittlepony/client/model/entity/SkeleponyModel.java @@ -78,7 +78,7 @@ public class SkeleponyModel extends AlicornModel imp @Override protected float getLegOutset() { - if (attributes.isSleeping) return 2.6f; + if (attributes.isLyingDown) return 2.6f; if (attributes.isCrouching) return 0; return 4; } diff --git a/src/main/java/com/minelittlepony/client/model/entity/race/SeaponyModel.java b/src/main/java/com/minelittlepony/client/model/entity/race/SeaponyModel.java index af02043e..7310bb26 100644 --- a/src/main/java/com/minelittlepony/client/model/entity/race/SeaponyModel.java +++ b/src/main/java/com/minelittlepony/client/model/entity/race/SeaponyModel.java @@ -65,7 +65,7 @@ public class SeaponyModel extends UnicornModel { float flapMotion = MathHelper.cos(ticks / 10) / 5; - if (attributes.isSleeping) { + if (attributes.isLyingDown) { flapMotion /= 2; } diff --git a/src/main/java/com/minelittlepony/client/model/part/SeaponyTail.java b/src/main/java/com/minelittlepony/client/model/part/SeaponyTail.java index fd373852..bd283a8c 100644 --- a/src/main/java/com/minelittlepony/client/model/part/SeaponyTail.java +++ b/src/main/java/com/minelittlepony/client/model/part/SeaponyTail.java @@ -23,7 +23,7 @@ public class SeaponyTail implements IPart, MsonModel { @Override public void setPartAngles(ModelAttributes attributes, float limbAngle, float limbSpeed, float bodySwing, float animationProgress) { - float rotation = attributes.isSleeping ? 0 : MathHelper.sin(animationProgress * 0.536f) / 4; + float rotation = attributes.isLyingDown ? 0 : MathHelper.sin(animationProgress * 0.536f) / 4; tailBase.pitch = MathHelper.HALF_PI + rotation; tailTip.pitch = rotation; diff --git a/src/main/java/com/minelittlepony/client/transform/PonyPosture.java b/src/main/java/com/minelittlepony/client/transform/PonyPosture.java index d2e45d55..9c363a87 100644 --- a/src/main/java/com/minelittlepony/client/transform/PonyPosture.java +++ b/src/main/java/com/minelittlepony/client/transform/PonyPosture.java @@ -29,7 +29,7 @@ public interface PonyPosture { return ELYTRA; } - if (attributes.isSleeping) { + if (attributes.isLyingDown) { return STANDING; } diff --git a/src/main/java/com/minelittlepony/client/transform/PonyTransformation.java b/src/main/java/com/minelittlepony/client/transform/PonyTransformation.java index f1393ba1..2de0de49 100644 --- a/src/main/java/com/minelittlepony/client/transform/PonyTransformation.java +++ b/src/main/java/com/minelittlepony/client/transform/PonyTransformation.java @@ -20,7 +20,7 @@ public enum PonyTransformation { public void transform(IModel 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().isSleeping) stack.translate(0, -0.61F, 0.1F); + if (model.getAttributes().isLyingDown) stack.translate(0, -0.61F, 0.1F); if (model.getAttributes().isSitting) stack.translate(0, -0.2F, -0.2F); switch (part) { @@ -42,7 +42,7 @@ public enum PonyTransformation { public void transform(IModel model, BodyPart part, MatrixStack stack) { if (model.getAttributes().isSwimming) stack.translate(0, -0.2F, 0); if (model.getAttributes().isCrouching) stack.translate(0, -0.15F, 0); - if (model.getAttributes().isSleeping) stack.translate(0, -0.6F, 0.15F); + if (model.getAttributes().isLyingDown) stack.translate(0, -0.6F, 0.15F); if (model.getAttributes().isSitting) stack.translate(0, 0, -0.2F); switch (part) { @@ -53,7 +53,7 @@ public enum PonyTransformation { break; case HEAD: stack.translate(0, -0.14F, -0.04F); - if (model.getAttributes().isSleeping) stack.translate(0, 0, -0.1F); + if (model.getAttributes().isLyingDown) stack.translate(0, 0, -0.1F); if (model.getAttributes().isCrouching) stack.translate(0, 0.15F, 0); break; case BODY: @@ -77,7 +77,7 @@ public enum PonyTransformation { @Override public void transform(IModel model, BodyPart part, MatrixStack stack) { if (model.getAttributes().isCrouching) stack.translate(0, -0.15F, 0); - if (model.getAttributes().isSleeping) stack.translate(0, -0.6F, 0.25F); + if (model.getAttributes().isLyingDown) stack.translate(0, -0.6F, 0.25F); if (model.getAttributes().isSitting) stack.translate(0, 0, -0.2F); switch (part) { @@ -88,7 +88,7 @@ public enum PonyTransformation { break; case HEAD: stack.translate(0, -0.14F, -0.06F); - if (model.getAttributes().isSleeping) stack.translate(0, 0, -0.1F); + if (model.getAttributes().isLyingDown) stack.translate(0, 0, -0.1F); if (model.getAttributes().isCrouching) stack.translate(0, 0.15F, 0); break; case BODY: @@ -113,7 +113,7 @@ public enum PonyTransformation { public void transform(IModel model, BodyPart part, MatrixStack stack) { if (model.getAttributes().isSwimming) stack.translate(0, -0.9F, 0); if (model.getAttributes().isCrouching) stack.translate(0, -0.2F, 0); - if (model.getAttributes().isSleeping) stack.translate(0, -0.8F, -0.3F); + if (model.getAttributes().isLyingDown) stack.translate(0, -0.8F, -0.3F); if (model.getAttributes().isSitting) stack.translate(0, -0.6F, -0.2F); stack.translate(0, 0.2F, 0); @@ -142,7 +142,7 @@ public enum PonyTransformation { @Override public void transform(IModel model, BodyPart part, MatrixStack stack) { if (model.getAttributes().isCrouching) stack.translate(0, -0.15F, 0); - if (model.getAttributes().isSleeping) stack.translate(0, -0.5F, 0.35F); + if (model.getAttributes().isLyingDown) stack.translate(0, -0.5F, 0.35F); if (model.getAttributes().isSitting) stack.translate(0, 0.1F, -0.2F); switch (part) { @@ -175,7 +175,7 @@ public enum PonyTransformation { public void transform(IModel model, BodyPart part, MatrixStack stack) { if (model.getAttributes().isSwimming) stack.translate(0, -0.6F, 0); if (model.getAttributes().isCrouching) stack.translate(0, -0.15F, 0); - if (model.getAttributes().isSleeping) stack.translate(0, -0.45F, -0.3F); + if (model.getAttributes().isLyingDown) stack.translate(0, -0.45F, -0.3F); if (model.getAttributes().isSitting) stack.translate(0, -0.4F, -0.2F); switch (part) { From 131bc7cb3f174a8da878d50ae2277e960df1bcd0 Mon Sep 17 00:00:00 2001 From: Sollace Date: Fri, 6 Oct 2023 00:20:05 +0100 Subject: [PATCH 05/35] Fixed armour models loading from the incorrect directory --- .../com/minelittlepony/api/model/armour/ArmorModelRegistry.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/minelittlepony/api/model/armour/ArmorModelRegistry.java b/src/main/java/com/minelittlepony/api/model/armour/ArmorModelRegistry.java index 851742f6..a2bfeb18 100644 --- a/src/main/java/com/minelittlepony/api/model/armour/ArmorModelRegistry.java +++ b/src/main/java/com/minelittlepony/api/model/armour/ArmorModelRegistry.java @@ -18,7 +18,7 @@ public interface ArmorModelRegistry { if (id.getNamespace().equals("minecraft")) { return Optional.empty(); } - return REGISTRY.computeIfAbsent(id.withPath(p -> "models/armor/" + layer.name().toLowerCase(Locale.ROOT) + "_" + p + ".json"), i -> { + return REGISTRY.computeIfAbsent(id.withPath(p -> "armor/" + layer.name().toLowerCase(Locale.ROOT) + "_" + p + ".json"), i -> { return Optional.of(Mson.getInstance().registerModel(i, PonyArmourModel::new)); }).filter(key -> key.getModelData().isPresent()); } From f8b21e78ba72cc8658879094fd53366e03211d32 Mon Sep 17 00:00:00 2001 From: Sollace Date: Tue, 26 Sep 2023 19:56:27 +0100 Subject: [PATCH 06/35] Update settings.gradle --- settings.gradle | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/settings.gradle b/settings.gradle index 3f1fa950..512118bb 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,14 +1,8 @@ pluginManagement { repositories { mavenCentral() - maven { - name = 'Fabric' - url = 'https://maven.fabricmc.net/' - } - maven { - name = 'Jitpack' - url = 'https://jitpack.io' - } + maven { name 'Fabric'; url 'https://maven.fabricmc.net/' } + maven { name 'Jitpack'; url 'https://jitpack.io' } gradlePluginPortal() } } From 24e220bb29a01e60e4e05ff7e509ba35f395b01a Mon Sep 17 00:00:00 2001 From: Sollace Date: Wed, 27 Sep 2023 12:11:20 +0100 Subject: [PATCH 07/35] Allow armor to render with translucency --- .../client/render/ArmorRenderLayers.java | 33 +++++++++++++++++++ .../client/render/MagicGlow.java | 5 ++- .../render/entity/feature/ArmourFeature.java | 7 ++-- 3 files changed, 38 insertions(+), 7 deletions(-) create mode 100644 src/main/java/com/minelittlepony/client/render/ArmorRenderLayers.java diff --git a/src/main/java/com/minelittlepony/client/render/ArmorRenderLayers.java b/src/main/java/com/minelittlepony/client/render/ArmorRenderLayers.java new file mode 100644 index 00000000..261732a3 --- /dev/null +++ b/src/main/java/com/minelittlepony/client/render/ArmorRenderLayers.java @@ -0,0 +1,33 @@ +package com.minelittlepony.client.render; + +import net.minecraft.client.render.*; +import net.minecraft.client.render.RenderLayer.MultiPhaseParameters; +import net.minecraft.util.Identifier; +import net.minecraft.util.Util; + +import java.util.function.BiFunction; + +public class ArmorRenderLayers extends RenderPhase { + private ArmorRenderLayers() { + super(null, null, null); + } + + private static final BiFunction ARMOR_TRANSLUCENT_NO_CULL = Util.memoize((texture, decal) -> { + return RenderLayer.of(decal ? "armor_decal_translucent_no_cull" : "armor_translucent_no_cull", + VertexFormats.POSITION_COLOR_TEXTURE_OVERLAY_LIGHT_NORMAL, VertexFormat.DrawMode.QUADS, 256, true, false, MultiPhaseParameters.builder() + .program(ARMOR_CUTOUT_NO_CULL_PROGRAM) + .texture(new RenderPhase.Texture(texture, false, false)) + .transparency(TRANSLUCENT_TRANSPARENCY) + .cull(DISABLE_CULLING) + .lightmap(ENABLE_LIGHTMAP) + .overlay(ENABLE_OVERLAY_COLOR) + .layering(VIEW_OFFSET_Z_LAYERING) + .depthTest(decal ? EQUAL_DEPTH_TEST : LEQUAL_DEPTH_TEST) + .build(true) + ); + }); + + public static RenderLayer getArmorTranslucentNoCull(Identifier texture, boolean decal) { + return ARMOR_TRANSLUCENT_NO_CULL.apply(texture, decal); + } +} diff --git a/src/main/java/com/minelittlepony/client/render/MagicGlow.java b/src/main/java/com/minelittlepony/client/render/MagicGlow.java index 4c868829..fc40525f 100644 --- a/src/main/java/com/minelittlepony/client/render/MagicGlow.java +++ b/src/main/java/com/minelittlepony/client/render/MagicGlow.java @@ -16,8 +16,8 @@ import java.util.function.BiFunction; import java.util.function.Supplier; public abstract class MagicGlow extends RenderPhase { - private MagicGlow(String name, Runnable beginAction, Runnable endAction) { - super(name, beginAction, endAction); + private MagicGlow() { + super(null, null, null); } private static final Supplier MAGIC = Suppliers.memoize(() -> { @@ -54,7 +54,6 @@ public abstract class MagicGlow extends RenderPhase { } private static class Colored extends Texture { - private final float red; private final float green; private final float blue; diff --git a/src/main/java/com/minelittlepony/client/render/entity/feature/ArmourFeature.java b/src/main/java/com/minelittlepony/client/render/entity/feature/ArmourFeature.java index 212e9cf0..5c45739a 100644 --- a/src/main/java/com/minelittlepony/client/render/entity/feature/ArmourFeature.java +++ b/src/main/java/com/minelittlepony/client/render/entity/feature/ArmourFeature.java @@ -97,7 +97,7 @@ public class ArmourFeature & IP } private static VertexConsumer getArmorConsumer(VertexConsumerProvider provider, Identifier texture, boolean glint) { - return ItemRenderer.getArmorGlintConsumer(provider, RenderLayer.getArmorCutoutNoCull(texture), false, glint); + return ItemRenderer.getArmorGlintConsumer(provider, ArmorRenderLayers.getArmorTranslucentNoCull(texture, false), false, glint); } private static VertexConsumer getTrimConsumer(VertexConsumerProvider provider, ArmorMaterial material, ArmorTrim trim, ArmourLayer layer, boolean glint) { @@ -105,9 +105,8 @@ public class ArmourFeature & IP Sprite sprite = armorTrimsAtlas.getSprite( layer == ArmourLayer.INNER ? trim.getLeggingsModelId(material) : trim.getGenericModelId(material) ); + RenderLayer renderLayer = ArmorRenderLayers.getArmorTranslucentNoCull(TexturedRenderLayers.ARMOR_TRIMS_ATLAS_TEXTURE, trim.getPattern().value().decal()); - return sprite.getTextureSpecificVertexConsumer( - ItemRenderer.getDirectItemGlintConsumer(provider, TexturedRenderLayers.getArmorTrims(), true, glint) - ); + return sprite.getTextureSpecificVertexConsumer(ItemRenderer.getDirectItemGlintConsumer(provider, renderLayer, true, glint)); } } From 971f3623cf0eddbb842b7684f6b06c7555b24c83 Mon Sep 17 00:00:00 2001 From: Sollace Date: Thu, 28 Sep 2023 14:38:39 +0100 Subject: [PATCH 08/35] Fixed pony skin data not being reliably sent to servers # Conflicts: # src/main/java/com/minelittlepony/api/pony/network/fabric/Channel.java # src/main/java/com/minelittlepony/client/compat/hdskins/DummyPony.java # src/main/java/com/minelittlepony/client/mixin/MixinClientPlayerEntity.java # src/main/java/com/minelittlepony/client/render/EquineRenderManager.java --- .../api/model/PreviewModel.java | 5 +++ .../api/pony/network/fabric/Channel.java | 28 +++++++----- .../minelittlepony/client/IPreviewModel.java | 5 --- .../client/hdskins/DummyPony.java | 8 +--- .../client/mixin/MixinClientPlayerEntity.java | 12 ++--- .../mixin/MixinEntityRenderDispatcher.java | 3 +- .../client/render/EquineRenderManager.java | 44 ++++++++++++++----- 7 files changed, 61 insertions(+), 44 deletions(-) create mode 100644 src/main/java/com/minelittlepony/api/model/PreviewModel.java delete mode 100644 src/main/java/com/minelittlepony/client/IPreviewModel.java diff --git a/src/main/java/com/minelittlepony/api/model/PreviewModel.java b/src/main/java/com/minelittlepony/api/model/PreviewModel.java new file mode 100644 index 00000000..170e2d2e --- /dev/null +++ b/src/main/java/com/minelittlepony/api/model/PreviewModel.java @@ -0,0 +1,5 @@ +package com.minelittlepony.api.model; + +public interface PreviewModel { + +} diff --git a/src/main/java/com/minelittlepony/api/pony/network/fabric/Channel.java b/src/main/java/com/minelittlepony/api/pony/network/fabric/Channel.java index ce292da0..d787d8be 100644 --- a/src/main/java/com/minelittlepony/api/pony/network/fabric/Channel.java +++ b/src/main/java/com/minelittlepony/api/pony/network/fabric/Channel.java @@ -8,10 +8,13 @@ import net.fabricmc.fabric.api.networking.v1.PacketByteBufs; import net.fabricmc.fabric.api.networking.v1.ServerPlayConnectionEvents; import net.fabricmc.fabric.api.networking.v1.ServerPlayNetworking; import net.fabricmc.loader.api.FabricLoader; -import net.minecraft.client.MinecraftClient; import net.minecraft.util.Identifier; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + import com.minelittlepony.api.pony.IPony; +import com.minelittlepony.api.pony.IPonyData; import com.minelittlepony.api.pony.network.MsgPonyData; import com.minelittlepony.client.MineLittlePony; @@ -19,13 +22,13 @@ import com.minelittlepony.client.MineLittlePony; public class Channel { private static final Identifier CLIENT_PONY_DATA = new Identifier("minelittlepony", "pony_data"); private static final Identifier REQUEST_PONY_DATA = new Identifier("minelittlepony", "request_pony_data"); + private static final Logger LOGGER = LogManager.getLogger("MineLittlePony:Networking"); private static boolean registered; public static void bootstrap() { ClientLoginConnectionEvents.INIT.register((handler, client) -> { registered = false; - MineLittlePony.logger.info("Resetting registered flag"); }); ServerPlayConnectionEvents.JOIN.register((handler, sender, server) -> { MineLittlePony.logger.info("Sending consent packet to " + handler.getPlayer().getName().getString()); @@ -34,12 +37,14 @@ public class Channel { }); ClientPlayNetworking.registerGlobalReceiver(REQUEST_PONY_DATA, (client, handler, ignored, sender) -> { + registered = true; if (client.player != null) { IPony pony = IPony.getManager().getPony(client.player); - registered = true; - MineLittlePony.logger.info("Server has just consented"); + LOGGER.info("Server has just consented"); sender.sendPacket(CLIENT_PONY_DATA, new MsgPonyData(pony.metadata(), pony.defaulted()).toBuffer(PacketByteBufs.create())); + } else { + LOGGER.info("Server has just consented but the client player was not set"); } }); ServerPlayNetworking.registerGlobalReceiver(CLIENT_PONY_DATA, (server, player, ignore, buffer, ignore2) -> { @@ -50,20 +55,19 @@ public class Channel { }); } - public static void broadcastPonyData(MsgPonyData packet) { + public static boolean broadcastPonyData(IPonyData packet, boolean noSkin) { if (FabricLoader.getInstance().getEnvironmentType() != EnvType.CLIENT) { throw new RuntimeException("Client packet send called by the server"); } if (!registered) { - if (MinecraftClient.getInstance().isInSingleplayer() || MinecraftClient.getInstance().isIntegratedServerRunning()) { - MineLittlePony.logger.info("Sending pony skin data over as we are either in single-player or lan"); - } else { - MineLittlePony.logger.info("Skipping network packet as the server has not consented"); - return; - } + LOGGER.info("Skipping network packet as the server has not consented"); + return false; + } else { + LOGGER.info("Sending pony data to server for player"); } - ClientPlayNetworking.send(CLIENT_PONY_DATA, packet.toBuffer(PacketByteBufs.create())); + ClientPlayNetworking.send(CLIENT_PONY_DATA, new MsgPonyData(packet, noSkin).toBuffer(PacketByteBufs.create())); + return true; } } \ No newline at end of file diff --git a/src/main/java/com/minelittlepony/client/IPreviewModel.java b/src/main/java/com/minelittlepony/client/IPreviewModel.java deleted file mode 100644 index ba873ff7..00000000 --- a/src/main/java/com/minelittlepony/client/IPreviewModel.java +++ /dev/null @@ -1,5 +0,0 @@ -package com.minelittlepony.client; - -public interface IPreviewModel { - -} diff --git a/src/main/java/com/minelittlepony/client/hdskins/DummyPony.java b/src/main/java/com/minelittlepony/client/hdskins/DummyPony.java index 51f80906..bfe6f390 100644 --- a/src/main/java/com/minelittlepony/client/hdskins/DummyPony.java +++ b/src/main/java/com/minelittlepony/client/hdskins/DummyPony.java @@ -2,6 +2,7 @@ package com.minelittlepony.client.hdskins; import net.minecraft.client.world.ClientWorld; +import com.minelittlepony.api.model.PreviewModel; import com.minelittlepony.api.pony.IPony; import com.minelittlepony.api.pony.IPonyManager; import com.minelittlepony.client.IPreviewModel; @@ -15,18 +16,13 @@ import java.util.UUID; /** * Dummy model used for the skin uploading screen. */ -class DummyPony extends DummyPlayer implements IPreviewModel, IPonyManager.ForcedPony, EquineRenderManager.RegistrationHandler { +class DummyPony extends DummyPlayer implements PreviewModel, IPonyManager.ForcedPony { public DummyPony(ClientWorld world, PlayerSkins textures) { super(world, textures); setUuid(UUID.randomUUID()); // uuid must be random so animations aren't linked between the two previews } - @Override - public boolean shouldUpdateRegistration(IPony pony) { - return false; - } - @Override public boolean isSubmergedInWater() { return getTextures().getPosture().getActiveSkinType() == MineLPHDSkins.seaponySkinType || super.isSubmergedInWater(); diff --git a/src/main/java/com/minelittlepony/client/mixin/MixinClientPlayerEntity.java b/src/main/java/com/minelittlepony/client/mixin/MixinClientPlayerEntity.java index c76f05be..81c1f4fd 100644 --- a/src/main/java/com/minelittlepony/client/mixin/MixinClientPlayerEntity.java +++ b/src/main/java/com/minelittlepony/client/mixin/MixinClientPlayerEntity.java @@ -10,7 +10,6 @@ import net.minecraft.entity.Entity; import net.minecraft.entity.EntityDimensions; import net.minecraft.entity.EntityPose; -import org.jetbrains.annotations.Nullable; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; @@ -21,8 +20,7 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; abstract class MixinClientPlayerEntity extends AbstractClientPlayerEntity implements EquineRenderManager.RegistrationHandler { public MixinClientPlayerEntity() { super(null, null); } - @Nullable - private IPony pony; + private final EquineRenderManager.SyncedPony syncedPony = new EquineRenderManager.SyncedPony(); @Inject(method = "startRiding(Lnet/minecraft/entity/Entity;Z)Z", at = @At("RETURN")) private void onStartRiding(Entity entity, boolean bl, CallbackInfoReturnable info) { @@ -35,12 +33,8 @@ abstract class MixinClientPlayerEntity extends AbstractClientPlayerEntity implem } @Override - public boolean shouldUpdateRegistration(IPony pony) { - if (this.pony != pony && (this.pony == null || this.pony.metadata().compareTo(pony.metadata()) != 0)) { - this.pony = Pony.snapshot(pony); - return true; - } - return false; + public EquineRenderManager.SyncedPony getSyncedPony() { + return syncedPony; } @Override diff --git a/src/main/java/com/minelittlepony/client/mixin/MixinEntityRenderDispatcher.java b/src/main/java/com/minelittlepony/client/mixin/MixinEntityRenderDispatcher.java index 0f9293cd..f2b23a1c 100644 --- a/src/main/java/com/minelittlepony/client/mixin/MixinEntityRenderDispatcher.java +++ b/src/main/java/com/minelittlepony/client/mixin/MixinEntityRenderDispatcher.java @@ -1,5 +1,6 @@ package com.minelittlepony.client.mixin; +import com.minelittlepony.api.model.PreviewModel; import com.minelittlepony.api.pony.IPony; import com.minelittlepony.client.IPreviewModel; @@ -18,7 +19,7 @@ abstract class MixinEntityRenderDispatcher { value = "INVOKE", target = "Lnet/minecraft/client/network/AbstractClientPlayerEntity;getModel()Ljava/lang/String;")) private String getPlayerModel(AbstractClientPlayerEntity player, Entity entity) { - if (player instanceof IPreviewModel) { + if (player instanceof PreviewModel) { return player.getModel(); } return IPony.getManager() diff --git a/src/main/java/com/minelittlepony/client/render/EquineRenderManager.java b/src/main/java/com/minelittlepony/client/render/EquineRenderManager.java index 2e59b5df..c72f06d6 100644 --- a/src/main/java/com/minelittlepony/client/render/EquineRenderManager.java +++ b/src/main/java/com/minelittlepony/client/render/EquineRenderManager.java @@ -1,9 +1,7 @@ package com.minelittlepony.client.render; -import com.minelittlepony.api.model.ModelAttributes; -import com.minelittlepony.api.model.RenderPass; +import com.minelittlepony.api.model.*; import com.minelittlepony.api.pony.IPony; -import com.minelittlepony.api.pony.network.MsgPonyData; import com.minelittlepony.api.pony.network.fabric.Channel; import com.minelittlepony.api.pony.network.fabric.PonyDataCallback; import com.minelittlepony.client.MineLittlePony; @@ -26,6 +24,8 @@ import net.minecraft.entity.LivingEntity; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.util.Identifier; +import org.jetbrains.annotations.Nullable; + public class EquineRenderManager & IPonyModel> { private ModelWrapper playerModel; @@ -127,16 +127,31 @@ public class EquineRenderManager Date: Thu, 5 Oct 2023 19:52:03 +0100 Subject: [PATCH 09/35] Fixed left ear rotating incorrectly --- src/main/java/com/minelittlepony/client/model/part/PonyEars.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/com/minelittlepony/client/model/part/PonyEars.java b/src/main/java/com/minelittlepony/client/model/part/PonyEars.java index 904970d8..22fee963 100644 --- a/src/main/java/com/minelittlepony/client/model/part/PonyEars.java +++ b/src/main/java/com/minelittlepony/client/model/part/PonyEars.java @@ -29,6 +29,7 @@ public class PonyEars implements IPart, MsonModel { @Override public void setPartAngles(ModelAttributes attributes, float limbAngle, float limbSpeed, float bodySwing, float animationProgress) { right.resetTransform(); + left.resetTransform(); limbSpeed = MathHelper.clamp(limbSpeed, 0, 1); From a69140b761d2311a841136c7a53519fd7a025a0a Mon Sep 17 00:00:00 2001 From: Sollace Date: Fri, 6 Oct 2023 00:38:46 +0100 Subject: [PATCH 10/35] fixes --- src/main/java/com/minelittlepony/api/model/ModelAttributes.java | 2 +- src/main/java/com/minelittlepony/client/hdskins/DummyPony.java | 1 - .../client/mixin/MixinEntityRenderDispatcher.java | 1 - 3 files changed, 1 insertion(+), 3 deletions(-) diff --git a/src/main/java/com/minelittlepony/api/model/ModelAttributes.java b/src/main/java/com/minelittlepony/api/model/ModelAttributes.java index 7eb10d9f..abfdab8f 100644 --- a/src/main/java/com/minelittlepony/api/model/ModelAttributes.java +++ b/src/main/java/com/minelittlepony/api/model/ModelAttributes.java @@ -159,7 +159,7 @@ public class ModelAttributes { isSwimmingRotated = isSwimming; isRiptide = entity.isUsingRiptide(); isRidingInteractive = PonyPosture.isRidingAPony(entity); - if (!(entity instanceof IPreviewModel)) { + if (!(entity instanceof PreviewModel)) { interpolatorId = entity.getUuid(); } isLeftHanded = entity.getMainArm() == Arm.LEFT; diff --git a/src/main/java/com/minelittlepony/client/hdskins/DummyPony.java b/src/main/java/com/minelittlepony/client/hdskins/DummyPony.java index bfe6f390..20839b27 100644 --- a/src/main/java/com/minelittlepony/client/hdskins/DummyPony.java +++ b/src/main/java/com/minelittlepony/client/hdskins/DummyPony.java @@ -5,7 +5,6 @@ import net.minecraft.client.world.ClientWorld; import com.minelittlepony.api.model.PreviewModel; import com.minelittlepony.api.pony.IPony; import com.minelittlepony.api.pony.IPonyManager; -import com.minelittlepony.client.IPreviewModel; import com.minelittlepony.client.render.EquineRenderManager; import com.minelittlepony.hdskins.client.VanillaModels; import com.minelittlepony.hdskins.client.gui.player.*; diff --git a/src/main/java/com/minelittlepony/client/mixin/MixinEntityRenderDispatcher.java b/src/main/java/com/minelittlepony/client/mixin/MixinEntityRenderDispatcher.java index f2b23a1c..5cf71455 100644 --- a/src/main/java/com/minelittlepony/client/mixin/MixinEntityRenderDispatcher.java +++ b/src/main/java/com/minelittlepony/client/mixin/MixinEntityRenderDispatcher.java @@ -2,7 +2,6 @@ package com.minelittlepony.client.mixin; import com.minelittlepony.api.model.PreviewModel; import com.minelittlepony.api.pony.IPony; -import com.minelittlepony.client.IPreviewModel; import net.minecraft.client.network.AbstractClientPlayerEntity; import net.minecraft.client.render.entity.EntityRenderDispatcher; From 9334836aa7c1095416621f3e74f003b872f4e47c Mon Sep 17 00:00:00 2001 From: Sollace Date: Fri, 6 Oct 2023 00:38:52 +0100 Subject: [PATCH 11/35] Disable shadow position changing # Conflicts: # src/main/java/com/minelittlepony/client/render/entity/PlayerPonyRenderer.java --- .../client/render/entity/PlayerPonyRenderer.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/minelittlepony/client/render/entity/PlayerPonyRenderer.java b/src/main/java/com/minelittlepony/client/render/entity/PlayerPonyRenderer.java index f5a058de..62b53c18 100644 --- a/src/main/java/com/minelittlepony/client/render/entity/PlayerPonyRenderer.java +++ b/src/main/java/com/minelittlepony/client/render/entity/PlayerPonyRenderer.java @@ -24,7 +24,6 @@ import net.minecraft.client.util.math.MatrixStack; import net.minecraft.text.Text; import net.minecraft.util.Arm; import net.minecraft.util.Identifier; -import net.minecraft.util.math.*; public class PlayerPonyRenderer extends PlayerEntityRenderer implements IPonyRenderContext> { @@ -82,6 +81,7 @@ public class PlayerPonyRenderer extends PlayerEntityRenderer implements IPonyRen // Translate the shadow position after everything is done // (shadows are drawn after us) + /* if (!entity.hasVehicle() && !entity.isSleeping()) { float yaw = MathHelper.lerpAngleDegrees(tickDelta, entity.prevBodyYaw, entity.bodyYaw); float l = entity.getWidth() / 2 * manager.getPony(entity).metadata().getSize().getScaleFactor(); @@ -90,6 +90,8 @@ public class PlayerPonyRenderer extends PlayerEntityRenderer implements IPonyRen stack.translate(0, 0, -l); stack.multiply(RotationAxis.POSITIVE_Y.rotationDegrees(yaw)); } + */ + } @Override From 101b2bd20cd1552aefca8e0b424c518f44e7f690 Mon Sep 17 00:00:00 2001 From: Sollace Date: Thu, 5 Oct 2023 20:04:55 +0100 Subject: [PATCH 12/35] Fixed mobs' arms sticking too far up when sitting in a boat # Conflicts: # src/main/java/com/minelittlepony/client/model/IMobModel.java --- .../com/minelittlepony/client/model/AbstractPonyModel.java | 1 + .../java/com/minelittlepony/client/model/IMobModel.java | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/src/main/java/com/minelittlepony/client/model/AbstractPonyModel.java b/src/main/java/com/minelittlepony/client/model/AbstractPonyModel.java index 8aca7121..aea6fd80 100644 --- a/src/main/java/com/minelittlepony/client/model/AbstractPonyModel.java +++ b/src/main/java/com/minelittlepony/client/model/AbstractPonyModel.java @@ -366,6 +366,7 @@ public abstract class AbstractPonyModel extends ClientPo case NECK: return neck; case TAIL: case LEGS: + case BACK: case BODY: return body; } } diff --git a/src/main/java/com/minelittlepony/client/model/IMobModel.java b/src/main/java/com/minelittlepony/client/model/IMobModel.java index 5d570ac2..6e9450df 100644 --- a/src/main/java/com/minelittlepony/client/model/IMobModel.java +++ b/src/main/java/com/minelittlepony/client/model/IMobModel.java @@ -39,9 +39,15 @@ public interface IMobModel { if (islookAngleRight(move)) { IMobModel.rotateArmHolding(rightArm, 1, model.getSwingAmount(), ticks); + if (model.getAttributes().isSitting) { + rightArm.pitch += 0.6F; + } PartUtil.shift(rightArm, 0.5F, 1.5F, 3); } else { IMobModel.rotateArmHolding(leftArm, -1, model.getSwingAmount(), ticks); + if (model.getAttributes().isSitting) { + leftArm.pitch += 0.6F; + } PartUtil.shift(leftArm, -0.5F, 1.5F, 3); } } From a7acd2a1c145530f2db2a049f82e9d1fb8658f33 Mon Sep 17 00:00:00 2001 From: Sollace Date: Thu, 5 Oct 2023 20:22:09 +0100 Subject: [PATCH 13/35] More fixes --- src/main/java/com/minelittlepony/client/hdskins/DummyPony.java | 1 - .../com/minelittlepony/client/hdskins/LegendOverlayWidget.java | 1 - .../client/render/entity/feature/ArmourFeature.java | 3 ++- 3 files changed, 2 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/minelittlepony/client/hdskins/DummyPony.java b/src/main/java/com/minelittlepony/client/hdskins/DummyPony.java index 20839b27..18948f0d 100644 --- a/src/main/java/com/minelittlepony/client/hdskins/DummyPony.java +++ b/src/main/java/com/minelittlepony/client/hdskins/DummyPony.java @@ -5,7 +5,6 @@ import net.minecraft.client.world.ClientWorld; import com.minelittlepony.api.model.PreviewModel; import com.minelittlepony.api.pony.IPony; import com.minelittlepony.api.pony.IPonyManager; -import com.minelittlepony.client.render.EquineRenderManager; import com.minelittlepony.hdskins.client.VanillaModels; import com.minelittlepony.hdskins.client.gui.player.*; import com.minelittlepony.hdskins.client.gui.player.skins.PlayerSkins; diff --git a/src/main/java/com/minelittlepony/client/hdskins/LegendOverlayWidget.java b/src/main/java/com/minelittlepony/client/hdskins/LegendOverlayWidget.java index ed6f8a6a..233b996e 100644 --- a/src/main/java/com/minelittlepony/client/hdskins/LegendOverlayWidget.java +++ b/src/main/java/com/minelittlepony/client/hdskins/LegendOverlayWidget.java @@ -1,6 +1,5 @@ package com.minelittlepony.client.hdskins; -import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.DrawContext; import net.minecraft.text.Text; diff --git a/src/main/java/com/minelittlepony/client/render/entity/feature/ArmourFeature.java b/src/main/java/com/minelittlepony/client/render/entity/feature/ArmourFeature.java index 5c45739a..094eaa55 100644 --- a/src/main/java/com/minelittlepony/client/render/entity/feature/ArmourFeature.java +++ b/src/main/java/com/minelittlepony/client/render/entity/feature/ArmourFeature.java @@ -4,6 +4,7 @@ import com.minelittlepony.api.model.armour.*; import com.minelittlepony.client.model.IPonyModel; import com.minelittlepony.client.model.ModelWrapper; import com.minelittlepony.client.model.armour.DefaultArmourTextureResolver; +import com.minelittlepony.client.render.ArmorRenderLayers; import com.minelittlepony.client.render.IPonyRenderContext; import com.minelittlepony.common.util.Color; @@ -105,7 +106,7 @@ public class ArmourFeature & IP Sprite sprite = armorTrimsAtlas.getSprite( layer == ArmourLayer.INNER ? trim.getLeggingsModelId(material) : trim.getGenericModelId(material) ); - RenderLayer renderLayer = ArmorRenderLayers.getArmorTranslucentNoCull(TexturedRenderLayers.ARMOR_TRIMS_ATLAS_TEXTURE, trim.getPattern().value().decal()); + RenderLayer renderLayer = ArmorRenderLayers.getArmorTranslucentNoCull(TexturedRenderLayers.ARMOR_TRIMS_ATLAS_TEXTURE, false); return sprite.getTextureSpecificVertexConsumer(ItemRenderer.getDirectItemGlintConsumer(provider, renderLayer, true, glint)); } From fa0c903c0fb259f4b07038cde5224c593c136455 Mon Sep 17 00:00:00 2001 From: Sollace Date: Fri, 6 Oct 2023 00:45:48 +0100 Subject: [PATCH 14/35] Fixed magic not rendering for items held by other entities --- .../client/render/LevitatingItemRenderer.java | 45 ++++++++++--------- .../entity/feature/HeldItemFeature.java | 1 + 2 files changed, 25 insertions(+), 21 deletions(-) diff --git a/src/main/java/com/minelittlepony/client/render/LevitatingItemRenderer.java b/src/main/java/com/minelittlepony/client/render/LevitatingItemRenderer.java index cb774677..6f8c260a 100644 --- a/src/main/java/com/minelittlepony/client/render/LevitatingItemRenderer.java +++ b/src/main/java/com/minelittlepony/client/render/LevitatingItemRenderer.java @@ -1,7 +1,7 @@ package com.minelittlepony.client.render; +import com.minelittlepony.api.config.PonyConfig; import com.minelittlepony.api.pony.IPony; -import com.minelittlepony.client.MineLittlePony; import com.minelittlepony.client.util.render.RenderLayerUtil; import org.jetbrains.annotations.Nullable; @@ -11,7 +11,6 @@ import net.minecraft.client.render.item.ItemRenderer; import net.minecraft.client.render.model.json.ModelTransformationMode; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.entity.LivingEntity; -import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.CrossbowItem; import net.minecraft.item.ItemStack; import net.minecraft.screen.PlayerScreenHandler; @@ -37,32 +36,36 @@ public class LevitatingItemRenderer { */ public void renderItem(ItemRenderer itemRenderer, @Nullable LivingEntity entity, ItemStack stack, ModelTransformationMode mode, boolean left, MatrixStack matrix, VertexConsumerProvider renderContext, @Nullable World world, int lightUv, int posLong) { - if (entity instanceof PlayerEntity && (mode.isFirstPerson() || mode == ModelTransformationMode.THIRD_PERSON_LEFT_HAND || mode == ModelTransformationMode.THIRD_PERSON_RIGHT_HAND)) { + if (mode.isFirstPerson() + || mode == ModelTransformationMode.THIRD_PERSON_LEFT_HAND + || mode == ModelTransformationMode.THIRD_PERSON_RIGHT_HAND + ) { + IPony.getManager().getPony(entity).ifPresentOrElse(pony -> { + matrix.push(); - IPony pony = IPony.getManager().getPony((PlayerEntity)entity); + boolean doMagic = PonyConfig.getInstance().fpsmagic.get() && pony.hasMagic(); - matrix.push(); + if (doMagic && mode.isFirstPerson()) { + setupPerspective(itemRenderer, entity, stack, left, matrix); + } - boolean doMagic = MineLittlePony.getInstance().getConfig().fpsmagic.get() && pony.hasMagic(); + itemRenderer.renderItem(entity, stack, mode, left, matrix, renderContext, world, lightUv, OverlayTexture.DEFAULT_UV, posLong); - if (doMagic && mode.isFirstPerson()) { - setupPerspective(itemRenderer, entity, stack, left, matrix); - } + if (doMagic) { + VertexConsumerProvider interceptedContext = getProvider(pony, renderContext); - itemRenderer.renderItem(entity, stack, mode, left, matrix, renderContext, world, lightUv, OverlayTexture.DEFAULT_UV, posLong); + matrix.scale(1.1F, 1.1F, 1.1F); + matrix.translate(0.015F, 0.01F, 0.01F); - if (doMagic) { - VertexConsumerProvider interceptedContext = getProvider(pony, renderContext); + itemRenderer.renderItem(entity, stack, mode, left, matrix, interceptedContext, world, lightUv, OverlayTexture.DEFAULT_UV, posLong); + matrix.translate(-0.03F, -0.02F, -0.02F); + itemRenderer.renderItem(entity, stack, mode, left, matrix, interceptedContext, world, lightUv, OverlayTexture.DEFAULT_UV, posLong); + } - matrix.scale(1.1F, 1.1F, 1.1F); - matrix.translate(0.015F, 0.01F, 0.01F); - - itemRenderer.renderItem(entity, stack, mode, left, matrix, interceptedContext, world, lightUv, OverlayTexture.DEFAULT_UV, posLong); - matrix.translate(-0.03F, -0.02F, -0.02F); - itemRenderer.renderItem(entity, stack, mode, left, matrix, interceptedContext, world, lightUv, OverlayTexture.DEFAULT_UV, posLong); - } - - matrix.pop(); + matrix.pop(); + }, () -> { + itemRenderer.renderItem(entity, stack, mode, left, matrix, renderContext, world, lightUv, OverlayTexture.DEFAULT_UV, posLong); + }); } else { itemRenderer.renderItem(entity, stack, mode, left, matrix, renderContext, world, lightUv, OverlayTexture.DEFAULT_UV, posLong); } diff --git a/src/main/java/com/minelittlepony/client/render/entity/feature/HeldItemFeature.java b/src/main/java/com/minelittlepony/client/render/entity/feature/HeldItemFeature.java index 35b6c063..c6b46280 100644 --- a/src/main/java/com/minelittlepony/client/render/entity/feature/HeldItemFeature.java +++ b/src/main/java/com/minelittlepony/client/render/entity/feature/HeldItemFeature.java @@ -37,6 +37,7 @@ public class HeldItemFeature & return main ? entity.getMainHandStack() : entity.getOffHandStack(); } + @Override public void render(MatrixStack stack, VertexConsumerProvider renderContext, int lightUv, T entity, float limbDistance, float limbAngle, float tickDelta, float age, float headYaw, float headPitch) { From 9f77999baf53f3b8488b74c6af48c021a1254dc1 Mon Sep 17 00:00:00 2001 From: Sollace Date: Thu, 5 Oct 2023 20:28:29 +0100 Subject: [PATCH 15/35] Fixed tiny silly ponies reverting to normal villagers when they grow up # Conflicts: # src/main/java/com/minelittlepony/client/render/entity/npc/textures/SillyPonyTextureSupplier.java --- .../entity/npc/AbstractNpcRenderer.java | 2 +- .../textures/SillyPonyTextureSupplier.java | 25 ++++++------------- 2 files changed, 9 insertions(+), 18 deletions(-) diff --git a/src/main/java/com/minelittlepony/client/render/entity/npc/AbstractNpcRenderer.java b/src/main/java/com/minelittlepony/client/render/entity/npc/AbstractNpcRenderer.java index 3b787ea9..5af152b5 100644 --- a/src/main/java/com/minelittlepony/client/render/entity/npc/AbstractNpcRenderer.java +++ b/src/main/java/com/minelittlepony/client/render/entity/npc/AbstractNpcRenderer.java @@ -27,7 +27,7 @@ abstract class AbstractNpcRenderer private final NpcClothingFeature, AbstractNpcRenderer> clothing; public AbstractNpcRenderer(EntityRendererFactory.Context context, String type, TextureSupplier textureSupplier, TextureSupplier formatter) { - super(context, ModelType.getPlayerModel(Race.EARTH).getKey(false), new SillyPonyTextureSupplier<>(textureSupplier, formatter)); + super(context, ModelType.getPlayerModel(Race.EARTH).getKey(false), SillyPonyTextureSupplier.create(textureSupplier, formatter)); entityType = type; clothing = new NpcClothingFeature<>(this, entityType); addFeature(clothing); diff --git a/src/main/java/com/minelittlepony/client/render/entity/npc/textures/SillyPonyTextureSupplier.java b/src/main/java/com/minelittlepony/client/render/entity/npc/textures/SillyPonyTextureSupplier.java index 1750fed8..276a0379 100644 --- a/src/main/java/com/minelittlepony/client/render/entity/npc/textures/SillyPonyTextureSupplier.java +++ b/src/main/java/com/minelittlepony/client/render/entity/npc/textures/SillyPonyTextureSupplier.java @@ -4,22 +4,13 @@ import net.minecraft.entity.LivingEntity; import net.minecraft.util.Identifier; import net.minecraft.village.VillagerDataContainer; -public class SillyPonyTextureSupplier implements TextureSupplier { - - private final TextureSupplier fallback; - - private final Identifier egg; - private final Identifier egg2; - - public SillyPonyTextureSupplier(TextureSupplier fallback, TextureSupplier formatter) { - this.fallback = fallback; - this.egg = formatter.apply("silly_pony"); - this.egg2 = formatter.apply("tiny_silly_pony"); - } - - @Override - public Identifier apply(T entity) { - return isBestPony(entity) ? (entity.isBaby() ? egg2 : egg) : fallback.apply(entity); +public class SillyPonyTextureSupplier { + public static TextureSupplier create(TextureSupplier fallback, TextureSupplier formatter) { + Identifier egg = formatter.apply("silly_pony"); + Identifier egg2 = formatter.apply("tiny_silly_pony"); + return entity -> { + return isBestPony(entity) ? ("Dinky".equals(entity.getCustomName().getString()) ? egg2 : egg) : fallback.apply(entity); + }; } public static boolean isBestPony(LivingEntity entity) { @@ -27,7 +18,7 @@ public class SillyPonyTextureSupplier Date: Thu, 5 Oct 2023 20:42:31 +0100 Subject: [PATCH 16/35] Ponies can now lie down by holding crouch and not moving --- .../java/com/minelittlepony/api/model/ModelAttributes.java | 6 ++++++ .../com/minelittlepony/client/model/AbstractPonyModel.java | 5 +++++ 2 files changed, 11 insertions(+) diff --git a/src/main/java/com/minelittlepony/api/model/ModelAttributes.java b/src/main/java/com/minelittlepony/api/model/ModelAttributes.java index abfdab8f..f314a8cb 100644 --- a/src/main/java/com/minelittlepony/api/model/ModelAttributes.java +++ b/src/main/java/com/minelittlepony/api/model/ModelAttributes.java @@ -10,6 +10,7 @@ import java.util.*; import net.minecraft.client.render.entity.model.BipedEntityModel.ArmPose; import net.minecraft.entity.LivingEntity; +import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.ItemStack; import net.minecraft.util.*; import net.minecraft.util.math.MathHelper; @@ -152,6 +153,11 @@ public class ModelAttributes { isSitting = PonyPosture.isSitting(entity); isSleeping = entity.isAlive() && entity.isSleeping();; isLyingDown = isSleeping; + if (entity instanceof PlayerEntity) { + boolean moving = entity.getVelocity().multiply(1, 0, 1).length() == 0 && entity.isSneaking(); + isLyingDown |= getMainInterpolator().interpolate("lyingDown", moving ? 10 : 0, 10) >= 9; + } + isCrouching = !isLyingDown && !isSitting && mode == Mode.THIRD_PERSON && PonyPosture.isCrouching(pony, entity); isFlying = !isLyingDown && mode == Mode.THIRD_PERSON && PonyPosture.isFlying(entity); isGliding = entity.isFallFlying(); diff --git a/src/main/java/com/minelittlepony/client/model/AbstractPonyModel.java b/src/main/java/com/minelittlepony/client/model/AbstractPonyModel.java index aea6fd80..e8d4d5c3 100644 --- a/src/main/java/com/minelittlepony/client/model/AbstractPonyModel.java +++ b/src/main/java/com/minelittlepony/client/model/AbstractPonyModel.java @@ -623,8 +623,11 @@ public abstract class AbstractPonyModel extends ClientPo stack.multiply(RotationAxis.POSITIVE_Y.rotationDegrees(180)); } + boolean crouching = attributes.isCrouching; + if (attributes.isLyingDown && !attributes.isSleeping) { stack.translate(0, 1.35F, 0); + attributes.isCrouching = sneaking; } if (attributes.isHorsey) { @@ -638,5 +641,7 @@ public abstract class AbstractPonyModel extends ClientPo } PonyTransformation.forSize(getSize()).transform(this, part, stack); + + attributes.isCrouching = crouching; } } From d011c11689b4015f3dd851b31d8273a71bab6587 Mon Sep 17 00:00:00 2001 From: Sollace Date: Fri, 6 Oct 2023 18:51:20 +0100 Subject: [PATCH 17/35] Only replace a layer if it has a compatible buffer format. Should fix #254 --- .../client/render/LevitatingItemRenderer.java | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/minelittlepony/client/render/LevitatingItemRenderer.java b/src/main/java/com/minelittlepony/client/render/LevitatingItemRenderer.java index 6f8c260a..e1dc02ed 100644 --- a/src/main/java/com/minelittlepony/client/render/LevitatingItemRenderer.java +++ b/src/main/java/com/minelittlepony/client/render/LevitatingItemRenderer.java @@ -14,7 +14,6 @@ import net.minecraft.entity.LivingEntity; import net.minecraft.item.CrossbowItem; import net.minecraft.item.ItemStack; import net.minecraft.screen.PlayerScreenHandler; -import net.minecraft.util.Identifier; import net.minecraft.util.UseAction; import net.minecraft.util.math.RotationAxis; import net.minecraft.world.World; @@ -23,11 +22,10 @@ public class LevitatingItemRenderer { private VertexConsumerProvider getProvider(IPony pony, VertexConsumerProvider renderContext) { final int color = pony.metadata().getGlowColor(); return layer -> { - Identifier texture = RenderLayerUtil.getTexture(layer).orElse(PlayerScreenHandler.BLOCK_ATLAS_TEXTURE); - if (texture == ItemRenderer.ENTITY_ENCHANTMENT_GLINT || texture == ItemRenderer.ITEM_ENCHANTMENT_GLINT) { + if (layer.getVertexFormat() != VertexFormats.POSITION_COLOR_TEXTURE_OVERLAY_LIGHT_NORMAL) { return renderContext.getBuffer(layer); } - return renderContext.getBuffer(MagicGlow.getColoured(texture, color)); + return renderContext.getBuffer(MagicGlow.getColoured(RenderLayerUtil.getTexture(layer).orElse(PlayerScreenHandler.BLOCK_ATLAS_TEXTURE), color)); }; } From 011ceedafe064532125c4f9976dd851140dc5d0c Mon Sep 17 00:00:00 2001 From: Sollace Date: Fri, 6 Oct 2023 19:19:40 +0100 Subject: [PATCH 18/35] Update version range --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 1d67e849..999cda73 100644 --- a/gradle.properties +++ b/gradle.properties @@ -15,7 +15,7 @@ org.gradle.daemon=false description=Mine Little Pony turns players and mobs into ponies. Press F9 ingame to access settings. # Publishing - minecraft_version_range=>=1.20.0 + minecraft_version_range=>=1.20.0 <=1.20.1 modrinth_loader_type=fabric modrinth_project_id=JBjInUXM From 9064272771e8745808a1dd83166f4caefa1a3f47 Mon Sep 17 00:00:00 2001 From: Sollace Date: Tue, 24 Oct 2023 01:12:36 +0100 Subject: [PATCH 19/35] Fix constant logging when playing on a multiplayer server that doesn't register for receiving pony data packets --- .../api/pony/network/fabric/Channel.java | 15 ++++++++------- .../client/render/EquineRenderManager.java | 2 +- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/minelittlepony/api/pony/network/fabric/Channel.java b/src/main/java/com/minelittlepony/api/pony/network/fabric/Channel.java index d787d8be..2c719950 100644 --- a/src/main/java/com/minelittlepony/api/pony/network/fabric/Channel.java +++ b/src/main/java/com/minelittlepony/api/pony/network/fabric/Channel.java @@ -55,18 +55,19 @@ public class Channel { }); } + public static boolean isRegistered() { + return registered; + } + public static boolean broadcastPonyData(IPonyData packet, boolean noSkin) { + if (!isRegistered()) { + return false; + } if (FabricLoader.getInstance().getEnvironmentType() != EnvType.CLIENT) { throw new RuntimeException("Client packet send called by the server"); } - if (!registered) { - LOGGER.info("Skipping network packet as the server has not consented"); - return false; - } else { - LOGGER.info("Sending pony data to server for player"); - } - + LOGGER.info("Sending pony data to server for player"); ClientPlayNetworking.send(CLIENT_PONY_DATA, new MsgPonyData(packet, noSkin).toBuffer(PacketByteBufs.create())); return true; } diff --git a/src/main/java/com/minelittlepony/client/render/EquineRenderManager.java b/src/main/java/com/minelittlepony/client/render/EquineRenderManager.java index c72f06d6..5c8e6309 100644 --- a/src/main/java/com/minelittlepony/client/render/EquineRenderManager.java +++ b/src/main/java/com/minelittlepony/client/render/EquineRenderManager.java @@ -140,7 +140,7 @@ public class EquineRenderManager Date: Fri, 27 Oct 2023 22:09:55 +0100 Subject: [PATCH 20/35] Parse pony data on the client thread executor, and don't send unparsed pony data responses to a consenting server. Rather wait for the data to resolve and let the entity send it normally. --- .../api/pony/network/fabric/Channel.java | 10 +--------- .../client/util/render/NativeUtil.java | 13 +++++++------ 2 files changed, 8 insertions(+), 15 deletions(-) diff --git a/src/main/java/com/minelittlepony/api/pony/network/fabric/Channel.java b/src/main/java/com/minelittlepony/api/pony/network/fabric/Channel.java index 2c719950..a35e7ecc 100644 --- a/src/main/java/com/minelittlepony/api/pony/network/fabric/Channel.java +++ b/src/main/java/com/minelittlepony/api/pony/network/fabric/Channel.java @@ -13,7 +13,6 @@ import net.minecraft.util.Identifier; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; -import com.minelittlepony.api.pony.IPony; import com.minelittlepony.api.pony.IPonyData; import com.minelittlepony.api.pony.network.MsgPonyData; import com.minelittlepony.client.MineLittlePony; @@ -38,14 +37,7 @@ public class Channel { ClientPlayNetworking.registerGlobalReceiver(REQUEST_PONY_DATA, (client, handler, ignored, sender) -> { registered = true; - if (client.player != null) { - IPony pony = IPony.getManager().getPony(client.player); - LOGGER.info("Server has just consented"); - - sender.sendPacket(CLIENT_PONY_DATA, new MsgPonyData(pony.metadata(), pony.defaulted()).toBuffer(PacketByteBufs.create())); - } else { - LOGGER.info("Server has just consented but the client player was not set"); - } + LOGGER.info("Server has just consented"); }); ServerPlayNetworking.registerGlobalReceiver(CLIENT_PONY_DATA, (server, player, ignore, buffer, ignore2) -> { MsgPonyData packet = new MsgPonyData(buffer); diff --git a/src/main/java/com/minelittlepony/client/util/render/NativeUtil.java b/src/main/java/com/minelittlepony/client/util/render/NativeUtil.java index 75639cd4..7063d0c0 100644 --- a/src/main/java/com/minelittlepony/client/util/render/NativeUtil.java +++ b/src/main/java/com/minelittlepony/client/util/render/NativeUtil.java @@ -87,16 +87,17 @@ public class NativeUtil { } public static void parseImage(Identifier resource, Consumer consumer, Consumer fail) { - parseImage(resource, consumer, fail, 0); - } - - private static void parseImage(Identifier resource, Consumer consumer, Consumer fail, int attempt) { - try { + MinecraftClient.getInstance().execute(() -> { if (!RenderSystem.isOnRenderThread()) { - RenderSystem.recordRenderCall(() -> parseImage(resource, consumer, fail, attempt)); + RenderSystem.recordRenderCall(() -> _parseImage(resource, consumer, fail, 0)); return; } + _parseImage(resource, consumer, fail, 0); + }); + } + private static void _parseImage(Identifier resource, Consumer consumer, Consumer fail, int attempt) { + try { MinecraftClient mc = MinecraftClient.getInstance(); TextureManager textures = mc.getTextureManager(); From 9d65185fcd1a67cf95b7cc3eab0d8079c4dd507e Mon Sep 17 00:00:00 2001 From: Sollace Date: Fri, 9 Feb 2024 16:57:40 +0000 Subject: [PATCH 21/35] Update skins pack --- skins | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/skins b/skins index 8987db55..45dfe110 160000 --- a/skins +++ b/skins @@ -1 +1 @@ -Subproject commit 8987db558b16657245ab8d0b98be366f46dc157c +Subproject commit 45dfe1101b4506077b3d3f2246b08c9b485735eb From 475e96726e78758001e506833bc3865053fd0f13 Mon Sep 17 00:00:00 2001 From: Sollace Date: Fri, 9 Feb 2024 17:40:15 +0000 Subject: [PATCH 22/35] Update mson --- gradle.properties | 6 ++-- .../client/mixin/MixinClientPlayerEntity.java | 1 - .../mixin/MixinEntityRenderDispatcher.java | 29 ------------------- .../client/render/PonyRenderDispatcher.java | 10 ++++++- src/main/resources/fabric.mod.json | 3 +- src/main/resources/minelp.mixin.json | 1 - 6 files changed, 14 insertions(+), 36 deletions(-) delete mode 100644 src/main/java/com/minelittlepony/client/mixin/MixinEntityRenderDispatcher.java diff --git a/gradle.properties b/gradle.properties index 999cda73..84885946 100644 --- a/gradle.properties +++ b/gradle.properties @@ -21,6 +21,6 @@ org.gradle.daemon=false # Dependencies modmenu_version=7.1.0 - kirin_version=1.15.2 - hd_skins_version=6.10.0+1.20 - mson_version=1.8.1 + kirin_version=1.15.4+1.20 + hd_skins_version=6.10.3+1.20 + mson_version=1.9.2+1.20.1 diff --git a/src/main/java/com/minelittlepony/client/mixin/MixinClientPlayerEntity.java b/src/main/java/com/minelittlepony/client/mixin/MixinClientPlayerEntity.java index 81c1f4fd..3649e6d0 100644 --- a/src/main/java/com/minelittlepony/client/mixin/MixinClientPlayerEntity.java +++ b/src/main/java/com/minelittlepony/client/mixin/MixinClientPlayerEntity.java @@ -1,7 +1,6 @@ package com.minelittlepony.client.mixin; import com.minelittlepony.api.pony.IPony; -import com.minelittlepony.client.pony.Pony; import com.minelittlepony.client.render.EquineRenderManager; import net.minecraft.client.network.AbstractClientPlayerEntity; diff --git a/src/main/java/com/minelittlepony/client/mixin/MixinEntityRenderDispatcher.java b/src/main/java/com/minelittlepony/client/mixin/MixinEntityRenderDispatcher.java deleted file mode 100644 index 5cf71455..00000000 --- a/src/main/java/com/minelittlepony/client/mixin/MixinEntityRenderDispatcher.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.minelittlepony.client.mixin; - -import com.minelittlepony.api.model.PreviewModel; -import com.minelittlepony.api.pony.IPony; - -import net.minecraft.client.network.AbstractClientPlayerEntity; -import net.minecraft.client.render.entity.EntityRenderDispatcher; -import net.minecraft.entity.Entity; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Redirect; - -@Mixin(EntityRenderDispatcher.class) -abstract class MixinEntityRenderDispatcher { - @Redirect( - method = "getRenderer(Lnet/minecraft/entity/Entity;)Lnet/minecraft/client/render/entity/EntityRenderer;", - at = @At( - value = "INVOKE", - target = "Lnet/minecraft/client/network/AbstractClientPlayerEntity;getModel()Ljava/lang/String;")) - private String getPlayerModel(AbstractClientPlayerEntity player, Entity entity) { - if (player instanceof PreviewModel) { - return player.getModel(); - } - return IPony.getManager() - .getPony(player) - .race() - .getModelId(player.getModel().contains("slim")); - } -} diff --git a/src/main/java/com/minelittlepony/client/render/PonyRenderDispatcher.java b/src/main/java/com/minelittlepony/client/render/PonyRenderDispatcher.java index 547a3a28..669c84ef 100644 --- a/src/main/java/com/minelittlepony/client/render/PonyRenderDispatcher.java +++ b/src/main/java/com/minelittlepony/client/render/PonyRenderDispatcher.java @@ -2,6 +2,7 @@ package com.minelittlepony.client.render; import java.util.function.Function; +import com.minelittlepony.api.pony.IPony; import com.minelittlepony.api.pony.meta.Race; import com.minelittlepony.client.mixin.MixinEntityRenderers; import com.minelittlepony.client.model.IPonyModel; @@ -19,6 +20,7 @@ import net.minecraft.client.render.entity.model.EntityModel; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityType; import net.minecraft.entity.LivingEntity; +import net.minecraft.util.Identifier; /** * Render manager responsible for replacing and restoring entity renderers when the client settings change. @@ -55,8 +57,14 @@ public class PonyRenderDispatcher { } private void addPlayerSkin(EntityRenderDispatcher manager, boolean slimArms, Race race) { + String modelId = race.getModelId(slimArms); Mson.getInstance().getEntityRendererRegistry().registerPlayerRenderer( - race.getModelId(slimArms), + new Identifier("minelittlepony", race.getModelId(slimArms)), + player -> { + return IPony.getManager() + .getPony(player) + .race().getModelId(slimArms).equalsIgnoreCase(modelId); + }, ModelType.getPlayerModel(race).getFactory(slimArms) ); } diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index ae4e1f24..4ce46e03 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -36,7 +36,8 @@ "fabric-api-base": ">=0.1.0", "fabric-lifecycle-events-v1": ">=0.1.0", "fabric-resource-loader-v0": ">=0.1.0", - "kirin": "*" + "kirin": "*", + "mson": "*" }, "suggests": { "hdskins": "*", diff --git a/src/main/resources/minelp.mixin.json b/src/main/resources/minelp.mixin.json index edb508ea..ac4aa1d6 100644 --- a/src/main/resources/minelp.mixin.json +++ b/src/main/resources/minelp.mixin.json @@ -8,7 +8,6 @@ "IResizeable", "MixinCamera", "MixinDefaultSkinHelper", - "MixinEntityRenderDispatcher", "MixinEntityRenderers", "MixinSkullBlockEntityRenderer", "MixinHeldItemRenderer", From 387c9307d06244763e789f2b806ea030da0da355 Mon Sep 17 00:00:00 2001 From: Sollace Date: Fri, 9 Feb 2024 19:24:49 +0000 Subject: [PATCH 23/35] Increase time required before a pony will lie down --- src/main/java/com/minelittlepony/api/model/ModelAttributes.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/minelittlepony/api/model/ModelAttributes.java b/src/main/java/com/minelittlepony/api/model/ModelAttributes.java index f314a8cb..68f568b8 100644 --- a/src/main/java/com/minelittlepony/api/model/ModelAttributes.java +++ b/src/main/java/com/minelittlepony/api/model/ModelAttributes.java @@ -155,7 +155,7 @@ public class ModelAttributes { isLyingDown = isSleeping; if (entity instanceof PlayerEntity) { boolean moving = entity.getVelocity().multiply(1, 0, 1).length() == 0 && entity.isSneaking(); - isLyingDown |= getMainInterpolator().interpolate("lyingDown", moving ? 10 : 0, 10) >= 9; + isLyingDown |= getMainInterpolator().interpolate("lyingDown", moving ? 10 : 0, 200) >= 9; } isCrouching = !isLyingDown && !isSitting && mode == Mode.THIRD_PERSON && PonyPosture.isCrouching(pony, entity); From 0895e94053d43751c7d790a7478f38b86e2c1712 Mon Sep 17 00:00:00 2001 From: Sollace Date: Fri, 9 Feb 2024 19:25:23 +0000 Subject: [PATCH 24/35] Fix various transformations for when a pony is lying down but not sleeping --- .../client/model/ClientPonyModel.java | 2 +- .../render/entity/feature/CapeFeature.java | 5 +++- .../client/transform/PonyTransformation.java | 23 ++++++++++++------- 3 files changed, 20 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/minelittlepony/client/model/ClientPonyModel.java b/src/main/java/com/minelittlepony/client/model/ClientPonyModel.java index 6b040c65..586ebb9f 100644 --- a/src/main/java/com/minelittlepony/client/model/ClientPonyModel.java +++ b/src/main/java/com/minelittlepony/client/model/ClientPonyModel.java @@ -51,7 +51,7 @@ public abstract class ClientPonyModel extends MsonPlayer child = entity.isBaby(); attributes.updateLivingState(entity, pony, mode); PonyModelPrepareCallback.EVENT.invoker().onPonyModelPrepared(entity, this, mode); - sneaking = attributes.isCrouching; + sneaking = attributes.isCrouching && !attributes.isLyingDown; riding = attributes.isSitting; } diff --git a/src/main/java/com/minelittlepony/client/render/entity/feature/CapeFeature.java b/src/main/java/com/minelittlepony/client/render/entity/feature/CapeFeature.java index 83173993..66ab5cda 100644 --- a/src/main/java/com/minelittlepony/client/render/entity/feature/CapeFeature.java +++ b/src/main/java/com/minelittlepony/client/render/entity/feature/CapeFeature.java @@ -31,8 +31,11 @@ public class CapeFeature> stack.push(); - model.transform(BodyPart.BODY, stack); stack.translate(0, 0.24F, 0); + if (model.getAttributes().isLyingDown) { + stack.translate(0, -0.05F, 0); + } + model.transform(BodyPart.BODY, stack); model.getBodyPart(BodyPart.BODY).rotate(stack); double capeX = MathHelper.lerp(tickDelta, player.capeX, player.prevCapeX) - MathHelper.lerp(tickDelta, player.prevX, player.getX()); diff --git a/src/main/java/com/minelittlepony/client/transform/PonyTransformation.java b/src/main/java/com/minelittlepony/client/transform/PonyTransformation.java index 2de0de49..ff3d8b9a 100644 --- a/src/main/java/com/minelittlepony/client/transform/PonyTransformation.java +++ b/src/main/java/com/minelittlepony/client/transform/PonyTransformation.java @@ -20,7 +20,8 @@ public enum PonyTransformation { public void transform(IModel 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.61F, 0.1F); + 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); switch (part) { @@ -28,7 +29,8 @@ public enum PonyTransformation { if (model.getAttributes().isCrouching) stack.translate(-0.03F, 0.03F, 0.13F); break; case HEAD: - if (model.getAttributes().isCrouching) stack.translate(0, 0.1F, 0); + if (model.getAttributes().isLyingDown) stack.translate(-0.05F, -0.05F, 0); + if (model.getAttributes().isCrouching) stack.translate(0, 0.1F, -0); break; case BACK: translateForRider(stack); @@ -42,7 +44,8 @@ public enum PonyTransformation { public void transform(IModel model, BodyPart part, MatrixStack stack) { if (model.getAttributes().isSwimming) stack.translate(0, -0.2F, 0); if (model.getAttributes().isCrouching) stack.translate(0, -0.15F, 0); - if (model.getAttributes().isLyingDown) stack.translate(0, -0.6F, 0.15F); + if (model.getAttributes().isLyingDown) stack.translate(0, -0.68F, 0.15F); + if (model.getAttributes().isSleeping) stack.translate(0, 0.08F, 0); if (model.getAttributes().isSitting) stack.translate(0, 0, -0.2F); switch (part) { @@ -77,7 +80,8 @@ public enum PonyTransformation { @Override public void transform(IModel model, BodyPart part, MatrixStack stack) { if (model.getAttributes().isCrouching) stack.translate(0, -0.15F, 0); - if (model.getAttributes().isLyingDown) stack.translate(0, -0.6F, 0.25F); + if (model.getAttributes().isLyingDown) stack.translate(0, -0.66F, 0.25F); + if (model.getAttributes().isSleeping) stack.translate(0, 0.06F, 0); if (model.getAttributes().isSitting) stack.translate(0, 0, -0.2F); switch (part) { @@ -88,7 +92,7 @@ public enum PonyTransformation { break; case HEAD: stack.translate(0, -0.14F, -0.06F); - if (model.getAttributes().isLyingDown) stack.translate(0, 0, -0.1F); + if (model.getAttributes().isLyingDown) stack.translate(-0.05F, 0, -0.1F); if (model.getAttributes().isCrouching) stack.translate(0, 0.15F, 0); break; case BODY: @@ -113,7 +117,8 @@ public enum PonyTransformation { public void transform(IModel model, BodyPart part, MatrixStack stack) { if (model.getAttributes().isSwimming) stack.translate(0, -0.9F, 0); if (model.getAttributes().isCrouching) stack.translate(0, -0.2F, 0); - if (model.getAttributes().isLyingDown) stack.translate(0, -0.8F, -0.3F); + if (model.getAttributes().isLyingDown) stack.translate(0, -0.98F, -0.3F); + if (model.getAttributes().isSleeping) stack.translate(0, 0.18F, 0); if (model.getAttributes().isSitting) stack.translate(0, -0.6F, -0.2F); stack.translate(0, 0.2F, 0); @@ -142,7 +147,8 @@ public enum PonyTransformation { @Override public void transform(IModel model, BodyPart part, MatrixStack stack) { if (model.getAttributes().isCrouching) stack.translate(0, -0.15F, 0); - if (model.getAttributes().isLyingDown) stack.translate(0, -0.5F, 0.35F); + if (model.getAttributes().isLyingDown) stack.translate(0, -0.6F, 0.35F); + if (model.getAttributes().isSleeping) stack.translate(0, 0.1F, 0); if (model.getAttributes().isSitting) stack.translate(0, 0.1F, -0.2F); switch (part) { @@ -175,7 +181,8 @@ public enum PonyTransformation { public void transform(IModel model, BodyPart part, MatrixStack stack) { if (model.getAttributes().isSwimming) stack.translate(0, -0.6F, 0); if (model.getAttributes().isCrouching) stack.translate(0, -0.15F, 0); - if (model.getAttributes().isLyingDown) stack.translate(0, -0.45F, -0.3F); + if (model.getAttributes().isLyingDown) stack.translate(0, -0.71F, -0.3F); + if (model.getAttributes().isSleeping) stack.translate(0, 0.26F, 0); if (model.getAttributes().isSitting) stack.translate(0, -0.4F, -0.2F); switch (part) { From 21a33ebc76abdcf1f21fa7be9f4ad710915086db Mon Sep 17 00:00:00 2001 From: Sollace Date: Fri, 9 Feb 2024 19:25:44 +0000 Subject: [PATCH 25/35] Temp fix for an hdskins bug --- .../minelittlepony/client/hdskins/GuiSkinsMineLP.java | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/main/java/com/minelittlepony/client/hdskins/GuiSkinsMineLP.java b/src/main/java/com/minelittlepony/client/hdskins/GuiSkinsMineLP.java index 05d484cd..8924ad9f 100644 --- a/src/main/java/com/minelittlepony/client/hdskins/GuiSkinsMineLP.java +++ b/src/main/java/com/minelittlepony/client/hdskins/GuiSkinsMineLP.java @@ -6,6 +6,7 @@ import com.minelittlepony.client.MineLittlePony; import com.minelittlepony.common.client.gui.dimension.Bounds; import com.minelittlepony.common.client.gui.element.Button; import com.minelittlepony.common.client.gui.sprite.TextureSprite; +import com.minelittlepony.hdskins.client.HDSkins; import com.minelittlepony.hdskins.client.gui.DualCarouselWidget; import com.minelittlepony.hdskins.client.gui.GuiSkins; import com.minelittlepony.hdskins.server.SkinServerList; @@ -40,6 +41,16 @@ class GuiSkinsMineLP extends GuiSkins { }); } + @Override + public void init() { + // TODO: Known HDSkins bug only occurs when reloading with Ctrl+Alt+R + var equipment = HDSkins.getInstance().getDummyPlayerEquipmentList().getValues().toList(); + if (equipment.indexOf(previewer.getEquipment()) < 0) { + previewer.setEquipment(HDSkins.getInstance().getDummyPlayerEquipmentList().getDefault()); + } + super.init(); + } + @Override protected void initServerPreviewButtons(Bounds area) { if (!(parent instanceof GuiPonySettings)) { From d392b204a329b1ea6e12057685175b200985adbc Mon Sep 17 00:00:00 2001 From: Sollace Date: Fri, 9 Feb 2024 19:32:22 +0000 Subject: [PATCH 26/35] Update mson --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 84885946..3cdc52fd 100644 --- a/gradle.properties +++ b/gradle.properties @@ -23,4 +23,4 @@ org.gradle.daemon=false modmenu_version=7.1.0 kirin_version=1.15.4+1.20 hd_skins_version=6.10.3+1.20 - mson_version=1.9.2+1.20.1 + mson_version=1.9.3+1.20.1 From a40b55e142a9323a32ba519633273a17fad1c932 Mon Sep 17 00:00:00 2001 From: Sollace Date: Sat, 24 Feb 2024 16:36:03 +0000 Subject: [PATCH 27/35] Fix the leg issue --- .../com/minelittlepony/client/render/PonyRenderDispatcher.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/minelittlepony/client/render/PonyRenderDispatcher.java b/src/main/java/com/minelittlepony/client/render/PonyRenderDispatcher.java index 669c84ef..dd6822dc 100644 --- a/src/main/java/com/minelittlepony/client/render/PonyRenderDispatcher.java +++ b/src/main/java/com/minelittlepony/client/render/PonyRenderDispatcher.java @@ -63,7 +63,7 @@ public class PonyRenderDispatcher { player -> { return IPony.getManager() .getPony(player) - .race().getModelId(slimArms).equalsIgnoreCase(modelId); + .race().getModelId(player.getModel().contains("slim")).equalsIgnoreCase(modelId); }, ModelType.getPlayerModel(race).getFactory(slimArms) ); From 0d97f6b9d4d7622f36bfee8f9f349ff8e54a3a44 Mon Sep 17 00:00:00 2001 From: Sollace Date: Tue, 5 Mar 2024 12:24:54 +0000 Subject: [PATCH 28/35] Fix giant scale --- .../minelittlepony/client/render/entity/ZomponyRenderer.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/minelittlepony/client/render/entity/ZomponyRenderer.java b/src/main/java/com/minelittlepony/client/render/entity/ZomponyRenderer.java index 70a5bbda..967e9539 100644 --- a/src/main/java/com/minelittlepony/client/render/entity/ZomponyRenderer.java +++ b/src/main/java/com/minelittlepony/client/render/entity/ZomponyRenderer.java @@ -38,6 +38,6 @@ public class ZomponyRenderer extends PonyRenderer< } public static ZomponyRenderer giant(EntityRendererFactory.Context context) { - return new ZomponyRenderer<>(context, TextureSupplier.of(ZOMBIE), 3); + return new ZomponyRenderer<>(context, TextureSupplier.of(ZOMBIE), 6.8F); } } From 71518d947840fe63d70072966196f7ee682f0ee0 Mon Sep 17 00:00:00 2001 From: Sollace Date: Sat, 6 Apr 2024 15:12:19 +0100 Subject: [PATCH 29/35] Update dependencies --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 3cdc52fd..47ea0323 100644 --- a/gradle.properties +++ b/gradle.properties @@ -21,6 +21,6 @@ org.gradle.daemon=false # Dependencies modmenu_version=7.1.0 - kirin_version=1.15.4+1.20 + kirin_version=1.15.6+1.20.1 hd_skins_version=6.10.3+1.20 mson_version=1.9.3+1.20.1 From a3ea4f59820e258301ef4f1e70bfe93696d09af9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C2=ADSollace?= Date: Tue, 9 Apr 2024 13:25:43 +0100 Subject: [PATCH 30/35] Update Crowdin configuration file --- crowdin.yml | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 crowdin.yml diff --git a/crowdin.yml b/crowdin.yml new file mode 100644 index 00000000..25b2b86b --- /dev/null +++ b/crowdin.yml @@ -0,0 +1,3 @@ +files: + - source: /src/main/resources/assets/minelittlepony/lang/en_us.json + translation: /src/main/resources/assets/minelittlepony/lang/%locale_with_underscore%.json From c0e46203551372c6d6eb92195d6ffd796366e439 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C2=ADSollace?= Date: Tue, 9 Apr 2024 13:31:18 +0100 Subject: [PATCH 31/35] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 42684e4a..2c102561 100644 --- a/README.md +++ b/README.md @@ -6,6 +6,7 @@ [![Modrinth](https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fapi.modrinth.com%2Fv2%2Fproject%2Fmine-little-pony%2Fversion&query=%24%5B0%5D.version_number&label=modrinth)](https://modrinth.com/mod/mine-little-pony) [![Discord Server](https://img.shields.io/discord/182490536119107584.svg?color=blueviolet)](https://discord.gg/HbJSFyu) ![License](https://img.shields.io/github/license/MineLittlePony/MineLittlePony) +[![Crowdin](https://badges.crowdin.net/mine-little-pony/localized.svg)](https://crowdin.com/project/mine-little-pony) ![](https://img.shields.io/badge/api-fabric-orange.svg) Turns players and mobs into ponies. From bdc807b1021aebca37aab2492e4fcbce1a97e2dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C2=ADSollace?= Date: Tue, 9 Apr 2024 14:08:12 +0100 Subject: [PATCH 32/35] Update Crowdin configuration file --- crowdin.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/crowdin.yml b/crowdin.yml index 25b2b86b..6b63fff0 100644 --- a/crowdin.yml +++ b/crowdin.yml @@ -1,3 +1,3 @@ files: - - source: /src/main/resources/assets/minelittlepony/lang/en_us.json - translation: /src/main/resources/assets/minelittlepony/lang/%locale_with_underscore%.json + - source: src/main/resources/assets/minelittlepony/lang/en_us.json + translation: /%original_path%/%locale_with_underscore%.%file_extension% From 299a81088c8a8a890f1f51ddd48d2671bbf65a2f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C2=ADSollace?= Date: Tue, 9 Apr 2024 14:17:19 +0100 Subject: [PATCH 33/35] New Crowdin updates (#273) --- src/main/resources/assets/minelittlepony/lang/de_de.json | 2 -- src/main/resources/assets/minelittlepony/lang/en_gb.json | 1 + src/main/resources/assets/minelittlepony/lang/en_pt.json | 5 +---- src/main/resources/assets/minelittlepony/lang/en_ud.json | 1 + src/main/resources/assets/minelittlepony/lang/enus_enp.json | 1 + src/main/resources/assets/minelittlepony/lang/es_cl.json | 1 + src/main/resources/assets/minelittlepony/lang/fr_fr.json | 2 -- src/main/resources/assets/minelittlepony/lang/lol_us.json | 1 + src/main/resources/assets/minelittlepony/lang/nl_nl.json | 1 + src/main/resources/assets/minelittlepony/lang/pt_pt.json | 1 + src/main/resources/assets/minelittlepony/lang/ru_ru.json | 4 ---- src/main/resources/assets/minelittlepony/lang/sr_cs.json | 1 + src/main/resources/assets/minelittlepony/lang/uk_ua.json | 1 + src/main/resources/assets/minelittlepony/lang/zh_cn.json | 1 - src/main/resources/assets/minelittlepony/lang/zh_tw.json | 1 - 15 files changed, 10 insertions(+), 14 deletions(-) create mode 100644 src/main/resources/assets/minelittlepony/lang/en_gb.json create mode 100644 src/main/resources/assets/minelittlepony/lang/en_ud.json create mode 100644 src/main/resources/assets/minelittlepony/lang/enus_enp.json create mode 100644 src/main/resources/assets/minelittlepony/lang/es_cl.json create mode 100644 src/main/resources/assets/minelittlepony/lang/lol_us.json create mode 100644 src/main/resources/assets/minelittlepony/lang/nl_nl.json create mode 100644 src/main/resources/assets/minelittlepony/lang/pt_pt.json create mode 100644 src/main/resources/assets/minelittlepony/lang/sr_cs.json create mode 100644 src/main/resources/assets/minelittlepony/lang/uk_ua.json diff --git a/src/main/resources/assets/minelittlepony/lang/de_de.json b/src/main/resources/assets/minelittlepony/lang/de_de.json index 7f60cb36..808f9a24 100644 --- a/src/main/resources/assets/minelittlepony/lang/de_de.json +++ b/src/main/resources/assets/minelittlepony/lang/de_de.json @@ -40,7 +40,6 @@ "minelp.mode.wet": "Seepony", "minelp.debug.reload_models.message": "Ponytexturen neu laden...", "minelp.debug.scale": "Skalierungsfaktor", - "minelp.debug.scale.value": "%.2f", "minelp.debug.scale.meg": "Enorm", "minelp.debug.scale.max": "Doppelt", "minelp.debug.scale.mid": "Normal", @@ -48,7 +47,6 @@ "minelp.debug.scale.min": "Winzig", "minelp.debug.size": "Überschreibe Größe", "minelp.debug.race": "Überschreibe Spezies", - "skin_type.minelp.seapony": "Seepony", "skin_type.minelittlepony.crown": "Krone", "skin_type.minelittlepony.muffin": "Muffin-Mütze", diff --git a/src/main/resources/assets/minelittlepony/lang/en_gb.json b/src/main/resources/assets/minelittlepony/lang/en_gb.json new file mode 100644 index 00000000..0967ef42 --- /dev/null +++ b/src/main/resources/assets/minelittlepony/lang/en_gb.json @@ -0,0 +1 @@ +{} diff --git a/src/main/resources/assets/minelittlepony/lang/en_pt.json b/src/main/resources/assets/minelittlepony/lang/en_pt.json index 0e28172e..303b48a4 100644 --- a/src/main/resources/assets/minelittlepony/lang/en_pt.json +++ b/src/main/resources/assets/minelittlepony/lang/en_pt.json @@ -1,5 +1,4 @@ { - "key.minelittlepony.settings": "Petite Equine Sailor", "minelp.options.title": "Petite Equine Sailor Choices", "minelp.options.ponylevel": "Notoriety", @@ -48,7 +47,5 @@ "minelp.debug.scale.sa": "Normal", "minelp.debug.scale.min": "Pathetic", "minelp.debug.size": "Bow Width", - "minelp.debug.race": "Sail Height", - - "hdskins.mode.minelp_seapony": "Seaharpy (in da briny deep)" + "minelp.debug.race": "Sail Height" } diff --git a/src/main/resources/assets/minelittlepony/lang/en_ud.json b/src/main/resources/assets/minelittlepony/lang/en_ud.json new file mode 100644 index 00000000..0967ef42 --- /dev/null +++ b/src/main/resources/assets/minelittlepony/lang/en_ud.json @@ -0,0 +1 @@ +{} diff --git a/src/main/resources/assets/minelittlepony/lang/enus_enp.json b/src/main/resources/assets/minelittlepony/lang/enus_enp.json new file mode 100644 index 00000000..0967ef42 --- /dev/null +++ b/src/main/resources/assets/minelittlepony/lang/enus_enp.json @@ -0,0 +1 @@ +{} diff --git a/src/main/resources/assets/minelittlepony/lang/es_cl.json b/src/main/resources/assets/minelittlepony/lang/es_cl.json new file mode 100644 index 00000000..0967ef42 --- /dev/null +++ b/src/main/resources/assets/minelittlepony/lang/es_cl.json @@ -0,0 +1 @@ +{} diff --git a/src/main/resources/assets/minelittlepony/lang/fr_fr.json b/src/main/resources/assets/minelittlepony/lang/fr_fr.json index 933f3fb5..239bd751 100644 --- a/src/main/resources/assets/minelittlepony/lang/fr_fr.json +++ b/src/main/resources/assets/minelittlepony/lang/fr_fr.json @@ -19,7 +19,6 @@ "minelp.mobs.pigzombies": "Ponifier Piglin", "minelp.mobs.striders": "Ponifier Arpenteur", "minelp.mobs.skeletons": "Ponifier Illageois", - "minelp.mobs.illagers": "Ponify Illagers", "minelp.mobs.guardians": "Ponifier Gardien", "minelp.mobs.endermen": "Ponifier Endermen", "minelp.mode.dry": "Poney terrestre", @@ -27,7 +26,6 @@ "minelp.debug.reload_models.message": "Rechargement modèles de poney ...", "minelp.debug.scale": "Facteur D'échelle", "minelp.debug.scale.meg": "Énorme", - "minelp.debug.scale.max": "Double", "minelp.debug.scale.mid": "Défaut", "minelp.debug.scale.sa": "Montrer Précis", "minelp.debug.scale.min": "Tout Petit", diff --git a/src/main/resources/assets/minelittlepony/lang/lol_us.json b/src/main/resources/assets/minelittlepony/lang/lol_us.json new file mode 100644 index 00000000..0967ef42 --- /dev/null +++ b/src/main/resources/assets/minelittlepony/lang/lol_us.json @@ -0,0 +1 @@ +{} diff --git a/src/main/resources/assets/minelittlepony/lang/nl_nl.json b/src/main/resources/assets/minelittlepony/lang/nl_nl.json new file mode 100644 index 00000000..0967ef42 --- /dev/null +++ b/src/main/resources/assets/minelittlepony/lang/nl_nl.json @@ -0,0 +1 @@ +{} diff --git a/src/main/resources/assets/minelittlepony/lang/pt_pt.json b/src/main/resources/assets/minelittlepony/lang/pt_pt.json new file mode 100644 index 00000000..0967ef42 --- /dev/null +++ b/src/main/resources/assets/minelittlepony/lang/pt_pt.json @@ -0,0 +1 @@ +{} diff --git a/src/main/resources/assets/minelittlepony/lang/ru_ru.json b/src/main/resources/assets/minelittlepony/lang/ru_ru.json index f137a81a..a156f372 100644 --- a/src/main/resources/assets/minelittlepony/lang/ru_ru.json +++ b/src/main/resources/assets/minelittlepony/lang/ru_ru.json @@ -1,5 +1,4 @@ { - "key.minelittlepony.settings": "Mine Little Pony", "minelp.options.title": "Настройки Mine Little Pony", "minelp.options.ponylevel": "Уровень пони", "minelp.options.ponylevel.ponies": "Только пони", @@ -21,7 +20,6 @@ "minelp.options.ponyskulls": "Понифицировать черепа", "minelp.options.frustrum": "Изменить проверку поля зрения", "minelp.options.flappyelytras": "Махать крыльями при Парении", - "minelp.options.passivenetworking": "Пассивная сеть [Beta]", "minelp.options.button": "Отображать на главном экране", "minelp.options.button.on": "Отображать всегда\n\nВидны обе кнопки Mine Little Pony и HD Skins (если установлен)", "minelp.options.button.auto": "Отображать, только если не установлен мод HD Skins", @@ -42,7 +40,6 @@ "minelp.mode.wet": "Морской пони", "minelp.debug.reload_models.message": "Перезагрузка понифицированных моделей...", "minelp.debug.scale": "Масштаб", - "minelp.debug.scale.value": "%.2f", "minelp.debug.scale.meg": "Мега", "minelp.debug.scale.max": "Удвоенный", "minelp.debug.scale.mid": "Стандартный", @@ -50,7 +47,6 @@ "minelp.debug.scale.min": "Мельчайший", "minelp.debug.size": "Переопределение размера", "minelp.debug.race": "Переопределение расы", - "skin_type.minelp.seapony": "Морской пони", "skin_type.minelittlepony.crown": "Корона", "skin_type.minelittlepony.muffin": "Маффин", diff --git a/src/main/resources/assets/minelittlepony/lang/sr_cs.json b/src/main/resources/assets/minelittlepony/lang/sr_cs.json new file mode 100644 index 00000000..0967ef42 --- /dev/null +++ b/src/main/resources/assets/minelittlepony/lang/sr_cs.json @@ -0,0 +1 @@ +{} diff --git a/src/main/resources/assets/minelittlepony/lang/uk_ua.json b/src/main/resources/assets/minelittlepony/lang/uk_ua.json new file mode 100644 index 00000000..0967ef42 --- /dev/null +++ b/src/main/resources/assets/minelittlepony/lang/uk_ua.json @@ -0,0 +1 @@ +{} diff --git a/src/main/resources/assets/minelittlepony/lang/zh_cn.json b/src/main/resources/assets/minelittlepony/lang/zh_cn.json index 9672f904..162360a4 100644 --- a/src/main/resources/assets/minelittlepony/lang/zh_cn.json +++ b/src/main/resources/assets/minelittlepony/lang/zh_cn.json @@ -28,7 +28,6 @@ "minelp.mode.wet": "海马小马模型", "minelp.debug.reload_models.message": "重新加载小马模型中...", "minelp.debug.scale": "比例系数", - "minelp.debug.scale.value": "%.2f", "minelp.debug.scale.meg": "巨大的", "minelp.debug.scale.max": "双倍的", "minelp.debug.scale.mid": "默认", diff --git a/src/main/resources/assets/minelittlepony/lang/zh_tw.json b/src/main/resources/assets/minelittlepony/lang/zh_tw.json index 8cfa4ff3..5cfe3525 100644 --- a/src/main/resources/assets/minelittlepony/lang/zh_tw.json +++ b/src/main/resources/assets/minelittlepony/lang/zh_tw.json @@ -27,7 +27,6 @@ "minelp.mode.wet": "海馬小馬模型", "minelp.debug.reload_models.message": "重新加載小馬模型中...", "minelp.debug.scale": "比例係數", - "minelp.debug.scale.value": "%.2f", "minelp.debug.scale.meg": "巨大的", "minelp.debug.scale.max": "雙倍的", "minelp.debug.scale.mid": "默認", From 18591c07202fb43438d297a6f975dcef954f4a36 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C2=ADSollace?= Date: Tue, 9 Apr 2024 16:07:34 +0100 Subject: [PATCH 34/35] New Crowdin updates (#274) * New translations en_us.json (German) * New translations en_us.json (Russian) --- src/main/resources/assets/minelittlepony/lang/de_de.json | 2 +- src/main/resources/assets/minelittlepony/lang/ru_ru.json | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/main/resources/assets/minelittlepony/lang/de_de.json b/src/main/resources/assets/minelittlepony/lang/de_de.json index 808f9a24..cf2510c1 100644 --- a/src/main/resources/assets/minelittlepony/lang/de_de.json +++ b/src/main/resources/assets/minelittlepony/lang/de_de.json @@ -21,7 +21,7 @@ "minelp.options.flappyelytras": "Beim Gleiten mit den Flügeln schlagen", "minelp.options.nofun": "Langweiliger Modus", "minelp.options.button": "Button auf dem Titelbildschirm anzeigen", - "minelp.options.button.on": "Immer Anzeigen\n\nSowie der Pony Button, als auch der HD Skins Button (sofern instaliert) werden angezeigt.", + "minelp.options.button.on": "Immer Anzeigen\n\nSowie der Pony Button, als auch der HD Skins Button (sofern instaliert) werden angezeigt", "minelp.options.button.auto": "Nur anzeigen wenn HD Skins nicht installiert ist", "minelp.options.button.off": "Niemals anzeigen", "minelp.options.option.disabled": "Diese Optionen sind, wärend einer Mehrspieler Sitzung, im Überlebensmodus gesperrt.\n\nUm die Einstellungen zu ändern trete dem Server neu\nbei oder wechsel in den Kreativ Modus.", diff --git a/src/main/resources/assets/minelittlepony/lang/ru_ru.json b/src/main/resources/assets/minelittlepony/lang/ru_ru.json index a156f372..16da8da0 100644 --- a/src/main/resources/assets/minelittlepony/lang/ru_ru.json +++ b/src/main/resources/assets/minelittlepony/lang/ru_ru.json @@ -20,6 +20,8 @@ "minelp.options.ponyskulls": "Понифицировать черепа", "minelp.options.frustrum": "Изменить проверку поля зрения", "minelp.options.flappyelytras": "Махать крыльями при Парении", + "minelp.options.horsiemode": "Режим лошади", + "minelp.options.nofun": "Режим без веселья", "minelp.options.button": "Отображать на главном экране", "minelp.options.button.on": "Отображать всегда\n\nВидны обе кнопки Mine Little Pony и HD Skins (если установлен)", "minelp.options.button.auto": "Отображать, только если не установлен мод HD Skins", @@ -47,6 +49,7 @@ "minelp.debug.scale.min": "Мельчайший", "minelp.debug.size": "Переопределение размера", "minelp.debug.race": "Переопределение расы", + "minelp.debug.armour": "Отключить понифицированную броню", "skin_type.minelp.seapony": "Морской пони", "skin_type.minelittlepony.crown": "Корона", "skin_type.minelittlepony.muffin": "Маффин", From 040105c792b7c9ba384192b980ee51436c2cda4e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C2=ADSollace?= Date: Fri, 26 Apr 2024 20:38:00 +0100 Subject: [PATCH 35/35] New Crowdin updates (#275) * New translations en_us.json (English (upside down)) * New translations en_us.json (Pirate English) * New translations en_us.json (English, United Kingdom) * New translations en_us.json (LOLCAT) * New translations en_us.json (Anglish) * New translations en_us.json (German) * New translations en_us.json (Afrikaans) --- .../assets/minelittlepony/lang/af_za.json | 62 ++++++++++++++++++ .../assets/minelittlepony/lang/de_de.json | 3 + .../assets/minelittlepony/lang/en_gb.json | 63 +++++++++++++++++- .../assets/minelittlepony/lang/en_pt.json | 14 +++- .../assets/minelittlepony/lang/en_ud.json | 63 +++++++++++++++++- .../assets/minelittlepony/lang/enus_enp.json | 64 ++++++++++++++++++- .../assets/minelittlepony/lang/lol_us.json | 64 ++++++++++++++++++- 7 files changed, 328 insertions(+), 5 deletions(-) create mode 100644 src/main/resources/assets/minelittlepony/lang/af_za.json diff --git a/src/main/resources/assets/minelittlepony/lang/af_za.json b/src/main/resources/assets/minelittlepony/lang/af_za.json new file mode 100644 index 00000000..60658677 --- /dev/null +++ b/src/main/resources/assets/minelittlepony/lang/af_za.json @@ -0,0 +1,62 @@ +{ + "minelp.options.title": "Mine Little Pony Instellings", + "minelp.options.ponylevel": "Ponievlak", + "minelp.options.ponylevel.ponies": "Enigste Ponietjies", + "minelp.options.ponylevel.ponies.tooltip": "Alle spelers is ponies\n\nNie-ponievelle word vervang met 'n ewekansige agtergrondponie", + "minelp.options.ponylevel.humans": "Enigste Mans", + "minelp.options.ponylevel.humans.tooltip": "Al speelers menslik is\n\nPony klere sal virpas maar hulle wil na die menslik modelle gebruik", + "minelp.options.ponylevel.both": "Albei", + "minelp.options.ponylevel.both.tooltip": "Speele kan ponies of menslik", + "minelp.options.options": "Ponie Opsies", + "minelp.options.sizes": "Verskeie Poniegroottes", + "minelp.options.skins": "Veloplaaier", + "minelp.options.skins.hdskins.open": "Maak HD Skins oop", + "minelp.options.skins.hdskins.disabled": "HD Skins is nie geïnstalleer nie\n\nDie HD Skins-mod is nodig om velle van in-speletjie op te laai en om pasgemaakte velbedieners te gebruik.\n\nAs jy dit nie kan gebruik nie, sal jy na www.minecraft.net moet gaan om jou vel daarheen op te laai.", + "minelp.options.snuzzles": "Wys Snuzzles", + "minelp.options.fillycam": "Vul-kamera", + "minelp.options.showscale": "Toon-akkurate skaal", + "minelp.options.fpsmagic": "Magie in eerstepersoon", + "minelp.options.tpsmagic": "Magie in derdepersoon", + "minelp.options.ponyskulls": "Ponieskedels", + "minelp.options.frustrum": "Frustum tjeks", + "minelp.options.flappyelytras": "Klap vlerke terwyl jy sweef", + "minelp.options.horsiemode": "Perdkiejie Perd Modus", + "minelp.options.nofun": "Vervelige Modus", + "minelp.options.button": "Vertoon op Titelskerm", + "minelp.options.button.on": "Wys altyd\n\nBeide die ponieknoppie en HD Skins-knoppie is sigbaar (indien geïnstalleer)", + "minelp.options.button.auto": "Vertoon slegs wanneer HD Skins nie geïnstalleer is nie", + "minelp.options.button.off": "Moet nooit vertoon nie\n\nJy sal net die HD Skins-knoppie sien as dit geïnstalleer is.", + "minelp.options.option.disabled": "Hierdie opsie is toegesluit in oorlewings-multispeler.\n\nVerander spelmodusse of verlaat en sluit weer aan\ndie bediener om hierdie instelling te verander.", + "minelp.mobs.title": "Mob-instellings", + "minelp.mobs.villagers": "Ponie Dorpenaars", + "minelp.mobs.zombies": "Ponie Zombies", + "minelp.mobs.pigzombies": "Ponie Piglins", + "minelp.mobs.striders": "Ponie Striders", + "minelp.mobs.skeletons": "Ponie Geraamte", + "minelp.mobs.illagers": "Ponie Illagers", + "minelp.mobs.guardians": "Ponify Voogde", + "minelp.mobs.endermen": "Ponie Endermans", + "minelp.mobs.allays": "Ponie Allaye", + "minelp.mobs.inanimates": "Ponie Voorwerpe", + "minelp.mode.dry": "Land ponie", + "minelp.mode.wet": "See pony", + "minelp.debug.reload_models.message": "Herlaai tans poniemodelle...", + "minelp.debug.scale": "Skaalfaktor", + "minelp.debug.scale.meg": "Groote", + "minelp.debug.scale.max": "Dubbel", + "minelp.debug.scale.mid": "Verstek", + "minelp.debug.scale.sa": "Toon-akkurate", + "minelp.debug.scale.min": "Klein", + "minelp.debug.size": "Grootte ignoreer", + "minelp.debug.race": "Ras oorheersing", + "minelp.debug.armour": "Deaktiveer geponifiseerde pantserteksture", + "skin_type.minelp.seapony": "Seeponie", + "skin_type.minelittlepony.crown": "Kroon", + "skin_type.minelittlepony.muffin": "Muffin hoed", + "skin_type.minelittlepony.hat": "Hekshoed", + "skin_type.minelittlepony.antlers": "Hert Horings", + "skin_type.minelittlepony.saddle_bags_left": "Links Sakkie", + "skin_type.minelittlepony.saddle_bags_right": "Regs Sakkie", + "skin_type.minelittlepony.saddle_bags_both": "Saalsakke", + "skin_type.minelittlepony.stetson": "Stetson" +} diff --git a/src/main/resources/assets/minelittlepony/lang/de_de.json b/src/main/resources/assets/minelittlepony/lang/de_de.json index cf2510c1..fc6f7fd4 100644 --- a/src/main/resources/assets/minelittlepony/lang/de_de.json +++ b/src/main/resources/assets/minelittlepony/lang/de_de.json @@ -13,12 +13,14 @@ "minelp.options.skins.hdskins.open": "Öffne HD Skins", "minelp.options.skins.hdskins.disabled": "HD Skins ist nicht installiert\n\nDer HD Skins mod wird benötigt um deinen Skin auf einen custom skin server hochzuladen.\n\nWenn du das nicht kannst, gehe zu www.minecraft.net und lade deinen Skin dort hoch.", "minelp.options.snuzzles": "Zeige die Schnauzen der Ponies", + "minelp.options.fillycam": "Filly Kamera", "minelp.options.showscale": "Nutze die Größen aus der Serie", "minelp.options.fpsmagic": "Magie in der ersten Person", "minelp.options.tpsmagic": "Magie in der dritten Person", "minelp.options.ponyskulls": "Pony-Schädel", "minelp.options.frustrum": "Frustum Prüfungen", "minelp.options.flappyelytras": "Beim Gleiten mit den Flügeln schlagen", + "minelp.options.horsiemode": "Pferdy Pferd Modus", "minelp.options.nofun": "Langweiliger Modus", "minelp.options.button": "Button auf dem Titelbildschirm anzeigen", "minelp.options.button.on": "Immer Anzeigen\n\nSowie der Pony Button, als auch der HD Skins Button (sofern instaliert) werden angezeigt", @@ -47,6 +49,7 @@ "minelp.debug.scale.min": "Winzig", "minelp.debug.size": "Überschreibe Größe", "minelp.debug.race": "Überschreibe Spezies", + "minelp.debug.armour": "Ponifizierte Rüstungsständer deaktivieren", "skin_type.minelp.seapony": "Seepony", "skin_type.minelittlepony.crown": "Krone", "skin_type.minelittlepony.muffin": "Muffin-Mütze", diff --git a/src/main/resources/assets/minelittlepony/lang/en_gb.json b/src/main/resources/assets/minelittlepony/lang/en_gb.json index 0967ef42..e841d636 100644 --- a/src/main/resources/assets/minelittlepony/lang/en_gb.json +++ b/src/main/resources/assets/minelittlepony/lang/en_gb.json @@ -1 +1,62 @@ -{} +{ + "minelp.options.title": "Mine Little Pony Settings", + "minelp.options.ponylevel": "Pony Level", + "minelp.options.ponylevel.ponies": "Ponies Only", + "minelp.options.ponylevel.ponies.tooltip": "All players are ponies\n\nNon-pony skins are replaced with a random background pony", + "minelp.options.ponylevel.humans": "Humans Only", + "minelp.options.ponylevel.humans.tooltip": "All players are humans\n\nPony skins are used but will be applied to the human model", + "minelp.options.ponylevel.both": "Both", + "minelp.options.ponylevel.both.tooltip": "Players can be ponies or humans", + "minelp.options.options": "Pony Options", + "minelp.options.sizes": "Varied Pony Sizes", + "minelp.options.skins": "Skin Uploader", + "minelp.options.skins.hdskins.open": "Open HD Skins", + "minelp.options.skins.hdskins.disabled": "HD Skins is not installed\n\nThe HD Skins mod is required to upload skins from in-game and to use custom skin servers.\n\nIf you cannot use that you will have to go to www.minecraft.net to upload your skin there.", + "minelp.options.snuzzles": "Show Snuzzles", + "minelp.options.fillycam": "Filly Cam", + "minelp.options.showscale": "Show-accurate scaling", + "minelp.options.fpsmagic": "Magic in first-person", + "minelp.options.tpsmagic": "Magic in third-person", + "minelp.options.ponyskulls": "Pony Skulls", + "minelp.options.frustrum": "Frustum checks", + "minelp.options.flappyelytras": "Flap Wings whilst Gliding", + "minelp.options.horsiemode": "Horsey Horse Mode", + "minelp.options.nofun": "Boring Mode", + "minelp.options.button": "Display On Title Screen", + "minelp.options.button.on": "Always Display\n\nBoth the pony button and HD Skins button are visible (if installed)", + "minelp.options.button.auto": "Display only when HD Skins is not installed", + "minelp.options.button.off": "Never Display\n\nYou will only see the HD Skins button if installed.", + "minelp.options.option.disabled": "This option is locked in survival multiplayer.\n\nChange game modes or leave and rejoin\nthe server to change this setting.", + "minelp.mobs.title": "Mob Settings", + "minelp.mobs.villagers": "Ponify Villagers", + "minelp.mobs.zombies": "Ponify Zombies", + "minelp.mobs.pigzombies": "Ponify Piglins", + "minelp.mobs.striders": "Ponify Striders", + "minelp.mobs.skeletons": "Ponify Skeletons", + "minelp.mobs.illagers": "Ponify Illagers", + "minelp.mobs.guardians": "Ponify Guardians", + "minelp.mobs.endermen": "Ponify Endermen", + "minelp.mobs.allays": "Ponify Allays", + "minelp.mobs.inanimates": "Ponify Objects", + "minelp.mode.dry": "Land pony", + "minelp.mode.wet": "Sea pony", + "minelp.debug.reload_models.message": "Reloading pony models...", + "minelp.debug.scale": "Scaling Factor", + "minelp.debug.scale.meg": "Mega", + "minelp.debug.scale.max": "Double", + "minelp.debug.scale.mid": "Default", + "minelp.debug.scale.sa": "Show-accurate", + "minelp.debug.scale.min": "Miniscule", + "minelp.debug.size": "Size Override", + "minelp.debug.race": "Race Override", + "minelp.debug.armour": "Disable ponified armour textures", + "skin_type.minelp.seapony": "Seapony", + "skin_type.minelittlepony.crown": "Crown", + "skin_type.minelittlepony.muffin": "Muffin Hat", + "skin_type.minelittlepony.hat": "Witch's Hat", + "skin_type.minelittlepony.antlers": "Deer Antlers", + "skin_type.minelittlepony.saddle_bags_left": "Left Satchel", + "skin_type.minelittlepony.saddle_bags_right": "Right Satchel", + "skin_type.minelittlepony.saddle_bags_both": "Saddlebags", + "skin_type.minelittlepony.stetson": "Stetson" +} diff --git a/src/main/resources/assets/minelittlepony/lang/en_pt.json b/src/main/resources/assets/minelittlepony/lang/en_pt.json index 303b48a4..a8a08586 100644 --- a/src/main/resources/assets/minelittlepony/lang/en_pt.json +++ b/src/main/resources/assets/minelittlepony/lang/en_pt.json @@ -21,6 +21,8 @@ "minelp.options.ponyskulls": "Rendaaar mah heads", "minelp.options.frustrum": "Horsey Sails", "minelp.options.flappyelytras": "Look at yew, ye flapping like a wee bird", + "minelp.options.horsiemode": "Make it a Fine Steed Worth Riding", + "minelp.options.nofun": "Being Serious-like", "minelp.options.button": "Anounce Yer Arrival", "minelp.options.button.on": "More t' merrier\n\nShow off ya haul even ifn' noboy asked", "minelp.options.button.auto": "Proud n' contained\n\nNo need ta scare the lad...yet", @@ -47,5 +49,15 @@ "minelp.debug.scale.sa": "Normal", "minelp.debug.scale.min": "Pathetic", "minelp.debug.size": "Bow Width", - "minelp.debug.race": "Sail Height" + "minelp.debug.race": "Sail Height", + "minelp.debug.armour": "Batten down the hatches", + "skin_type.minelp.seapony": "Maremaid", + "skin_type.minelittlepony.crown": "Captain's Tricorne", + "skin_type.minelittlepony.muffin": "Galley-man's Headwear", + "skin_type.minelittlepony.hat": "Olde Hag's Gown", + "skin_type.minelittlepony.antlers": "Banshee's Handlebars", + "skin_type.minelittlepony.saddle_bags_left": "Starboard Treasure Chest", + "skin_type.minelittlepony.saddle_bags_right": "Port-side Treasure Chest", + "skin_type.minelittlepony.saddle_bags_both": "Treasure Chests", + "skin_type.minelittlepony.stetson": "Captin's Hat" } diff --git a/src/main/resources/assets/minelittlepony/lang/en_ud.json b/src/main/resources/assets/minelittlepony/lang/en_ud.json index 0967ef42..3714266c 100644 --- a/src/main/resources/assets/minelittlepony/lang/en_ud.json +++ b/src/main/resources/assets/minelittlepony/lang/en_ud.json @@ -1 +1,62 @@ -{} +{ + "minelp.options.title": "sƃuᴉʇʇǝS ʎuoԀ ǝlʇʇᴉ˥ ǝuᴉW", + "minelp.options.ponylevel": "lǝʌǝ˥ ʎuoԀ", + "minelp.options.ponylevel.ponies": "ʎluO sǝᴉuoԀ", + "minelp.options.ponylevel.ponies.tooltip": "ʎuod punoɹƃʞɔɐq ɯopuɐɹ ɐ ɥʇᴉʍ pǝɔɐldǝɹ ǝɹɐ suᴉʞs ʎuod-uoN\n\nsǝᴉuod ǝɹɐ sɹǝʎɐld ll∀", + "minelp.options.ponylevel.humans": "ʎluO suɐɯnH", + "minelp.options.ponylevel.humans.tooltip": "lǝpoɯ uɐɯnɥ ǝɥʇ oʇ pǝᴉlddɐ ǝq llᴉʍ ʇnq pǝsn ǝɹɐ suᴉʞs ʎuoԀ\n\nsuɐɯnɥ ǝɹɐ sɹǝʎɐld ll∀", + "minelp.options.ponylevel.both": "ɥʇoq", + "minelp.options.ponylevel.both.tooltip": "suɐɯnɥ ɹo sǝᴉuod ǝq uɐɔ sɹǝʎɐlԀ", + "minelp.options.options": "suoᴉʇdO ʎuoԀ", + "minelp.options.sizes": "sǝzᴉS ʎuoԀ pǝᴉɹɐΛ", + "minelp.options.skins": "ɹǝpɐold∩ uᴉʞS", + "minelp.options.skins.hdskins.open": "suᴉʞS DH uǝdO", + "minelp.options.skins.hdskins.disabled": "˙ǝɹǝɥʇ uᴉʞs ɹnoʎ pɐoldn oʇ ʇǝu˙ʇɟɐɹɔǝuᴉɯ˙ʍʍʍ oʇ oƃ oʇ ǝʌɐɥ llᴉʍ noʎ ʇɐɥʇ ǝsn ʇouuɐɔ noʎ ɟI\n\n˙sɹǝʌɹǝs uᴉʞs ɯoʇsnɔ ǝsn oʇ puɐ ǝɯɐƃ-uᴉ ɯoɹɟ suᴉʞs pɐoldn oʇ pǝɹᴉnbǝɹ sᴉ poɯ suᴉʞS DH ǝɥ⊥\n\npǝllɐʇsuᴉ ʇou sᴉ suᴉʞS DH", + "minelp.options.snuzzles": "sǝlzznuS ʍoɥS", + "minelp.options.fillycam": "ɯɐƆ ʎllᴉℲ", + "minelp.options.showscale": "ƃuᴉlɐɔs ǝʇɐɹnɔɔɐ-ʍoɥS", + "minelp.options.fpsmagic": "uosɹǝd-ʇsɹᴉɟ uᴉ ɔᴉƃɐW", + "minelp.options.tpsmagic": "uosɹǝd-pɹᴉɥʇ uᴉ ɔᴉƃɐW", + "minelp.options.ponyskulls": "sllnʞS ʎuoԀ", + "minelp.options.frustrum": "sʞɔǝɥɔ ɯnʇsnɹℲ", + "minelp.options.flappyelytras": "ƃuᴉpᴉlפ ʇslᴉɥʍ sƃuᴉM dɐlℲ", + "minelp.options.horsiemode": "ǝpoW ǝsɹoH ʎǝsɹoH", + "minelp.options.nofun": "ǝpoW ƃuᴉɹoq", + "minelp.options.button": "uǝǝɹɔS ǝlʇᴉ⊥ uO ʎɐldsᴉD", + "minelp.options.button.on": "(pǝllɐʇsuᴉ ɟᴉ) ǝlqᴉsᴉʌ ǝɹɐ uoʇʇnq suᴉʞS DH puɐ uoʇʇnq ʎuod ǝɥʇ ɥʇoq\n\nʎɐldsᴉD sʎɐʍl∀", + "minelp.options.button.auto": "pǝllɐʇsuᴉ ʇou sᴉ suᴉʞS DH uǝɥʍ ʎluo ʎɐldsᴉD", + "minelp.options.button.off": "˙pǝllɐʇsuᴉ ɟᴉ uoʇʇnq suᴉʞS DH ǝɥʇ ǝǝs ʎluo llᴉʍ no⅄\n\nʎɐldsᴉD ɹǝʌǝN", + "minelp.options.option.disabled": "˙ƃuᴉʇʇǝs sᴉɥʇ ǝƃuɐɥɔ oʇ ɹǝʌɹǝs ǝɥʇ\nuᴉoɾǝɹ puɐ ǝʌɐǝl ɹo sǝpoɯ ǝɯɐƃ ǝƃuɐɥƆ\n\n˙ɹǝʎɐldᴉʇlnɯ lɐʌᴉʌɹns uᴉ pǝʞɔol sᴉ uoᴉʇdo sᴉɥ⊥", + "minelp.mobs.title": "sƃuᴉʇʇǝS qoW", + "minelp.mobs.villagers": "sɹǝƃɐllᴉΛ ʎɟᴉuoԀ", + "minelp.mobs.zombies": "sǝᴉqɯoZ ʎɟᴉuoԀ", + "minelp.mobs.pigzombies": "suᴉlƃᴉԀ ʎɟᴉuoԀ", + "minelp.mobs.striders": "sɹǝpᴉɹʇS ʎɟᴉuoԀ", + "minelp.mobs.skeletons": "suoʇǝlǝʞS ʎɟᴉuoԀ", + "minelp.mobs.illagers": "sɹǝƃɐllI ʎɟᴉuoԀ", + "minelp.mobs.guardians": "suɐᴉpɹɐnפ ʎɟᴉuoԀ", + "minelp.mobs.endermen": "uǝɯɹǝpuƎ ʎɟᴉuoԀ", + "minelp.mobs.allays": "sʎɐll∀ ʎɟᴉuoԀ", + "minelp.mobs.inanimates": "sʇɔǝɾqO ʎɟᴉuoԀ", + "minelp.mode.dry": "ʎuod puɐ˥", + "minelp.mode.wet": "ʎuod ɐǝS", + "minelp.debug.reload_models.message": "˙˙˙slǝpoɯ ʎuod ƃuᴉpɐolǝᴚ", + "minelp.debug.scale": "ɹoʇɔɐℲ ƃuᴉlɐɔS", + "minelp.debug.scale.meg": "ɐƃǝW", + "minelp.debug.scale.max": "ǝlqnoD", + "minelp.debug.scale.mid": "ʇlnɐɟǝD", + "minelp.debug.scale.sa": "ǝʇɐɹnɔɔ∀ ʍoɥS", + "minelp.debug.scale.min": "ǝlnɔsᴉuᴉW", + "minelp.debug.size": "ǝpᴉɹɹǝʌO ǝzᴉS", + "minelp.debug.race": "ǝpᴉɹɹǝʌO ǝɔɐᴚ", + "minelp.debug.armour": "sǝɹnʇxǝʇ ɹnoɯɹɐ pǝᴉɟᴉuod ǝlqɐsᴉD", + "skin_type.minelp.seapony": "ʎuodɐǝS", + "skin_type.minelittlepony.crown": "uʍoɹƆ", + "skin_type.minelittlepony.muffin": "ʇɐH uᴉɟɟnW", + "skin_type.minelittlepony.hat": "ʇɐH ɥɔʇᴉM", + "skin_type.minelittlepony.antlers": "sɹǝlʇu∀ ɹǝǝD", + "skin_type.minelittlepony.saddle_bags_left": "lǝɥɔʇɐS ʇɟǝ˥", + "skin_type.minelittlepony.saddle_bags_right": "lǝɥɔʇɐS ʇɥƃᴉᴚ", + "skin_type.minelittlepony.saddle_bags_both": "sƃɐqǝlppɐS", + "skin_type.minelittlepony.stetson": "uosʇǝʇS" +} diff --git a/src/main/resources/assets/minelittlepony/lang/enus_enp.json b/src/main/resources/assets/minelittlepony/lang/enus_enp.json index 0967ef42..3d4a7bcf 100644 --- a/src/main/resources/assets/minelittlepony/lang/enus_enp.json +++ b/src/main/resources/assets/minelittlepony/lang/enus_enp.json @@ -1 +1,63 @@ -{} +{ + "key.minelittlepony.settings": "Mine Little Horseling", + "minelp.options.title": "Mine Little Horseling Settings", + "minelp.options.ponylevel": "Horseling Yelm", + "minelp.options.ponylevel.ponies": "Horselings Only", + "minelp.options.ponylevel.ponies.tooltip": "All players are horselings\n\nNon-horseling skins shall be replaced with a hitormiss leaden horsling", + "minelp.options.ponylevel.humans": "Folk Only", + "minelp.options.ponylevel.humans.tooltip": "All players are folk\n\nHorseling skins shall be applied but shall be put to the manlike build", + "minelp.options.ponylevel.both": "Both", + "minelp.options.ponylevel.both.tooltip": "Players may be horselings or folk", + "minelp.options.options": "Horseling Options", + "minelp.options.sizes": "Varied Horseling Breadths", + "minelp.options.skins": "Skin Uploader", + "minelp.options.skins.hdskins.open": "Open HD Skins", + "minelp.options.skins.hdskins.disabled": "HD Skins is not installed\n\nThe HD Skins mod is needed to send skins from here and to brook besunderledge skin servers.\n\nIf you cannot brook that you will have to go to www.minecraft.net to upload your skin there.", + "minelp.options.snuzzles": "Show Snuzzles", + "minelp.options.fillycam": "Filly Cam", + "minelp.options.showscale": "Play Onmark Layouing", + "minelp.options.fpsmagic": "Spellcraft in first-selfly", + "minelp.options.tpsmagic": "Spellcraft in third-selfly", + "minelp.options.ponyskulls": "Horseling Headbones", + "minelp.options.frustrum": "Frustum finding outs", + "minelp.options.flappyelytras": "Flap Wings whilst Gliding", + "minelp.options.horsiemode": "Horsey Horse Way", + "minelp.options.nofun": "Boring Way", + "minelp.options.button": "Forthset on Main Shirm", + "minelp.options.button.on": "Always Forthset\n\nBoth the horseling switcher and HD Skins button are showing (if installed)", + "minelp.options.button.auto": "Forthset only when HD Skins is not installed", + "minelp.options.button.off": "Never Forthset\n\nYou will only see the HD Skins switcher if installed.", + "minelp.options.option.disabled": "This option is locked in overlive maniplayer.\n\nChange game wayset or leave and rejoin\nthe outreckoner to shift this setting.", + "minelp.mobs.title": "Wight Settings", + "minelp.mobs.villagers": "Ponify Thorpsmen", + "minelp.mobs.zombies": "Ponify Undead Liches", + "minelp.mobs.pigzombies": "Ponify Piglins", + "minelp.mobs.striders": "Ponify Striders", + "minelp.mobs.skeletons": "Ponify Bonesets", + "minelp.mobs.illagers": "Ponify Reavers", + "minelp.mobs.guardians": "Ponify Wards", + "minelp.mobs.endermen": "Ponify Endermen", + "minelp.mobs.allays": "Ponify Allays", + "minelp.mobs.inanimates": "Ponify Things", + "minelp.mode.dry": "Land pony", + "minelp.mode.wet": "Sea pony", + "minelp.debug.reload_models.message": "Edloading pony models...", + "minelp.debug.scale": "Meter Difference", + "minelp.debug.scale.meg": "Large", + "minelp.debug.scale.max": "Twofold", + "minelp.debug.scale.mid": "Stock", + "minelp.debug.scale.sa": "Play Onmark", + "minelp.debug.scale.min": "Miniscule", + "minelp.debug.size": "Bulk Override", + "minelp.debug.race": "Kind Override", + "minelp.debug.armour": "Cripple horselingified armour skins", + "skin_type.minelp.seapony": "Seahorseling", + "skin_type.minelittlepony.crown": "Kinehelm", + "skin_type.minelittlepony.muffin": "Muffin Hat", + "skin_type.minelittlepony.hat": "Witch Hat", + "skin_type.minelittlepony.antlers": "Deer Horns", + "skin_type.minelittlepony.saddle_bags_left": "Left Knapsack", + "skin_type.minelittlepony.saddle_bags_right": "Right Knapsack", + "skin_type.minelittlepony.saddle_bags_both": "Saddlebags", + "skin_type.minelittlepony.stetson": "Stetson" +} diff --git a/src/main/resources/assets/minelittlepony/lang/lol_us.json b/src/main/resources/assets/minelittlepony/lang/lol_us.json index 0967ef42..2acfd36c 100644 --- a/src/main/resources/assets/minelittlepony/lang/lol_us.json +++ b/src/main/resources/assets/minelittlepony/lang/lol_us.json @@ -1 +1,63 @@ -{} +{ + "key.minelittlepony.settings": "Wine Wilwwe Poneh", + "minelp.options.title": "Wine Wilwwe Poneh Sewwings", + "minelp.options.ponylevel": "Poneh Wewew", + "minelp.options.ponylevel.ponies": "Ponehs Onwy", + "minelp.options.ponylevel.ponies.tooltip": "Al playerz iz poniez\n\nNonpony skinz iz replacd wif randem bakgroun ponehz", + "minelp.options.ponylevel.humans": "Hoomanz Onle", + "minelp.options.ponylevel.humans.tooltip": "Al playerz iz hoomanz\n\nPoneh skinz iz usd but wIl be applid to teh human model", + "minelp.options.ponylevel.both": "Bowh", + "minelp.options.ponylevel.both.tooltip": "Kittehs kan be ponehz or hoomanz", + "minelp.options.options": "Poneh Opwions", + "minelp.options.sizes": "Wawied Poneh Sizes", + "minelp.options.skins": "Fur Rizzer", + "minelp.options.skins.hdskins.open": "Opeh HD Skinz plox", + "minelp.options.skins.hdskins.disabled": "HD Skinz r not enstald\n\nTeh HD Skinz mod r rekwird 2 upload skinz frum engame an 2 us custom skin serverz.\n \nIf u cannot us that u wil haz go 2 www.minecraf.net 2 upload ur skin ther.", + "minelp.options.snuzzles": "Shwow Snuzzwes", + "minelp.options.fillycam": "Fiwwy Caw", + "minelp.options.showscale": "ShwoW-accuwawe scawing", + "minelp.options.fpsmagic": "Wagic in fiwsw-pewson", + "minelp.options.tpsmagic": "Wagic in thewd-pewson", + "minelp.options.ponyskulls": "Poneh Skulz", + "minelp.options.frustrum": "Pointey Leizarz", + "minelp.options.flappyelytras": "Flap Wingz Wilst Glidin", + "minelp.options.horsiemode": "Neigh Mowed Neigh Winnez", + "minelp.options.nofun": "Borin Mode", + "minelp.options.button": "Deespway On UwU Scween", + "minelp.options.button.on": "Alwayz Displai\n\nBoth teh pony button an HD Skinz button iz visibl (if enstaled)", + "minelp.options.button.auto": "Displai onle win HD Skinz r not enstald", + "minelp.options.button.off": "Nevr displai\n\nU wil onle se teh HD Skinz button if enstald.", + "minelp.options.option.disabled": "Whis opwion is wocked in suwwilaw wuwwipwayew.\n\nChange gawe wodes ow weawe and wejoin\nwhe sewwew two change whis sewwing.", + "minelp.mobs.title": "Mob Settingz", + "minelp.mobs.villagers": "Ponehfy Wilwagews", + "minelp.mobs.zombies": "Ponehfy Zowbies", + "minelp.mobs.pigzombies": "Ponehfy Pigwins", + "minelp.mobs.striders": "Ponehfy Swwidews", + "minelp.mobs.skeletons": "Ponehfy Skewewons", + "minelp.mobs.illagers": "Ponehfy Iwwagews", + "minelp.mobs.guardians": "Ponehfy Guawdeeans", + "minelp.mobs.endermen": "Ponehfy Endewwen", + "minelp.mobs.allays": "Ponehfy Iwwagews", + "minelp.mobs.inanimates": "Ponehfy Objecws", + "minelp.mode.dry": "Wand poneh", + "minelp.mode.wet": "See poneh", + "minelp.debug.reload_models.message": "Wewoadeeng pony wodews...", + "minelp.debug.scale": "Scawing Facwow", + "minelp.debug.scale.meg": "Wega", + "minelp.debug.scale.max": "Doubwe", + "minelp.debug.scale.mid": "Defauww", + "minelp.debug.scale.sa": "Shwow Accuwawe", + "minelp.debug.scale.min": "Winiscuwe", + "minelp.debug.size": "Size Owewwide", + "minelp.debug.race": "Waze Owewwide", + "minelp.debug.armour": "Disabl ponifid armr texturez", + "skin_type.minelp.seapony": "Seeponeh", + "skin_type.minelittlepony.crown": "Meown", + "skin_type.minelittlepony.muffin": "Muffin Hat plz", + "skin_type.minelittlepony.hat": "Crazy Kitteh Ownr Hat", + "skin_type.minelittlepony.antlers": "Deer Antlerz", + "skin_type.minelittlepony.saddle_bags_left": "Leaved Satchel", + "skin_type.minelittlepony.saddle_bags_right": "Rite Satchel", + "skin_type.minelittlepony.saddle_bags_both": "Kittehbagz", + "skin_type.minelittlepony.stetson": "Funi Hat" +}