1 package com.irtimaled.bbor.client.gui;
3 import net.minecraft.client.MinecraftClient;
4 import net.minecraft.client.gui.screen.narration.NarrationMessageBuilder;
5 import net.minecraft.client.gui.widget.ClickableWidget;
6 import net.minecraft.client.util.math.MatrixStack;
7 import net.minecraft.text.LiteralText;
11 abstract class AbstractControl extends ClickableWidget implements IControl {
12 private static final int PADDING = 4;
13 protected final MinecraftClient minecraft;
15 AbstractControl(int x, int y, int width, String name) {
16 super(x, y, width, 20, new LiteralText(name));
17 this.minecraft = MinecraftClient.getInstance();
21 public void render(MatrixStack matrixStack, int mouseX, int mouseY) {
22 super.render(matrixStack, mouseX, mouseY, 0f);
25 public void setX(int x) {
29 public void setY(int y) {
33 public int getControlHeight() {
34 return this.height + PADDING;
37 public int getControlWidth() {
38 return this.width + PADDING;
42 protected void renderBackground(MatrixStack matrixStack, MinecraftClient minecraft, int mouseX, int mouseY) {
43 if (active) renderBackground(matrixStack, mouseX, mouseY);
46 protected void renderBackground(MatrixStack matrixStack, int mouseX, int mouseY) {
50 public boolean isVisible() {
54 public void filter(String lowerValue) {
55 String lowerString = this.getMessage().asString().toLowerCase();
56 this.visible = lowerValue.equals("") ||
57 lowerString.startsWith(lowerValue) ||
58 lowerString.contains(" " + lowerValue);
61 void drawRectangle(MatrixStack matrixStack, int left, int top, int right, int bottom, Color color) {
62 fill(matrixStack, left, top, right, bottom, color.getRGB());
66 public void clearFocus() {
67 this.setFocused(false);
71 public void appendNarrations(NarrationMessageBuilder builder) {