Search in sources :

Example 6 with Camera

use of net.minecraft.client.render.Camera in project Hypnotic-Client by Hypnotic-Development.

the class ModelPredicateProviderRegistryMixin method onGetAngleToPos.

@Inject(method = "getAngleToPos(Lnet/minecraft/util/math/Vec3d;Lnet/minecraft/entity/Entity;)D", at = @At("HEAD"), cancellable = true)
private void onGetAngleToPos(Vec3d pos, Entity entity, CallbackInfoReturnable<Double> info) {
    if (ModuleManager.INSTANCE.getModule(Freecam.class).isEnabled()) {
        Camera camera = mc.gameRenderer.getCamera();
        info.setReturnValue(Math.atan2(pos.getZ() - camera.getPos().z, pos.getX() - camera.getPos().x));
    }
}
Also used : Freecam(dev.hypnotic.module.render.Freecam) Camera(net.minecraft.client.render.Camera) Inject(org.spongepowered.asm.mixin.injection.Inject)

Example 7 with Camera

use of net.minecraft.client.render.Camera in project Hypnotic-Client by Hypnotic-Development.

the class Waypoints method render.

@EventTarget
public void render(EventRender3D event) {
    MatrixStack matrices = event.getMatrices();
    for (Waypoint waypoint : WaypointManager.INSTANCE.waypoints) {
        if (waypoint.isEnabled()) {
            Camera c = mc.gameRenderer.getCamera();
            Vec3d vv = new Vec3d(waypoint.getX() + .5, c.getPos().y, waypoint.getZ() + .5);
            double distance = vv.distanceTo(mc.player.getPos());
            int a = 255;
            float scale = 3f;
            scale /= 50f;
            scale *= 0.55f;
            if (distance < 100) {
                a = (int) ((distance / 100) * 255);
            } else
                scale *= distance / 100d;
            RenderUtils.drawBoxOutline(new Box(new BlockPos(waypoint.getX(), 0, waypoint.getZ())).stretch(0, 500, 0), QuadColor.single(ColorUtils.defaultClientColor), 1);
            RenderUtils.drawBoxFill(new Box(new BlockPos(waypoint.getX(), 0, waypoint.getZ())).stretch(0, 500, 0), QuadColor.single(new Color(ColorUtils.defaultClientColor().getRed(), ColorUtils.defaultClientColor().getGreen(), ColorUtils.defaultClientColor().getBlue(), a).getRGB()));
            Vec3d textPos = new Vec3d(waypoint.getX() + 0.5, c.getPos().y, waypoint.getZ() + 0.25);
            matrices.push();
            matrices.translate(textPos.x - c.getPos().x - 1, textPos.y - c.getPos().y + 2, textPos.z - c.getPos().z - 0.5);
            matrices.translate(0, scale * 6, 0);
            matrices.scale(-scale, -scale, scale);
            Quaternion qu = mc.getEntityRenderDispatcher().getRotation();
            qu = new Quaternion(-qu.getX(), -qu.getY(), qu.getZ(), qu.getW());
            matrices.multiply(qu);
            VertexConsumerProvider.Immediate immediate = VertexConsumerProvider.immediate(Tessellator.getInstance().getBuffer());
            RenderSystem.disableDepthTest();
            RenderSystem.polygonOffset(1, -15000000);
            RenderSystem.enablePolygonOffset();
            FontManager.robotoBig.drawCenteredString(matrices, waypoint.getName() + " " + Math.round(PlayerUtils.distanceTo(new BlockPos(waypoint.getX(), mc.player.getY(), waypoint.getZ()))) + "m", 0, 0, -1, true);
            RenderSystem.polygonOffset(1, 15000000);
            RenderSystem.disablePolygonOffset();
            RenderSystem.enableDepthTest();
            immediate.draw();
            matrices.pop();
        }
    }
}
Also used : Quaternion(net.minecraft.util.math.Quaternion) MatrixStack(net.minecraft.client.util.math.MatrixStack) Color(java.awt.Color) QuadColor(dev.hypnotic.utils.render.QuadColor) Box(net.minecraft.util.math.Box) Vec3d(net.minecraft.util.math.Vec3d) Waypoint(dev.hypnotic.waypoint.Waypoint) Waypoint(dev.hypnotic.waypoint.Waypoint) BlockPos(net.minecraft.util.math.BlockPos) Camera(net.minecraft.client.render.Camera) VertexConsumerProvider(net.minecraft.client.render.VertexConsumerProvider) EventTarget(dev.hypnotic.event.EventTarget)

