From 99ed7699a1aba86d4d4bc069546f2974c497d90a Mon Sep 17 00:00:00 2001 From: Sollace Date: Sun, 7 Feb 2021 11:43:25 +0200 Subject: [PATCH] 20w49a -> 21w05b --- gradle.properties | 8 +-- .../api/pony/network/fabric/Channel.java | 20 +++--- .../minelittlepony/client/MineLittlePony.java | 4 +- .../client/mixin/MixinItemRenderer.java | 15 ++--- .../mixin/MixinSkullBlockEntityRenderer.java | 25 +++----- .../client/model/AbstractPonyModel.java | 40 ++++++------ .../client/model/DJPon3EarsModel.java | 2 +- .../client/model/PonySkullModel.java | 12 ++-- .../client/model/armour/PonyArmourModel.java | 8 +-- .../client/model/entity/BreezieModel.java | 18 +++--- .../model/entity/EnderStallionModel.java | 4 +- .../client/model/entity/PiglinPonyModel.java | 2 +- .../model/entity/PonyArmourStandModel.java | 2 +- .../model/entity/VillagerPonyModel.java | 6 +- .../client/model/entity/WitchPonyModel.java | 2 +- .../model/entity/race/SeaponyModel.java | 8 +-- .../com/minelittlepony/client/pony/Pony.java | 4 +- .../blockentity/skull/AbstractPonySkull.java | 2 +- .../render/blockentity/skull/MobSkull.java | 2 +- .../blockentity/skull/PonySkullRenderer.java | 64 +++++-------------- .../render/entity/feature/SkullFeature.java | 4 +- 21 files changed, 107 insertions(+), 145 deletions(-) diff --git a/gradle.properties b/gradle.properties index f29bf038..e1b343c0 100644 --- a/gradle.properties +++ b/gradle.properties @@ -3,10 +3,10 @@ org.gradle.daemon=false # Fabric Properties # check these on https://modmuss50.me/fabric.html - minecraft_version=20w49a - yarn_mappings=20w49a+build.1 - loader_version=0.10.8 - fabric_version=0.27.2+1.17 + minecraft_version=21w05b + yarn_mappings=21w05b+build.5 + loader_version=0.11.1 + fabric_version=0.30.1+1.17 # Mod Properties group=com.minelittlepony 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 f0d58c4f..5eab16f4 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 @@ -3,10 +3,10 @@ package com.minelittlepony.api.pony.network.fabric; import io.netty.buffer.Unpooled; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; -import net.fabricmc.fabric.api.network.ClientSidePacketRegistry; -import net.fabricmc.fabric.api.network.PacketContext; -import net.fabricmc.fabric.api.network.ServerSidePacketRegistry; +import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking; +import net.fabricmc.fabric.api.networking.v1.ServerPlayNetworking; import net.fabricmc.loader.api.FabricLoader; +import net.minecraft.entity.player.PlayerEntity; import net.minecraft.network.PacketByteBuf; import net.minecraft.util.Identifier; @@ -18,19 +18,19 @@ import java.util.function.Function; @Environment(EnvType.CLIENT) public interface Channel { - Consumer CLIENT_PONY_DATA = clientToServer(new Identifier("minelittlepony", "pony_data"), MsgPonyData::new, MsgPonyData::toBuffer, (packet, context) -> { - PonyDataCallback.EVENT.invoker().onPonyDataAvailable(context.getPlayer(), packet, packet.isNoSkin(), EnvType.SERVER); + Consumer CLIENT_PONY_DATA = clientToServer(new Identifier("minelittlepony", "pony_data"), MsgPonyData::new, MsgPonyData::toBuffer, (packet, player) -> { + PonyDataCallback.EVENT.invoker().onPonyDataAvailable(player, packet, packet.isNoSkin(), EnvType.SERVER); }); static void bootstrap() { } static Consumer clientToServer(Identifier id, Function factory, BiConsumer bufferWriter, - BiConsumer handler) { - ServerSidePacketRegistry.INSTANCE.register(id, (context, buffer) -> { + BiConsumer handler) { + ServerPlayNetworking.registerGlobalReceiver(id, (server, player, hhandler, buffer, responseSender) -> { T packet = factory.apply(buffer); - context.getTaskQueue().execute(() -> { - handler.accept(packet, context); + server.execute(() -> { + handler.accept(packet, player); }); }); return packet -> { @@ -41,7 +41,7 @@ public interface Channel { PacketByteBuf buf = new PacketByteBuf(Unpooled.buffer()); bufferWriter.accept(packet, buf); - ClientSidePacketRegistry.INSTANCE.sendToServer(id, buf); + ClientPlayNetworking.send(id, buf); }; } } \ No newline at end of file diff --git a/src/main/java/com/minelittlepony/client/MineLittlePony.java b/src/main/java/com/minelittlepony/client/MineLittlePony.java index c9773dcf..0b913071 100644 --- a/src/main/java/com/minelittlepony/client/MineLittlePony.java +++ b/src/main/java/com/minelittlepony/client/MineLittlePony.java @@ -5,7 +5,6 @@ import com.minelittlepony.api.pony.network.fabric.Channel; import com.minelittlepony.client.model.ModelType; import com.minelittlepony.client.pony.PonyManager; import com.minelittlepony.client.render.PonyRenderDispatcher; -import com.minelittlepony.client.render.blockentity.skull.PonySkullRenderer; import com.minelittlepony.client.settings.ClientPonyConfig; import com.minelittlepony.common.client.gui.VisibilityMode; import com.minelittlepony.common.client.gui.element.Button; @@ -24,7 +23,7 @@ import net.fabricmc.loader.api.FabricLoader; import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.gui.screen.TitleScreen; -import net.minecraft.client.options.KeyBinding; +import net.minecraft.client.option.KeyBinding; import net.minecraft.client.util.InputUtil; import net.minecraft.resource.ResourceType; import net.minecraft.util.Identifier; @@ -82,7 +81,6 @@ public class MineLittlePony implements ClientModInitializer { ClientTickEvents.END_CLIENT_TICK.register(this::onTick); ClientReadyCallback.EVENT.register(this::onClientReady); ScreenInitCallback.EVENT.register(this::onScreenInit); - config.ponyskulls.onChanged(PonySkullRenderer::resolve); config.load(); diff --git a/src/main/java/com/minelittlepony/client/mixin/MixinItemRenderer.java b/src/main/java/com/minelittlepony/client/mixin/MixinItemRenderer.java index 97130d0b..d7041d6b 100644 --- a/src/main/java/com/minelittlepony/client/mixin/MixinItemRenderer.java +++ b/src/main/java/com/minelittlepony/client/mixin/MixinItemRenderer.java @@ -20,17 +20,16 @@ abstract class MixinItemRenderer { private static final String Boolean = "Z"; - @Inject(method = "getArmorGlintConsumer(" + VertexConsumerProvider + RenderLayer + Boolean + Boolean + ")" + VertexConsumer, at = @At("HEAD"), cancellable = true) + private static final String PARAMS = "(" + VertexConsumerProvider + RenderLayer + Boolean + Boolean + ")" + VertexConsumer; + + @Inject(method = { + "getArmorGlintConsumer" + PARAMS, + "getItemGlintConsumer" + PARAMS, + "getDirectItemGlintConsumer" + PARAMS + }, at = @At("HEAD"), cancellable = true) private static void onGetArmorVertexConsumer(VertexConsumerProvider provider, RenderLayer layer, boolean solid, boolean glint, CallbackInfoReturnable info) { if (LevitatingItemRenderer.usesTransparency()) { info.setReturnValue(provider.getBuffer(LevitatingItemRenderer.getRenderLayer())); } } - - @Inject(method = "getItemGlintConsumer(" + VertexConsumerProvider + RenderLayer + Boolean + Boolean + ")" + VertexConsumer, at = @At("HEAD"), cancellable = true) - private static void onMethod_29711(VertexConsumerProvider provider, RenderLayer layer, boolean solide, boolean glint, CallbackInfoReturnable info) { - if (LevitatingItemRenderer.usesTransparency()) { - info.setReturnValue(provider.getBuffer(LevitatingItemRenderer.getRenderLayer())); - } - } } diff --git a/src/main/java/com/minelittlepony/client/mixin/MixinSkullBlockEntityRenderer.java b/src/main/java/com/minelittlepony/client/mixin/MixinSkullBlockEntityRenderer.java index ba6b3480..42ce37d6 100644 --- a/src/main/java/com/minelittlepony/client/mixin/MixinSkullBlockEntityRenderer.java +++ b/src/main/java/com/minelittlepony/client/mixin/MixinSkullBlockEntityRenderer.java @@ -23,7 +23,7 @@ import javax.annotation.Nullable; @Mixin(SkullBlockEntityRenderer.class) abstract class MixinSkullBlockEntityRenderer implements BlockEntityRenderer { - @Inject(method = "method_32161(" + @Inject(method = "renderSkull(" + "Lnet/minecraft/util/math/Direction;" + "F" + "F" @@ -33,32 +33,27 @@ abstract class MixinSkullBlockEntityRenderer implements BlockEntityRenderer info) { - if (info.isCancelled() || PonySkullRenderer.INSTANCE == null) { - return; - } - RenderLayer result = PonySkullRenderer.INSTANCE.getRenderLayer(skullType, profile); - if (result != null) { - info.setReturnValue(result); + private static void onGetRenderLayer(SkullBlock.SkullType skullType, @Nullable GameProfile profile, CallbackInfoReturnable info) { + if (!info.isCancelled()) { + RenderLayer result = PonySkullRenderer.getSkullRenderLayer(skullType, profile); + if (result != null) { + info.setReturnValue(result); + } } } } diff --git a/src/main/java/com/minelittlepony/client/model/AbstractPonyModel.java b/src/main/java/com/minelittlepony/client/model/AbstractPonyModel.java index f54ad7b9..7f550ea1 100644 --- a/src/main/java/com/minelittlepony/client/model/AbstractPonyModel.java +++ b/src/main/java/com/minelittlepony/client/model/AbstractPonyModel.java @@ -186,17 +186,17 @@ public abstract class AbstractPonyModel extends ClientPo */ protected void shakeBody(float move, float swing, float bodySwing, float ticks) { upperTorso.yaw = bodySwing; - torso.yaw = bodySwing; + body.yaw = bodySwing; neck.yaw = bodySwing; } private void animateWears() { leftSleeve.copyTransform(leftArm); rightSleeve.copyTransform(rightArm); - leftPantLeg.copyTransform(leftLeg); - rightPantLeg.copyTransform(rightLeg); - jacket.copyTransform(torso); - helmet.copyTransform(head); + leftPants.copyTransform(leftLeg); + rightPants.copyTransform(rightLeg); + jacket.copyTransform(body); + hat.copyTransform(head); upperTorsoOverlay.copyTransform(upperTorso); } @@ -244,8 +244,8 @@ public abstract class AbstractPonyModel extends ClientPo rotateLegsOnGround(move, swing, ticks, entity); } - float sin = MathHelper.sin(torso.yaw) * 5; - float cos = MathHelper.cos(torso.yaw) * 5; + float sin = MathHelper.sin(body.yaw) * 5; + float cos = MathHelper.cos(body.yaw) * 5; float spread = attributes.isGoingFast ? 2 : 1; @@ -262,8 +262,8 @@ public abstract class AbstractPonyModel extends ClientPo leftArm.pivotX = legRPX; leftLeg.pivotX = legRPX; - rightArm.yaw += torso.yaw; - leftArm.yaw += torso.yaw; + rightArm.yaw += body.yaw; + leftArm.yaw += body.yaw; rightArm.pivotY = leftArm.pivotY = 8; rightLeg.pivotZ = leftLeg.pivotZ = 10; @@ -380,7 +380,7 @@ public abstract class AbstractPonyModel extends ClientPo case NECK: return neck; case TAIL: case LEGS: - case BODY: return torso; + case BODY: return body; } } @@ -514,7 +514,7 @@ public abstract class AbstractPonyModel extends ClientPo float deltaAim = deltaZ * (0.7F - head.pitch) * 0.75F; arm.pitch -= deltaAim + deltaX * 1.2F; - arm.yaw += torso.yaw * 2; + arm.yaw += body.yaw * 2; arm.roll = -deltaZ * 0.4F; } @@ -545,9 +545,9 @@ public abstract class AbstractPonyModel extends ClientPo } protected void adjustBodyComponents(float rotateAngleX, float rotationPointY, float rotationPointZ) { - torso.pitch = rotateAngleX; - torso.pivotY = rotationPointY; - torso.pivotZ = rotationPointZ; + body.pitch = rotateAngleX; + body.pivotY = rotationPointY; + body.pivotZ = rotationPointZ; upperTorso.pitch = rotateAngleX; upperTorso.pivotY = rotationPointY; @@ -596,7 +596,7 @@ public abstract class AbstractPonyModel extends ClientPo } protected void renderHelmet(MatrixStack stack, VertexConsumer vertices, int overlayUv, int lightUv, float red, float green, float blue, float alpha) { - helmet.render(stack, vertices, overlayUv, lightUv, red, green, blue, alpha); + hat.render(stack, vertices, overlayUv, lightUv, red, green, blue, alpha); } protected void renderNeck(MatrixStack stack, VertexConsumer vertices, int overlayUv, int lightUv, float red, float green, float blue, float alpha) { @@ -605,9 +605,9 @@ public abstract class AbstractPonyModel extends ClientPo } protected void renderBody(MatrixStack stack, VertexConsumer vertices, int overlayUv, int lightUv, float red, float green, float blue, float alpha) { - torso.render(stack, vertices, overlayUv, lightUv, red, green, blue, alpha); + body.render(stack, vertices, overlayUv, lightUv, red, green, blue, alpha); upperTorso.render(stack, vertices, overlayUv, lightUv, red, green, blue, alpha); - torso.rotate(stack); + body.rotate(stack); } protected void renderVest(MatrixStack stack, VertexConsumer vertices, int overlayUv, int lightUv, float red, float green, float blue, float alpha) { @@ -617,7 +617,7 @@ public abstract class AbstractPonyModel extends ClientPo protected void renderLegs(MatrixStack stack, VertexConsumer vertices, int overlayUv, int lightUv, float red, float green, float blue, float alpha) { if (!sneaking) { - torso.rotate(stack); + body.rotate(stack); } leftArm.render(stack, vertices, overlayUv, lightUv, red, green, blue, alpha); @@ -629,8 +629,8 @@ public abstract class AbstractPonyModel extends ClientPo protected void renderSleeves(MatrixStack stack, VertexConsumer vertices, int overlayUv, int lightUv, float red, float green, float blue, float alpha) { leftSleeve.render(stack, vertices, overlayUv, lightUv, red, green, blue, alpha); rightSleeve.render(stack, vertices, overlayUv, lightUv, red, green, blue, alpha); - leftPantLeg.render(stack, vertices, overlayUv, lightUv, red, green, blue, alpha); - rightPantLeg.render(stack, vertices, overlayUv, lightUv, red, green, blue, alpha); + leftPants.render(stack, vertices, overlayUv, lightUv, red, green, blue, alpha); + rightPants.render(stack, vertices, overlayUv, lightUv, red, green, blue, alpha); } @Override diff --git a/src/main/java/com/minelittlepony/client/model/DJPon3EarsModel.java b/src/main/java/com/minelittlepony/client/model/DJPon3EarsModel.java index cd239cfc..d25541a7 100644 --- a/src/main/java/com/minelittlepony/client/model/DJPon3EarsModel.java +++ b/src/main/java/com/minelittlepony/client/model/DJPon3EarsModel.java @@ -10,6 +10,6 @@ public class DJPon3EarsModel extends SkullEntityModel { } public void setVisible(boolean show) { - skull.visible = show; + head.visible = show; } } diff --git a/src/main/java/com/minelittlepony/client/model/PonySkullModel.java b/src/main/java/com/minelittlepony/client/model/PonySkullModel.java index b264c3d0..883bf679 100644 --- a/src/main/java/com/minelittlepony/client/model/PonySkullModel.java +++ b/src/main/java/com/minelittlepony/client/model/PonySkullModel.java @@ -40,14 +40,14 @@ public class PonySkullModel extends SkullEntityModel implements MsonModel, ICapi @Override public ModelPart getHead() { - return skull; + return head; } @Override - public void method_2821(float poweredTicks, float yaw, float pitch) { - super.method_2821(poweredTicks, yaw, pitch); - hair.yaw = skull.yaw; - hair.pitch = skull.pitch; + public void setHeadRotation(float poweredTicks, float yaw, float pitch) { + super.setHeadRotation(poweredTicks, yaw, pitch); + hair.yaw = head.yaw; + hair.pitch = head.pitch; } @Override @@ -58,7 +58,7 @@ public class PonySkullModel extends SkullEntityModel implements MsonModel, ICapi snout.setGender(metadata.getGender()); hair.render(stack, vertices, overlayUv, lightUv, red, green, blue, alpha); - skull.render(stack, vertices, overlayUv, lightUv, red, green, blue, alpha); + head.render(stack, vertices, overlayUv, lightUv, red, green, blue, alpha); if (metadata.hasHorn()) { getHead().rotate(stack); diff --git a/src/main/java/com/minelittlepony/client/model/armour/PonyArmourModel.java b/src/main/java/com/minelittlepony/client/model/armour/PonyArmourModel.java index c9cd3361..97181f1f 100644 --- a/src/main/java/com/minelittlepony/client/model/armour/PonyArmourModel.java +++ b/src/main/java/com/minelittlepony/client/model/armour/PonyArmourModel.java @@ -39,7 +39,7 @@ public class PonyArmourModel extends AbstractPonyModel extends AbstractPonyModel mainModel = (BipedEntityModel)model; head.copyTransform(mainModel.head); - helmet.copyTransform(mainModel.helmet); + head.copyTransform(mainModel.head); - torso.copyTransform(mainModel.torso); + body.copyTransform(mainModel.body); rightArm.copyTransform(mainModel.rightArm); leftArm.copyTransform(mainModel.leftArm); rightLeg.copyTransform(mainModel.rightLeg); @@ -80,7 +80,7 @@ public class PonyArmourModel extends AbstractPonyModel extends BipedEntityModel { @Override public void setVisible(boolean visible) { super.setVisible(visible); - helmet.visible = false; + hat.visible = false; } @Override @@ -103,21 +103,21 @@ public class BreezieModel extends BipedEntityModel { } protected void swingArms(Arm mainHand) { - torso.yaw = MathHelper.sin(MathHelper.sqrt(handSwingProgress) * PI * 2) / 5; + body.yaw = MathHelper.sin(MathHelper.sqrt(handSwingProgress) * PI * 2) / 5; if (mainHand == Arm.LEFT) { - torso.yaw *= -1; + body.yaw *= -1; } - float sin = MathHelper.sin(torso.yaw) * 5; - float cos = MathHelper.cos(torso.yaw) * 5; + float sin = MathHelper.sin(body.yaw) * 5; + float cos = MathHelper.cos(body.yaw) * 5; - leftArm.pitch += torso.yaw; - leftArm.yaw += torso.yaw; + leftArm.pitch += body.yaw; + leftArm.yaw += body.yaw; leftArm.pivotX = cos; leftArm.pivotZ = -sin; - rightArm.yaw += torso.yaw; + rightArm.yaw += body.yaw; rightArm.pivotX = -cos; rightArm.pivotZ = sin; @@ -128,7 +128,7 @@ public class BreezieModel extends BipedEntityModel { ModelPart mainArm = getArm(mainHand); mainArm.pitch -= swingFactorX * 1.2F + swingX; - mainArm.yaw += torso.yaw * 2; + mainArm.yaw += body.yaw * 2; mainArm.roll -= MathHelper.sin(handSwingProgress * PI) * 0.4F; } diff --git a/src/main/java/com/minelittlepony/client/model/entity/EnderStallionModel.java b/src/main/java/com/minelittlepony/client/model/entity/EnderStallionModel.java index ecd7be2d..985a2bc8 100644 --- a/src/main/java/com/minelittlepony/client/model/entity/EnderStallionModel.java +++ b/src/main/java/com/minelittlepony/client/model/entity/EnderStallionModel.java @@ -74,8 +74,8 @@ public class EnderStallionModel extends SkeleponyModel { leftSleeve.visible = false; rightSleeve.visible = false; - leftPantLeg.visible = false; - rightPantLeg.visible = false; + leftPants.visible = false; + rightPants.visible = false; } @Override diff --git a/src/main/java/com/minelittlepony/client/model/entity/PiglinPonyModel.java b/src/main/java/com/minelittlepony/client/model/entity/PiglinPonyModel.java index 26904987..a9c4e989 100644 --- a/src/main/java/com/minelittlepony/client/model/entity/PiglinPonyModel.java +++ b/src/main/java/com/minelittlepony/client/model/entity/PiglinPonyModel.java @@ -79,7 +79,7 @@ public class PiglinPonyModel extends ZomponyModel { float legBob = MathHelper.sin(speed * 40) * 0.25F; neck.pivotY = bodyBob; - torso.pivotY = bodyBob; + body.pivotY = bodyBob; upperTorso.pivotY = bodyBob; leftLeg.pitch += legBob; diff --git a/src/main/java/com/minelittlepony/client/model/entity/PonyArmourStandModel.java b/src/main/java/com/minelittlepony/client/model/entity/PonyArmourStandModel.java index aa8e7582..25c45ef5 100644 --- a/src/main/java/com/minelittlepony/client/model/entity/PonyArmourStandModel.java +++ b/src/main/java/com/minelittlepony/client/model/entity/PonyArmourStandModel.java @@ -28,7 +28,7 @@ public class PonyArmourStandModel extends ArmorStandEntityModel { public void applyAnglesTo(BipedEntityModel dest) { MsonPart.of(dest.head).rotateTo(head); - MsonPart.of(dest.helmet).rotateTo(helmet); + MsonPart.of(dest.hat).rotateTo(hat); MsonPart.of(dest.leftLeg).rotateTo(leftLeg); MsonPart.of(dest.rightLeg).rotateTo(rightLeg); MsonPart.of(dest.leftArm).rotateTo(leftArm); diff --git a/src/main/java/com/minelittlepony/client/model/entity/VillagerPonyModel.java b/src/main/java/com/minelittlepony/client/model/entity/VillagerPonyModel.java index e60d91bd..d34ee736 100644 --- a/src/main/java/com/minelittlepony/client/model/entity/VillagerPonyModel.java +++ b/src/main/java/com/minelittlepony/client/model/entity/VillagerPonyModel.java @@ -95,13 +95,13 @@ public class VillagerPonyModel e float roll = 0.3F * MathHelper.sin(0.45F * ticks); this.head.roll = roll; - this.helmet.roll = roll; + this.hat.roll = roll; this.head.pitch = 0.4F; - this.helmet.pitch = 0.4F; + this.hat.pitch = 0.4F; } else { this.head.roll = 0.0F; - this.helmet.roll = 0.0F; + this.hat.roll = 0.0F; } } } diff --git a/src/main/java/com/minelittlepony/client/model/entity/WitchPonyModel.java b/src/main/java/com/minelittlepony/client/model/entity/WitchPonyModel.java index 3163578c..a5d937d3 100644 --- a/src/main/java/com/minelittlepony/client/model/entity/WitchPonyModel.java +++ b/src/main/java/com/minelittlepony/client/model/entity/WitchPonyModel.java @@ -59,7 +59,7 @@ public class WitchPonyModel extends ZebraModel { } head.pitch = -rot / 2; - helmet.pitch = -rot / 2; + hat.pitch = -rot / 2; } else { rightArm.pivotX = 0; rightSleeve.pivotX = 0; 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 c967172f..55735012 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 @@ -112,9 +112,9 @@ public class SeaponyModel extends UnicornModel { @Override protected void renderBody(MatrixStack stack, VertexConsumer vertices, int overlayUv, int lightUv, float red, float green, float blue, float alpha) { - torso.render(stack, vertices, overlayUv, lightUv, red, green, blue, alpha); + body.render(stack, vertices, overlayUv, lightUv, red, green, blue, alpha); bodyCenter.render(stack, vertices, overlayUv, lightUv, red, green, blue, alpha); - torso.rotate(stack); + body.rotate(stack); tail.renderPart(stack, vertices, overlayUv, lightUv, red, green, blue, alpha, attributes.interpolatorId); leftFin.render(stack, vertices, overlayUv, lightUv, red, green, blue, alpha); @@ -136,8 +136,8 @@ public class SeaponyModel extends UnicornModel { // hide the back legs leftLeg.visible = false; rightLeg.visible = false; - leftPantLeg.visible = false; - rightPantLeg.visible = false; + leftPants.visible = false; + rightPants.visible = false; bodyCenter.visible = visible; diff --git a/src/main/java/com/minelittlepony/client/pony/Pony.java b/src/main/java/com/minelittlepony/client/pony/Pony.java index 4d786c1d..0dbf6a93 100644 --- a/src/main/java/com/minelittlepony/client/pony/Pony.java +++ b/src/main/java/com/minelittlepony/client/pony/Pony.java @@ -58,8 +58,8 @@ public class Pony implements IPony { @Override public void updateForEntity(Entity entity) { - if (!initialized || entityId != entity.getEntityId()) { - entityId = entity.getEntityId(); + if (!initialized || entityId != entity.getId()) { + entityId = entity.getId(); initialized = true; entity.calculateDimensions(); diff --git a/src/main/java/com/minelittlepony/client/render/blockentity/skull/AbstractPonySkull.java b/src/main/java/com/minelittlepony/client/render/blockentity/skull/AbstractPonySkull.java index df81eb8a..714ae5f6 100644 --- a/src/main/java/com/minelittlepony/client/render/blockentity/skull/AbstractPonySkull.java +++ b/src/main/java/com/minelittlepony/client/render/blockentity/skull/AbstractPonySkull.java @@ -14,7 +14,7 @@ public abstract class AbstractPonySkull implements ISkull { @Override public void setAngles(float angle, float poweredTicks) { - ponyHead.method_2821(poweredTicks, angle, 0); + ponyHead.setHeadRotation(poweredTicks, angle, 0); } @Override diff --git a/src/main/java/com/minelittlepony/client/render/blockentity/skull/MobSkull.java b/src/main/java/com/minelittlepony/client/render/blockentity/skull/MobSkull.java index ed9cc89f..0505e319 100644 --- a/src/main/java/com/minelittlepony/client/render/blockentity/skull/MobSkull.java +++ b/src/main/java/com/minelittlepony/client/render/blockentity/skull/MobSkull.java @@ -19,7 +19,7 @@ public class MobSkull extends AbstractPonySkull { @Override public boolean canRender(PonyConfig config) { - return type.get(); + return config.ponyskulls.get() && type.get(); } @Override diff --git a/src/main/java/com/minelittlepony/client/render/blockentity/skull/PonySkullRenderer.java b/src/main/java/com/minelittlepony/client/render/blockentity/skull/PonySkullRenderer.java index 171f1821..341c5128 100644 --- a/src/main/java/com/minelittlepony/client/render/blockentity/skull/PonySkullRenderer.java +++ b/src/main/java/com/minelittlepony/client/render/blockentity/skull/PonySkullRenderer.java @@ -7,18 +7,14 @@ import com.minelittlepony.client.render.LevitatingItemRenderer; import com.minelittlepony.client.render.MobRenderers; import com.minelittlepony.client.render.entity.SkeleponyRenderer; import com.minelittlepony.client.render.entity.ZomponyRenderer; -import com.minelittlepony.mson.api.Mson; import com.minelittlepony.settings.PonyConfig; import com.mojang.authlib.GameProfile; import net.minecraft.block.SkullBlock; -import net.minecraft.block.entity.BlockEntityType; import net.minecraft.client.render.OverlayTexture; import net.minecraft.client.render.RenderLayer; import net.minecraft.client.render.VertexConsumer; import net.minecraft.client.render.VertexConsumerProvider; -import net.minecraft.client.render.block.entity.BlockEntityRendererFactory; -import net.minecraft.client.render.block.entity.SkullBlockEntityRenderer; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.util.Identifier; import net.minecraft.util.Util; @@ -30,36 +26,24 @@ import javax.annotation.Nullable; /** * PonySkullRenderer! It renders ponies as skulls, or something... */ -public class PonySkullRenderer extends SkullBlockEntityRenderer { +public class PonySkullRenderer { - public static PonySkullRenderer INSTANCE; - public static void resolve(boolean ponySkulls) { - Mson.getInstance().getEntityRendererRegistry().registerBlockRenderer(BlockEntityType.SKULL, - ponySkulls ? PonySkullRenderer::new : SkullBlockEntityRenderer::new - ); - } - - private ISkull selectedSkull; - private Identifier selectedSkin; - - private final Map skullMap = Util.make(Maps.newHashMap(), (skullMap) -> { + private static final Map SKULLS = Util.make(Maps.newHashMap(), (skullMap) -> { skullMap.put(SkullBlock.Type.SKELETON, new MobSkull(SkeleponyRenderer.SKELETON, MobRenderers.SKELETON)); skullMap.put(SkullBlock.Type.WITHER_SKELETON, new MobSkull(SkeleponyRenderer.WITHER, MobRenderers.SKELETON)); skullMap.put(SkullBlock.Type.ZOMBIE, new MobSkull(ZomponyRenderer.ZOMBIE, MobRenderers.ZOMBIE)); skullMap.put(SkullBlock.Type.PLAYER, new PonySkull()); }); - public PonySkullRenderer(BlockEntityRendererFactory.Context context) { - super(context); - INSTANCE = this; - } + private static ISkull selectedSkull; + private static Identifier selectedSkin; - public RenderLayer getRenderLayer(SkullBlock.SkullType skullType, @Nullable GameProfile profile) { + public static RenderLayer getSkullRenderLayer(SkullBlock.SkullType skullType, @Nullable GameProfile profile) { selectedSkull = null; selectedSkin = null; - ISkull skull = skullMap.get(skullType); + ISkull skull = SKULLS.get(skullType); if (skull == null || !skull.canRender(MineLittlePony.getInstance().getConfig())) { return null; @@ -70,7 +54,7 @@ public class PonySkullRenderer extends SkullBlockEntityRenderer { return LevitatingItemRenderer.getRenderLayer(selectedSkin); } - public boolean renderSkull(@Nullable Direction direction, + public static boolean renderSkull(@Nullable Direction direction, float angle, float poweredTicks, MatrixStack stack, VertexConsumerProvider renderContext, RenderLayer layer, int lightUv) { @@ -83,8 +67,17 @@ public class PonySkullRenderer extends SkullBlockEntityRenderer { stack.push(); - handleRotation(stack, direction); + if (direction == null) { + stack.translate(0.5, 0, 0.5); + } else { + final float offset = 0.25F; + stack.translate( + 0.5F - direction.getOffsetX() * offset, + offset, + 0.5F - direction.getOffsetZ() * offset + ); + } stack.scale(-1, -1, 1); VertexConsumer vertices = renderContext.getBuffer(layer); @@ -97,29 +90,6 @@ public class PonySkullRenderer extends SkullBlockEntityRenderer { return true; } - static void handleRotation(MatrixStack stack, @Nullable Direction direction) { - if (direction == null) { - stack.translate(0.5, 0, 0.5); - return; - } - - switch (direction) { - case NORTH: - stack.translate(0.5, 0.25, 0.74); - break; - case SOUTH: - stack.translate(0.5, 0.25, 0.26); - break; - case WEST: - stack.translate(0.74, 0.25, 0.5); - break; - case EAST: - default: - stack.translate(0.26, 0.25, 0.5); - break; - } - } - /** * A skull, just a skull. * diff --git a/src/main/java/com/minelittlepony/client/render/entity/feature/SkullFeature.java b/src/main/java/com/minelittlepony/client/render/entity/feature/SkullFeature.java index 9bb0534d..5525ec95 100644 --- a/src/main/java/com/minelittlepony/client/render/entity/feature/SkullFeature.java +++ b/src/main/java/com/minelittlepony/client/render/entity/feature/SkullFeature.java @@ -106,8 +106,8 @@ public class SkullFeature & IPo stack.translate(-0.5, 0, -0.5); SkullType type = ((AbstractSkullBlock) ((BlockItem) itemstack.getItem()).getBlock()).getSkullType(); SkullBlockEntityModel skullBlockEntityModel = (SkullBlockEntityModel)this.headModels.get(type); - RenderLayer renderLayer = SkullBlockEntityRenderer.method_3578(type, profile); + RenderLayer renderLayer = SkullBlockEntityRenderer.getRenderLayer(type, profile); - SkullBlockEntityRenderer.method_32161(null, 180, f, stack, renderContext, lightUv, skullBlockEntityModel, renderLayer); + SkullBlockEntityRenderer.renderSkull(null, 180, f, stack, renderContext, lightUv, skullBlockEntityModel, renderLayer); } }