MineLittlePony/src/main/java/com/minelittlepony/client/mixin/MixinPlayerEntity.java

28 lines
1 KiB
Java
Raw Normal View History

2024-04-30 15:45:36 +01:00
package com.minelittlepony.client.mixin;
import net.minecraft.entity.*;
import net.minecraft.entity.player.PlayerEntity;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
import com.minelittlepony.api.pony.Pony;
2024-05-04 19:43:24 +01:00
@Mixin(PlayerEntity.class)
abstract class MixinPlayerEntity {
2024-04-30 15:45:36 +01:00
@Inject(method = "getBaseDimensions", at = @At("RETURN"), cancellable = true)
private void onGetBaseDimensions(EntityPose pose, CallbackInfoReturnable<EntityDimensions> info) {
2024-05-04 19:43:24 +01:00
Pony pony = Pony.getManager().getPony((PlayerEntity)(Object)this);
2024-04-30 15:45:36 +01:00
2024-05-04 19:43:24 +01:00
if (!pony.race().isHuman()) {
float factor = pony.size().eyeHeightFactor();
if (factor != 1) {
EntityDimensions dimensions = info.getReturnValue();
info.setReturnValue(dimensions.withEyeHeight(dimensions.eyeHeight() * factor));
2024-04-30 15:45:36 +01:00
}
}
}
}