mirror of
https://github.com/PaperMC/Paper.git
synced 2025-01-06 18:50:51 +01:00
3360d06f76
* Houston, we got a patch * is this the end of the beginning or the beginning of the end
30 lines
No EOL
1.5 KiB
Diff
30 lines
No EOL
1.5 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Aikar <aikar@aikar.co>
|
|
Date: Mon, 26 Nov 2018 19:21:58 -0500
|
|
Subject: [PATCH] Prevent rayTrace from loading chunks
|
|
|
|
ray tracing into an unloaded chunk should be treated as a miss
|
|
this saves a ton of lag for when AI tries to raytrace near unloaded chunks.
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/IBlockAccess.java b/src/main/java/net/minecraft/server/IBlockAccess.java
|
|
index 0dff02352..29cdc0087 100644
|
|
--- a/src/main/java/net/minecraft/server/IBlockAccess.java
|
|
+++ b/src/main/java/net/minecraft/server/IBlockAccess.java
|
|
@@ -0,0 +0,0 @@ public interface IBlockAccess {
|
|
|
|
// CraftBukkit start - moved block handling into separate method for use by Block#rayTrace
|
|
default MovingObjectPositionBlock rayTraceBlock(RayTrace raytrace1, BlockPosition blockposition) {
|
|
- IBlockData iblockdata = this.getType(blockposition);
|
|
+ // Paper start - Prevent raytrace from loading chunks
|
|
+ IBlockData iblockdata = this.getTypeIfLoaded(blockposition);
|
|
+ if (iblockdata == null) {
|
|
+ // copied the last function parameter (listed below)
|
|
+ Vec3D vec3d = raytrace1.b().d(raytrace1.a());
|
|
+
|
|
+ return MovingObjectPositionBlock.a(raytrace1.a(), EnumDirection.a(vec3d.x, vec3d.y, vec3d.z), new BlockPosition(raytrace1.a()));
|
|
+ }
|
|
+ // Paper end
|
|
Fluid fluid = this.getFluid(blockposition);
|
|
Vec3D vec3d = raytrace1.b();
|
|
Vec3D vec3d1 = raytrace1.a();
|
|
--
|