From 23685656b24adbe4b5f91252a71cadecde7e9e02 Mon Sep 17 00:00:00 2001 From: ttttdoy Date: Wed, 26 Jun 2024 20:38:29 -0400 Subject: [PATCH] scuffed mouse icons for tool gun overlay --- .../kotlin/breadmod/hud/ToolGunOverlay.kt | 27 ++++++++++++++++--- .../tool_gun/render/ToolGunItemRenderer.kt | 2 +- 2 files changed, 25 insertions(+), 4 deletions(-) diff --git a/src/main/kotlin/breadmod/hud/ToolGunOverlay.kt b/src/main/kotlin/breadmod/hud/ToolGunOverlay.kt index 31746d15..f60e848f 100644 --- a/src/main/kotlin/breadmod/hud/ToolGunOverlay.kt +++ b/src/main/kotlin/breadmod/hud/ToolGunOverlay.kt @@ -7,6 +7,7 @@ import breadmod.datagen.tool_gun.BreadModToolGunModeProvider.Companion.TOOL_GUN_ import breadmod.datagen.tool_gun.ModToolGunModeDataLoader import breadmod.item.tool_gun.ToolGunItem import breadmod.item.tool_gun.ToolGunItem.Companion.MODE_NAMESPACE_TAG +import com.mojang.blaze3d.platform.InputConstants import com.mojang.blaze3d.vertex.PoseStack import net.minecraft.ChatFormatting import net.minecraft.client.gui.GuiGraphics @@ -58,6 +59,8 @@ class ToolGunOverlay: IGuiOverlay { // Icon renders pGuiGraphics.blit(overlayTexture, pX + 1, pY + 33, 0, 41, 8, 8) + // start rendering key (with the key letter on them) and mouse icons, fix positioning on description and controls, set up 9 sliced key texture for wider keys + // Action source drawScaledText(Component.literal(namespace).withStyle(ChatFormatting.BLUE, ChatFormatting.ITALIC), pPose, pGuiGraphics, pGui, pX + 2, pY + 2, 0.8f, true @@ -72,20 +75,38 @@ class ToolGunOverlay: IGuiOverlay { drawScaledText((pMode?.tooltip?.copy() ?: modTranslatable(TOOL_GUN_DEF, "broken_tooltip")), pPose, pGuiGraphics, pGui, pX + 13, pY + 43, 0.4f, true ) - // Keybinds + // KeyBinds pMode?.keyBinds?.forEachIndexed { index, control -> - val moved = ((index+1) * 9) + 3 + val moved = ((index+1) * 12) + 2 drawScaledText( toolGunBindList[control]!!.translatedKeyMessage.copy() .withStyle { it.withColor(ChatFormatting.GOLD).withItalic(true) } .append(control.toolGunComponent.copy().withStyle(ChatFormatting.WHITE)), pPose, pGuiGraphics, pGui, - pX + 43, pY + 43 + moved, 1f, true + pX + 10, pY + 43 + moved, 1f, true ) +// toolGunBindList[control]?.key = InputConstants.getKey("key.mouse.right") + when(toolGunBindList[control]?.key) { + getInput("key.mouse.right") -> { + pPose.pushPose() + pPose.scaleFlat(0.68f) + pGuiGraphics.blit(overlayTexture, pX , pY + 69 + moved, 240, 63, 16, 16) + pPose.popPose() + } + getInput("key.mouse.middle") -> { + pPose.pushPose() + pPose.scaleFlat(0.68f) + pGuiGraphics.blit(overlayTexture, pX , pY + 73 + moved, 240, 47, 16, 16) + pPose.popPose() + } + } } pPose.popPose() } + private fun getInput(input: String) = InputConstants.getKey(input) + + private fun drawScaledText(pText: Component, pPose: PoseStack, pGuiGraphics: GuiGraphics, pGui: ForgeGui, pX: Int, pY: Int, pScale: Float, pDropShadow: Boolean) { pPose.scaleFlat(pScale) pGuiGraphics.drawString( diff --git a/src/main/kotlin/breadmod/item/tool_gun/render/ToolGunItemRenderer.kt b/src/main/kotlin/breadmod/item/tool_gun/render/ToolGunItemRenderer.kt index b7566c21..e7a96357 100644 --- a/src/main/kotlin/breadmod/item/tool_gun/render/ToolGunItemRenderer.kt +++ b/src/main/kotlin/breadmod/item/tool_gun/render/ToolGunItemRenderer.kt @@ -55,7 +55,7 @@ class ToolGunItemRenderer : BlockEntityWithoutLevelRenderer( val f: Float = 1f + timer if(!instance.isPaused) angle += f; angle %= 360 - println(angle) +// println(angle) pPoseStack.pushPose() // todo smooth rotation after firing toolgun, quickly tapering off. GameRenderer.java@1177 found a function that uses the same posestack calls as this, could be used for smooth anims