Upstream Paper
This commit is contained in:
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user