hibiscus/src/main/kotlin/codes/som/hibiscus/features/overlay/FeatureListOverlay.kt

49 lines
1.7 KiB
Kotlin
Raw Normal View History

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
2022-02-03 23:20:27 +00:00
import imgui.flag.ImGuiStyleVar
import imgui.flag.ImGuiWindowFlags
2022-02-03 23:20:27 +00:00
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)
2022-02-03 23:20:27 +00:00
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()
}
2022-02-03 23:20:27 +00:00
ImGui.end()
2022-02-03 23:20:27 +00:00
ImGui.popStyleVar(2)
ImGui.popStyleColor()
}
enabled = true
}
}