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 } }