package com.thebrokenrail.gulliverreloaded.mixin; import com.thebrokenrail.gulliverreloaded.ScaledEntity; import net.minecraft.entity.EntityDimensions; import net.minecraft.entity.EntityPose; import net.minecraft.entity.player.PlayerEntity; import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; import java.util.Map; @SuppressWarnings("unused") @Mixin(PlayerEntity.class) public abstract class MixinPlayerEntity { @Shadow @Final private static Map POSE_DIMENSIONS; @Inject(at = @At("RETURN"), method = "getMovementSpeed()F", cancellable = true) public void getMovementSpeed(CallbackInfoReturnable info) { info.setReturnValue(info.getReturnValue() * ((ScaledEntity) this).getScale()); } @Inject(at = @At("RETURN"), method = "getDimensions", cancellable = true) public void getDimensions(EntityPose pose, CallbackInfoReturnable info) { info.setReturnValue(((ScaledEntity) this).scaleDimensions(info.getReturnValue())); } }