mirror of
https://github.com/PaperMC/Paper.git
synced 2025-01-29 19:51:30 +01:00
Add more LimitedRegion API
This commit is contained in:
parent
0bf80e49be
commit
0cae717977
@ -255,4 +255,45 @@ public class CraftLimitedRegion extends CraftRegionAccessor implements LimitedRe
|
||||
public void addEntityWithPassengers(net.minecraft.world.entity.Entity entity, CreatureSpawnEvent.SpawnReason reason) {
|
||||
this.entities.add(entity);
|
||||
}
|
||||
|
||||
// Paper start - Add more LimitedRegion API
|
||||
@Override
|
||||
public void setBlockState(int x, int y, int z, BlockState state) {
|
||||
BlockPos pos = new BlockPos(x, y, z);
|
||||
if (!state.getBlockData().matches(getHandle().getBlockState(pos).createCraftBlockData())) {
|
||||
throw new IllegalArgumentException("BlockData does not match! Expected " + state.getBlockData().getAsString(false) + ", got " + getHandle().getBlockState(pos).createCraftBlockData().getAsString(false));
|
||||
}
|
||||
getHandle().getBlockEntity(pos).loadWithComponents(((org.bukkit.craftbukkit.block.CraftBlockEntityState<?>) state).getSnapshotNBT(), this.getHandle().registryAccess());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void scheduleBlockUpdate(int x, int y, int z) {
|
||||
BlockPos position = new BlockPos(x, y, z);
|
||||
getHandle().scheduleTick(position, getHandle().getBlockState(position).getBlock(), 0);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void scheduleFluidUpdate(int x, int y, int z) {
|
||||
BlockPos position = new BlockPos(x, y, z);
|
||||
getHandle().scheduleTick(position, getHandle().getFluidState(position).getType(), 0);
|
||||
}
|
||||
|
||||
@Override
|
||||
public World getWorld() {
|
||||
// reading/writing the returned Minecraft world causes a deadlock.
|
||||
// By implementing this, and covering it in warnings, we're assuming people won't be stupid, and
|
||||
// if they are stupid, they'll figure it out pretty fast.
|
||||
return getHandle().getMinecraftWorld().getWorld();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getCenterChunkX() {
|
||||
return centerChunkX;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getCenterChunkZ() {
|
||||
return centerChunkZ;
|
||||
}
|
||||
// Paper end - Add more LimitedRegion API
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user