39 lines
2.4 KiB
Diff
39 lines
2.4 KiB
Diff
--- a/net/minecraft/world/level/block/entity/SculkCatalystBlockEntity.java
|
|
+++ b/net/minecraft/world/level/block/entity/SculkCatalystBlockEntity.java
|
|
@@ -32,14 +32,18 @@
|
|
public SculkCatalystBlockEntity(BlockPosition blockposition, IBlockData iblockdata) {
|
|
super(TileEntityTypes.SCULK_CATALYST, blockposition, iblockdata);
|
|
this.catalystListener = new SculkCatalystBlockEntity.a(iblockdata, new BlockPositionSource(blockposition));
|
|
+ catalystListener.level = level; // CraftBukkit
|
|
}
|
|
|
|
public static void serverTick(World world, BlockPosition blockposition, IBlockData iblockdata, SculkCatalystBlockEntity sculkcatalystblockentity) {
|
|
+ org.bukkit.craftbukkit.event.CraftEventFactory.sourceBlockOverride = sculkcatalystblockentity.getBlockPos(); // CraftBukkit - SPIGOT-7068: Add source block override, not the most elegant way but better than passing down a BlockPosition up to five methods deep.
|
|
sculkcatalystblockentity.catalystListener.getSculkSpreader().updateCursors(world, blockposition, world.getRandom(), true);
|
|
+ org.bukkit.craftbukkit.event.CraftEventFactory.sourceBlockOverride = null; // CraftBukkit
|
|
}
|
|
|
|
@Override
|
|
public void load(NBTTagCompound nbttagcompound) {
|
|
+ super.load(nbttagcompound); // CraftBukkit - SPIGOT-7393: Load super Bukkit data
|
|
this.catalystListener.sculkSpreader.load(nbttagcompound);
|
|
}
|
|
|
|
@@ -60,6 +64,7 @@
|
|
final SculkSpreader sculkSpreader;
|
|
private final IBlockData blockState;
|
|
private final PositionSource positionSource;
|
|
+ private World level; // CraftBukkit
|
|
|
|
public a(IBlockData iblockdata, PositionSource positionsource) {
|
|
this.blockState = iblockdata;
|
|
@@ -116,7 +121,7 @@
|
|
return this.sculkSpreader;
|
|
}
|
|
|
|
- private void bloom(WorldServer worldserver, BlockPosition blockposition, IBlockData iblockdata, RandomSource randomsource) {
|
|
+ public void bloom(WorldServer worldserver, BlockPosition blockposition, IBlockData iblockdata, RandomSource randomsource) {
|
|
worldserver.setBlock(blockposition, (IBlockData) iblockdata.setValue(SculkCatalystBlock.PULSE, true), 3);
|
|
worldserver.scheduleTick(blockposition, iblockdata.getBlock(), 8);
|
|
worldserver.sendParticles(Particles.SCULK_SOUL, (double) blockposition.getX() + 0.5D, (double) blockposition.getY() + 1.15D, (double) blockposition.getZ() + 0.5D, 2, 0.2D, 0.0D, 0.2D, 0.0D);
|