1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
|
package de.hysky.skyblocker.skyblock.searchOverlay;
import de.hysky.skyblocker.config.SkyblockerConfigManager;
import de.hysky.skyblocker.skyblock.dungeon.partyfinder.PartyFinderScreen;
import net.minecraft.client.gui.DrawContext;
import net.minecraft.client.gui.screen.Screen;
import net.minecraft.client.gui.widget.ButtonWidget;
import net.minecraft.client.gui.widget.TextFieldWidget;
import net.minecraft.text.Style;
import net.minecraft.text.Text;
import net.minecraft.util.Formatting;
import net.minecraft.util.Identifier;
import java.util.Objects;
public class OverlayScreen extends Screen {
protected static final Identifier SEARCH_ICON_TEXTURE = new Identifier("icon/search");
private TextFieldWidget searchField;
private ButtonWidget finishedButton;
private ButtonWidget[] suggestionButtons;
//todo history buttons
public OverlayScreen(Text title) {
super(title);
}
@Override
protected void init() {
super.init();
int rowHeight = 20;
int rowWidth = (int)(this.width * 0.33);
int startX = (int)(this.width * 0.5) - rowWidth/2;
int startY = (int)(this.height * 0.5)- (rowHeight * (1+ SkyblockerConfigManager.get().general.searchOverlay.maxSuggestions)) /2;
// Search field
this.searchField = new TextFieldWidget(textRenderer, startX, startY, rowWidth - rowHeight, rowHeight, Text.literal("Search..."));
searchField.setChangedListener(SearchOverManager::updateSearch);
searchField.setMaxLength(30);
// finish buttons
finishedButton = ButtonWidget.builder(Text.literal("").setStyle(Style.EMPTY.withColor(Formatting.GREEN)), (a) -> {
close();
})
.position(startX + rowWidth - rowHeight, startY)
.size(rowHeight, rowHeight).build();
// suggested item buttons
int totalSuggestions = SkyblockerConfigManager.get().general.searchOverlay.maxSuggestions;
this.suggestionButtons = new ButtonWidget[totalSuggestions];
for (int i = 0; i < totalSuggestions; i++) {
suggestionButtons[i] = ButtonWidget.builder(Text.literal(SearchOverManager.getSuggestion(i)).setStyle(Style.EMPTY), (a) -> {
SearchOverManager.updateSearch(a.getMessage().getString());
close();
})
.position(startX , startY + rowHeight * (i+1))
.size(rowWidth, rowHeight).build();
suggestionButtons[i].visible = false;
}
addDrawableChild(searchField);
for (ButtonWidget suggestion : suggestionButtons){
addDrawableChild(suggestion);
}
addDrawableChild(finishedButton);
}
@Override
public void render(DrawContext context, int mouseX, int mouseY, float delta) {
super.render(context, mouseX, mouseY, delta);
context.drawGuiTexture(SEARCH_ICON_TEXTURE, finishedButton.getX() + 2, finishedButton.getY() + 2, 16, 16); //todo rowHeight -4
}
@Override
public void renderBackground(DrawContext context, int mouseX, int mouseY, float delta) {
super.renderBackground(context, mouseX, mouseY, delta);
//todo draw custom background
}
@Override
public void close() {
assert this.client != null;
assert this.client.player != null;
SearchOverManager.pushSearch();
super.close();
}
@Override
public final void tick() {
super.tick();
//update suggestion buttons text
for (int i = 0; i < SkyblockerConfigManager.get().general.searchOverlay.maxSuggestions; i++) {
String text = SearchOverManager.getSuggestion(i);
if (!Objects.equals(text, "")){
suggestionButtons[i].visible = true;
suggestionButtons[i].setMessage(Text.literal(text).setStyle(Style.EMPTY));
}else{
suggestionButtons[i].visible = false;
}
}
}
}
|