From 2519a2cc1078152f5e95c9f398ea5f35437e89ef Mon Sep 17 00:00:00 2001 From: Moritz Zwerger Date: Thu, 19 Oct 2023 21:15:48 +0200 Subject: [PATCH] debug: force chest opening/closing --- .../bixilon/minosoft/config/DebugOptions.kt | 4 +++- .../entity/container/storage/ChestBlock.kt | 20 ++++++++++++++++++- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/src/main/java/de/bixilon/minosoft/config/DebugOptions.kt b/src/main/java/de/bixilon/minosoft/config/DebugOptions.kt index 93d393b4b..d20c489be 100644 --- a/src/main/java/de/bixilon/minosoft/config/DebugOptions.kt +++ b/src/main/java/de/bixilon/minosoft/config/DebugOptions.kt @@ -1,6 +1,6 @@ /* * Minosoft - * Copyright (C) 2020-2022 Moritz Zwerger + * Copyright (C) 2020-2023 Moritz Zwerger * * This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. * @@ -24,4 +24,6 @@ object DebugOptions { const val LIGHT_DEBUG_MODE = false const val LOG_RAW_CHAT = false + + const val FORCE_CHEST_ANIMATION = false } diff --git a/src/main/java/de/bixilon/minosoft/data/registries/blocks/types/pixlyzer/entity/container/storage/ChestBlock.kt b/src/main/java/de/bixilon/minosoft/data/registries/blocks/types/pixlyzer/entity/container/storage/ChestBlock.kt index 9d3f28e76..e83e8c220 100644 --- a/src/main/java/de/bixilon/minosoft/data/registries/blocks/types/pixlyzer/entity/container/storage/ChestBlock.kt +++ b/src/main/java/de/bixilon/minosoft/data/registries/blocks/types/pixlyzer/entity/container/storage/ChestBlock.kt @@ -13,12 +13,30 @@ package de.bixilon.minosoft.data.registries.blocks.types.pixlyzer.entity.container.storage +import de.bixilon.kutil.cast.CastUtil.unsafeCast +import de.bixilon.minosoft.camera.target.targets.BlockTarget +import de.bixilon.minosoft.config.DebugOptions +import de.bixilon.minosoft.data.container.stack.ItemStack import de.bixilon.minosoft.data.entities.block.container.storage.ChestBlockEntity +import de.bixilon.minosoft.data.entities.entities.player.Hands import de.bixilon.minosoft.data.registries.blocks.factory.PixLyzerBlockFactory +import de.bixilon.minosoft.data.registries.blocks.types.properties.InteractBlockHandler import de.bixilon.minosoft.data.registries.identified.ResourceLocation import de.bixilon.minosoft.data.registries.registries.Registries +import de.bixilon.minosoft.input.interaction.InteractionResults +import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection + +open class ChestBlock(resourceLocation: ResourceLocation, registries: Registries, data: Map) : StorageBlock(resourceLocation, registries, data), InteractBlockHandler { + + + override fun interact(connection: PlayConnection, target: BlockTarget, hand: Hands, stack: ItemStack?): InteractionResults { + if (!DebugOptions.FORCE_CHEST_ANIMATION) return super.interact(connection, target, hand, stack) + + val entity = target.entity.unsafeCast() + entity.setBlockActionData(0, if (entity.viewing > 0) 0 else 1) + return InteractionResults.SUCCESS + } -open class ChestBlock(resourceLocation: ResourceLocation, registries: Registries, data: Map) : StorageBlock(resourceLocation, registries, data) { companion object : PixLyzerBlockFactory> { override fun build(resourceLocation: ResourceLocation, registries: Registries, data: Map): ChestBlock {