Verwendung und Grenzen
Sucht nur in bereits geladenen Chunks. Andernfalls fehlt das Ergebnis. Das Öffnen der Herstellung darf keine entfernte Fabrik zwangsweise laden.
LoadedBlockAccess
package dev.nebulastorage.api.platform
import net.minecraft.core.BlockPos
import net.minecraft.server.level.ServerLevel
import net.minecraft.world.level.block.entity.BlockEntity
import net.minecraft.world.level.block.state.BlockState
import net.minecraft.world.level.chunk.LevelChunk
/** Server-thread reads that neither load a chunk nor renew Minecraft's implicit UNKNOWN ticket. */
object LoadedBlockAccess {
fun chunk(level: ServerLevel, position: BlockPos): LevelChunk? {
check(level.server.isSameThread) { "Loaded block access requires the server thread" }
return level.chunkSource.getChunkNow(position.x shr 4, position.z shr 4)
}
fun entity(level: ServerLevel, position: BlockPos): BlockEntity? = chunk(level, position)?.getBlockEntity(position)
fun state(level: ServerLevel, position: BlockPos): BlockState? = chunk(level, position)?.getBlockState(position)
}
Quelle
src/main/kotlin/dev/nebulastorage/api/platform/LoadedBlockAccess.kt; editorial/de.json
43b4d12d69e6033c24fa8c39dac383ef2429b446