Compare commits

...

2 Commits

Author SHA1 Message Date
Charlotte Som 461d343362 Update vendor submodule 2022-02-14 03:17:06 +00:00
Charlotte Som b88928d58a Add a vclip command 2022-02-14 03:16:15 +00:00
3 changed files with 43 additions and 1 deletions

View File

@ -5,6 +5,7 @@ import codes.som.hibiscus.api.command.CommandManager
fun allCommandClasses(): Array<() -> Command> = arrayOf( fun allCommandClasses(): Array<() -> Command> = arrayOf(
::Reload, ::Reload,
::Vclip,
) )
class CommandRegistry : CommandManager() { class CommandRegistry : CommandManager() {

View File

@ -0,0 +1,41 @@
package codes.som.hibiscus.commands
import codes.som.hibiscus.api.command.Command
import codes.som.hibiscus.player
import codes.som.hibiscus.world
class Vclip : Command("vclip") {
init {
branch { y: Double ->
player.updatePosition(player.x, player.y + y, player.z)
}
branch("up") {
val collisionTests = (2..10).map { n ->
world.getBlockCollisions(null, player.boundingBox.offset(0.0, n.toDouble(), 0.0)).all { it.isEmpty }
}
if (collisionTests.all { it }) {
player.updatePosition(player.x, player.y + 10, player.z)
} else {
val n = collisionTests.indexOf(true)
if (n != -1)
player.updatePosition(player.x, player.y + n + 2, player.z)
}
}
branch("down") {
val collisionTests = (2..10).map { n ->
world.getBlockCollisions(null, player.boundingBox.offset(0.0, -n.toDouble(), 0.0)).all { it.isEmpty }
}
if (collisionTests.all { it }) {
player.updatePosition(player.x, player.y - 10, player.z)
} else {
val n = collisionTests.indexOf(true)
if (n != -1)
player.updatePosition(player.x, player.y - n - 2, player.z)
}
}
}
}

2
vendor

@ -1 +1 @@
Subproject commit 8df3c1cf900ad8550989d4c2492cb8982d261a4c Subproject commit 023e12b313d17b8295d703a53667c790e808c778