Upstream Paper

This commit is contained in:
Sotr
2019-03-21 02:58:59 +08:00
parent cc8cb0bb4c
commit 6498e68a50
28 changed files with 263 additions and 282 deletions

View File

@@ -14,7 +14,7 @@ public class BlockIceFrost extends BlockIce {
public void a(IBlockData iblockdata, World world, BlockPosition blockposition, Random random) {
if (!world.paperConfig.frostedIceEnabled) return; // Paper - add ability to disable frosted ice
if ((random.nextInt(3) == 0 || this.a(world, blockposition, 4)) && world.getLightLevel(blockposition) > 11 - (Integer) iblockdata.get(BlockIceFrost.a) - iblockdata.b(world, blockposition) && this.c(iblockdata, world, blockposition)) {
BlockPosition.b blockposition_b = BlockPosition.b.r();
BlockPosition.PooledBlockPosition blockposition_pooledblockposition = BlockPosition.PooledBlockPosition.r();
Throwable throwable = null;
try {
@@ -24,27 +24,27 @@ public class BlockIceFrost extends BlockIce {
for (int j = 0; j < i; ++j) {
EnumDirection enumdirection = aenumdirection[j];
blockposition_b.g(blockposition).c(enumdirection);
IBlockData iblockdata1 = world.getTypeIfLoaded(blockposition_b); // Paper - don't load chunks
blockposition_pooledblockposition.g(blockposition).c(enumdirection);
IBlockData iblockdata1 = world.getTypeIfLoaded(blockposition_pooledblockposition); // Paper - don't load chunks
if (iblockdata1 == null) continue; // Paper
if (iblockdata1.getBlock() == this && !this.c(iblockdata1, world, blockposition_b)) {
world.getBlockTickList().a(blockposition_b, this, MathHelper.nextInt(random, world.paperConfig.frostedIceDelayMin, world.paperConfig.frostedIceDelayMax)); // Paper - use configurable min/max delay
if (iblockdata1.getBlock() == this && !this.c(iblockdata1, world, blockposition_pooledblockposition)) {
world.getBlockTickList().a(blockposition_pooledblockposition, this, MathHelper.nextInt(random, world.paperConfig.frostedIceDelayMin, world.paperConfig.frostedIceDelayMax)); // Paper - use configurable min/max delay
}
}
} catch (Throwable throwable1) {
throwable = throwable1;
throw throwable1;
} finally {
if (blockposition_b != null) {
if (blockposition_pooledblockposition != null) {
if (throwable != null) {
try {
blockposition_b.close();
blockposition_pooledblockposition.close();
} catch (Throwable throwable2) {
throwable.addSuppressed(throwable2);
}
} else {
blockposition_b.close();
blockposition_pooledblockposition.close();
}
}
@@ -77,7 +77,7 @@ public class BlockIceFrost extends BlockIce {
private boolean a(IBlockAccess iblockaccess, BlockPosition blockposition, int i) {
int j = 0;
BlockPosition.b blockposition_b = BlockPosition.b.r();
BlockPosition.PooledBlockPosition blockposition_pooledblockposition = BlockPosition.PooledBlockPosition.r();
Throwable throwable = null;
try {
@@ -87,8 +87,8 @@ public class BlockIceFrost extends BlockIce {
for (int l = 0; l < k; ++l) {
EnumDirection enumdirection = aenumdirection[l];
blockposition_b.g(blockposition).c(enumdirection);
if (((World) iblockaccess).getBlockIfLoaded(blockposition_b) == this) { // Paper - don't load chunks
blockposition_pooledblockposition.g(blockposition).c(enumdirection);
if (((World) iblockaccess).getBlockIfLoaded(blockposition_pooledblockposition) == this) { // Paper - don't load chunks
++j;
if (j >= i) {
boolean flag = false;
@@ -103,15 +103,15 @@ public class BlockIceFrost extends BlockIce {
throwable = throwable1;
throw throwable1;
} finally {
if (blockposition_b != null) {
if (blockposition_pooledblockposition != null) {
if (throwable != null) {
try {
blockposition_b.close();
blockposition_pooledblockposition.close();
} catch (Throwable throwable2) {
throwable.addSuppressed(throwable2);
}
} else {
blockposition_b.close();
blockposition_pooledblockposition.close();
}
}