geforkt von Mirrors/Paper
00be0b7b30
Upstream has released updates that appear to apply and compile correctly. This update has not been tested by PaperMC and as with ANY update, please do your own testing Bukkit Changes: d25437bc Update to Minecraft 1.18-pre8 CraftBukkit Changes: 5a39a236 Update to Minecraft 1.18-pre8 Spigot Changes: 7840c2af Update to Minecraft 1.18-pre8
97 Zeilen
4.0 KiB
Diff
97 Zeilen
4.0 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Spottedleaf <spottedleaf@spottedleaf.dev>
|
|
Date: Mon, 6 Jul 2020 20:46:50 -0700
|
|
Subject: [PATCH] Improve inlinig for some hot IBlockData 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 aba21b3f30e56dc19aa914cc05c1abb364f3f348..ce4848bdd00c091b9eb5fa2d47b03378d43c91b2 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
|
|
@@ -700,8 +700,14 @@ public abstract class BlockBehaviour {
|
|
return this.shapeExceedsCube;
|
|
}
|
|
// Paper end
|
|
+ // Paper start
|
|
+ protected boolean isTicking;
|
|
+ protected FluidState fluid;
|
|
+ // Paper end
|
|
|
|
public void initCache() {
|
|
+ this.fluid = this.getBlock().getFluidState(this.asState()); // Paper - moved from getFluid()
|
|
+ this.isTicking = this.getBlock().isRandomlyTicking(this.asState()); // Paper - moved from isTicking()
|
|
if (!this.getBlock().hasDynamicShape()) {
|
|
this.cache = new BlockBehaviour.BlockStateBase.Cache(this.asState());
|
|
}
|
|
@@ -745,15 +751,15 @@ public abstract class BlockBehaviour {
|
|
return this.shapeExceedsCube; // Paper - moved into shape cache init
|
|
}
|
|
|
|
- public boolean useShapeForLightOcclusion() {
|
|
+ public final boolean useShapeForLightOcclusion() { // Paper
|
|
return this.useShapeForLightOcclusion;
|
|
}
|
|
|
|
- public int getLightEmission() {
|
|
+ public final int getLightEmission() { // Paper
|
|
return this.lightEmission;
|
|
}
|
|
|
|
- public boolean isAir() {
|
|
+ public final boolean isAir() { // Paper
|
|
return this.isAir;
|
|
}
|
|
|
|
@@ -827,7 +833,7 @@ public abstract class BlockBehaviour {
|
|
}
|
|
}
|
|
|
|
- public boolean canOcclude() {
|
|
+ public final boolean canOcclude() { // Paper
|
|
return this.canOcclude;
|
|
}
|
|
|
|
@@ -1020,12 +1026,12 @@ public abstract class BlockBehaviour {
|
|
return this.getBlock() == block;
|
|
}
|
|
|
|
- public FluidState getFluidState() {
|
|
- return this.getBlock().getFluidState(this.asState());
|
|
+ public final FluidState getFluidState() { // Paper
|
|
+ return this.fluid; // Paper - moved into init
|
|
}
|
|
|
|
- public boolean isRandomlyTicking() {
|
|
- return this.getBlock().isRandomlyTicking(this.asState());
|
|
+ public final boolean isRandomlyTicking() { // Paper
|
|
+ return this.isTicking; // Paper - moved into init
|
|
}
|
|
|
|
public long getSeed(BlockPos pos) {
|
|
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 b0611b985efc2cc8a528ff4589fd11cbcc84ac39..5e7dc3868dbf676b7ddfc39ec1ea97ff2a9dbaae 100644
|
|
--- a/src/main/java/net/minecraft/world/level/material/FluidState.java
|
|
+++ b/src/main/java/net/minecraft/world/level/material/FluidState.java
|
|
@@ -23,8 +23,12 @@ public final class FluidState extends StateHolder<Fluid, FluidState> {
|
|
public static final int AMOUNT_MAX = 9;
|
|
public static final int AMOUNT_FULL = 8;
|
|
|
|
+ // Paper start
|
|
+ protected final boolean isEmpty;
|
|
+ // Paper end
|
|
public FluidState(Fluid fluid, ImmutableMap<Property<?>, Comparable<?>> propertiesMap, MapCodec<FluidState> codec) {
|
|
super(fluid, propertiesMap, codec);
|
|
+ this.isEmpty = fluid.isEmpty(); // Paper - moved from isEmpty()
|
|
}
|
|
|
|
public Fluid getType() {
|
|
@@ -40,7 +44,7 @@ public final class FluidState extends StateHolder<Fluid, FluidState> {
|
|
}
|
|
|
|
public boolean isEmpty() {
|
|
- return this.getType().isEmpty();
|
|
+ return this.isEmpty; // Paper - moved into constructor
|
|
}
|
|
|
|
public float getHeight(BlockGetter world, BlockPos pos) {
|