diff options
Diffstat (limited to 'src/main/kotlin/features/misc')
| -rw-r--r-- | src/main/kotlin/features/misc/CustomCapes.kt | 80 | ||||
| -rw-r--r-- | src/main/kotlin/features/misc/Hud.kt | 46 | ||||
| -rw-r--r-- | src/main/kotlin/features/misc/LicenseViewer.kt | 16 | ||||
| -rw-r--r-- | src/main/kotlin/features/misc/ModAnnouncer.kt | 28 |
4 files changed, 85 insertions, 85 deletions
diff --git a/src/main/kotlin/features/misc/CustomCapes.kt b/src/main/kotlin/features/misc/CustomCapes.kt index d66e6a3..8aa19d3 100644 --- a/src/main/kotlin/features/misc/CustomCapes.kt +++ b/src/main/kotlin/features/misc/CustomCapes.kt @@ -3,15 +3,15 @@ package moe.nea.firmament.features.misc import util.render.CustomRenderPipelines import kotlin.time.Duration import kotlin.time.Duration.Companion.seconds -import net.minecraft.client.network.AbstractClientPlayerEntity -import net.minecraft.client.render.RenderLayer -import net.minecraft.client.render.VertexConsumer -import net.minecraft.client.render.VertexConsumerProvider -import net.minecraft.client.render.entity.state.PlayerEntityRenderState -import net.minecraft.client.util.math.MatrixStack -import net.minecraft.entity.player.SkinTextures -import net.minecraft.util.AssetInfo -import net.minecraft.util.Identifier +import net.minecraft.client.player.AbstractClientPlayer +import net.minecraft.client.renderer.RenderType +import com.mojang.blaze3d.vertex.VertexConsumer +import net.minecraft.client.renderer.MultiBufferSource +import net.minecraft.client.renderer.entity.state.AvatarRenderState +import com.mojang.blaze3d.vertex.PoseStack +import net.minecraft.world.entity.player.PlayerSkin +import net.minecraft.core.ClientAsset +import net.minecraft.resources.ResourceLocation import moe.nea.firmament.Firmament import moe.nea.firmament.util.MC import moe.nea.firmament.util.TimeMark @@ -30,44 +30,44 @@ object CustomCapes { interface CustomCapeRenderer { fun replaceRender( - renderLayer: RenderLayer, - vertexConsumerProvider: VertexConsumerProvider, - matrixStack: MatrixStack, - model: (VertexConsumer) -> Unit + renderLayer: RenderType, + vertexConsumerProvider: MultiBufferSource, + matrixStack: PoseStack, + model: (VertexConsumer) -> Unit ) } data class TexturedCapeRenderer( - val location: Identifier + val location: ResourceLocation ) : CustomCapeRenderer { override fun replaceRender( - renderLayer: RenderLayer, - vertexConsumerProvider: VertexConsumerProvider, - matrixStack: MatrixStack, - model: (VertexConsumer) -> Unit + renderLayer: RenderType, + vertexConsumerProvider: MultiBufferSource, + matrixStack: PoseStack, + model: (VertexConsumer) -> Unit ) { - model(vertexConsumerProvider.getBuffer(RenderLayer.getEntitySolid(location))) + model(vertexConsumerProvider.getBuffer(RenderType.entitySolid(location))) } } data class ParallaxedHighlightCapeRenderer( - val template: Identifier, - val background: Identifier, - val overlay: Identifier, - val animationSpeed: Duration, + val template: ResourceLocation, + val background: ResourceLocation, + val overlay: ResourceLocation, + val animationSpeed: Duration, ) : CustomCapeRenderer { override fun replaceRender( - renderLayer: RenderLayer, - vertexConsumerProvider: VertexConsumerProvider, - matrixStack: MatrixStack, - model: (VertexConsumer) -> Unit + renderLayer: RenderType, + vertexConsumerProvider: MultiBufferSource, + matrixStack: PoseStack, + model: (VertexConsumer) -> Unit ) { val animationValue = (startTime.passedTime() / animationSpeed).mod(1F) CustomRenderPassHelper( { "Firmament Cape Renderer" }, - renderLayer.drawMode, - renderLayer.vertexFormat, - MC.instance.framebuffer, + renderLayer.mode(), + renderLayer.format(), + MC.instance.mainRenderTarget, true, ).use { renderPass -> renderPass.setPipeline(CustomRenderPipelines.PARALLAX_CAPE_SHADER) @@ -87,7 +87,7 @@ object CustomCapes { interface CapeStorage { companion object { @JvmStatic - fun cast(playerEntityRenderState: PlayerEntityRenderState) = + fun cast(playerEntityRenderState: AvatarRenderState) = playerEntityRenderState as CapeStorage } @@ -146,8 +146,8 @@ object CustomCapes { @JvmStatic fun addCapeData( - player: AbstractClientPlayerEntity, - playerEntityRenderState: PlayerEntityRenderState + player: AbstractClientPlayer, + playerEntityRenderState: AvatarRenderState ) { if (true) return // TODO: see capefeaturerenderer mixin val cape = if (TConfig.showCapes) byUuid[player.uuid] else null @@ -156,14 +156,14 @@ object CustomCapes { capeStorage.cape_firmament = null } else { capeStorage.cape_firmament = cape - playerEntityRenderState.skinTextures = SkinTextures( - playerEntityRenderState.skinTextures.body, - AssetInfo.TextureAssetInfo(Firmament.identifier("placeholder/fake_cape"), Firmament.identifier("placeholder/fake_cape")), - playerEntityRenderState.skinTextures.elytra, - playerEntityRenderState.skinTextures.model, - playerEntityRenderState.skinTextures.secure, + playerEntityRenderState.skin = PlayerSkin( + playerEntityRenderState.skin.body, + ClientAsset.ResourceTexture(Firmament.identifier("placeholder/fake_cape"), Firmament.identifier("placeholder/fake_cape")), + playerEntityRenderState.skin.elytra, + playerEntityRenderState.skin.model, + playerEntityRenderState.skin.secure, ) - playerEntityRenderState.capeVisible = true + playerEntityRenderState.showCape = true } } diff --git a/src/main/kotlin/features/misc/Hud.kt b/src/main/kotlin/features/misc/Hud.kt index fb7c6cd..bbe8044 100644 --- a/src/main/kotlin/features/misc/Hud.kt +++ b/src/main/kotlin/features/misc/Hud.kt @@ -1,8 +1,8 @@ package moe.nea.firmament.features.misc import org.joml.Vector2i -import net.minecraft.client.network.PlayerListEntry -import net.minecraft.text.Text +import net.minecraft.client.multiplayer.PlayerInfo +import net.minecraft.network.chat.Component import moe.nea.firmament.annotations.Subscribe import moe.nea.firmament.events.HudRenderEvent import moe.nea.firmament.util.MC @@ -27,49 +27,49 @@ object Hud { @Subscribe fun onRenderHud(it: HudRenderEvent) { if (TConfig.dayCount) { - it.context.matrices.pushMatrix() - TConfig.dayCountHud.applyTransformations(it.context.matrices) - val day = (MC.world?.timeOfDay ?: 0L) / 24000 - it.context.drawText( + it.context.pose().pushMatrix() + TConfig.dayCountHud.applyTransformations(it.context.pose()) + val day = (MC.world?.dayTime ?: 0L) / 24000 + it.context.drawString( MC.font, - Text.literal(String.format(tr("firmament.config.hud.day-count-hud.display", "Day: %s").string, day)), + Component.literal(String.format(tr("firmament.config.hud.day-count-hud.display", "Day: %s").string, day)), 36, - MC.font.fontHeight, + MC.font.lineHeight, -1, true ) - it.context.matrices.popMatrix() + it.context.pose().popMatrix() } if (TConfig.fpsCount) { - it.context.matrices.pushMatrix() - TConfig.fpsCountHud.applyTransformations(it.context.matrices) - it.context.drawText( - MC.font, Text.literal( + it.context.pose().pushMatrix() + TConfig.fpsCountHud.applyTransformations(it.context.pose()) + it.context.drawString( + MC.font, Component.literal( String.format( - tr("firmament.config.hud.fps-count-hud.display", "FPS: %s").string, MC.instance.currentFps + tr("firmament.config.hud.fps-count-hud.display", "FPS: %s").string, MC.instance.fps ) - ), 36, MC.font.fontHeight, -1, true + ), 36, MC.font.lineHeight, -1, true ) - it.context.matrices.popMatrix() + it.context.pose().popMatrix() } if (TConfig.pingCount) { - it.context.matrices.pushMatrix() - TConfig.pingCountHud.applyTransformations(it.context.matrices) + it.context.pose().pushMatrix() + TConfig.pingCountHud.applyTransformations(it.context.pose()) val ping = MC.player?.let { - val entry: PlayerListEntry? = MC.networkHandler?.getPlayerListEntry(it.uuid) + val entry: PlayerInfo? = MC.networkHandler?.getPlayerInfo(it.uuid) entry?.latency ?: -1 } ?: -1 - it.context.drawText( - MC.font, Text.literal( + it.context.drawString( + MC.font, Component.literal( String.format( tr("firmament.config.hud.ping-count-hud.display", "Ping: %s ms").string, ping ) - ), 36, MC.font.fontHeight, -1, true + ), 36, MC.font.lineHeight, -1, true ) - it.context.matrices.popMatrix() + it.context.pose().popMatrix() } } } diff --git a/src/main/kotlin/features/misc/LicenseViewer.kt b/src/main/kotlin/features/misc/LicenseViewer.kt index 7a43554..26bec80 100644 --- a/src/main/kotlin/features/misc/LicenseViewer.kt +++ b/src/main/kotlin/features/misc/LicenseViewer.kt @@ -6,7 +6,7 @@ import kotlinx.serialization.ExperimentalSerializationApi import kotlinx.serialization.Serializable import kotlinx.serialization.Transient import kotlinx.serialization.json.decodeFromStream -import net.minecraft.text.Text +import net.minecraft.network.chat.Component import moe.nea.firmament.Firmament import moe.nea.firmament.annotations.Subscribe import moe.nea.firmament.commands.thenExecute @@ -31,7 +31,7 @@ object LicenseViewer { fun hasWebPresence() = webPresence != null @Bind - fun webPresence() = Text.literal(webPresence ?: "<no web presence>") + fun webPresence() = Component.literal(webPresence ?: "<no web presence>") @Bind fun open() { @@ -39,10 +39,10 @@ object LicenseViewer { } @Bind - fun projectName() = Text.literal(projectName) + fun projectName() = Component.literal(projectName) @Bind - fun projectDescription() = Text.literal(projectDescription ?: "<no project description>") + fun projectDescription() = Component.literal(projectDescription ?: "<no project description>") @get:Bind("developers") @Transient @@ -60,7 +60,7 @@ object LicenseViewer { ) { @Bind("name") - fun nameT() = Text.literal(name) + fun nameT() = Component.literal(name) @Bind fun open() { @@ -71,7 +71,7 @@ object LicenseViewer { fun hasWebPresence() = webPresence != null @Bind - fun webPresence() = Text.literal(webPresence ?: "<no web presence>") + fun webPresence() = Component.literal(webPresence ?: "<no web presence>") } @Serializable @@ -80,7 +80,7 @@ object LicenseViewer { val licenseUrl: String? = null ) { @Bind("name") - fun nameG() = Text.literal(licenseName) + fun nameG() = Component.literal(licenseName) @Bind fun open() { @@ -91,7 +91,7 @@ object LicenseViewer { fun hasUrl() = licenseUrl != null @Bind - fun url() = Text.literal(licenseUrl ?: "<no link to license text>") + fun url() = Component.literal(licenseUrl ?: "<no link to license text>") } data class LicenseList( diff --git a/src/main/kotlin/features/misc/ModAnnouncer.kt b/src/main/kotlin/features/misc/ModAnnouncer.kt index 1047353..c2aa013 100644 --- a/src/main/kotlin/features/misc/ModAnnouncer.kt +++ b/src/main/kotlin/features/misc/ModAnnouncer.kt @@ -4,10 +4,10 @@ import io.netty.buffer.ByteBuf import net.fabricmc.fabric.api.networking.v1.PacketByteBufs import net.fabricmc.fabric.api.networking.v1.PayloadTypeRegistry import net.fabricmc.loader.api.FabricLoader -import net.minecraft.network.codec.PacketCodec -import net.minecraft.network.codec.PacketCodecs -import net.minecraft.network.packet.CustomPayload -import net.minecraft.network.packet.c2s.common.CustomPayloadC2SPacket +import net.minecraft.network.codec.StreamCodec +import net.minecraft.network.codec.ByteBufCodecs +import net.minecraft.network.protocol.common.custom.CustomPacketPayload +import net.minecraft.network.protocol.common.ServerboundCustomPayloadPacket import moe.nea.firmament.Firmament import moe.nea.firmament.annotations.Subscribe import moe.nea.firmament.events.JoinServerEvent @@ -37,9 +37,9 @@ object ModAnnouncer { val modVersion: String, ) { companion object { - val CODEC: PacketCodec<ByteBuf, ModEntry> = PacketCodec.tuple( - PacketCodecs.STRING, ModEntry::modid, - PacketCodecs.STRING, ModEntry::modVersion, + val CODEC: StreamCodec<ByteBuf, ModEntry> = StreamCodec.composite( + ByteBufCodecs.STRING_UTF8, ModEntry::modid, + ByteBufCodecs.STRING_UTF8, ModEntry::modVersion, ::ModEntry ) } @@ -47,15 +47,15 @@ object ModAnnouncer { data class ModPacket( val mods: List<ModEntry>, - ) : CustomPayload { - override fun getId(): CustomPayload.Id<out ModPacket> { + ) : CustomPacketPayload { + override fun type(): CustomPacketPayload.Type<out ModPacket> { return ID } companion object { - val ID = CustomPayload.Id<ModPacket>(Firmament.identifier("mod_list")) - val CODEC: PacketCodec<ByteBuf, ModPacket> = ModEntry.CODEC.collect(PacketCodecs.toList()) - .xmap(::ModPacket, ModPacket::mods) + val ID = CustomPacketPayload.Type<ModPacket>(Firmament.identifier("mod_list")) + val CODEC: StreamCodec<ByteBuf, ModPacket> = ModEntry.CODEC.apply(ByteBufCodecs.list()) + .map(::ModPacket, ModPacket::mods) } } @@ -68,10 +68,10 @@ object ModAnnouncer { .map { ModEntry(it.metadata.id, it.metadata.version.friendlyString) }) val pbb = PacketByteBufs.create() ModPacket.CODEC.encode(pbb, packet) - if (pbb.writerIndex() > CustomPayloadC2SPacket.MAX_PAYLOAD_SIZE) + if (pbb.writerIndex() > ServerboundCustomPayloadPacket.MAX_PAYLOAD_SIZE) return - event.networkHandler.sendPacket(event.packetSender.createPacket(packet)) + event.networkHandler.send(event.packetSender.createPacket(packet)) } init { |
