-
-
Notifications
You must be signed in to change notification settings - Fork 40
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
8cf6bf0
commit 31b9df3
Showing
2 changed files
with
59 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,52 @@ | ||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 | ||
From: violetc <[email protected]> | ||
Date: Tue, 18 Jul 2023 14:59:26 +0800 | ||
Subject: [PATCH] Cache BlockStatePairKey hash | ||
|
||
This patch is Powered by Gale(https://github.com/GaleMC/Gale) | ||
|
||
diff --git a/src/main/java/net/minecraft/world/level/block/Block.java b/src/main/java/net/minecraft/world/level/block/Block.java | ||
index 4dc1cd1b1355ca401cc5094d8e3cdbcd980befb5..96b9d47aa3720491424c35c9e73fc996bfc8cd20 100644 | ||
--- a/src/main/java/net/minecraft/world/level/block/Block.java | ||
+++ b/src/main/java/net/minecraft/world/level/block/Block.java | ||
@@ -609,11 +609,18 @@ public class Block extends BlockBehaviour implements ItemLike { | ||
private final BlockState first; | ||
private final BlockState second; | ||
private final Direction direction; | ||
+ private final int hash; // Leaves - cache BlockStatePairKey hash | ||
|
||
public BlockStatePairKey(BlockState self, BlockState other, Direction facing) { | ||
this.first = self; | ||
this.second = other; | ||
this.direction = facing; | ||
+ // Leaves start - cache BlockStatePairKey hash | ||
+ int hash = this.first.hashCode(); | ||
+ hash = 31 * hash + this.second.hashCode(); | ||
+ hash = 31 * hash + this.direction.hashCode(); | ||
+ this.hash = hash; | ||
+ // Leaves end - cache BlockStatePairKey hash | ||
} | ||
|
||
public boolean equals(Object object) { | ||
@@ -629,11 +636,17 @@ public class Block extends BlockBehaviour implements ItemLike { | ||
} | ||
|
||
public int hashCode() { | ||
- int i = this.first.hashCode(); | ||
+ // Leaves start - cache BlockStatePairKey hash | ||
+ if (!top.leavesmc.leaves.LeavesConfig.cacheBlockStatePairKeyHash) { | ||
+ int i = this.first.hashCode(); | ||
|
||
- i = 31 * i + this.second.hashCode(); | ||
- i = 31 * i + this.direction.hashCode(); | ||
- return i; | ||
+ i = 31 * i + this.second.hashCode(); | ||
+ i = 31 * i + this.direction.hashCode(); | ||
+ return i; | ||
+ } else { | ||
+ return this.hash; | ||
+ } | ||
+ // Leaves end - cache BlockStatePairKey hash | ||
} | ||
} | ||
} |