Java源码示例:net.minecraft.world.biome.source.BiomeArray
示例1
@Inject(method = "loadChunkFromPacket", at = @At("RETURN"))
private void onLoadChunkFromPacket(int x, int z, BiomeArray biomes, PacketByteBuf buf, CompoundTag heightmaps, int verticalStripBitmask, boolean bl, CallbackInfoReturnable<WorldChunk> ci) {
if (ConnectionInfo.protocolVersion <= Protocols.V1_12_2) {
if (ci.getReturnValue() != null) {
synchronized (LOCK) {
UpgradeData upgradeData = ChunkUpgrader.fixChunk(ci.getReturnValue());
((IUpgradableChunk) ci.getReturnValue()).multiconnect_setClientUpgradeData(upgradeData);
for (int dx = -1; dx <= 1; dx++) {
for (int dz = -1; dz <= 1; dz++) {
WorldChunk chunk = getChunk(x + dx, z + dz, ChunkStatus.FULL, false);
if (chunk != null)
((IUpgradableChunk) chunk).multiconnect_onNeighborLoaded();
}
}
}
}
}
}
示例2
@Inject(method = "loadChunkFromPacket", at = @At(value = "INVOKE", target = "Lnet/minecraft/world/chunk/WorldChunk;getSectionArray()[Lnet/minecraft/world/chunk/ChunkSection;"))
private void recalculateHeightmaps(int x, int z, BiomeArray biomeArray, PacketByteBuf buf, CompoundTag tag, int verticalStripMask, boolean bl, CallbackInfoReturnable<WorldChunk> ci) {
if (ConnectionInfo.protocolVersion <= Protocols.V1_13_2) {
WorldChunk chunk = this.chunk.get();
for (ChunkSection section : chunk.getSectionArray()) {
if (section != null) {
section.calculateCounts();
}
}
Heightmap.populateHeightmaps(chunk, CLIENT_HEIGHTMAPS);
}
this.chunk.set(null);
}
示例3
@Inject(method = "loadChunkFromPacket", at = @At("RETURN"))
private void onLoadChunkFromPacket(int x, int z, BiomeArray biomeArray, PacketByteBuf buf, CompoundTag heightmaps, int verticalStripMask, boolean bl, CallbackInfoReturnable<WorldChunk> ci) {
if (ConnectionInfo.protocolVersion <= Protocols.V1_14_4) {
if (ci.getReturnValue() != null) {
Biome[] biomeData = PendingBiomeData.getPendingBiomeData(x, z);
if (biomeData != null) {
((IBiomeStorage_1_14_4) ci.getReturnValue()).multiconnect_setBiomeArray_1_14_4(biomeData);
PendingBiomeData.setPendingBiomeData(x, z, null);
}
}
}
}
示例4
@Inject(method = "loadChunkFromPacket", at = @At(value = "INVOKE", target = "Lorg/apache/logging/log4j/Logger;warn(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V", ordinal = 0, remap = false), cancellable = true)
private void cancelErrorMessage(int x, int z, BiomeArray biomeArray, PacketByteBuf buf, CompoundTag tag, int verticalStripMask, boolean bl, CallbackInfoReturnable<WorldChunk> ci) {
if (ConnectionInfo.protocolVersion <= Protocols.V1_13_2 && !PendingChunkDataPackets.isProcessingQueuedPackets())
ci.setReturnValue(null);
}