59 lines
2.0 KiB
Java
59 lines
2.0 KiB
Java
|
package io.gitlab.jfronny.libjf.config.impl.gui.presets;
|
||
|
|
||
|
import io.gitlab.jfronny.libjf.LibJf;
|
||
|
import io.gitlab.jfronny.libjf.config.impl.Config;
|
||
|
import net.fabricmc.api.EnvType;
|
||
|
import net.fabricmc.api.Environment;
|
||
|
import net.minecraft.client.MinecraftClient;
|
||
|
import net.minecraft.client.gui.screen.Screen;
|
||
|
import net.minecraft.client.gui.widget.ButtonWidget;
|
||
|
import net.minecraft.client.util.math.MatrixStack;
|
||
|
import net.minecraft.text.TranslatableText;
|
||
|
|
||
|
import java.util.Map;
|
||
|
|
||
|
@Environment(EnvType.CLIENT)
|
||
|
public class PresetsScreen extends Screen {
|
||
|
private final Screen parent;
|
||
|
private final Config config;
|
||
|
private PresetListWidget list;
|
||
|
|
||
|
public PresetsScreen(Screen parent, Config config) {
|
||
|
super(new TranslatableText("libjf-config-v0.presets"));
|
||
|
this.parent = parent;
|
||
|
this.config = config;
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
protected void init() {
|
||
|
super.init();
|
||
|
this.list = new PresetListWidget(this.client, this.width, this.height, 32, this.height - 32, 25);
|
||
|
for (Map.Entry<String, Runnable> entry : config.presets.entrySet()) {
|
||
|
this.list.addButton(new ButtonWidget(width / 2 - 100, 0, 200, 20,
|
||
|
new TranslatableText(entry.getKey()),
|
||
|
button -> {
|
||
|
LibJf.LOGGER.info("Preset selected: " + entry.getKey());
|
||
|
entry.getValue().run();
|
||
|
config.syncFromClass();
|
||
|
MinecraftClient.getInstance().setScreen(parent);
|
||
|
}));
|
||
|
}
|
||
|
this.addSelectableChild(this.list);
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
public void onClose() {
|
||
|
MinecraftClient.getInstance().setScreen(parent);
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
public void render(MatrixStack matrices, int mouseX, int mouseY, float delta) {
|
||
|
this.renderBackground(matrices);
|
||
|
this.list.render(matrices, mouseX, mouseY, delta);
|
||
|
|
||
|
drawCenteredText(matrices, textRenderer, title, width / 2, 15, 0xFFFFFF);
|
||
|
|
||
|
super.render(matrices, mouseX, mouseY, delta);
|
||
|
}
|
||
|
}
|