Example 8 with Camera

use of net.minecraft.client.render.Camera in project Hypnotic-Client by Hypnotic-Development.

the class ESP method renderOutline.

void renderOutline(Entity e, Color color, MatrixStack stack) {
    float red = color.getRed() / 255f;
    float green = color.getGreen() / 255f;
    float blue = color.getBlue() / 255f;
    float alpha = color.getAlpha() / 255f;
    Camera c = mc.gameRenderer.getCamera();
    Vec3d camPos = c.getPos();
    Vec3d start = e.getPos().subtract(camPos);
    float x = (float) start.x;
    float y = (float) start.y;
    float z = (float) start.z;
    double r = Math.toRadians(-c.getYaw() + 90);
    float sin = (float) (Math.sin(r) * (e.getWidth() / 1.7));
    float cos = (float) (Math.cos(r) * (e.getWidth() / 1.7));
    stack.push();
    Matrix4f matrix = stack.peek().getPositionMatrix();
    BufferBuilder buffer = Tessellator.getInstance().getBuffer();
    RenderSystem.setShader(GameRenderer::getPositionColorShader);
    GL11.glDepthFunc(GL11.GL_ALWAYS);
    RenderSystem.setShaderColor(1f, 1f, 1f, 1f);
    RenderSystem.defaultBlendFunc();
    RenderSystem.enableBlend();
    buffer.begin(VertexFormat.DrawMode.DEBUG_LINES, VertexFormats.POSITION_COLOR);
    buffer.vertex(matrix, x + sin, y, z + cos).color(red, green, blue, alpha).next();
    buffer.vertex(matrix, x - sin, y, z - cos).color(red, green, blue, alpha).next();
    buffer.vertex(matrix, x - sin, y, z - cos).color(red, green, blue, alpha).next();
    buffer.vertex(matrix, x - sin, y + e.getHeight(), z - cos).color(red, green, blue, alpha).next();
    buffer.vertex(matrix, x - sin, y + e.getHeight(), z - cos).color(red, green, blue, alpha).next();
    buffer.vertex(matrix, x + sin, y + e.getHeight(), z + cos).color(red, green, blue, alpha).next();
    buffer.vertex(matrix, x + sin, y + e.getHeight(), z + cos).color(red, green, blue, alpha).next();
    buffer.vertex(matrix, x + sin, y, z + cos).color(red, green, blue, alpha).next();
    buffer.end();
    BufferRenderer.draw(buffer);
    GL11.glDepthFunc(GL11.GL_LEQUAL);
    RenderSystem.disableBlend();
    stack.pop();
}
Also used : Matrix4f(net.minecraft.util.math.Matrix4f) BufferBuilder(net.minecraft.client.render.BufferBuilder) GameRenderer(net.minecraft.client.render.GameRenderer) Camera(net.minecraft.client.render.Camera) Vec3d(net.minecraft.util.math.Vec3d)

Example 9 with Camera

use of net.minecraft.client.render.Camera in project Client by MatHax.

the class MouseMixin method updateMouseChangeLookDirection.

