#1242: Add more Sculk API (bloom, shriek, bloom event)

By: Collin <collinjbarber@gmail.com>
This commit is contained in:
CraftBukkit/Spigot
2023-09-06 20:44:19 +10:00
parent 832e3ca9bf
commit 4e2ef19474
4 changed files with 116 additions and 1 deletions

View File

@@ -1,6 +1,10 @@
--- a/net/minecraft/world/level/block/entity/SculkCatalystBlockEntity.java
+++ b/net/minecraft/world/level/block/entity/SculkCatalystBlockEntity.java
@@ -35,11 +35,14 @@
@@ -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) {
@@ -15,3 +19,20 @@
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);