Визуальная часть Elytra predict 3.1 and eva ready

  • Автор темы Автор темы Fanuzei
  • Дата начала Дата начала
Селф код на 100% хз зачем но решил слить, сделал функцией но кто захочет сможет и перенести прямо в килку ( если че она предсказывает будующую позицию игрока если кто незнает )
предикт как в катле я видел его на 2.0 но на 3.1 не видел
Если есть вопросы или что-то нужно вам написать пишите в дс: m1lehvh
ss -
Пожалуйста, авторизуйтесь для просмотра ссылки.
(бокс перед челиком)

ready:
Expand Collapse Copy
package eva.ware.modules.impl.combat;

import com.google.common.eventbus.Subscribe;
import com.mojang.blaze3d.platform.GlStateManager;
import eva.ware.events.EventRender3D;
import eva.ware.modules.api.Category;
import eva.ware.modules.api.Module;
import eva.ware.modules.api.ModuleRegister;
import eva.ware.modules.settings.impl.*;
import eva.ware.utils.render.engine2d.RenderUtility;
import net.minecraft.client.entity.player.AbstractClientPlayerEntity;
import net.minecraft.client.entity.player.ClientPlayerEntity;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.util.math.AxisAlignedBB;
import net.minecraft.util.math.vector.Vector3d;

import java.util.List;

@ModuleRegister(name = "ElytraPredict", category = Category.Combat)
public class ElytraPredict extends Module {

    private CheckBoxSetting drawPrediction = new CheckBoxSetting("Предсказывать поцизию", true);
    private SliderSetting predictionTime = new SliderSetting("Предсказывать позицию на", 1F, 0.1F, 5F, 0.1F);

    public ElytraPredict() {
        addSettings(drawPrediction, predictionTime);
    }

    [USER=1367676]@override[/USER]
    public void onEnable() {
        super.onEnable();
    }

    @Subscribe
    public void onRender(EventRender3D e) {
        if (drawPrediction.getValue() && mc.world != null && mc.player != null) {
            List<AbstractClientPlayerEntity> players = mc.world.getPlayers();
            for (PlayerEntity player : players) {
                if (player instanceof ClientPlayerEntity && player == mc.player) {
                    continue;
                }
               
                if (player.isElytraFlying()) {
                    Vector3d predictedPos = predictElytraPosition(player.getPositionVec(), player.getMotion(), predictionTime.getValue());
                    drawBoundingBox(predictedPos);
                }
            }
        }
    }

    private Vector3d predictElytraPosition(Vector3d currentPos, Vector3d currentMotion, double time) {
        double gravity = 0.05;
        Vector3d predictedPos = currentPos.add(currentMotion.scale(time));
        predictedPos = predictedPos.subtract(0, 0.5 * gravity * time * time, 0);
        return predictedPos;
    }

    private void drawBoundingBox(Vector3d pos) {
        GlStateManager.pushMatrix();
        GlStateManager.enableBlend();
        RenderUtility.drawBox(AxisAlignedBB.fromVector(pos).expand(0.0, 0.1, 0.0).offset(-mc.getRenderManager().info.getProjectedView().x, -mc.getRenderManager().info.getProjectedView().y, -mc.getRenderManager().info.getProjectedView().z).offset(-0.5, 0.0, -0.5).grow(-0.2, 0.0, -0.2), -1, 1.0f);
        GlStateManager.disableBlend();
        GlStateManager.popMatrix();
    }

    [USER=1367676]@override[/USER]
    public void onDisable() {
        super.onDisable();
    }
}
Интересно я сдохну когда тему одобрят или нет?)
помоги перенести я пастер
 

Похожие темы

Назад
Сверху Снизу