1 package com.irtimaled.bbor.client.gui;
3 import com.irtimaled.bbor.client.interop.ClientInterop;
4 import net.minecraft.client.gui.GuiScreen;
5 import net.minecraft.client.resources.I18n;
7 public abstract class ListScreen extends GuiScreen {
8 private final GuiScreen lastScreen;
10 private AbstractButton doneButton;
12 private ControlList controlList;
13 private SearchField searchField;
15 ListScreen(GuiScreen lastScreen) {
16 this.lastScreen = lastScreen;
23 protected void onDoneClicked() {
24 ClientInterop.displayScreen(lastScreen);
28 protected void initGui() {
29 this.title = "Bounding Box Outline Reloaded";
30 this.controlList = new ControlList(this.width, this.height, 48, this.height - 28);
31 this.searchField = new SearchField(this.fontRenderer, this.width / 2 - 100, 22, 200, 20, this.controlList);
32 this.doneButton = new AbstractButton(this.width / 2 - 100, this.height - 24, 200, I18n.format("gui.done")) {
34 public void onPressed() {
39 this.children.add(this.doneButton);
40 this.children.add(this.controlList);
41 this.children.add(this.searchField);
45 protected abstract void setup();
48 public void render(int mouseX, int mouseY, float unknown) {
49 render(mouseX, mouseY);
52 protected void render(int mouseX, int mouseY) {
53 this.controlList.render(mouseX, mouseY);
55 this.drawCenteredString(this.fontRenderer, this.title, this.width / 2, 8, 16777215);
56 this.searchField.render(mouseX, mouseY);
57 this.doneButton.render(mouseX, mouseY);
62 this.searchField.tick();
66 public boolean keyPressed(int key, int scanCode, int modifiers) {
67 return super.keyPressed(key, scanCode, modifiers) || this.searchField.keyPressed(key, scanCode, modifiers);
71 public boolean charTyped(char character, int modifiers) {
72 return this.searchField.charTyped(character, modifiers);
76 public boolean mouseScrolled(double scrollAmount) {
77 return this.controlList.mouseScrolled(scrollAmount);
81 public void onGuiClosed() {
82 this.controlList.close();
85 ControlList getControlList() {
86 return this.controlList;
89 AbstractButton getDoneButton() {