LibJF/libjf-config-v0/src/main/java/io/gitlab/jfronny/libjf/config/impl/gui/MidnightConfigListWidget.java

42 lines
1.5 KiB
Java

package io.gitlab.jfronny.libjf.config.impl.gui;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.font.TextRenderer;
import net.minecraft.client.gui.widget.ClickableWidget;
import net.minecraft.client.gui.widget.ElementListWidget;
import net.minecraft.text.Text;
import java.util.Optional;
@Environment(EnvType.CLIENT)
public class MidnightConfigListWidget extends ElementListWidget<ConfigScreenEntry> {
TextRenderer textRenderer;
public MidnightConfigListWidget(MinecraftClient minecraftClient, int i, int j, int k, int l, int m) {
super(minecraftClient, i, j, k, l, m);
this.centerListVertically = false;
textRenderer = minecraftClient.textRenderer;
}
@Override
public int getScrollbarPositionX() { return this.width -7; }
public void addButton(ClickableWidget button, ClickableWidget resetButton, Text text) {
this.addEntry(ConfigScreenEntry.create(button, text, resetButton));
}
@Override
public int getRowWidth() { return 10000; }
public Optional<ClickableWidget> getHoveredButton(double mouseY) {
for (ConfigScreenEntry buttonEntry : this.children()) {
for (ClickableWidget button : buttonEntry.buttons) {
if (button.visible && mouseY >= button.y && mouseY < button.y + itemHeight) {
return Optional.of(button);
}
}
}
return Optional.empty();
}
}