aboutsummaryrefslogtreecommitdiff
path: root/src/main/kotlin/features/misc
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/kotlin/features/misc')
-rw-r--r--src/main/kotlin/features/misc/CustomCapes.kt80
-rw-r--r--src/main/kotlin/features/misc/Hud.kt46
-rw-r--r--src/main/kotlin/features/misc/LicenseViewer.kt16
-rw-r--r--src/main/kotlin/features/misc/ModAnnouncer.kt28
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 {