diff options
Diffstat (limited to 'src/main/kotlin')
| -rw-r--r-- | src/main/kotlin/Firmament.kt | 2 | ||||
| -rw-r--r-- | src/main/kotlin/commands/rome.kt | 9 | ||||
| -rw-r--r-- | src/main/kotlin/events/CommandEvent.kt | 1 | ||||
| -rw-r--r-- | src/main/kotlin/util/render/RenderInWorldContext.kt | 11 |
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) |
