1 package com.irtimaled.bbor.client.gui;
3 import net.minecraft.client.MinecraftClient;
4 import net.minecraft.client.gui.widget.AbstractButtonWidget;
5 import net.minecraft.client.util.math.MatrixStack;
6 import net.minecraft.text.LiteralText;
10 abstract class AbstractControl extends AbstractButtonWidget implements IControl {
11 private static final int PADDING = 4;
12 protected final MinecraftClient minecraft;
14 AbstractControl(int x, int y, int width, String name) {
15 super(x, y, width, 20, new LiteralText(name));
16 this.minecraft = MinecraftClient.getInstance();
20 public void render(MatrixStack matrixStack, int mouseX, int mouseY) {
21 super.render(matrixStack, mouseX, mouseY, 0f);
24 public void setX(int x) {
28 public void setY(int y) {
32 public int getControlHeight() {
33 return this.height + PADDING;
36 public int getControlWidth() {
37 return this.width + PADDING;
41 protected void renderBg(MatrixStack matrixStack, MinecraftClient minecraft, int mouseX, int mouseY) {
42 if (active) renderBackground(matrixStack, mouseX, mouseY);
45 protected void renderBackground(MatrixStack matrixStack, int mouseX, int mouseY) {
49 public boolean isVisible() {
53 public void filter(String lowerValue) {
54 String lowerString = this.getMessage().asString().toLowerCase();
55 this.visible = lowerValue.equals("") ||
56 lowerString.startsWith(lowerValue) ||
57 lowerString.contains(" " + lowerValue);
60 void drawRectangle(MatrixStack matrixStack, int left, int top, int right, int bottom, Color color) {
61 fill(matrixStack, left, top, right, bottom, color.getRGB());
65 public void clearFocus() {
66 this.setFocused(false);