-
Автор темы
- #1
- Выберите загрузчик игры
- Vanilla, Прочие моды
Перед прочтением основного контента ниже, пожалуйста, обратите внимание на обновление внутри секции Майна на нашем форуме. У нас появились:
- бесплатные читы для Майнкрафт — любое использование на свой страх и риск;
- маркетплейс Майнкрафт — абсолютно любая коммерция, связанная с игрой, за исключением продажи читов (аккаунты, предоставления услуг, поиск кодеров читов и так далее);
- приватные читы для Minecraft — в этом разделе только платные хаки для игры, покупайте группу "Продавец" и выставляйте на продажу свой софт;
- обсуждения и гайды — всё тот же раздел с вопросами, но теперь модернизированный: поиск нужных хаков, пати с игроками-читерами и другая полезная информация.
Спасибо!
Пожалуйста, авторизуйтесь для просмотра ссылки.
Код:
@FunctionAnot(name = "Prediction", description = "Отображает предсказание траектории полёта эндер-жемчуга", category = Category.RENDER)
public class Prediction extends Function {
private static final Minecraft mc = Minecraft.getInstance();
public Prediction() {
}
[USER=1367676]@override[/USER]
protected void onEnable() {
}
[USER=1367676]@override[/USER]
protected void onDisable() {
}
[USER=1367676]@override[/USER]
public void onBindPress() {
}
[USER=1474073]@Subscribe[/USER]
public void onRenderWorldLast(RenderEvent event) {
if (mc.world == null || mc.player == null || !enabled) return;
MatrixStack matrixStack = event.getMatrixStack();
float partialTicks = event.getPartialTicks();
for (Entity entity : mc.world.getAllEntities()) {
if (!(entity instanceof EnderPearlEntity)) continue;
EnderPearlEntity pearl = (EnderPearlEntity) entity;
renderPearlTrajectory(matrixStack, pearl, partialTicks);
}
}
private Vector3d getNextMotion(ThrowableEntity throwable, Vector3d motion) {
motion = motion.scale(0.99);
if (!throwable.hasNoGravity()) {
motion = motion.subtract(0, 0.03f, 0);
}
return motion;
}
private void renderPearlTrajectory(MatrixStack matrixStack, EnderPearlEntity pearl, float partialTicks) {
Vector3d startPos = pearl.getPositionVec();
Vector3d velocity = pearl.getMotion();
Vector3d endPos = findLandingPosition(pearl, startPos, velocity);
Vector2f startScreen = ProjectionUtil.project((float)startPos.x, (float)startPos.y, (float)startPos.z);
Vector2f endScreen = ProjectionUtil.project((float)endPos.x, (float)endPos.y, (float)endPos.z);
RenderSystem.disableDepthTest();
RenderSystem.disableTexture();
RenderSystem.disableAlphaTest();
RenderSystem.enableBlend();
RenderSystem.defaultBlendFunc();
RenderSystem.color4f(4.0F, 0.0F, 0.0F, 1.0F);
RenderSystem.lineWidth(3.8F);
Tessellator tessellator = Tessellator.getInstance();
BufferBuilder bufferBuilder = tessellator.getBuffer();
bufferBuilder.begin(GL11.GL_LINES, DefaultVertexFormats.POSITION);
bufferBuilder.pos(startScreen.x, startScreen.y, 0).endVertex();
bufferBuilder.pos(endScreen.x, endScreen.y, 0).endVertex();
tessellator.draw();
RenderSystem.enableAlphaTest();
RenderSystem.enableTexture();
RenderSystem.enableDepthTest();
BlockPos landingBlock = new BlockPos(endPos);
ItemStack blockItemStack = new ItemStack(mc.world.getBlockState(landingBlock).getBlock());
ItemStack pearlItemStack = new ItemStack(Items.ENDER_PEARL);
int verticalDistance = (int)Math.abs(startPos.y - endPos.y);
RenderSystem.pushMatrix();
RenderSystem.enableBlend();
mc.getItemRenderer().renderItemIntoGUI(pearlItemStack, (int)(endScreen.x + 10), (int)(endScreen.y - 8));
RenderSystem.disableBlend();
RenderSystem.popMatrix();
String distanceText = verticalDistance + " Bloks";
IFont.drawWithShadowCenteredX(
IFont.MONTSERRAT_BOLD,
distanceText,
endScreen.x,
endScreen.y + 10,
new Color(128, 128, 128),
14,
matrixStack
);
}
private void renderLine(double x1, double y1, double z1, double x2, double y2, double z2, Color color) {
Vector2f start = ProjectionUtil.project((float)x1, (float)y1, (float)z1);
Vector2f end = ProjectionUtil.project((float)x2, (float)y2, (float)z2);
RenderSystem.disableDepthTest();
RenderSystem.disableTexture();
RenderSystem.disableAlphaTest();
RenderSystem.enableBlend();
RenderSystem.defaultBlendFunc();
RenderSystem.color4f(color.getRed() / 255f, color.getGreen() / 255f, color.getBlue() / 255f, color.getAlpha() / 255f);
RenderSystem.lineWidth(15.0F);
Tessellator tessellator = Tessellator.getInstance();
BufferBuilder bufferBuilder = tessellator.getBuffer();
bufferBuilder.begin(GL11.GL_LINES, DefaultVertexFormats.POSITION);
bufferBuilder.pos(start.x, start.y, 0).endVertex();
bufferBuilder.pos(end.x, end.y, 0).endVertex();
tessellator.draw();
RenderSystem.enableAlphaTest();
RenderSystem.enableTexture();
RenderSystem.enableDepthTest();
}
private Vector3d findLandingPosition(ThrowableEntity throwable, Vector3d startPos, Vector3d initialVelocity) {
Vector3d currentPos = startPos;
Vector3d currentVelocity = initialVelocity;
double gravity = 0.03999999910593033D;
while (true) {
currentVelocity = currentVelocity.subtract(0, gravity, 0);
currentPos = currentPos.add(currentVelocity);
currentPos = currentPos.add(currentVelocity);
if (mc.world.getBlockState(new BlockPos(currentPos)).getMaterial().isSolid()) {
return currentPos;
}
if (Math.abs(currentPos.y - startPos.y) > 50) {
return currentPos;
}
}
}
}
// created by privatebuy aka funtik