]> git.lizzy.rs Git - BoundingBoxOutlineReloaded.git/blob - src/main/java/com/irtimaled/bbor/client/gui/AbstractControl.java
01db585e620dea0f11533aaa0a9ec7510188cd46
[BoundingBoxOutlineReloaded.git] / src / main / java / com / irtimaled / bbor / client / gui / AbstractControl.java
1 package com.irtimaled.bbor.client.gui;
2
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;
7
8 import java.awt.*;
9
10 abstract class AbstractControl extends AbstractButtonWidget implements IControl {
11     private static final int PADDING = 4;
12     protected final MinecraftClient minecraft;
13
14     AbstractControl(int x, int y, int width, String name) {
15         super(x, y, width, 20, new LiteralText(name));
16         this.minecraft = MinecraftClient.getInstance();
17     }
18
19     @Override
20     public void render(MatrixStack matrixStack, int mouseX, int mouseY) {
21         super.render(matrixStack, mouseX, mouseY, 0f);
22     }
23
24     public void setX(int x) {
25         super.x = x;
26     }
27
28     public void setY(int y) {
29         super.y = y;
30     }
31
32     public int getControlHeight() {
33         return this.height + PADDING;
34     }
35
36     public int getControlWidth() {
37         return this.width + PADDING;
38     }
39
40     @Override
41     protected void renderBg(MatrixStack matrixStack, MinecraftClient minecraft, int mouseX, int mouseY) {
42         if (active) renderBackground(matrixStack, mouseX, mouseY);
43     }
44
45     protected void renderBackground(MatrixStack matrixStack, int mouseX, int mouseY) {
46     }
47
48     @Override
49     public boolean isVisible() {
50         return this.visible;
51     }
52
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);
58     }
59
60     void drawRectangle(MatrixStack matrixStack, int left, int top, int right, int bottom, Color color) {
61         fill(matrixStack, left, top, right, bottom, color.getRGB());
62     }
63
64     @Override
65     public void clearFocus() {
66         this.setFocused(false);
67     }
68 }