diff options
author | olim <bobq4582@gmail.com> | 2024-02-06 15:00:20 +0000 |
---|---|---|
committer | olim <bobq4582@gmail.com> | 2024-02-06 15:00:20 +0000 |
commit | effb8c31bdc1188d7ecdc66e4b0398ba24ed402e (patch) | |
tree | f7df09787b75301b2d6b3350c8cc5351c5a664e5 /src/main/java/de/hysky/skyblocker/skyblock/searchOverlay/OverlayScreen.java | |
parent | 5e52750ee03f3a972eaabfcfbe2d6271ba50c13b (diff) | |
download | Skyblocker-effb8c31bdc1188d7ecdc66e4b0398ba24ed402e.tar.gz Skyblocker-effb8c31bdc1188d7ecdc66e4b0398ba24ed402e.tar.bz2 Skyblocker-effb8c31bdc1188d7ecdc66e4b0398ba24ed402e.zip |
initial implimentation
basic implantation of features.
Diffstat (limited to 'src/main/java/de/hysky/skyblocker/skyblock/searchOverlay/OverlayScreen.java')
-rw-r--r-- | src/main/java/de/hysky/skyblocker/skyblock/searchOverlay/OverlayScreen.java | 107 |
1 files changed, 107 insertions, 0 deletions
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/searchOverlay/OverlayScreen.java b/src/main/java/de/hysky/skyblocker/skyblock/searchOverlay/OverlayScreen.java new file mode 100644 index 00000000..a4bee7ae --- /dev/null +++ b/src/main/java/de/hysky/skyblocker/skyblock/searchOverlay/OverlayScreen.java @@ -0,0 +1,107 @@ +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 - 30, rowHeight, Text.literal("Search...")); + searchField.setChangedListener(SearchOverManager::updateSearch); + searchField.setFocused(true); + searchField.active = true; + + // finish buttons + finishedButton = ButtonWidget.builder(Text.literal("SEARCH").setStyle(Style.EMPTY.withColor(Formatting.GREEN)), (a) -> { //todo search icon + close(); + }) + .position(startX + rowWidth - 30, startY) + .size(30, 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); + } + + @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; + } + + } + } +} |