interaction handler: place and destroy blocks async

This commit is contained in:
Bixilon 2022-08-15 10:56:27 +02:00
parent ec3513a13b
commit 00c7097b02
No known key found for this signature in database
GPG Key ID: 5CAD791931B09AC4
2 changed files with 4 additions and 2 deletions

View File

@ -14,6 +14,7 @@
package de.bixilon.minosoft.data.registries.items.block
import de.bixilon.kutil.cast.CastUtil.unsafeNull
import de.bixilon.kutil.concurrent.pool.DefaultThreadPool
import de.bixilon.minosoft.data.abilities.Gamemodes
import de.bixilon.minosoft.data.container.stack.ItemStack
import de.bixilon.minosoft.data.entities.entities.player.Hands
@ -74,7 +75,7 @@ open class BlockItem(
}
connection.world[placePosition] = placeBlockState
DefaultThreadPool += { connection.world[placePosition] = placeBlockState }
if (connection.player.gamemode != Gamemodes.CREATIVE) {
stack.item.decreaseCount()

View File

@ -16,6 +16,7 @@ package de.bixilon.minosoft.gui.rendering.input.interaction
import de.bixilon.kotlinglm.pow
import de.bixilon.kotlinglm.vec3.Vec3i
import de.bixilon.kutil.collections.CollectionUtil.synchronizedMapOf
import de.bixilon.kutil.concurrent.pool.DefaultThreadPool
import de.bixilon.kutil.time.TimeUtil
import de.bixilon.minosoft.config.key.KeyActions
import de.bixilon.minosoft.config.key.KeyBinding
@ -138,7 +139,7 @@ class BreakInteractionHandler(
fun finishDigging() {
connection.sendPacket(PlayerActionC2SP(PlayerActionC2SP.Actions.FINISHED_DIGGING, target.blockPosition, target.direction))
clearDigging()
connection.world[target.blockPosition] = null
DefaultThreadPool += { connection.world[target.blockPosition] = null }
BlockDestroyedHandler.handleDestroy(connection, target.blockPosition, target.blockState)
}