From ca456f0689ef6a640914f3b26a50c1eaea606fa2 Mon Sep 17 00:00:00 2001 From: videogame hacker Date: Thu, 3 Feb 2022 20:47:25 +0000 Subject: [PATCH] Gui styling --- .../som/hibiscus/features/movement/Flight.kt | 4 +-- .../codes/som/hibiscus/gui/ImGuiTheme.kt | 2 +- .../som/hibiscus/gui/ModuleControlsUI.kt | 27 +++++++++++++++++-- 3 files changed, 28 insertions(+), 5 deletions(-) diff --git a/src/main/kotlin/codes/som/hibiscus/features/movement/Flight.kt b/src/main/kotlin/codes/som/hibiscus/features/movement/Flight.kt index e5986da..257066f 100644 --- a/src/main/kotlin/codes/som/hibiscus/features/movement/Flight.kt +++ b/src/main/kotlin/codes/som/hibiscus/features/movement/Flight.kt @@ -23,13 +23,13 @@ class Flight : Feature("Flight", FeatureCategory.MOVEMENT) { player.abilities.flying = true } - val interceptServerboundAbilityPackets by values.bool("Intercept Serverbound Ability Packets", true) + val spoofAbilityPackets by values.bool("Spoof Outgoing Ability Packets", true) val vanillaKickBypass by values.bool("Vanilla Kick Bypass", false) on { event: SendPacketEvent -> val (packet) = event - if (!interceptServerboundAbilityPackets) + if (!spoofAbilityPackets) return@on if (packet is UpdatePlayerAbilitiesC2SPacket) { diff --git a/src/main/kotlin/codes/som/hibiscus/gui/ImGuiTheme.kt b/src/main/kotlin/codes/som/hibiscus/gui/ImGuiTheme.kt index 3cacbd1..7e07fae 100644 --- a/src/main/kotlin/codes/som/hibiscus/gui/ImGuiTheme.kt +++ b/src/main/kotlin/codes/som/hibiscus/gui/ImGuiTheme.kt @@ -51,7 +51,7 @@ fun applyHibiscusImGuiTheme() { style.setColor(ImGuiCol.FrameBgHovered, colMed(0.78f)) style.setColor(ImGuiCol.FrameBgActive, colMed(1.00f)) style.setColor(ImGuiCol.TitleBg, colLow(1.00f)) - style.setColor(ImGuiCol.TitleBgActive, colHi(1.00f)) + style.setColor(ImGuiCol.TitleBgActive, colMed(1.00f)) style.setColor(ImGuiCol.TitleBgCollapsed, colBg(0.75f)) style.setColor(ImGuiCol.MenuBarBg, colBg(0.47f)) style.setColor(ImGuiCol.ScrollbarBg, colBg(1.00f)) diff --git a/src/main/kotlin/codes/som/hibiscus/gui/ModuleControlsUI.kt b/src/main/kotlin/codes/som/hibiscus/gui/ModuleControlsUI.kt index aab5a9c..5ce2513 100644 --- a/src/main/kotlin/codes/som/hibiscus/gui/ModuleControlsUI.kt +++ b/src/main/kotlin/codes/som/hibiscus/gui/ModuleControlsUI.kt @@ -4,6 +4,7 @@ import codes.som.hibiscus.HibiscusMod import codes.som.hibiscus.api.feature.Feature import codes.som.hibiscus.api.feature.FeatureCategory import imgui.ImGui +import imgui.flag.ImGuiCol import imgui.flag.ImGuiCond.FirstUseEver import imgui.flag.ImGuiWindowFlags import imgui.flag.ImGuiWindowFlags.AlwaysVerticalScrollbar @@ -14,6 +15,7 @@ object ModuleControlsUI { private fun categoryPanel(category: FeatureCategory, initialX: Float, initialY: Float) { ImGui.setNextWindowPos(initialX, initialY, FirstUseEver) ImGui.setNextWindowCollapsed(true, FirstUseEver) + ImGui.setNextWindowSize(300f, 0f, FirstUseEver) ImGui.begin(category.humanName, AlwaysVerticalScrollbar) @@ -25,12 +27,33 @@ object ModuleControlsUI { } private fun featureControls(feature: Feature) { - ImGuiKt.checkbox(feature.name, feature::enabled) + if (feature.values.exist()) { + ImGui.columns(2, "Features Columns", false) + ImGui.setColumnWidth(0, ImGui.getWindowContentRegionMaxX() - ImGui.getWindowContentRegionMinX() - 24) + } + + if (feature.enabled) { + ImGui.pushStyleColor(ImGuiCol.Button, 0.819f, 0.619f, 1.000f, 0.8f) + ImGui.pushStyleColor(ImGuiCol.ButtonHovered, 0.819f, 0.619f, 1.000f, 0.95f) + ImGui.pushStyleColor(ImGuiCol.ButtonActive, 0.819f, 0.619f, 1.000f, 1f) + } else { + ImGui.pushStyleColor(ImGuiCol.Button, 0.63f, 0.47f, 0.83f, 0.14f) + ImGui.pushStyleColor(ImGuiCol.ButtonHovered, 0.352f, 0.196f, 0.454f, 0.86f) + ImGui.pushStyleColor(ImGuiCol.ButtonActive, 0.352f, 0.196f, 0.454f, 1f) + } + + if (ImGui.button(feature.name, -1f, 0f)) { + feature.enabled = !feature.enabled + } + + ImGui.popStyleColor() + ImGui.popStyleColor() + ImGui.popStyleColor() if (feature.values.exist()) { val showValueWindow = moduleValueWindows.getOrPut(feature) { booleanArrayOf(false) } - ImGui.sameLine(ImGui.getWindowContentRegionMaxX() - ImGui.getWindowContentRegionMinX() - 10) + ImGui.nextColumn() if (ImGui.radioButton("##${feature.name} values", showValueWindow[0])) { showValueWindow[0] = !showValueWindow[0] }