49 lines
1.7 KiB
Kotlin
49 lines
1.7 KiB
Kotlin
package codes.som.hibiscus.features.overlay
|
|
|
|
import codes.som.hibiscus.HibiscusMod
|
|
import codes.som.hibiscus.api.feature.Feature
|
|
import codes.som.hibiscus.api.feature.FeatureCategory
|
|
import codes.som.hibiscus.events.PostRenderAllEvent
|
|
import imgui.ImGui
|
|
import imgui.flag.ImGuiCol
|
|
import imgui.flag.ImGuiStyleVar
|
|
import imgui.flag.ImGuiWindowFlags
|
|
|
|
class FeatureListOverlay : Feature("Feature List", FeatureCategory.OVERLAY) {
|
|
init {
|
|
on { _: PostRenderAllEvent ->
|
|
val viewport = ImGui.getMainViewport()
|
|
ImGui.setNextWindowPos(viewport.posX, viewport.posY)
|
|
|
|
val enabledFeatures =
|
|
HibiscusMod.features.getAllFeatures()
|
|
.filter { it.category != FeatureCategory.OVERLAY }
|
|
.filter { it.enabled }.toList()
|
|
if (enabledFeatures.isEmpty())
|
|
return@on
|
|
|
|
ImGui.pushStyleColor(ImGuiCol.WindowBg, 10, 10, 10, 104)
|
|
ImGui.pushStyleVar(ImGuiStyleVar.WindowPadding, 4f, 4f)
|
|
ImGui.pushStyleVar(ImGuiStyleVar.WindowMinSize, 0f, 0f)
|
|
|
|
if (ImGui.begin(
|
|
"Feature List",
|
|
ImGuiWindowFlags.NoDecoration + ImGuiWindowFlags.NoInputs +
|
|
ImGuiWindowFlags.NoMove + ImGuiWindowFlags.AlwaysAutoResize
|
|
)
|
|
) {
|
|
ImGui.pushStyleColor(ImGuiCol.Text, 244, 161, 255, 255)
|
|
for (feature in enabledFeatures)
|
|
ImGui.text(feature.name)
|
|
ImGui.popStyleColor()
|
|
}
|
|
ImGui.end()
|
|
|
|
ImGui.popStyleVar(2)
|
|
ImGui.popStyleColor()
|
|
}
|
|
|
|
enabled = true
|
|
}
|
|
}
|