fix: Pickaxe ability cooldown not rendering properly

This commit is contained in:
Linnea Gräf
2024-11-10 17:48:58 +01:00
parent d1241fb0d9
commit 72fed8b08e
3 changed files with 23 additions and 6 deletions

View File

@@ -127,12 +127,15 @@ object PickaxeAbility : FirmamentFeature {
@Subscribe @Subscribe
fun onProfileSwitch(event: ProfileSwitchEvent) { fun onProfileSwitch(event: ProfileSwitchEvent) {
lastUsage.clear() lastUsage.entries.removeIf {
it.value < lobbyJoinTime
}
} }
val abilityUsePattern = Pattern.compile("You used your (?<name>.*) Pickaxe Ability!") val abilityUsePattern = Pattern.compile("You used your (?<name>.*) Pickaxe Ability!")
val fuelPattern = Pattern.compile("Fuel: .*/(?<maxFuel>$SHORT_NUMBER_FORMAT)") val fuelPattern = Pattern.compile("Fuel: .*/(?<maxFuel>$SHORT_NUMBER_FORMAT)")
val pickaxeAbilityCooldownPattern = Pattern.compile("Your pickaxe ability is on cooldown for (?<remainingCooldown>$TIME_PATTERN)\\.") val pickaxeAbilityCooldownPattern =
Pattern.compile("Your pickaxe ability is on cooldown for (?<remainingCooldown>$TIME_PATTERN)\\.")
data class PickaxeAbilityData( data class PickaxeAbilityData(
val name: String, val name: String,

View File

@@ -8,6 +8,7 @@ import net.minecraft.client.render.RenderLayer
import net.minecraft.client.render.RenderLayer.MultiPhaseParameters import net.minecraft.client.render.RenderLayer.MultiPhaseParameters
import net.minecraft.client.render.RenderPhase import net.minecraft.client.render.RenderPhase
import net.minecraft.client.render.VertexFormat import net.minecraft.client.render.VertexFormat
import net.minecraft.client.render.VertexFormat.DrawMode
import net.minecraft.client.render.VertexFormats import net.minecraft.client.render.VertexFormats
import net.minecraft.util.Identifier import net.minecraft.util.Identifier
import net.minecraft.util.TriState import net.minecraft.util.TriState
@@ -22,13 +23,26 @@ object GuiRenderLayers {
val GUI_TEXTURED_NO_DEPTH = Util.memoize<Identifier, RenderLayer> { texture: Identifier -> val GUI_TEXTURED_NO_DEPTH = Util.memoize<Identifier, RenderLayer> { texture: Identifier ->
RenderLayer.of("firmament_gui_textured_no_depth", RenderLayer.of("firmament_gui_textured_no_depth",
VertexFormats.POSITION_TEXTURE_COLOR, VertexFormats.POSITION_TEXTURE_COLOR,
VertexFormat.DrawMode.QUADS, DrawMode.QUADS,
RenderLayer.CUTOUT_BUFFER_SIZE, DEFAULT_BUFFER_SIZE,
MultiPhaseParameters.builder() MultiPhaseParameters.builder()
.texture(RenderPhase.Texture(texture, TriState.FALSE, false)) .texture(RenderPhase.Texture(texture, TriState.FALSE, false))
.program(RenderPhase.POSITION_TEXTURE_COLOR_PROGRAM) .program(RenderPhase.POSITION_TEXTURE_COLOR_PROGRAM)
.transparency(RenderPhase.TRANSLUCENT_TRANSPARENCY) .transparency(RenderPhase.TRANSLUCENT_TRANSPARENCY)
.depthTest(RenderPhase.ALWAYS_DEPTH_TEST) .depthTest(RenderPhase.ALWAYS_DEPTH_TEST)
.build(false))
}
val GUI_TEXTURED_TRIS = Util.memoize { texture: Identifier ->
RenderLayer.of("firmament_gui_textured_overlay_tris",
VertexFormats.POSITION_TEXTURE_COLOR,
DrawMode.TRIANGLES,
DEFAULT_BUFFER_SIZE,
MultiPhaseParameters.builder()
.texture(RenderPhase.Texture(texture, TriState.DEFAULT, false))
.program(RenderPhase.POSITION_TEXTURE_COLOR_PROGRAM)
.transparency(RenderPhase.TRANSLUCENT_TRANSPARENCY)
.depthTest(RenderPhase.ALWAYS_DEPTH_TEST)
.writeMaskState(RenderPhase.COLOR_MASK)
.build(false)) .build(false))
} }
} }

View File

@@ -28,7 +28,7 @@ object RenderCircleProgress {
) { ) {
RenderSystem.enableBlend() RenderSystem.enableBlend()
drawContext.draw { drawContext.draw {
val bufferBuilder = it.getBuffer(RenderLayer.getGuiTexturedOverlay(texture)) val bufferBuilder = it.getBuffer(GuiRenderLayers.GUI_TEXTURED_TRIS.apply(texture))
val matrix: Matrix4f = drawContext.matrices.peek().positionMatrix val matrix: Matrix4f = drawContext.matrices.peek().positionMatrix
val corners = listOf( val corners = listOf(