aboutsummaryrefslogtreecommitdiff
path: root/src/main/kotlin
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/kotlin')
-rw-r--r--src/main/kotlin/Firmament.kt2
-rw-r--r--src/main/kotlin/commands/rome.kt9
-rw-r--r--src/main/kotlin/events/CommandEvent.kt1
-rw-r--r--src/main/kotlin/util/render/RenderInWorldContext.kt11
4 files changed, 18 insertions, 5 deletions
diff --git a/src/main/kotlin/Firmament.kt b/src/main/kotlin/Firmament.kt
index 795619e..8e31848 100644
--- a/src/main/kotlin/Firmament.kt
+++ b/src/main/kotlin/Firmament.kt
@@ -124,7 +124,7 @@ object Firmament {
@Suppress("UNUSED_PARAMETER")
ctx: CommandRegistryAccess
) {
- registerFirmamentCommand(dispatcher)
+ registerFirmamentCommand(dispatcher, ctx)
CommandEvent.publish(CommandEvent(dispatcher, ctx, MC.networkHandler?.commandDispatcher))
}
diff --git a/src/main/kotlin/commands/rome.kt b/src/main/kotlin/commands/rome.kt
index affc860..97acf73 100644
--- a/src/main/kotlin/commands/rome.kt
+++ b/src/main/kotlin/commands/rome.kt
@@ -6,6 +6,7 @@ import com.mojang.brigadier.arguments.StringArgumentType.string
import io.ktor.client.statement.bodyAsText
import net.fabricmc.fabric.api.client.command.v2.FabricClientCommandSource
import kotlinx.coroutines.launch
+import net.minecraft.command.CommandRegistryAccess
import net.minecraft.nbt.NbtOps
import net.minecraft.text.Text
import net.minecraft.text.TextCodecs
@@ -45,7 +46,7 @@ import moe.nea.firmament.util.tr
import moe.nea.firmament.util.unformattedString
-fun firmamentCommand() = literal("firmament") {
+fun firmamentCommand(ctx: CommandRegistryAccess) = literal("firmament") {
thenLiteral("config") {
thenExecute {
AllConfigsGui.showAllGuis()
@@ -406,12 +407,12 @@ fun firmamentCommand() = literal("firmament") {
thenExecute {
AllConfigsGui.showAllGuis()
}
- CommandEvent.SubCommand.publish(CommandEvent.SubCommand(this@literal))
+ CommandEvent.SubCommand.publish(CommandEvent.SubCommand(this@literal, ctx))
}
-fun registerFirmamentCommand(dispatcher: CommandDispatcher<FabricClientCommandSource>) {
- val firmament = dispatcher.register(firmamentCommand())
+fun registerFirmamentCommand(dispatcher: CommandDispatcher<FabricClientCommandSource>, ctx: CommandRegistryAccess) {
+ val firmament = dispatcher.register(firmamentCommand(ctx))
dispatcher.register(literal("firm") {
redirect(firmament)
})
diff --git a/src/main/kotlin/events/CommandEvent.kt b/src/main/kotlin/events/CommandEvent.kt
index cc9cf45..63ed115 100644
--- a/src/main/kotlin/events/CommandEvent.kt
+++ b/src/main/kotlin/events/CommandEvent.kt
@@ -23,6 +23,7 @@ data class CommandEvent(
*/
data class SubCommand(
val builder: CaseInsensitiveLiteralCommandNode.Builder<DefaultSource>,
+ val commandRegistryAccess: CommandRegistryAccess,
) : FirmamentEvent() {
companion object : FirmamentEventBus<SubCommand>()
diff --git a/src/main/kotlin/util/render/RenderInWorldContext.kt b/src/main/kotlin/util/render/RenderInWorldContext.kt
index 12a061d..b1ba9d0 100644
--- a/src/main/kotlin/util/render/RenderInWorldContext.kt
+++ b/src/main/kotlin/util/render/RenderInWorldContext.kt
@@ -7,7 +7,9 @@ import util.render.CustomRenderLayers
import kotlin.math.pow
import net.minecraft.client.render.Camera
import net.minecraft.client.render.RenderLayer
+import net.minecraft.client.render.RenderLayers
import net.minecraft.client.render.RenderTickCounter
+import net.minecraft.client.render.TexturedRenderLayers
import net.minecraft.client.render.VertexConsumer
import net.minecraft.client.render.VertexConsumerProvider
import net.minecraft.client.texture.Sprite
@@ -15,6 +17,7 @@ import net.minecraft.client.util.math.MatrixStack
import net.minecraft.text.Text
import net.minecraft.util.Identifier
import net.minecraft.util.math.BlockPos
+import net.minecraft.util.math.Box
import net.minecraft.util.math.Vec3d
import moe.nea.firmament.events.WorldRenderLastEvent
import moe.nea.firmament.util.FirmFormatters
@@ -34,6 +37,14 @@ class RenderInWorldContext private constructor(
matrixStack.pop()
}
+ fun box(aabb: Box, color: Int) {
+ matrixStack.push()
+ matrixStack.translate(aabb.minX, aabb.minY, aabb.minZ)
+ matrixStack.scale(aabb.lengthX.toFloat(), aabb.lengthY.toFloat(), aabb.lengthZ.toFloat())
+ buildCube(matrixStack.peek().positionMatrix, vertexConsumers.getBuffer(CustomRenderLayers.COLORED_QUADS), color)
+ matrixStack.pop()
+ }
+
fun sharedVoxelSurface(blocks: Set<BlockPos>, color: Int) {
val m = BlockPos.Mutable()
val l = vertexConsumers.getBuffer(CustomRenderLayers.COLORED_QUADS)