Mirror von
https://github.com/PaperMC/Paper.git
synchronisiert 2024-11-15 12:30:06 +01:00
23 Zeilen
1.3 KiB
Diff
23 Zeilen
1.3 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Spottedleaf <Spottedleaf@users.noreply.github.com>
|
|
Date: Sun, 7 Mar 2021 13:15:04 -0800
|
|
Subject: [PATCH] Do not run raytrace logic for AIR
|
|
|
|
Saves approx. 5% for the raytrace call, as most (expensive)
|
|
raytracing tends to go through air and returning early is an
|
|
easy win. The remaining problems with this function
|
|
are mostly with the block getting itself.
|
|
|
|
diff --git a/src/main/java/net/minecraft/world/level/BlockGetter.java b/src/main/java/net/minecraft/world/level/BlockGetter.java
|
|
index 04194b5d5560e3620131c2f5cdea84ff814a4c25..0e8746759752b692668886370181aa5db1fd0bb0 100644
|
|
--- a/src/main/java/net/minecraft/world/level/BlockGetter.java
|
|
+++ b/src/main/java/net/minecraft/world/level/BlockGetter.java
|
|
@@ -79,6 +79,7 @@ public interface BlockGetter extends LevelHeightAccessor {
|
|
return BlockHitResult.miss(raytrace1.getTo(), Direction.getNearest(vec3d.x, vec3d.y, vec3d.z), BlockPos.containing(raytrace1.getTo()));
|
|
}
|
|
// Paper end
|
|
+ if (iblockdata.isAir()) return null; // Paper - optimise air cases
|
|
FluidState fluid = iblockdata.getFluidState(); // Paper - don't need to go to world state again
|
|
Vec3 vec3d = raytrace1.getFrom();
|
|
Vec3 vec3d1 = raytrace1.getTo();
|