fix shulker box culling

This commit is contained in:
Moritz Zwerger 2023-10-30 23:00:07 +01:00
parent 3c321373b3
commit 68f8f63c04
No known key found for this signature in database
GPG Key ID: 5CAD791931B09AC4
2 changed files with 12 additions and 1 deletions

View File

@ -19,6 +19,9 @@ import de.bixilon.minosoft.data.registries.blocks.factory.BlockFactory
import de.bixilon.minosoft.data.registries.blocks.light.CustomLightProperties
import de.bixilon.minosoft.data.registries.blocks.settings.BlockSettings
import de.bixilon.minosoft.data.registries.blocks.state.BlockState
import de.bixilon.minosoft.data.registries.blocks.state.PropertyBlockState
import de.bixilon.minosoft.data.registries.blocks.state.builder.BlockStateBuilder
import de.bixilon.minosoft.data.registries.blocks.state.builder.BlockStateSettings
import de.bixilon.minosoft.data.registries.blocks.types.Block
import de.bixilon.minosoft.data.registries.blocks.types.properties.DyedBlock
import de.bixilon.minosoft.data.registries.blocks.types.properties.LightedBlock
@ -29,12 +32,15 @@ import de.bixilon.minosoft.data.registries.identified.ResourceLocation
import de.bixilon.minosoft.data.registries.item.items.Item
import de.bixilon.minosoft.data.registries.registries.Registries
import de.bixilon.minosoft.gui.rendering.models.block.state.render.property.FullBlockPropertyRenderer
import de.bixilon.minosoft.gui.rendering.models.loader.legacy.CustomModel
import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection
import de.bixilon.minosoft.protocol.versions.Version
open class ShulkerBoxBlock(identifier: ResourceLocation, settings: BlockSettings) : Block(identifier, settings), StorageBlock<ShulkerBoxBlockEntity>, FullOpaqueBlock, BlockWithItem<Item>, LightedBlock {
open class ShulkerBoxBlock(identifier: ResourceLocation, settings: BlockSettings) : Block(identifier, settings), StorageBlock<ShulkerBoxBlockEntity>, FullOpaqueBlock, BlockWithItem<Item>, LightedBlock, BlockStateBuilder, CustomModel {
override val item: Item = this::item.inject(identifier)
override val hardness: Float get() = 2.0f
init {
this.model = FullBlockPropertyRenderer
}
@ -42,6 +48,10 @@ open class ShulkerBoxBlock(identifier: ResourceLocation, settings: BlockSettings
override fun createBlockEntity(connection: PlayConnection) = ShulkerBoxBlockEntity(connection)
override fun getLightProperties(blockState: BlockState) = LIGHT_PROPERTIES
override fun buildState(version: Version, settings: BlockStateSettings): BlockState {
return PropertyBlockState(this, settings)
}
companion object : BlockFactory<ShulkerBoxBlock> {
val LIGHT_PROPERTIES = CustomLightProperties(true, true, true)

View File

@ -64,6 +64,7 @@ class BlockLoader(private val loader: ModelLoader) {
fun load(latch: AbstractLatch?) {
loader.context.connection.registries.block.async {
if (it.model != null) return@async // model already set
val model: DirectBlockModel
try {
model = loadState(it) ?: return@async