From 32b7c8265077a2b25873ddb0750d2d74a63f02fd Mon Sep 17 00:00:00 2001 From: Brady Date: Sat, 24 Jun 2023 22:11:08 -0700 Subject: [PATCH] Add `renderHitboxRaytraces` setting --- src/api/java/baritone/api/Settings.java | 1 + .../java/baritone/behavior/ElytraBehavior.java | 15 +++++++++++++++ 2 files changed, 16 insertions(+) diff --git a/src/api/java/baritone/api/Settings.java b/src/api/java/baritone/api/Settings.java index 1b39c3cab..48d1c85d2 100644 --- a/src/api/java/baritone/api/Settings.java +++ b/src/api/java/baritone/api/Settings.java @@ -55,6 +55,7 @@ public final class Settings { public final Setting elytraMinimumAvoidance = new Setting<>(0.2); public final Setting conserveFireworks = new Setting<>(true); public final Setting renderRaytraces = new Setting<>(false); + public final Setting renderHitboxRaytraces = new Setting<>(false); public final Setting elytraFreeLook = new Setting<>(false); // Experimental Elytra Settings diff --git a/src/main/java/baritone/behavior/ElytraBehavior.java b/src/main/java/baritone/behavior/ElytraBehavior.java index 642def293..af353896f 100644 --- a/src/main/java/baritone/behavior/ElytraBehavior.java +++ b/src/main/java/baritone/behavior/ElytraBehavior.java @@ -701,6 +701,21 @@ public final class ElytraBehavior extends Behavior implements IElytraBehavior, H bb.maxX + ox, bb.maxY + oy, bb.minZ + oz, bb.maxX + ox, bb.maxY + oy, bb.maxZ + oz, }; + + // Use non-batching method without early failure + if (Baritone.settings().renderHitboxRaytraces.value) { + boolean clear = true; + for (int i = 0; i < 8; i++) { + final Vec3d s = new Vec3d(src[i * 3], src[i * 3 + 1], src[i * 3 + 2]); + final Vec3d d = new Vec3d(dst[i * 3], dst[i * 3 + 1], dst[i * 3 + 2]); + // Don't forward ignoreLava since the batch call doesn't care about it + if (!this.clearView(s, d, false)) { + clear = false; + } + } + return clear; + } + return this.context.raytrace(8, src, dst, NetherPathfinderContext.Visibility.ALL); }