23 lines
		
	
	
	
		
			1.3 KiB
			
		
	
	
	
		
			Diff
		
	
	
	
	
	
		
		
			
		
	
	
			23 lines
		
	
	
	
		
			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 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
							 | 
						||
| 
								 | 
							
								--- a/src/main/java/net/minecraft/world/level/BlockGetter.java
							 | 
						||
| 
								 | 
							
								+++ b/src/main/java/net/minecraft/world/level/BlockGetter.java
							 | 
						||
| 
								 | 
							
								@@ -0,0 +0,0 @@ public interface BlockGetter extends LevelHeightAccessor {
							 | 
						||
| 
								 | 
							
								                 return BlockHitResult.miss(raytrace1.getTo(), Direction.getNearest(vec3d.x, vec3d.y, vec3d.z), new BlockPos(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();
							 |