geforkt von Mirrors/Paper
29 Zeilen
2.5 KiB
Diff
29 Zeilen
2.5 KiB
Diff
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||
|
From: Spottedleaf <spottedleaf@spottedleaf.dev>
|
||
|
Date: Sat, 25 Apr 2020 17:10:55 -0700
|
||
|
Subject: [PATCH] Reduce blockpos allocation from pathfinding
|
||
|
|
||
|
|
||
|
diff --git a/src/main/java/net/minecraft/world/level/pathfinder/WalkNodeEvaluator.java b/src/main/java/net/minecraft/world/level/pathfinder/WalkNodeEvaluator.java
|
||
|
index 7ae24381b91c282745b7fe5f6897865e74bc0acf..3c460682611969a5db136aa41ca0d230c6228d56 100644
|
||
|
--- a/src/main/java/net/minecraft/world/level/pathfinder/WalkNodeEvaluator.java
|
||
|
+++ b/src/main/java/net/minecraft/world/level/pathfinder/WalkNodeEvaluator.java
|
||
|
@@ -498,7 +498,7 @@ public class WalkNodeEvaluator extends NodeEvaluator {
|
||
|
return BlockPathTypes.DANGER_FIRE;
|
||
|
}
|
||
|
|
||
|
- if (iblockaccess.getFluidState(blockposition_mutableblockposition).is((Tag) FluidTags.WATER)) {
|
||
|
+ if (iblockdata.getFluidState().is((Tag) FluidTags.WATER)) { // Paper - remove another getType call
|
||
|
return BlockPathTypes.WATER_BORDER;
|
||
|
}
|
||
|
} // Paper
|
||
|
@@ -528,7 +528,7 @@ public class WalkNodeEvaluator extends NodeEvaluator {
|
||
|
} else if (iblockdata.is(Blocks.COCOA)) {
|
||
|
return BlockPathTypes.COCOA;
|
||
|
} else {
|
||
|
- FluidState fluid = iblockaccess.getFluidState(blockposition);
|
||
|
+ FluidState fluid = iblockdata.getFluidState(); // Paper - remove another get type call
|
||
|
|
||
|
return fluid.is((Tag) FluidTags.WATER) ? BlockPathTypes.WATER : (fluid.is((Tag) FluidTags.LAVA) ? BlockPathTypes.LAVA : (isBurningBlock(iblockdata) ? BlockPathTypes.DAMAGE_FIRE : (DoorBlock.isWoodenDoor(iblockdata) && !(Boolean) iblockdata.getValue(DoorBlock.OPEN) ? BlockPathTypes.DOOR_WOOD_CLOSED : (block instanceof DoorBlock && material == Material.ORE && !(Boolean) iblockdata.getValue(DoorBlock.OPEN) ? BlockPathTypes.DOOR_IRON_CLOSED : (block instanceof DoorBlock && (Boolean) iblockdata.getValue(DoorBlock.OPEN) ? BlockPathTypes.DOOR_OPEN : (block instanceof BaseRailBlock ? BlockPathTypes.RAIL : (block instanceof LeavesBlock ? BlockPathTypes.LEAVES : (!block.is((Tag) BlockTags.FENCES) && !block.is((Tag) BlockTags.WALLS) && (!(block instanceof FenceGateBlock) || (Boolean) iblockdata.getValue(FenceGateBlock.OPEN)) ? (!iblockdata.isPathfindable(iblockaccess, blockposition, PathComputationType.LAND) ? BlockPathTypes.BLOCKED : BlockPathTypes.OPEN) : BlockPathTypes.FENCE))))))));
|
||
|
}
|