Mirror von
https://github.com/PaperMC/Paper.git
synchronisiert 2024-12-15 02:50:09 +01:00
dc684c60d1
The new behavior of disconnect to block the current thread until the disconnect succeeded is better than throwing it off to happen at some point
79 Zeilen
3.5 KiB
Diff
79 Zeilen
3.5 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Spottedleaf <Spottedleaf@users.noreply.github.com>
|
|
Date: Mon, 6 Jul 2020 20:46:50 -0700
|
|
Subject: [PATCH] Improve inlining for some hot BlockBehavior and FluidState
|
|
methods
|
|
|
|
|
|
diff --git a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java
|
|
index 335f43e49d31acecfec8b6da9be9afe88cd95ca9..d261649aa1b7b351f325f9b752bb792f952f7b25 100644
|
|
--- a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java
|
|
+++ b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java
|
|
@@ -912,15 +912,15 @@ public abstract class BlockBehaviour implements FeatureElement {
|
|
return this.shapeExceedsCube; // Paper - moved into shape cache init
|
|
}
|
|
|
|
- public boolean useShapeForLightOcclusion() {
|
|
+ public final boolean useShapeForLightOcclusion() { // Paper - Perf: Final for inlining
|
|
return this.useShapeForLightOcclusion;
|
|
}
|
|
|
|
- public int getLightEmission() {
|
|
+ public final int getLightEmission() { // Paper - Perf: Final for inlining
|
|
return this.lightEmission;
|
|
}
|
|
|
|
- public boolean isAir() {
|
|
+ public final boolean isAir() { // Paper - Perf: Final for inlining
|
|
return this.isAir;
|
|
}
|
|
|
|
@@ -1004,7 +1004,7 @@ public abstract class BlockBehaviour implements FeatureElement {
|
|
}
|
|
}
|
|
|
|
- public boolean canOcclude() {
|
|
+ public final boolean canOcclude() { // Paper - Perf: Final for inlining
|
|
return this.canOcclude;
|
|
}
|
|
|
|
@@ -1220,11 +1220,11 @@ public abstract class BlockBehaviour implements FeatureElement {
|
|
return this.getBlock().builtInRegistryHolder().is(key);
|
|
}
|
|
|
|
- public FluidState getFluidState() {
|
|
+ public final FluidState getFluidState() { // Paper - Perf: Final for inlining
|
|
return this.fluidState;
|
|
}
|
|
|
|
- public boolean isRandomlyTicking() {
|
|
+ public final boolean isRandomlyTicking() { // Paper - Perf: Final for inlining
|
|
return this.isRandomlyTicking;
|
|
}
|
|
|
|
diff --git a/src/main/java/net/minecraft/world/level/material/FluidState.java b/src/main/java/net/minecraft/world/level/material/FluidState.java
|
|
index 42370e5e6628ebf8216c01521af859706b08834b..14bb12d2a0066e8b020f2e0e670a7a5c74633623 100644
|
|
--- a/src/main/java/net/minecraft/world/level/material/FluidState.java
|
|
+++ b/src/main/java/net/minecraft/world/level/material/FluidState.java
|
|
@@ -25,9 +25,11 @@ public final class FluidState extends StateHolder<Fluid, FluidState> {
|
|
public static final Codec<FluidState> CODEC = codec(BuiltInRegistries.FLUID.byNameCodec(), Fluid::defaultFluidState).stable();
|
|
public static final int AMOUNT_MAX = 9;
|
|
public static final int AMOUNT_FULL = 8;
|
|
+ protected final boolean isEmpty; // Paper - Perf: moved from isEmpty()
|
|
|
|
public FluidState(Fluid fluid, Reference2ObjectArrayMap<Property<?>, Comparable<?>> propertyMap, MapCodec<FluidState> codec) {
|
|
super(fluid, propertyMap, codec);
|
|
+ this.isEmpty = fluid.isEmpty(); // Paper - Perf: moved from isEmpty()
|
|
}
|
|
|
|
public Fluid getType() {
|
|
@@ -43,7 +45,7 @@ public final class FluidState extends StateHolder<Fluid, FluidState> {
|
|
}
|
|
|
|
public boolean isEmpty() {
|
|
- return this.getType().isEmpty();
|
|
+ return this.isEmpty; // Paper - Perf: moved into constructor
|
|
}
|
|
|
|
public float getHeight(BlockGetter world, BlockPos pos) {
|