Skip to content

Commit 6e49667

Browse files
authored
Merge pull request #178 from MonstoBusta/1.19.4-Atlas
Partially Rewrite Horizontal Reacharound
2 parents 35a4fbe + d4c3208 commit 6e49667

1 file changed

Lines changed: 16 additions & 8 deletions

File tree

src/main/java/eu/midnightdust/midnightcontrols/client/MidnightReacharound.java

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -120,31 +120,39 @@ private float getPlayerRange(@NotNull MinecraftClient client) {
120120
return null;
121121

122122
if (client.player != null && client.crosshairTarget != null && client.crosshairTarget.getType() == HitResult.Type.MISS
123-
&& client.player.isOnGround() && client.player.getPitch(0.f) > 35.f) {
123+
&& client.player.isOnGround() && client.player.getPitch(0.f) >= 35.f) {
124124
if (client.player.isRiding())
125125
return null;
126-
var playerPos = client.player.getBlockPos().down();
126+
// Temporary pos, do not use
127+
Vec3d playerPosi = client.player.getPos();
128+
129+
// Imitates var playerPos = client.player.getBlockPos().down();
130+
Vec3d playerPos = new Vec3d(playerPosi.getX(), playerPosi.getY() - 1.0, playerPosi.getZ());
127131
if (client.player.getY() - playerPos.getY() - 1.0 >= 0.25) {
128-
playerPos = playerPos.up();
132+
// Imitates playerPos = playerPos.up();
133+
playerPos = playerPosi;
129134
this.onSlab = true;
130135
} else {
131136
this.onSlab = false;
132137
}
133-
var targetPos = BlockPos.ofFloored(client.crosshairTarget.getPos()).subtract(playerPos);
134-
var vector = new BlockPos.Mutable(MathHelper.clamp(targetPos.getX(), -1, 1), 0, MathHelper.clamp(targetPos.getZ(), -1, 1));
138+
var targetPos = new Vec3d(client.crosshairTarget.getPos().getX(), client.crosshairTarget.getPos().getY(), client.crosshairTarget.getPos().getZ()).subtract(playerPos);
139+
var vector = new Vec3d(MathHelper.clamp(targetPos.getX(), -1, 1), 0, MathHelper.clamp(targetPos.getZ(), -1, 1));
135140
var blockPos = playerPos.add(vector);
136141

142+
// Some functions still need BlockPos, so this is here to let that happen
143+
var blockyPos = new BlockPos(blockPos);
144+
137145
var direction = client.player.getHorizontalFacing();
138146

139-
var state = client.world.getBlockState(blockPos);
147+
var state = client.world.getBlockState(blockyPos);
140148
if (!state.isAir())
141149
return null;
142-
var adjacentBlockState = client.world.getBlockState(blockPos.offset(direction.getOpposite()));
150+
var adjacentBlockState = client.world.getBlockState(blockyPos.offset(direction.getOpposite()));
143151
if (adjacentBlockState.isAir() || adjacentBlockState.getBlock() instanceof FluidBlock || (vector.getX() == 0 && vector.getZ() == 0)) {
144152
return null;
145153
}
146154

147-
return new BlockHitResult(new Vec3d(blockPos.getX(),blockPos.getY(),blockPos.getZ()), direction, blockPos, false);
155+
return new BlockHitResult(blockPos, direction, blockyPos, false);
148156
}
149157
return null;
150158
}

0 commit comments

Comments
 (0)