mirror of
https://gitlab.bixilon.de/bixilon/minosoft.git
synced 2025-09-15 02:15:34 -04:00
remove Block::onUse, InteractBlockHandler
This commit is contained in:
parent
11a7034dec
commit
652aa4b4ea
@ -15,8 +15,6 @@ package de.bixilon.minosoft.data.registries.blocks.types
|
|||||||
import de.bixilon.kotlinglm.vec3.Vec3i
|
import de.bixilon.kotlinglm.vec3.Vec3i
|
||||||
import de.bixilon.kutil.cast.CastUtil.unsafeNull
|
import de.bixilon.kutil.cast.CastUtil.unsafeNull
|
||||||
import de.bixilon.minosoft.camera.target.targets.BlockTarget
|
import de.bixilon.minosoft.camera.target.targets.BlockTarget
|
||||||
import de.bixilon.minosoft.data.container.stack.ItemStack
|
|
||||||
import de.bixilon.minosoft.data.entities.entities.player.Hands
|
|
||||||
import de.bixilon.minosoft.data.language.LanguageUtil.translation
|
import de.bixilon.minosoft.data.language.LanguageUtil.translation
|
||||||
import de.bixilon.minosoft.data.language.translate.Translatable
|
import de.bixilon.minosoft.data.language.translate.Translatable
|
||||||
import de.bixilon.minosoft.data.registries.blocks.properties.BlockProperties
|
import de.bixilon.minosoft.data.registries.blocks.properties.BlockProperties
|
||||||
@ -31,7 +29,6 @@ import de.bixilon.minosoft.data.registries.blocks.types.properties.physics.Pushi
|
|||||||
import de.bixilon.minosoft.data.registries.identified.ResourceLocation
|
import de.bixilon.minosoft.data.registries.identified.ResourceLocation
|
||||||
import de.bixilon.minosoft.data.registries.registries.registry.RegistryItem
|
import de.bixilon.minosoft.data.registries.registries.registry.RegistryItem
|
||||||
import de.bixilon.minosoft.gui.rendering.tint.TintProvider
|
import de.bixilon.minosoft.gui.rendering.tint.TintProvider
|
||||||
import de.bixilon.minosoft.input.interaction.InteractionResults
|
|
||||||
import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection
|
import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection
|
||||||
import java.util.*
|
import java.util.*
|
||||||
import kotlin.reflect.jvm.javaField
|
import kotlin.reflect.jvm.javaField
|
||||||
@ -56,12 +53,6 @@ abstract class Block(
|
|||||||
@Deprecated("Interface")
|
@Deprecated("Interface")
|
||||||
open fun getPlacementState(connection: PlayConnection, target: BlockTarget): BlockState? = states.default
|
open fun getPlacementState(connection: PlayConnection, target: BlockTarget): BlockState? = states.default
|
||||||
|
|
||||||
@Deprecated("Interface")
|
|
||||||
open fun onUse(connection: PlayConnection, target: BlockTarget, hand: Hands, itemStack: ItemStack?): InteractionResults {
|
|
||||||
return InteractionResults.IGNORED
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Deprecated("Interface")
|
@Deprecated("Interface")
|
||||||
open fun randomTick(connection: PlayConnection, blockState: BlockState, blockPosition: Vec3i, random: Random) = Unit
|
open fun randomTick(connection: PlayConnection, blockState: BlockState, blockPosition: Vec3i, random: Random) = Unit
|
||||||
|
|
||||||
|
@ -17,16 +17,15 @@ import de.bixilon.minosoft.camera.target.targets.BlockTarget
|
|||||||
import de.bixilon.minosoft.data.container.stack.ItemStack
|
import de.bixilon.minosoft.data.container.stack.ItemStack
|
||||||
import de.bixilon.minosoft.data.entities.entities.player.Hands
|
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.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.identified.ResourceLocation
|
||||||
import de.bixilon.minosoft.data.registries.registries.Registries
|
import de.bixilon.minosoft.data.registries.registries.Registries
|
||||||
import de.bixilon.minosoft.input.interaction.InteractionResults
|
import de.bixilon.minosoft.input.interaction.InteractionResults
|
||||||
import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection
|
import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection
|
||||||
|
|
||||||
open class CraftingTableBlock(resourceLocation: ResourceLocation, registries: Registries, data: Map<String, Any>) : PixLyzerBlock(resourceLocation, registries, data) {
|
open class CraftingTableBlock(resourceLocation: ResourceLocation, registries: Registries, data: Map<String, Any>) : PixLyzerBlock(resourceLocation, registries, data), InteractBlockHandler {
|
||||||
|
|
||||||
override fun onUse(connection: PlayConnection, target: BlockTarget, hand: Hands, itemStack: ItemStack?): InteractionResults {
|
override fun interact(connection: PlayConnection, target: BlockTarget, hand: Hands, stack: ItemStack?) = InteractionResults.SUCCESS
|
||||||
return InteractionResults.SUCCESS
|
|
||||||
}
|
|
||||||
|
|
||||||
companion object : PixLyzerBlockFactory<CraftingTableBlock> {
|
companion object : PixLyzerBlockFactory<CraftingTableBlock> {
|
||||||
|
|
||||||
|
@ -19,18 +19,19 @@ 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.factory.PixLyzerBlockFactory
|
||||||
import de.bixilon.minosoft.data.registries.blocks.properties.BlockProperties
|
import de.bixilon.minosoft.data.registries.blocks.properties.BlockProperties
|
||||||
import de.bixilon.minosoft.data.registries.blocks.state.BlockState
|
import de.bixilon.minosoft.data.registries.blocks.state.BlockState
|
||||||
|
import de.bixilon.minosoft.data.registries.blocks.types.properties.InteractBlockHandler
|
||||||
import de.bixilon.minosoft.data.registries.identified.ResourceLocation
|
import de.bixilon.minosoft.data.registries.identified.ResourceLocation
|
||||||
import de.bixilon.minosoft.data.registries.registries.Registries
|
import de.bixilon.minosoft.data.registries.registries.Registries
|
||||||
import de.bixilon.minosoft.input.interaction.InteractionResults
|
import de.bixilon.minosoft.input.interaction.InteractionResults
|
||||||
import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection
|
import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection
|
||||||
|
|
||||||
open class DoorBlock(resourceLocation: ResourceLocation, registries: Registries, data: Map<String, Any>) : DoubleSizeBlock(resourceLocation, registries, data) {
|
open class DoorBlock(resourceLocation: ResourceLocation, registries: Registries, data: Map<String, Any>) : DoubleSizeBlock(resourceLocation, registries, data), InteractBlockHandler {
|
||||||
|
|
||||||
override fun getPlacementState(connection: PlayConnection, target: BlockTarget): BlockState? {
|
override fun getPlacementState(connection: PlayConnection, target: BlockTarget): BlockState? {
|
||||||
TODO()
|
TODO()
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onUse(connection: PlayConnection, target: BlockTarget, hand: Hands, itemStack: ItemStack?): InteractionResults {
|
override fun interact(connection: PlayConnection, target: BlockTarget, hand: Hands, stack: ItemStack?): InteractionResults {
|
||||||
if (target.state.block.identifier.path.startsWith("iron")) { // TODO
|
if (target.state.block.identifier.path.startsWith("iron")) { // TODO
|
||||||
return InteractionResults.FAILED
|
return InteractionResults.FAILED
|
||||||
}
|
}
|
||||||
|
@ -19,14 +19,15 @@ import de.bixilon.minosoft.data.entities.entities.player.Hands
|
|||||||
import de.bixilon.minosoft.data.registries.blocks.properties.BlockProperties
|
import de.bixilon.minosoft.data.registries.blocks.properties.BlockProperties
|
||||||
import de.bixilon.minosoft.data.registries.blocks.properties.BlockProperties.Companion.isPowered
|
import de.bixilon.minosoft.data.registries.blocks.properties.BlockProperties.Companion.isPowered
|
||||||
import de.bixilon.minosoft.data.registries.blocks.types.pixlyzer.PixLyzerBlock
|
import de.bixilon.minosoft.data.registries.blocks.types.pixlyzer.PixLyzerBlock
|
||||||
|
import de.bixilon.minosoft.data.registries.blocks.types.properties.InteractBlockHandler
|
||||||
import de.bixilon.minosoft.data.registries.identified.ResourceLocation
|
import de.bixilon.minosoft.data.registries.identified.ResourceLocation
|
||||||
import de.bixilon.minosoft.data.registries.registries.Registries
|
import de.bixilon.minosoft.data.registries.registries.Registries
|
||||||
import de.bixilon.minosoft.input.interaction.InteractionResults
|
import de.bixilon.minosoft.input.interaction.InteractionResults
|
||||||
import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection
|
import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection
|
||||||
|
|
||||||
abstract class AbstractButtonBlock(resourceLocation: ResourceLocation, registries: Registries, data: Map<String, Any>) : PixLyzerBlock(resourceLocation, registries, data) {
|
abstract class AbstractButtonBlock(resourceLocation: ResourceLocation, registries: Registries, data: Map<String, Any>) : PixLyzerBlock(resourceLocation, registries, data), InteractBlockHandler {
|
||||||
|
|
||||||
override fun onUse(connection: PlayConnection, target: BlockTarget, hand: Hands, itemStack: ItemStack?): InteractionResults {
|
override fun interact(connection: PlayConnection, target: BlockTarget, hand: Hands, stack: ItemStack?): InteractionResults {
|
||||||
if (target.state.isPowered()) {
|
if (target.state.isPowered()) {
|
||||||
return InteractionResults.FAILED
|
return InteractionResults.FAILED
|
||||||
}
|
}
|
||||||
|
@ -19,6 +19,7 @@ import de.bixilon.minosoft.data.entities.block.BlockEntity
|
|||||||
import de.bixilon.minosoft.data.entities.entities.player.Hands
|
import de.bixilon.minosoft.data.entities.entities.player.Hands
|
||||||
import de.bixilon.minosoft.data.registries.blocks.entites.BlockEntityType
|
import de.bixilon.minosoft.data.registries.blocks.entites.BlockEntityType
|
||||||
import de.bixilon.minosoft.data.registries.blocks.types.pixlyzer.PixLyzerBlock
|
import de.bixilon.minosoft.data.registries.blocks.types.pixlyzer.PixLyzerBlock
|
||||||
|
import de.bixilon.minosoft.data.registries.blocks.types.properties.InteractBlockHandler
|
||||||
import de.bixilon.minosoft.data.registries.identified.ResourceLocation
|
import de.bixilon.minosoft.data.registries.identified.ResourceLocation
|
||||||
import de.bixilon.minosoft.data.registries.registries.Registries
|
import de.bixilon.minosoft.data.registries.registries.Registries
|
||||||
import de.bixilon.minosoft.data.registries.registries.registry.RegistryItem
|
import de.bixilon.minosoft.data.registries.registries.registry.RegistryItem
|
||||||
@ -26,16 +27,14 @@ import de.bixilon.minosoft.input.interaction.InteractionResults
|
|||||||
import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection
|
import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection
|
||||||
import kotlin.reflect.jvm.javaField
|
import kotlin.reflect.jvm.javaField
|
||||||
|
|
||||||
abstract class BlockWithEntity<T : BlockEntity>(resourceLocation: ResourceLocation, registries: Registries, data: Map<String, Any>) : PixLyzerBlock(resourceLocation, registries, data) {
|
abstract class BlockWithEntity<T : BlockEntity>(resourceLocation: ResourceLocation, registries: Registries, data: Map<String, Any>) : PixLyzerBlock(resourceLocation, registries, data), InteractBlockHandler {
|
||||||
val factory: BlockEntityType<T>? = null
|
val factory: BlockEntityType<T>? = null
|
||||||
|
|
||||||
init {
|
init {
|
||||||
FACTORY_FIELD.inject<RegistryItem>(this)
|
FACTORY_FIELD.inject<RegistryItem>(this)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onUse(connection: PlayConnection, target: BlockTarget, hand: Hands, itemStack: ItemStack?): InteractionResults {
|
override fun interact(connection: PlayConnection, target: BlockTarget, hand: Hands, stack: ItemStack?) = InteractionResults.SUCCESS
|
||||||
return InteractionResults.SUCCESS
|
|
||||||
}
|
|
||||||
|
|
||||||
private companion object {
|
private companion object {
|
||||||
val FACTORY_FIELD = BlockWithEntity<*>::factory.javaField!!
|
val FACTORY_FIELD = BlockWithEntity<*>::factory.javaField!!
|
||||||
|
@ -19,19 +19,20 @@ 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.factory.PixLyzerBlockFactory
|
||||||
import de.bixilon.minosoft.data.registries.blocks.properties.BlockProperties
|
import de.bixilon.minosoft.data.registries.blocks.properties.BlockProperties
|
||||||
import de.bixilon.minosoft.data.registries.blocks.state.BlockState
|
import de.bixilon.minosoft.data.registries.blocks.state.BlockState
|
||||||
|
import de.bixilon.minosoft.data.registries.blocks.types.properties.InteractBlockHandler
|
||||||
import de.bixilon.minosoft.data.registries.identified.ResourceLocation
|
import de.bixilon.minosoft.data.registries.identified.ResourceLocation
|
||||||
import de.bixilon.minosoft.data.registries.registries.Registries
|
import de.bixilon.minosoft.data.registries.registries.Registries
|
||||||
import de.bixilon.minosoft.input.interaction.InteractionResults
|
import de.bixilon.minosoft.input.interaction.InteractionResults
|
||||||
import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection
|
import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection
|
||||||
|
|
||||||
// ToDo: This is a block with entity
|
// ToDo: This is a block with entity
|
||||||
open class ComparatorBlock(resourceLocation: ResourceLocation, registries: Registries, data: Map<String, Any>) : RedstoneGateBlock(resourceLocation, registries, data) {
|
open class ComparatorBlock(resourceLocation: ResourceLocation, registries: Registries, data: Map<String, Any>) : RedstoneGateBlock(resourceLocation, registries, data), InteractBlockHandler {
|
||||||
|
|
||||||
override fun getPlacementState(connection: PlayConnection, target: BlockTarget): BlockState? {
|
override fun getPlacementState(connection: PlayConnection, target: BlockTarget): BlockState? {
|
||||||
TODO()
|
TODO()
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onUse(connection: PlayConnection, target: BlockTarget, hand: Hands, itemStack: ItemStack?): InteractionResults {
|
override fun interact(connection: PlayConnection, target: BlockTarget, hand: Hands, stack: ItemStack?): InteractionResults {
|
||||||
connection.world[target.blockPosition] = target.state.cycle(BlockProperties.STRUCTURE_BLOCK_MODE)
|
connection.world[target.blockPosition] = target.state.cycle(BlockProperties.STRUCTURE_BLOCK_MODE)
|
||||||
|
|
||||||
return InteractionResults.SUCCESS
|
return InteractionResults.SUCCESS
|
||||||
|
@ -19,18 +19,19 @@ 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.factory.PixLyzerBlockFactory
|
||||||
import de.bixilon.minosoft.data.registries.blocks.properties.BlockProperties
|
import de.bixilon.minosoft.data.registries.blocks.properties.BlockProperties
|
||||||
import de.bixilon.minosoft.data.registries.blocks.state.BlockState
|
import de.bixilon.minosoft.data.registries.blocks.state.BlockState
|
||||||
|
import de.bixilon.minosoft.data.registries.blocks.types.properties.InteractBlockHandler
|
||||||
import de.bixilon.minosoft.data.registries.identified.ResourceLocation
|
import de.bixilon.minosoft.data.registries.identified.ResourceLocation
|
||||||
import de.bixilon.minosoft.data.registries.registries.Registries
|
import de.bixilon.minosoft.data.registries.registries.Registries
|
||||||
import de.bixilon.minosoft.input.interaction.InteractionResults
|
import de.bixilon.minosoft.input.interaction.InteractionResults
|
||||||
import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection
|
import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection
|
||||||
|
|
||||||
open class RepeaterBlock(resourceLocation: ResourceLocation, registries: Registries, data: Map<String, Any>) : RedstoneGateBlock(resourceLocation, registries, data) {
|
open class RepeaterBlock(resourceLocation: ResourceLocation, registries: Registries, data: Map<String, Any>) : RedstoneGateBlock(resourceLocation, registries, data), InteractBlockHandler {
|
||||||
|
|
||||||
override fun getPlacementState(connection: PlayConnection, target: BlockTarget): BlockState? {
|
override fun getPlacementState(connection: PlayConnection, target: BlockTarget): BlockState? {
|
||||||
TODO()
|
TODO()
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onUse(connection: PlayConnection, target: BlockTarget, hand: Hands, itemStack: ItemStack?): InteractionResults {
|
override fun interact(connection: PlayConnection, target: BlockTarget, hand: Hands, stack: ItemStack?): InteractionResults {
|
||||||
connection.world[target.blockPosition] = target.state.cycle(BlockProperties.REPEATER_DELAY)
|
connection.world[target.blockPosition] = target.state.cycle(BlockProperties.REPEATER_DELAY)
|
||||||
|
|
||||||
return InteractionResults.SUCCESS
|
return InteractionResults.SUCCESS
|
||||||
|
@ -24,6 +24,7 @@ import de.bixilon.minosoft.data.registries.blocks.properties.BlockProperties
|
|||||||
import de.bixilon.minosoft.data.registries.blocks.properties.BlockProperties.Companion.getFacing
|
import de.bixilon.minosoft.data.registries.blocks.properties.BlockProperties.Companion.getFacing
|
||||||
import de.bixilon.minosoft.data.registries.blocks.properties.BlockProperties.Companion.isPowered
|
import de.bixilon.minosoft.data.registries.blocks.properties.BlockProperties.Companion.isPowered
|
||||||
import de.bixilon.minosoft.data.registries.blocks.state.BlockState
|
import de.bixilon.minosoft.data.registries.blocks.state.BlockState
|
||||||
|
import de.bixilon.minosoft.data.registries.blocks.types.properties.InteractBlockHandler
|
||||||
import de.bixilon.minosoft.data.registries.identified.ResourceLocation
|
import de.bixilon.minosoft.data.registries.identified.ResourceLocation
|
||||||
import de.bixilon.minosoft.data.registries.particle.data.DustParticleData
|
import de.bixilon.minosoft.data.registries.particle.data.DustParticleData
|
||||||
import de.bixilon.minosoft.data.registries.registries.Registries
|
import de.bixilon.minosoft.data.registries.registries.Registries
|
||||||
@ -34,7 +35,7 @@ import de.bixilon.minosoft.input.interaction.InteractionResults
|
|||||||
import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection
|
import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
|
||||||
open class LeverBlock(resourceLocation: ResourceLocation, registries: Registries, data: Map<String, Any>) : WallMountedBlock(resourceLocation, registries, data) {
|
open class LeverBlock(resourceLocation: ResourceLocation, registries: Registries, data: Map<String, Any>) : WallMountedBlock(resourceLocation, registries, data), InteractBlockHandler {
|
||||||
private val dustParticleType = registries.particleType[DustParticle]
|
private val dustParticleType = registries.particleType[DustParticle]
|
||||||
|
|
||||||
private fun spawnParticles(connection: PlayConnection, blockState: BlockState, blockPosition: Vec3i, scale: Float) {
|
private fun spawnParticles(connection: PlayConnection, blockState: BlockState, blockPosition: Vec3i, scale: Float) {
|
||||||
@ -60,7 +61,7 @@ open class LeverBlock(resourceLocation: ResourceLocation, registries: Registries
|
|||||||
TODO()
|
TODO()
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onUse(connection: PlayConnection, target: BlockTarget, hand: Hands, itemStack: ItemStack?): InteractionResults {
|
override fun interact(connection: PlayConnection, target: BlockTarget, hand: Hands, stack: ItemStack?): InteractionResults {
|
||||||
val nextState = target.state.cycle(BlockProperties.POWERED)
|
val nextState = target.state.cycle(BlockProperties.POWERED)
|
||||||
connection.world[target.blockPosition] = nextState
|
connection.world[target.blockPosition] = nextState
|
||||||
spawnParticles(connection, nextState, target.blockPosition, 1.0f)
|
spawnParticles(connection, nextState, target.blockPosition, 1.0f)
|
||||||
|
@ -0,0 +1,25 @@
|
|||||||
|
/*
|
||||||
|
* Minosoft
|
||||||
|
* 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.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
*
|
||||||
|
* This software is not affiliated with Mojang AB, the original developer of Minecraft.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package de.bixilon.minosoft.data.registries.blocks.types.properties
|
||||||
|
|
||||||
|
import de.bixilon.minosoft.camera.target.targets.BlockTarget
|
||||||
|
import de.bixilon.minosoft.data.container.stack.ItemStack
|
||||||
|
import de.bixilon.minosoft.data.entities.entities.player.Hands
|
||||||
|
import de.bixilon.minosoft.input.interaction.InteractionResults
|
||||||
|
import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection
|
||||||
|
|
||||||
|
interface InteractBlockHandler {
|
||||||
|
|
||||||
|
fun interact(connection: PlayConnection, target: BlockTarget, hand: Hands, stack: ItemStack?): InteractionResults
|
||||||
|
}
|
@ -20,6 +20,7 @@ import de.bixilon.minosoft.camera.target.targets.GenericTarget
|
|||||||
import de.bixilon.minosoft.data.abilities.Gamemodes
|
import de.bixilon.minosoft.data.abilities.Gamemodes
|
||||||
import de.bixilon.minosoft.data.container.stack.ItemStack
|
import de.bixilon.minosoft.data.container.stack.ItemStack
|
||||||
import de.bixilon.minosoft.data.entities.entities.player.Hands
|
import de.bixilon.minosoft.data.entities.entities.player.Hands
|
||||||
|
import de.bixilon.minosoft.data.registries.blocks.types.properties.InteractBlockHandler
|
||||||
import de.bixilon.minosoft.data.registries.item.handler.ItemInteractBlockHandler
|
import de.bixilon.minosoft.data.registries.item.handler.ItemInteractBlockHandler
|
||||||
import de.bixilon.minosoft.data.registries.item.handler.item.ItemUseHandler
|
import de.bixilon.minosoft.data.registries.item.handler.item.ItemUseHandler
|
||||||
import de.bixilon.minosoft.input.interaction.InteractionResults
|
import de.bixilon.minosoft.input.interaction.InteractionResults
|
||||||
@ -49,9 +50,9 @@ class ShortUseHandler(
|
|||||||
return InteractionResults.SUCCESS
|
return InteractionResults.SUCCESS
|
||||||
}
|
}
|
||||||
|
|
||||||
var result = target.state.block.onUse(connection, target, hand, stack)
|
if (target.state.block is InteractBlockHandler) {
|
||||||
if (result != InteractionResults.IGNORED) {
|
val result = target.state.block.interact(connection, target, hand, stack)
|
||||||
return result
|
if (result != InteractionResults.IGNORED) return result
|
||||||
}
|
}
|
||||||
|
|
||||||
if (stack == null) {
|
if (stack == null) {
|
||||||
@ -62,8 +63,7 @@ class ShortUseHandler(
|
|||||||
}
|
}
|
||||||
val item = stack.item.item
|
val item = stack.item.item
|
||||||
if (item is ItemInteractBlockHandler) {
|
if (item is ItemInteractBlockHandler) {
|
||||||
result = item.interactBlock(connection.player, target, hand, stack)
|
return item.interactBlock(connection.player, target, hand, stack)
|
||||||
return result
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return InteractionResults.IGNORED
|
return InteractionResults.IGNORED
|
||||||
|
Loading…
x
Reference in New Issue
Block a user