Packport parrot sizing and fix parrots positioning

This commit is contained in:
Sollace 2024-12-15 17:19:37 +01:00
parent 7328d0c43d
commit 5fce5b376c
No known key found for this signature in database
GPG key ID: E52FACE7B5C773DB
2 changed files with 21 additions and 20 deletions

View file

@ -8,12 +8,13 @@ import net.minecraft.client.render.entity.ParrotEntityRenderer;
import net.minecraft.client.render.entity.model.EntityModelLayers; import net.minecraft.client.render.entity.model.EntityModelLayers;
import net.minecraft.client.render.entity.model.ParrotEntityModel; import net.minecraft.client.render.entity.model.ParrotEntityModel;
import net.minecraft.client.util.math.MatrixStack; import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.util.math.RotationAxis;
import net.minecraft.entity.EntityType; import net.minecraft.entity.EntityType;
import net.minecraft.entity.passive.ParrotEntity; import net.minecraft.entity.passive.ParrotEntity;
import net.minecraft.entity.player.PlayerEntity; import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.nbt.NbtCompound; import net.minecraft.nbt.NbtCompound;
import net.minecraft.util.Identifier; import net.minecraft.util.Identifier;
import net.minecraft.util.math.*;
import com.minelittlepony.api.model.BodyPart; import com.minelittlepony.api.model.BodyPart;
import com.minelittlepony.client.model.ClientPonyModel; import com.minelittlepony.client.model.ClientPonyModel;
@ -48,14 +49,17 @@ public class PassengerFeature<T extends PlayerEntity, M extends ClientPonyModel<
private void renderShoulderParrot(MatrixStack stack, VertexConsumerProvider renderContext, int light, T entity, float limbDistance, float limbAngle, float headYaw, float headPitch, Identifier texture, int sigma) { private void renderShoulderParrot(MatrixStack stack, VertexConsumerProvider renderContext, int light, T entity, float limbDistance, float limbAngle, float headYaw, float headPitch, Identifier texture, int sigma) {
stack.push(); stack.push();
float scale = 1/getContext().getEntityPony(entity).size().scaleFactor();
final double parrotModelHeight = 1.5;
getContextModel().transform(BodyPart.BODY, stack); getContextModel().transform(BodyPart.BACK, stack);
getContextModel().body.rotate(stack);
stack.translate( stack.translate(0, -1.28, 0);
sigma * 0.25,
entity.isInSneakingPose() ? -0.9 : -1.2,
0.45);
stack.multiply(RotationAxis.NEGATIVE_Z.rotationDegrees(sigma * -5)); stack.multiply(RotationAxis.NEGATIVE_Z.rotationDegrees(sigma * -5));
stack.translate(0, parrotModelHeight, 0);
stack.scale(scale, scale, scale);
stack.translate(sigma * 0.25, -parrotModelHeight, 0.45);
VertexConsumer buffer = renderContext.getBuffer(model.getLayer(texture)); VertexConsumer buffer = renderContext.getBuffer(model.getLayer(texture));
model.poseOnShoulder(stack, buffer, light, OverlayTexture.DEFAULT_UV, limbDistance, limbAngle, headYaw, headPitch, entity.age); model.poseOnShoulder(stack, buffer, light, OverlayTexture.DEFAULT_UV, limbDistance, limbAngle, headYaw, headPitch, entity.age);

View file

@ -33,7 +33,6 @@ public enum PonyTransformation {
if (model.getAttributes().isCrouching) stack.translate(0, 0.1F, 0); if (model.getAttributes().isCrouching) stack.translate(0, 0.1F, 0);
break; break;
case BACK: case BACK:
translateForRider(stack);
break; break;
default: default:
} }
@ -71,8 +70,10 @@ public enum PonyTransformation {
stack.scale(1.1F, 1, 1.1F); stack.scale(1.1F, 1, 1.1F);
break; break;
case BACK: case BACK:
translateForRider(stack); stack.translate(0, -0.08F, -0.05F);
if (model.getAttributes().isLyingDown) stack.translate(0, -0.1F, 0);
break; break;
default:
} }
} }
}, },
@ -108,7 +109,7 @@ public enum PonyTransformation {
stack.scale(0.9F, 1.12F, 0.9F); stack.scale(0.9F, 1.12F, 0.9F);
break; break;
case BACK: case BACK:
translateForRider(stack); stack.translate(0, -0.14F, -0.04F);
break; break;
} }
} }
@ -144,7 +145,7 @@ public enum PonyTransformation {
stack.scale(1.15F, 1.12F, 1.15F); stack.scale(1.15F, 1.12F, 1.15F);
break; break;
case BACK: case BACK:
translateForRider(stack); stack.translate(0, -0.15F, -0.04F);
break; break;
} }
} }
@ -174,7 +175,6 @@ public enum PonyTransformation {
stack.scale(1, 0.81F, 1); stack.scale(1, 0.81F, 1);
break; break;
case BACK: case BACK:
translateForRider(stack);
break; break;
default: default:
} }
@ -200,6 +200,7 @@ public enum PonyTransformation {
break; break;
case BODY: case BODY:
case TAIL: case TAIL:
case BACK:
stack.translate(0, -0.1F, 0); stack.translate(0, -0.1F, 0);
break; break;
case LEGS: case LEGS:
@ -207,9 +208,6 @@ public enum PonyTransformation {
stack.scale(1, 1.18F, 1); stack.scale(1, 1.18F, 1);
if (model.getAttributes().isGoingFast) stack.translate(0, 0.05F, 0); if (model.getAttributes().isGoingFast) stack.translate(0, 0.05F, 0);
break; break;
case BACK:
translateForRider(stack);
break;
} }
} }
}, },
@ -235,6 +233,7 @@ public enum PonyTransformation {
break; break;
case BODY: case BODY:
case TAIL: case TAIL:
case BACK:
stack.translate(0, -0.1F, 0); stack.translate(0, -0.1F, 0);
break; break;
case LEGS: case LEGS:
@ -242,9 +241,6 @@ public enum PonyTransformation {
stack.scale(1, 1.18F, 1); stack.scale(1, 1.18F, 1);
if (model.getAttributes().isGoingFast) stack.translate(0, 0.05F, 0); if (model.getAttributes().isGoingFast) stack.translate(0, 0.05F, 0);
break; break;
case BACK:
translateForRider(stack);
break;
} }
} }
}, },
@ -274,6 +270,10 @@ public enum PonyTransformation {
stack.scale(1.4F, 1.3F, 1); stack.scale(1.4F, 1.3F, 1);
if (model.getAttributes().isCrouching) stack.translate(0, -0.05F, 0); if (model.getAttributes().isCrouching) stack.translate(0, -0.05F, 0);
break; break;
case BACK:
stack.translate(0, 0.07F, 0);
if (model.getAttributes().isCrouching) stack.translate(0, -0.05F, 0);
break;
case TAIL: case TAIL:
stack.translate(0, -0.1F, 0); stack.translate(0, -0.1F, 0);
break; break;
@ -282,9 +282,6 @@ public enum PonyTransformation {
stack.scale(1.1F, 0.8F, 1.1F); stack.scale(1.1F, 0.8F, 1.1F);
if (model.getAttributes().isLyingDown) stack.translate(0, -0.1F, 0); if (model.getAttributes().isLyingDown) stack.translate(0, -0.1F, 0);
break; break;
case BACK:
translateForRider(stack);
break;
} }
} }
}; };