aboutsummaryrefslogtreecommitdiffhomepage
path: root/patch-remap/mache-spigotflower/net/minecraft/server/level/WorldGenRegion.java.patch
diff options
context:
space:
mode:
authorMiniDigger | Martin <[email protected]>2024-01-14 11:04:49 +0100
committerMiniDigger | Martin <[email protected]>2024-01-14 11:04:49 +0100
commitbee74680e607c2e29b038329f62181238911cd83 (patch)
tree708fd1a4a0227d9071243adf2a42d5e9e96cde4a /patch-remap/mache-spigotflower/net/minecraft/server/level/WorldGenRegion.java.patch
parent0a44692ef6ff6e255d48eb3ba1bb114166eafda9 (diff)
downloadPaper-softspoon.tar.gz
Paper-softspoon.zip
add remapped patches as a testsoftspoon
Diffstat (limited to 'patch-remap/mache-spigotflower/net/minecraft/server/level/WorldGenRegion.java.patch')
-rw-r--r--patch-remap/mache-spigotflower/net/minecraft/server/level/WorldGenRegion.java.patch592
1 files changed, 592 insertions, 0 deletions
diff --git a/patch-remap/mache-spigotflower/net/minecraft/server/level/WorldGenRegion.java.patch b/patch-remap/mache-spigotflower/net/minecraft/server/level/WorldGenRegion.java.patch
new file mode 100644
index 0000000000..b9d59ab7b8
--- /dev/null
+++ b/patch-remap/mache-spigotflower/net/minecraft/server/level/WorldGenRegion.java.patch
@@ -0,0 +1,592 @@
+--- a/net/minecraft/server/level/WorldGenRegion.java
++++ b/net/minecraft/server/level/WorldGenRegion.java
+@@ -37,7 +37,7 @@
+ import net.minecraft.world.level.block.Blocks;
+ import net.minecraft.world.level.block.EntityBlock;
+ import net.minecraft.world.level.block.entity.BlockEntity;
+-import net.minecraft.world.level.block.state.BlockState;
++import net.minecraft.world.level.block.state.IBlockData;
+ import net.minecraft.world.level.border.WorldBorder;
+ import net.minecraft.world.level.chunk.ChunkAccess;
+ import net.minecraft.world.level.chunk.ChunkSource;
+@@ -67,11 +67,11 @@
+ private final LevelData levelData;
+ private final RandomSource random;
+ private final DimensionType dimensionType;
+- private final WorldGenTickAccess<Block> blockTicks = new WorldGenTickAccess<>((blockpos) -> {
+- return this.getChunk(blockpos).getBlockTicks();
++ private final WorldGenTickAccess<Block> blockTicks = new WorldGenTickAccess<>((blockposition) -> {
++ return this.getChunk(blockposition).getBlockTicks();
+ });
+- private final WorldGenTickAccess<Fluid> fluidTicks = new WorldGenTickAccess<>((blockpos) -> {
+- return this.getChunk(blockpos).getFluidTicks();
++ private final WorldGenTickAccess<Fluid> fluidTicks = new WorldGenTickAccess<>((blockposition) -> {
++ return this.getChunk(blockposition).getFluidTicks();
+ });
+ private final BiomeManager biomeManager;
+ private final ChunkPos firstPos;
+@@ -84,31 +84,31 @@
+ private final AtomicLong subTickCount = new AtomicLong();
+ private static final ResourceLocation WORLDGEN_REGION_RANDOM = new ResourceLocation("worldgen_region_random");
+
+- public WorldGenRegion(ServerLevel serverlevel, List<ChunkAccess> list, ChunkStatus chunkstatus, int i) {
+- this.generatingStatus = chunkstatus;
+- this.writeRadiusCutoff = i;
+- int j = Mth.floor(Math.sqrt((double) list.size()));
++ public WorldGenRegion(ServerLevel level, List<ChunkAccess> cache, ChunkStatus generatingStatus, int writeRadiusCutoff) {
++ this.generatingStatus = generatingStatus;
++ this.writeRadiusCutoff = writeRadiusCutoff;
++ int j = Mth.floor(Math.sqrt((double) cache.size()));
+
+- if (j * j != list.size()) {
++ if (j * j != cache.size()) {
+ throw (IllegalStateException) Util.pauseInIde(new IllegalStateException("Cache size is not a square."));
+ } else {
+- this.cache = list;
+- this.center = (ChunkAccess) list.get(list.size() / 2);
++ this.cache = cache;
++ this.center = (ChunkAccess) cache.get(cache.size() / 2);
+ this.size = j;
+- this.level = serverlevel;
+- this.seed = serverlevel.getSeed();
+- this.levelData = serverlevel.getLevelData();
+- this.random = serverlevel.getChunkSource().randomState().getOrCreateRandomFactory(WorldGenRegion.WORLDGEN_REGION_RANDOM).at(this.center.getPos().getWorldPosition());
+- this.dimensionType = serverlevel.dimensionType();
++ this.level = level;
++ this.seed = level.getSeed();
++ this.levelData = level.getLevelData();
++ this.random = level.getChunkSource().randomState().getOrCreateRandomFactory(WorldGenRegion.WORLDGEN_REGION_RANDOM).at(this.center.getPos().getWorldPosition());
++ this.dimensionType = level.dimensionType();
+ this.biomeManager = new BiomeManager(this, BiomeManager.obfuscateSeed(this.seed));
+- this.firstPos = ((ChunkAccess) list.get(0)).getPos();
+- this.lastPos = ((ChunkAccess) list.get(list.size() - 1)).getPos();
+- this.structureManager = serverlevel.structureManager().forWorldGenRegion(this);
++ this.firstPos = ((ChunkAccess) cache.get(0)).getPos();
++ this.lastPos = ((ChunkAccess) cache.get(cache.size() - 1)).getPos();
++ this.structureManager = level.structureManager().forWorldGenRegion(this);
+ }
+ }
+
+- public boolean isOldChunkAround(ChunkPos chunkpos, int i) {
+- return this.level.getChunkSource().chunkMap.isOldChunkAround(chunkpos, i);
++ public boolean isOldChunkAround(ChunkPos pos, int radius) {
++ return this.level.getChunkSource().chunkMap.isOldChunkAround(pos, radius);
+ }
+
+ public ChunkPos getCenter() {
+@@ -116,153 +116,139 @@
+ }
+
+ @Override
+- @Override
+- public void setCurrentlyGenerating(@Nullable Supplier<String> supplier) {
+- this.currentlyGenerating = supplier;
++ public void setCurrentlyGenerating(@Nullable Supplier<String> currentlyGenerating) {
++ this.currentlyGenerating = currentlyGenerating;
+ }
+
+ @Override
+- @Override
+- public ChunkAccess getChunk(int i, int j) {
+- return this.getChunk(i, j, ChunkStatus.EMPTY);
++ public ChunkAccess getChunk(int chunkX, int chunkZ) {
++ return this.getChunk(chunkX, chunkZ, ChunkStatus.EMPTY);
+ }
+
+ @Nullable
+ @Override
+- @Override
+- public ChunkAccess getChunk(int i, int j, ChunkStatus chunkstatus, boolean flag) {
+- ChunkAccess chunkaccess;
++ public ChunkAccess getChunk(int x, int z, ChunkStatus requiredStatus, boolean nonnull) {
++ ChunkAccess ichunkaccess;
+
+- if (this.hasChunk(i, j)) {
+- int k = i - this.firstPos.x;
+- int l = j - this.firstPos.z;
++ if (this.hasChunk(x, z)) {
++ int k = x - this.firstPos.x;
++ int l = z - this.firstPos.z;
+
+- chunkaccess = (ChunkAccess) this.cache.get(k + l * this.size);
+- if (chunkaccess.getStatus().isOrAfter(chunkstatus)) {
+- return chunkaccess;
++ ichunkaccess = (ChunkAccess) this.cache.get(k + l * this.size);
++ if (ichunkaccess.getStatus().isOrAfter(requiredStatus)) {
++ return ichunkaccess;
+ }
+ } else {
+- chunkaccess = null;
++ ichunkaccess = null;
+ }
+
+- if (!flag) {
++ if (!nonnull) {
+ return null;
+ } else {
+- WorldGenRegion.LOGGER.error("Requested chunk : {} {}", i, j);
++ WorldGenRegion.LOGGER.error("Requested chunk : {} {}", x, z);
+ WorldGenRegion.LOGGER.error("Region bounds : {} {} | {} {}", new Object[]{this.firstPos.x, this.firstPos.z, this.lastPos.x, this.lastPos.z});
+- if (chunkaccess != null) {
+- throw (RuntimeException) Util.pauseInIde(new RuntimeException(String.format(Locale.ROOT, "Chunk is not of correct status. Expecting %s, got %s | %s %s", chunkstatus, chunkaccess.getStatus(), i, j)));
++ if (ichunkaccess != null) {
++ throw (RuntimeException) Util.pauseInIde(new RuntimeException(String.format(Locale.ROOT, "Chunk is not of correct status. Expecting %s, got %s | %s %s", requiredStatus, ichunkaccess.getStatus(), x, z)));
+ } else {
+- throw (RuntimeException) Util.pauseInIde(new RuntimeException(String.format(Locale.ROOT, "We are asking a region for a chunk out of bound | %s %s", i, j)));
++ throw (RuntimeException) Util.pauseInIde(new RuntimeException(String.format(Locale.ROOT, "We are asking a region for a chunk out of bound | %s %s", x, z)));
+ }
+ }
+ }
+
+ @Override
+- @Override
+- public boolean hasChunk(int i, int j) {
+- return i >= this.firstPos.x && i <= this.lastPos.x && j >= this.firstPos.z && j <= this.lastPos.z;
++ public boolean hasChunk(int chunkX, int chunkZ) {
++ return chunkX >= this.firstPos.x && chunkX <= this.lastPos.x && chunkZ >= this.firstPos.z && chunkZ <= this.lastPos.z;
+ }
+
+ @Override
+- @Override
+- public BlockState getBlockState(BlockPos blockpos) {
+- return this.getChunk(SectionPos.blockToSectionCoord(blockpos.getX()), SectionPos.blockToSectionCoord(blockpos.getZ())).getBlockState(blockpos);
++ public IBlockData getBlockState(BlockPos pos) {
++ return this.getChunk(SectionPos.blockToSectionCoord(pos.getX()), SectionPos.blockToSectionCoord(pos.getZ())).getBlockState(pos);
+ }
+
+ @Override
+- @Override
+- public FluidState getFluidState(BlockPos blockpos) {
+- return this.getChunk(blockpos).getFluidState(blockpos);
++ public FluidState getFluidState(BlockPos pos) {
++ return this.getChunk(pos).getFluidState(pos);
+ }
+
+ @Nullable
+ @Override
+- @Override
+- public Player getNearestPlayer(double d0, double d1, double d2, double d3, Predicate<Entity> predicate) {
++ public Player getNearestPlayer(double x, double d1, double y, double d3, Predicate<Entity> z) {
+ return null;
+ }
+
+ @Override
+- @Override
+ public int getSkyDarken() {
+ return 0;
+ }
+
+ @Override
+- @Override
+ public BiomeManager getBiomeManager() {
+ return this.biomeManager;
+ }
+
+ @Override
+- @Override
+- public Holder<Biome> getUncachedNoiseBiome(int i, int j, int k) {
+- return this.level.getUncachedNoiseBiome(i, j, k);
++ public Holder<Biome> getUncachedNoiseBiome(int x, int y, int z) {
++ return this.level.getUncachedNoiseBiome(x, y, z);
+ }
+
+ @Override
+- @Override
+- public float getShade(Direction direction, boolean flag) {
++ public float getShade(Direction direction, boolean shade) {
+ return 1.0F;
+ }
+
+ @Override
+- @Override
+ public LevelLightEngine getLightEngine() {
+ return this.level.getLightEngine();
+ }
+
+ @Override
+- @Override
+- public boolean destroyBlock(BlockPos blockpos, boolean flag, @Nullable Entity entity, int i) {
+- BlockState blockstate = this.getBlockState(blockpos);
++ public boolean destroyBlock(BlockPos pos, boolean dropBlock, @Nullable Entity entity, int recursionLeft) {
++ IBlockData iblockdata = this.getBlockState(pos);
+
+- if (blockstate.isAir()) {
++ if (iblockdata.isAir()) {
+ return false;
+ } else {
+- if (flag) {
+- BlockEntity blockentity = blockstate.hasBlockEntity() ? this.getBlockEntity(blockpos) : null;
++ if (false) { // CraftBukkit - SPIGOT-6833: Do not drop during world generation
++ BlockEntity tileentity = iblockdata.hasBlockEntity() ? this.getBlockEntity(pos) : null;
+
+- Block.dropResources(blockstate, this.level, blockpos, blockentity, entity, ItemStack.EMPTY);
++ Block.dropResources(iblockdata, this.level, pos, tileentity, entity, ItemStack.EMPTY);
+ }
+
+- return this.setBlock(blockpos, Blocks.AIR.defaultBlockState(), 3, i);
++ return this.setBlock(pos, Blocks.AIR.defaultBlockState(), 3, recursionLeft);
+ }
+ }
+
+ @Nullable
+ @Override
+- @Override
+- public BlockEntity getBlockEntity(BlockPos blockpos) {
+- ChunkAccess chunkaccess = this.getChunk(blockpos);
+- BlockEntity blockentity = chunkaccess.getBlockEntity(blockpos);
++ public BlockEntity getBlockEntity(BlockPos pos) {
++ ChunkAccess ichunkaccess = this.getChunk(pos);
++ BlockEntity tileentity = ichunkaccess.getBlockEntity(pos);
+
+- if (blockentity != null) {
+- return blockentity;
++ if (tileentity != null) {
++ return tileentity;
+ } else {
+- CompoundTag compoundtag = chunkaccess.getBlockEntityNbt(blockpos);
+- BlockState blockstate = chunkaccess.getBlockState(blockpos);
++ CompoundTag nbttagcompound = ichunkaccess.getBlockEntityNbt(pos);
++ IBlockData iblockdata = ichunkaccess.getBlockState(pos);
+
+- if (compoundtag != null) {
+- if ("DUMMY".equals(compoundtag.getString("id"))) {
+- if (!blockstate.hasBlockEntity()) {
++ if (nbttagcompound != null) {
++ if ("DUMMY".equals(nbttagcompound.getString("id"))) {
++ if (!iblockdata.hasBlockEntity()) {
+ return null;
+ }
+
+- blockentity = ((EntityBlock) blockstate.getBlock()).newBlockEntity(blockpos, blockstate);
++ tileentity = ((EntityBlock) iblockdata.getBlock()).newBlockEntity(pos, iblockdata);
+ } else {
+- blockentity = BlockEntity.loadStatic(blockpos, blockstate, compoundtag);
++ tileentity = BlockEntity.loadStatic(pos, iblockdata, nbttagcompound);
+ }
+
+- if (blockentity != null) {
+- chunkaccess.setBlockEntity(blockentity);
+- return blockentity;
++ if (tileentity != null) {
++ ichunkaccess.setBlockEntity(tileentity);
++ return tileentity;
+ }
+ }
+
+- if (blockstate.hasBlockEntity()) {
+- WorldGenRegion.LOGGER.warn("Tried to access a block entity before it was created. {}", blockpos);
++ if (iblockdata.hasBlockEntity()) {
++ WorldGenRegion.LOGGER.warn("Tried to access a block entity before it was created. {}", pos);
+ }
+
+ return null;
+@@ -270,80 +256,84 @@
+ }
+
+ @Override
+- @Override
+- public boolean ensureCanWrite(BlockPos blockpos) {
+- int i = SectionPos.blockToSectionCoord(blockpos.getX());
+- int j = SectionPos.blockToSectionCoord(blockpos.getZ());
+- ChunkPos chunkpos = this.getCenter();
+- int k = Math.abs(chunkpos.x - i);
+- int l = Math.abs(chunkpos.z - j);
++ public boolean ensureCanWrite(BlockPos pos) {
++ int i = SectionPos.blockToSectionCoord(pos.getX());
++ int j = SectionPos.blockToSectionCoord(pos.getZ());
++ ChunkPos chunkcoordintpair = this.getCenter();
++ int k = Math.abs(chunkcoordintpair.x - i);
++ int l = Math.abs(chunkcoordintpair.z - j);
+
+ if (k <= this.writeRadiusCutoff && l <= this.writeRadiusCutoff) {
+ if (this.center.isUpgrading()) {
+ LevelHeightAccessor levelheightaccessor = this.center.getHeightAccessorForGeneration();
+
+- if (blockpos.getY() < levelheightaccessor.getMinBuildHeight() || blockpos.getY() >= levelheightaccessor.getMaxBuildHeight()) {
++ if (pos.getY() < levelheightaccessor.getMinBuildHeight() || pos.getY() >= levelheightaccessor.getMaxBuildHeight()) {
+ return false;
+ }
+ }
+
+ return true;
+ } else {
+- Util.logAndPauseIfInIde("Detected setBlock in a far chunk [" + i + ", " + j + "], pos: " + blockpos + ", status: " + this.generatingStatus + (this.currentlyGenerating == null ? "" : ", currently generating: " + (String) this.currentlyGenerating.get()));
++ Util.logAndPauseIfInIde("Detected setBlock in a far chunk [" + i + ", " + j + "], pos: " + pos + ", status: " + this.generatingStatus + (this.currentlyGenerating == null ? "" : ", currently generating: " + (String) this.currentlyGenerating.get()));
+ return false;
+ }
+ }
+
+ @Override
+- @Override
+- public boolean setBlock(BlockPos blockpos, BlockState blockstate, int i, int j) {
+- if (!this.ensureCanWrite(blockpos)) {
++ public boolean setBlock(BlockPos pos, IBlockData state, int flags, int recursionLeft) {
++ if (!this.ensureCanWrite(pos)) {
+ return false;
+ } else {
+- ChunkAccess chunkaccess = this.getChunk(blockpos);
+- BlockState blockstate1 = chunkaccess.setBlockState(blockpos, blockstate, false);
++ ChunkAccess ichunkaccess = this.getChunk(pos);
++ IBlockData iblockdata1 = ichunkaccess.setBlockState(pos, state, false);
+
+- if (blockstate1 != null) {
+- this.level.onBlockStateChange(blockpos, blockstate1, blockstate);
++ if (iblockdata1 != null) {
++ this.level.onBlockStateChange(pos, iblockdata1, state);
+ }
+
+- if (blockstate.hasBlockEntity()) {
+- if (chunkaccess.getStatus().getChunkType() == ChunkStatus.ChunkType.LEVELCHUNK) {
+- BlockEntity blockentity = ((EntityBlock) blockstate.getBlock()).newBlockEntity(blockpos, blockstate);
++ if (state.hasBlockEntity()) {
++ if (ichunkaccess.getStatus().getChunkType() == ChunkStatus.Type.LEVELCHUNK) {
++ BlockEntity tileentity = ((EntityBlock) state.getBlock()).newBlockEntity(pos, state);
+
+- if (blockentity != null) {
+- chunkaccess.setBlockEntity(blockentity);
++ if (tileentity != null) {
++ ichunkaccess.setBlockEntity(tileentity);
+ } else {
+- chunkaccess.removeBlockEntity(blockpos);
++ ichunkaccess.removeBlockEntity(pos);
+ }
+ } else {
+- CompoundTag compoundtag = new CompoundTag();
++ CompoundTag nbttagcompound = new CompoundTag();
+
+- compoundtag.putInt("x", blockpos.getX());
+- compoundtag.putInt("y", blockpos.getY());
+- compoundtag.putInt("z", blockpos.getZ());
+- compoundtag.putString("id", "DUMMY");
+- chunkaccess.setBlockEntityNbt(compoundtag);
++ nbttagcompound.putInt("x", pos.getX());
++ nbttagcompound.putInt("y", pos.getY());
++ nbttagcompound.putInt("z", pos.getZ());
++ nbttagcompound.putString("id", "DUMMY");
++ ichunkaccess.setBlockEntityNbt(nbttagcompound);
+ }
+- } else if (blockstate1 != null && blockstate1.hasBlockEntity()) {
+- chunkaccess.removeBlockEntity(blockpos);
++ } else if (iblockdata1 != null && iblockdata1.hasBlockEntity()) {
++ ichunkaccess.removeBlockEntity(pos);
+ }
+
+- if (blockstate.hasPostProcess(this, blockpos)) {
+- this.markPosForPostprocessing(blockpos);
++ if (state.hasPostProcess(this, pos)) {
++ this.markPosForPostprocessing(pos);
+ }
+
+ return true;
+ }
+ }
+
+- private void markPosForPostprocessing(BlockPos blockpos) {
+- this.getChunk(blockpos).markPosForPostprocessing(blockpos);
++ private void markPosForPostprocessing(BlockPos pos) {
++ this.getChunk(pos).markPosForPostprocessing(pos);
+ }
+
+ @Override
+- @Override
+ public boolean addFreshEntity(Entity entity) {
++ // CraftBukkit start
++ return addFreshEntity(entity, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.DEFAULT);
++ }
++
++ @Override
++ public boolean addFreshEntity(Entity entity, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason reason) {
++ // CraftBukkit end
+ int i = SectionPos.blockToSectionCoord(entity.getBlockX());
+ int j = SectionPos.blockToSectionCoord(entity.getBlockZ());
+
+@@ -352,19 +342,16 @@
+ }
+
+ @Override
+- @Override
+- public boolean removeBlock(BlockPos blockpos, boolean flag) {
+- return this.setBlock(blockpos, Blocks.AIR.defaultBlockState(), 3);
++ public boolean removeBlock(BlockPos pos, boolean isMoving) {
++ return this.setBlock(pos, Blocks.AIR.defaultBlockState(), 3);
+ }
+
+ @Override
+- @Override
+ public WorldBorder getWorldBorder() {
+ return this.level.getWorldBorder();
+ }
+
+ @Override
+- @Override
+ public boolean isClientSide() {
+ return false;
+ }
+@@ -372,33 +359,28 @@
+ /** @deprecated */
+ @Deprecated
+ @Override
+- @Override
+ public ServerLevel getLevel() {
+ return this.level;
+ }
+
+ @Override
+- @Override
+ public RegistryAccess registryAccess() {
+ return this.level.registryAccess();
+ }
+
+ @Override
+- @Override
+ public FeatureFlagSet enabledFeatures() {
+ return this.level.enabledFeatures();
+ }
+
+ @Override
+- @Override
+ public LevelData getLevelData() {
+ return this.levelData;
+ }
+
+ @Override
+- @Override
+- public DifficultyInstance getCurrentDifficultyAt(BlockPos blockpos) {
+- if (!this.hasChunk(SectionPos.blockToSectionCoord(blockpos.getX()), SectionPos.blockToSectionCoord(blockpos.getZ()))) {
++ public DifficultyInstance getCurrentDifficultyAt(BlockPos pos) {
++ if (!this.hasChunk(SectionPos.blockToSectionCoord(pos.getX()), SectionPos.blockToSectionCoord(pos.getZ()))) {
+ throw new RuntimeException("We are asking a region for a chunk out of bound");
+ } else {
+ return new DifficultyInstance(this.level.getDifficulty(), this.level.getDayTime(), 0L, this.level.getMoonBrightness());
+@@ -407,119 +389,98 @@
+
+ @Nullable
+ @Override
+- @Override
+ public MinecraftServer getServer() {
+ return this.level.getServer();
+ }
+
+ @Override
+- @Override
+ public ChunkSource getChunkSource() {
+ return this.level.getChunkSource();
+ }
+
+ @Override
+- @Override
+ public long getSeed() {
+ return this.seed;
+ }
+
+ @Override
+- @Override
+ public LevelTickAccess<Block> getBlockTicks() {
+ return this.blockTicks;
+ }
+
+ @Override
+- @Override
+ public LevelTickAccess<Fluid> getFluidTicks() {
+ return this.fluidTicks;
+ }
+
+ @Override
+- @Override
+ public int getSeaLevel() {
+ return this.level.getSeaLevel();
+ }
+
+ @Override
+- @Override
+ public RandomSource getRandom() {
+ return this.random;
+ }
+
+ @Override
+- @Override
+- public int getHeight(Heightmap.Types heightmap_types, int i, int j) {
+- return this.getChunk(SectionPos.blockToSectionCoord(i), SectionPos.blockToSectionCoord(j)).getHeight(heightmap_types, i & 15, j & 15) + 1;
++ public int getHeight(Heightmap.Types heightmapType, int x, int z) {
++ return this.getChunk(SectionPos.blockToSectionCoord(x), SectionPos.blockToSectionCoord(z)).getHeight(heightmapType, x & 15, z & 15) + 1;
+ }
+
+ @Override
+- @Override
+- public void playSound(@Nullable Player player, BlockPos blockpos, SoundEvent soundevent, SoundSource soundsource, float f, float f1) {}
++ public void playSound(@Nullable Player player, BlockPos pos, SoundEvent sound, SoundSource category, float volume, float pitch) {}
+
+ @Override
+- @Override
+- public void addParticle(ParticleOptions particleoptions, double d0, double d1, double d2, double d3, double d4, double d5) {}
++ public void addParticle(ParticleOptions particleData, double x, double d1, double y, double d3, double z, double d5) {}
+
+ @Override
+- @Override
+- public void levelEvent(@Nullable Player player, int i, BlockPos blockpos, int j) {}
++ public void levelEvent(@Nullable Player player, int type, BlockPos pos, int data) {}
+
+ @Override
+- @Override
+- public void gameEvent(GameEvent gameevent, Vec3 vec3, GameEvent.Context gameevent_context) {}
++ public void gameEvent(GameEvent event, Vec3 position, GameEvent.Context context) {}
+
+ @Override
+- @Override
+ public DimensionType dimensionType() {
+ return this.dimensionType;
+ }
+
+ @Override
+- @Override
+- public boolean isStateAtPosition(BlockPos blockpos, Predicate<BlockState> predicate) {
+- return predicate.test(this.getBlockState(blockpos));
++ public boolean isStateAtPosition(BlockPos pos, Predicate<IBlockData> state) {
++ return state.test(this.getBlockState(pos));
+ }
+
+ @Override
+- @Override
+- public boolean isFluidAtPosition(BlockPos blockpos, Predicate<FluidState> predicate) {
+- return predicate.test(this.getFluidState(blockpos));
++ public boolean isFluidAtPosition(BlockPos pos, Predicate<FluidState> predicate) {
++ return predicate.test(this.getFluidState(pos));
+ }
+
+ @Override
+- @Override
+- public <T extends Entity> List<T> getEntities(EntityTypeTest<Entity, T> entitytypetest, AABB aabb, Predicate<? super T> predicate) {
++ public <T extends Entity> List<T> getEntities(EntityTypeTest<Entity, T> entityTypeTest, AABB bounds, Predicate<? super T> predicate) {
+ return Collections.emptyList();
+ }
+
+ @Override
+- @Override
+- public List<Entity> getEntities(@Nullable Entity entity, AABB aabb, @Nullable Predicate<? super Entity> predicate) {
++ public List<Entity> getEntities(@Nullable Entity entity, AABB boundingBox, @Nullable Predicate<? super Entity> predicate) {
+ return Collections.emptyList();
+ }
+
+ @Override
+- @Override
+ public List<Player> players() {
+ return Collections.emptyList();
+ }
+
+ @Override
+- @Override
+ public int getMinBuildHeight() {
+ return this.level.getMinBuildHeight();
+ }
+
+ @Override
+- @Override
+ public int getHeight() {
+ return this.level.getHeight();
+ }
+
+ @Override
+- @Override
+ public long nextSubTickCount() {
+ return this.subTickCount.getAndIncrement();
+ }