diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/client/AndroidMenuKeyMapping.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/client/AndroidMenuKeyMapping.kt index fa172f43b..7772c5c70 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/client/AndroidMenuKeyMapping.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/client/AndroidMenuKeyMapping.kt @@ -222,27 +222,26 @@ object AndroidMenuKeyMapping : KeyMapping("key.otm.android_menu", KeyConflictCon event.poseStack.pushPose() event.poseStack.translate(minecraft.window.guiScaledWidth.toDouble() / 2f, minecraft.window.guiScaledHeight.toDouble() / 2f, 0.0) - if (features.size == 1) { - val feature = features.first() + for ((index, feature) in features.withIndex()) { + var sin = sin((index + 0.5) * degreePerSlice).toFloat() + var cos = cos((index + 0.5) * degreePerSlice).toFloat() - feature.renderIcon(event.poseStack, -iconSizeSelected / 2f, -size * linearInterpolation(lastSelectProgress.getFloat(feature), 0.7f, 0.8f) - iconSizeSelected / 2f, iconSizeSelected, iconSizeSelected) - } else { - for ((index, feature) in features.withIndex()) { - val sin = sin((index + 0.5) * degreePerSlice).toFloat() - val cos = cos((index + 0.5) * degreePerSlice).toFloat() + if (features.size == 1) { + sin = sin(PI / 2.0).toFloat() + cos = cos(PI / 2.0).toFloat() + } - val shift = size * 0.6f - feature.renderIcon(event.poseStack, -iconSize / 2f + shift * cos, -shift * sin - iconSize / 2f, iconSize, iconSize) - minecraft.font.drawAligned(event.poseStack, feature.type.displayName, TextAlign.CENTER_CENTER, shift * cos + 1f, -shift * sin - iconSize / 1.5f + 1f, 0) - minecraft.font.drawAligned(event.poseStack, feature.type.displayName, TextAlign.CENTER_CENTER, shift * cos, -shift * sin - iconSize / 1.5f, if (feature.isActive) RGBAColor.DARK_GREEN else RGBAColor.DARK_RED) + val shift = size * 0.6f + feature.renderIcon(event.poseStack, -iconSize / 2f + shift * cos, -shift * sin - iconSize / 2f, iconSize, iconSize) + minecraft.font.drawAligned(event.poseStack, feature.type.displayName, TextAlign.CENTER_CENTER, shift * cos + 1f, -shift * sin - iconSize / 1.5f + 1f, 0) + minecraft.font.drawAligned(event.poseStack, feature.type.displayName, TextAlign.CENTER_CENTER, shift * cos, -shift * sin - iconSize / 1.5f, if (feature.isActive) RGBAColor.DARK_GREEN else RGBAColor.DARK_RED) - if (feature.isOnCooldown && feature.cooldownPercent > 0.0f) { - RenderSystem.setShaderColor(1f, 1f, 1f, 0.5f) - drawArc(event.poseStack, shift * cos, -shift * sin, iconSize / 2f, 0f, PI / 2.0, PI / 2.0 + PI * 2.0 * feature.cooldownPercent.toDouble()) - RenderSystem.setShaderColor(1f, 1f, 1f, 1f) + if (feature.isOnCooldown && feature.cooldownPercent > 0.0f) { + RenderSystem.setShaderColor(1f, 1f, 1f, 0.5f) + drawArc(event.poseStack, shift * cos, -shift * sin, iconSize / 2f, 0f, PI / 2.0, PI / 2.0 + PI * 2.0 * feature.cooldownPercent.toDouble()) + RenderSystem.setShaderColor(1f, 1f, 1f, 1f) - minecraft.font.drawAligned(event.poseStack, formatTickDuration(feature.cooldown), TextAlign.CENTER_CENTER, shift * cos, -shift * sin + iconSize / 1.5f, RGBAColor.WHITE) - } + minecraft.font.drawAligned(event.poseStack, formatTickDuration(feature.cooldown), TextAlign.CENTER_CENTER, shift * cos, -shift * sin + iconSize / 1.5f, RGBAColor.WHITE) } }