From 68f8f63c04ac912a98c5b5849f9b76ce3c596bef Mon Sep 17 00:00:00 2001 From: Moritz Zwerger Date: Mon, 30 Oct 2023 23:00:07 +0100 Subject: [PATCH] fix shulker box culling --- .../blocks/types/entity/storage/ShulkerBoxBlock.kt | 12 +++++++++++- .../gui/rendering/models/loader/BlockLoader.kt | 1 + 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/main/java/de/bixilon/minosoft/data/registries/blocks/types/entity/storage/ShulkerBoxBlock.kt b/src/main/java/de/bixilon/minosoft/data/registries/blocks/types/entity/storage/ShulkerBoxBlock.kt index 13c947284..b7974f2cb 100644 --- a/src/main/java/de/bixilon/minosoft/data/registries/blocks/types/entity/storage/ShulkerBoxBlock.kt +++ b/src/main/java/de/bixilon/minosoft/data/registries/blocks/types/entity/storage/ShulkerBoxBlock.kt @@ -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, FullOpaqueBlock, BlockWithItem, LightedBlock { +open class ShulkerBoxBlock(identifier: ResourceLocation, settings: BlockSettings) : Block(identifier, settings), StorageBlock, FullOpaqueBlock, BlockWithItem, 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 { val LIGHT_PROPERTIES = CustomLightProperties(true, true, true) diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/models/loader/BlockLoader.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/models/loader/BlockLoader.kt index 8c1c3b188..df9d86004 100644 --- a/src/main/java/de/bixilon/minosoft/gui/rendering/models/loader/BlockLoader.kt +++ b/src/main/java/de/bixilon/minosoft/gui/rendering/models/loader/BlockLoader.kt @@ -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