mirror of
https://gitlab.bixilon.de/bixilon/minosoft.git
synced 2025-09-13 09:26:11 -04:00
fix some bugs in tilling, stripping, flatting
This commit is contained in:
parent
cc909f8116
commit
5150df8dec
@ -21,10 +21,7 @@ import de.bixilon.minosoft.data.mappings.blocks.BlockUsages
|
||||
import de.bixilon.minosoft.data.mappings.inventory.CreativeModeTab
|
||||
import de.bixilon.minosoft.data.mappings.items.armor.ArmorItem
|
||||
import de.bixilon.minosoft.data.mappings.items.armor.HorseArmorItem
|
||||
import de.bixilon.minosoft.data.mappings.items.tools.AxeItem
|
||||
import de.bixilon.minosoft.data.mappings.items.tools.MiningToolItem
|
||||
import de.bixilon.minosoft.data.mappings.items.tools.SwordItem
|
||||
import de.bixilon.minosoft.data.mappings.items.tools.ToolItem
|
||||
import de.bixilon.minosoft.data.mappings.items.tools.*
|
||||
import de.bixilon.minosoft.data.mappings.registry.RegistryItem
|
||||
import de.bixilon.minosoft.data.mappings.registry.ResourceLocationDeserializer
|
||||
import de.bixilon.minosoft.data.mappings.registry.Translatable
|
||||
@ -69,6 +66,8 @@ open class Item(
|
||||
"HorseArmorItem" -> HorseArmorItem(resourceLocation, mappings, data)
|
||||
"SpawnEggItem" -> SpawnEggItem(resourceLocation, mappings, data)
|
||||
"MusicDiscItem" -> MusicDiscItem(resourceLocation, mappings, data)
|
||||
"ShovelItem" -> ShovelItem(resourceLocation, mappings, data)
|
||||
"HoeItem" -> HoeItem(resourceLocation, mappings, data)
|
||||
// "Item" -> Item(resourceLocation, data)
|
||||
// else -> TODO("Can not find item class: ${data["class"].asString}")
|
||||
else -> Item(resourceLocation, mappings, data)
|
||||
|
@ -14,6 +14,7 @@
|
||||
package de.bixilon.minosoft.data.mappings.items.tools
|
||||
|
||||
import com.google.gson.JsonObject
|
||||
import de.bixilon.minosoft.data.Directions
|
||||
import de.bixilon.minosoft.data.inventory.ItemStack
|
||||
import de.bixilon.minosoft.data.mappings.ResourceLocation
|
||||
import de.bixilon.minosoft.data.mappings.blocks.BlockState
|
||||
@ -22,6 +23,7 @@ import de.bixilon.minosoft.data.mappings.blocks.types.Block
|
||||
import de.bixilon.minosoft.data.mappings.versions.Registries
|
||||
import de.bixilon.minosoft.data.player.Hands
|
||||
import de.bixilon.minosoft.gui.rendering.input.camera.RaycastHit
|
||||
import de.bixilon.minosoft.gui.rendering.util.VecUtil.plus
|
||||
import de.bixilon.minosoft.protocol.network.connection.PlayConnection
|
||||
import glm_.vec3.Vec3i
|
||||
|
||||
@ -43,6 +45,9 @@ open class AxeItem(
|
||||
|
||||
val target = strippableBlocks?.get(blockState.block) ?: return BlockUsages.PASS
|
||||
|
||||
if (connection.world[blockPosition + Directions.UP] != null) {
|
||||
return BlockUsages.PASS
|
||||
}
|
||||
|
||||
connection.world[blockPosition] = target.withProperties(blockState.properties)
|
||||
return BlockUsages.SUCCESS
|
||||
|
@ -14,6 +14,7 @@
|
||||
package de.bixilon.minosoft.data.mappings.items.tools
|
||||
|
||||
import com.google.gson.JsonObject
|
||||
import de.bixilon.minosoft.data.Directions
|
||||
import de.bixilon.minosoft.data.inventory.ItemStack
|
||||
import de.bixilon.minosoft.data.mappings.ResourceLocation
|
||||
import de.bixilon.minosoft.data.mappings.blocks.BlockState
|
||||
@ -22,6 +23,7 @@ import de.bixilon.minosoft.data.mappings.blocks.types.Block
|
||||
import de.bixilon.minosoft.data.mappings.versions.Registries
|
||||
import de.bixilon.minosoft.data.player.Hands
|
||||
import de.bixilon.minosoft.gui.rendering.input.camera.RaycastHit
|
||||
import de.bixilon.minosoft.gui.rendering.util.VecUtil.plus
|
||||
import de.bixilon.minosoft.protocol.network.connection.PlayConnection
|
||||
import glm_.vec3.Vec3i
|
||||
|
||||
@ -41,7 +43,13 @@ open class HoeItem(
|
||||
override fun use(connection: PlayConnection, blockState: BlockState, blockPosition: Vec3i, raycastHit: RaycastHit, hands: Hands, itemStack: ItemStack): BlockUsages {
|
||||
// ToDo: Check tags (21w19a+)
|
||||
|
||||
connection.world[blockPosition] = tillableBlockStates?.get(blockState.block) ?: return BlockUsages.PASS
|
||||
val nextState = tillableBlockStates?.get(blockState.block) ?: return BlockUsages.PASS
|
||||
|
||||
if (connection.world[blockPosition + Directions.UP] != null) {
|
||||
return BlockUsages.PASS
|
||||
}
|
||||
|
||||
connection.world[blockPosition] = nextState
|
||||
return BlockUsages.SUCCESS
|
||||
}
|
||||
}
|
||||
|
@ -14,6 +14,7 @@
|
||||
package de.bixilon.minosoft.data.mappings.items.tools
|
||||
|
||||
import com.google.gson.JsonObject
|
||||
import de.bixilon.minosoft.data.Directions
|
||||
import de.bixilon.minosoft.data.inventory.ItemStack
|
||||
import de.bixilon.minosoft.data.mappings.ResourceLocation
|
||||
import de.bixilon.minosoft.data.mappings.blocks.BlockState
|
||||
@ -22,6 +23,7 @@ import de.bixilon.minosoft.data.mappings.blocks.types.Block
|
||||
import de.bixilon.minosoft.data.mappings.versions.Registries
|
||||
import de.bixilon.minosoft.data.player.Hands
|
||||
import de.bixilon.minosoft.gui.rendering.input.camera.RaycastHit
|
||||
import de.bixilon.minosoft.gui.rendering.util.VecUtil.plus
|
||||
import de.bixilon.minosoft.protocol.network.connection.PlayConnection
|
||||
import glm_.vec3.Vec3i
|
||||
|
||||
@ -42,7 +44,13 @@ open class ShovelItem(
|
||||
override fun use(connection: PlayConnection, blockState: BlockState, blockPosition: Vec3i, raycastHit: RaycastHit, hands: Hands, itemStack: ItemStack): BlockUsages {
|
||||
// ToDo: Check tags (21w19a+)
|
||||
|
||||
connection.world[blockPosition] = flattenableBlockStates?.get(blockState.block) ?: return BlockUsages.PASS
|
||||
val nextState = flattenableBlockStates?.get(blockState.block) ?: return BlockUsages.PASS
|
||||
|
||||
if (connection.world[blockPosition + Directions.UP] != null) {
|
||||
return BlockUsages.PASS
|
||||
}
|
||||
|
||||
connection.world[blockPosition] = nextState
|
||||
return BlockUsages.SUCCESS
|
||||
}
|
||||
}
|
||||
|
@ -146,8 +146,16 @@ class InteractionHandler(
|
||||
|
||||
when (itemInHand.item.use(connection, raycastHit.blockState, raycastHit.blockPosition, raycastHit, Hands.MAIN_HAND, itemInHand)) {
|
||||
BlockUsages.SUCCESS -> {
|
||||
// ToDo: Interact with block?
|
||||
connection.sendPacket(ArmSwingC2SP(Hands.MAIN_HAND))
|
||||
|
||||
connection.sendPacket(BlockPlaceC2SP(
|
||||
position = raycastHit.blockPosition,
|
||||
direction = raycastHit.hitDirection,
|
||||
cursorPosition = raycastHit.hitPosition,
|
||||
item = connection.player.inventory.getHotbarSlot(),
|
||||
hand = Hands.MAIN_HAND,
|
||||
insideBlock = false, // ToDo
|
||||
))
|
||||
}
|
||||
BlockUsages.PASS -> {
|
||||
return
|
||||
|
Loading…
x
Reference in New Issue
Block a user