From 72fed8b08ef162542060ae5e4a659e77e9e1793a Mon Sep 17 00:00:00 2001 From: Linnea Gräf Date: Sun, 10 Nov 2024 17:48:58 +0100 Subject: fix: Pickaxe ability cooldown not rendering properly --- src/main/kotlin/features/mining/PickaxeAbility.kt | 7 +++++-- src/main/kotlin/util/render/DrawContextExt.kt | 20 +++++++++++++++++--- src/main/kotlin/util/render/RenderCircleProgress.kt | 2 +- 3 files changed, 23 insertions(+), 6 deletions(-) (limited to 'src/main') diff --git a/src/main/kotlin/features/mining/PickaxeAbility.kt b/src/main/kotlin/features/mining/PickaxeAbility.kt index a494989..4fcf8a7 100644 --- a/src/main/kotlin/features/mining/PickaxeAbility.kt +++ b/src/main/kotlin/features/mining/PickaxeAbility.kt @@ -127,12 +127,15 @@ object PickaxeAbility : FirmamentFeature { @Subscribe fun onProfileSwitch(event: ProfileSwitchEvent) { - lastUsage.clear() + lastUsage.entries.removeIf { + it.value < lobbyJoinTime + } } val abilityUsePattern = Pattern.compile("You used your (?.*) Pickaxe Ability!") val fuelPattern = Pattern.compile("Fuel: .*/(?$SHORT_NUMBER_FORMAT)") - val pickaxeAbilityCooldownPattern = Pattern.compile("Your pickaxe ability is on cooldown for (?$TIME_PATTERN)\\.") + val pickaxeAbilityCooldownPattern = + Pattern.compile("Your pickaxe ability is on cooldown for (?$TIME_PATTERN)\\.") data class PickaxeAbilityData( val name: String, diff --git a/src/main/kotlin/util/render/DrawContextExt.kt b/src/main/kotlin/util/render/DrawContextExt.kt index da0b0b0..a143d4d 100644 --- a/src/main/kotlin/util/render/DrawContextExt.kt +++ b/src/main/kotlin/util/render/DrawContextExt.kt @@ -8,6 +8,7 @@ import net.minecraft.client.render.RenderLayer import net.minecraft.client.render.RenderLayer.MultiPhaseParameters import net.minecraft.client.render.RenderPhase import net.minecraft.client.render.VertexFormat +import net.minecraft.client.render.VertexFormat.DrawMode import net.minecraft.client.render.VertexFormats import net.minecraft.util.Identifier import net.minecraft.util.TriState @@ -22,13 +23,26 @@ object GuiRenderLayers { val GUI_TEXTURED_NO_DEPTH = Util.memoize { texture: Identifier -> RenderLayer.of("firmament_gui_textured_no_depth", VertexFormats.POSITION_TEXTURE_COLOR, - VertexFormat.DrawMode.QUADS, - RenderLayer.CUTOUT_BUFFER_SIZE, + DrawMode.QUADS, + DEFAULT_BUFFER_SIZE, MultiPhaseParameters.builder() .texture(RenderPhase.Texture(texture, TriState.FALSE, false)) .program(RenderPhase.POSITION_TEXTURE_COLOR_PROGRAM) .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)) } } diff --git a/src/main/kotlin/util/render/RenderCircleProgress.kt b/src/main/kotlin/util/render/RenderCircleProgress.kt index 9cc383c..805633c 100644 --- a/src/main/kotlin/util/render/RenderCircleProgress.kt +++ b/src/main/kotlin/util/render/RenderCircleProgress.kt @@ -28,7 +28,7 @@ object RenderCircleProgress { ) { RenderSystem.enableBlend() 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 corners = listOf( -- cgit