mirror of
https://github.com/Winds-Studio/Leaf.git
synced 2025-12-19 15:09:25 +00:00
40 lines
2.6 KiB
Diff
40 lines
2.6 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: HaHaWTH <102713261+HaHaWTH@users.noreply.github.com>
|
|
Date: Tue, 22 Oct 2024 17:07:36 +0800
|
|
Subject: [PATCH] Cache blockstate cache array
|
|
|
|
|
|
diff --git a/net/minecraft/world/level/block/state/BlockBehaviour.java b/net/minecraft/world/level/block/state/BlockBehaviour.java
|
|
index 331474bb33c8612283a0ec478c1ae8768180b22d..84f4d772bfe06383ca718b6a00d983e97e2e35f4 100644
|
|
--- a/net/minecraft/world/level/block/state/BlockBehaviour.java
|
|
+++ b/net/minecraft/world/level/block/state/BlockBehaviour.java
|
|
@@ -1047,6 +1047,10 @@ public abstract class BlockBehaviour implements FeatureElement {
|
|
static final class Cache {
|
|
private static final Direction[] DIRECTIONS = Direction.values();
|
|
private static final int SUPPORT_TYPE_COUNT = SupportType.values().length;
|
|
+ // Leaf start - Cache blockstate cache array
|
|
+ private static final SupportType[] SUPPORT_TYPE_VALUES = SupportType.values();
|
|
+ private static final Direction.Axis[] DIRECTION_AXIS_VALUES = Direction.Axis.values();
|
|
+ // Leaf end - Cache blockstate cache array
|
|
protected final VoxelShape collisionShape;
|
|
protected boolean largeCollisionShape;
|
|
private final boolean[] faceSturdy;
|
|
@@ -1065,7 +1069,7 @@ public abstract class BlockBehaviour implements FeatureElement {
|
|
);
|
|
} else {
|
|
// Leaf start - Remove stream in BlockBehaviour cache blockstate
|
|
- for (Direction.Axis axis : Direction.Axis.values()) {
|
|
+ for (Direction.Axis axis : DIRECTION_AXIS_VALUES) { // Leaf - Cache blockstate cache array
|
|
if (this.collisionShape.min(axis) < 0.0 || this.collisionShape.max(axis) > 1.0) {
|
|
this.largeCollisionShape = true;
|
|
break;
|
|
@@ -1075,7 +1079,7 @@ public abstract class BlockBehaviour implements FeatureElement {
|
|
this.faceSturdy = new boolean[DIRECTIONS.length * SUPPORT_TYPE_COUNT];
|
|
|
|
for (Direction direction : DIRECTIONS) {
|
|
- for (SupportType supportType : SupportType.values()) {
|
|
+ for (SupportType supportType : SUPPORT_TYPE_VALUES) { // Leaf - Cache blockstate cache array
|
|
this.faceSturdy[getFaceSupportIndex(direction, supportType)] = supportType.isSupporting(
|
|
state, EmptyBlockGetter.INSTANCE, BlockPos.ZERO, direction
|
|
);
|