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

42 lines
1.5 KiB
Java
Raw Normal View History

2021-10-06 19:01:48 +02:00
package io.gitlab.jfronny.libjf.config.impl.gui;
2021-05-15 15:34:19 +02:00
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.font.TextRenderer;
2021-05-29 10:37:13 +02:00
import net.minecraft.client.gui.widget.ClickableWidget;
2021-05-15 15:34:19 +02:00
import net.minecraft.client.gui.widget.ElementListWidget;
import net.minecraft.text.Text;
import java.util.Optional;
@Environment(EnvType.CLIENT)
2022-01-08 20:02:15 +01:00
public class MidnightConfigListWidget extends ElementListWidget<ConfigScreenEntry> {
2021-05-15 15:34:19 +02:00
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; }
2021-05-29 10:37:13 +02:00
public void addButton(ClickableWidget button, ClickableWidget resetButton, Text text) {
2022-01-08 20:02:15 +01:00
this.addEntry(ConfigScreenEntry.create(button, text, resetButton));
2021-05-15 15:34:19 +02:00
}
@Override
public int getRowWidth() { return 10000; }
2022-01-08 20:02:15 +01:00
public Optional<ClickableWidget> getHoveredButton(double mouseY) {
2022-01-08 20:02:15 +01:00
for (ConfigScreenEntry buttonEntry : this.children()) {
for (ClickableWidget button : buttonEntry.buttons) {
if (button.visible && mouseY >= button.y && mouseY < button.y + itemHeight) {
return Optional.of(button);
2021-05-15 15:34:19 +02:00
}
}
}
return Optional.empty();
}
}