Bed State
constructor(block: BedBlock, trackedBlockPos: BlockPos, pos: Vec3, surroundingBlocks: List<SurroundingBlock>, compactSurroundingBlocks: List<SurroundingBlock> = run {
val map = Reference2ObjectOpenHashMap<Block, IntIntMutablePair>()
surroundingBlocks.forEach { surrounding ->
val pair = map.computeIfAbsent(surrounding.block) { IntIntMutablePair(0, 0) }
pair.left(pair.leftInt() + surrounding.count)
pair.right(minOf(pair.rightInt(), surrounding.layer))
}
map.map { SurroundingBlock(block = it.key, count = it.value.leftInt(), layer = it.value.rightInt()) }
})