@Redirect(method = "updateMouse", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/network/ClientPlayerEntity;changeLookDirection(DD)V"))
private void updateMouseChangeLookDirection(ClientPlayerEntity player, double cursorDeltaX, double cursorDeltaY) {
    Freecam freecam = Modules.get().get(Freecam.class);
    FreeLook freeLook = Modules.get().get(FreeLook.class);
    if (freecam.isActive())
        freecam.changeLookDirection(cursorDeltaX * 0.15, cursorDeltaY * 0.15);
    else if (Modules.get().isActive(HighwayBuilder.class)) {
        Camera camera = client.gameRenderer.getCamera();
        ((ICamera) camera).setRot(camera.getYaw() + cursorDeltaX * 0.15, camera.getPitch() + cursorDeltaY * 0.15);
    } else if (freeLook.cameraMode()) {
        freeLook.cameraYaw += cursorDeltaX / freeLook.sensitivity.get().floatValue();
        freeLook.cameraPitch += cursorDeltaY / freeLook.sensitivity.get().floatValue();
        if (Math.abs(freeLook.cameraPitch) > 90.0F)
            freeLook.cameraPitch = freeLook.cameraPitch > 0.0F ? 90.0F : -90.0F;
    } else
        player.changeLookDirection(cursorDeltaX, cursorDeltaY);
}
Also used : HighwayBuilder(mathax.client.systems.modules.world.HighwayBuilder) Freecam(mathax.client.systems.modules.render.Freecam) ICamera(mathax.client.mixininterface.ICamera) Camera(net.minecraft.client.render.Camera) FreeLook(mathax.client.systems.modules.render.FreeLook) Redirect(org.spongepowered.asm.mixin.injection.Redirect)

Example 10 with Camera

use of net.minecraft.client.render.Camera in project Client by MatHax.

the class Waypoints method onRender2D.

@EventHandler
private void onRender2D(Render2DEvent event) {
    if (!Modules.get().isActive(WaypointsModule.class))
        return;
    TextRenderer text = TextRenderer.get();
    for (Waypoint waypoint : this) {
        if (!waypoint.visible || !checkDimension(waypoint))
            continue;
        Camera camera = mc.gameRenderer.getCamera();
        double x = getCoords(waypoint).x;
        double y = getCoords(waypoint).y;
        double z = getCoords(waypoint).z;
        double dist = PlayerUtils.distanceToCamera(x, y, z);
        if (dist > waypoint.maxVisibleDistance)
            continue;
        double scale = waypoint.scale;
        double a = 1;
        if (dist < 10) {
            a = dist / 10;
            if (a < 0.1)
                continue;
        }
        double maxViewDist = mc.options.viewDistance * 16;
        if (dist > maxViewDist) {
            double dx = x - camera.getPos().x;
            double dy = y - camera.getPos().y;
            double dz = z - camera.getPos().z;
            double length = Math.sqrt(dx * dx + dy * dy + dz * dz);
            dx /= length;
            dy /= length;
            dz /= length;
            dx *= maxViewDist;
            dy *= maxViewDist;
            dz *= maxViewDist;
            x = camera.getPos().x + dx;
            y = camera.getPos().y + dy;
            z = camera.getPos().z + dz;
            scale /= dist / 15;
            scale *= maxViewDist / 15;
        }
        scale = Utils.clamp(scale, waypoint.minScale, Integer.MAX_VALUE);
        pos.set(x, y, z);
        if (!NametagUtils.to2D(pos, scale))
            continue;
        NametagUtils.begin(pos);
        int preBgA = BACKGROUND.a;
        int preTextA = TEXT.a;
        BACKGROUND.a *= a;
        TEXT.a *= a;
        String distText = Math.round(dist) + " blocks";
        text.beginBig();
        double w = text.getWidth(waypoint.name) / 2.0;
        double w2 = text.getWidth(distText) / 2.0;
        double h = text.getHeight();
        Renderer2D.COLOR.begin();
        Renderer2D.COLOR.quad(-w, -h, w * 2, h * 2, BACKGROUND);
        Renderer2D.COLOR.render(null);
        waypoint.renderIcon(-16, h + 1, a, 32);
        text.render(waypoint.name, -w, -h + 1, TEXT);
        text.render(distText, -w2, 0, TEXT);
        text.end();
        NametagUtils.end();
        BACKGROUND.a = preBgA;
        TEXT.a = preTextA;
    }
}
Also used : WaypointsModule(mathax.client.systems.modules.render.WaypointsModule) Camera(net.minecraft.client.render.Camera) TextRenderer(mathax.client.renderer.text.TextRenderer) EventHandler(mathax.client.eventbus.EventHandler)

Aggregations

Camera (net.minecraft.client.render.Camera)26 MatrixStack (net.minecraft.client.util.math.MatrixStack)11 Vec3d (net.minecraft.util.math.Vec3d)6 MinecraftClient (net.minecraft.client.MinecraftClient)4 VertexConsumerProvider (net.minecraft.client.render.VertexConsumerProvider)3 Matrix4f (net.minecraft.util.math.Matrix4f)3 IMatrix4f (dev.hypnotic.utils.mixin.IMatrix4f)2 List (java.util.List)2 BufferBuilder (net.minecraft.client.render.BufferBuilder)2 GameRenderer (net.minecraft.client.render.GameRenderer)2 Inject (org.spongepowered.asm.mixin.injection.Inject)2 CameraInvoker (com.glisco.isometricrenders.mixin.CameraInvoker)1 Lists (com.google.common.collect.Lists)1 IEGameRenderer (com.qouteall.immersive_portals.ducks.IEGameRenderer)1 EventTarget (dev.hypnotic.event.EventTarget)1 Freecam (dev.hypnotic.module.render.Freecam)1 QuadColor (dev.hypnotic.utils.render.QuadColor)1 Waypoint (dev.hypnotic.waypoint.Waypoint)1 Unpooled (io.netty.buffer.Unpooled)1 Long2ObjectOpenHashMap (it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap)1