aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorAaron <51387595+AzureAaron@users.noreply.github.com>2024-11-29 22:42:30 -0500
committerAaron <51387595+AzureAaron@users.noreply.github.com>2024-12-08 16:10:14 -0500
commit58974e524cd0ceccdd1e88e11680807126d6afe6 (patch)
treeda0aa9255590211fbb028652aabd45be636a1dd0 /src/main/java
parentb6bfebcfb3a8bb27fcf1e21839b8f5db0b2eee3f (diff)
downloadSkyblocker-58974e524cd0ceccdd1e88e11680807126d6afe6.tar.gz
Skyblocker-58974e524cd0ceccdd1e88e11680807126d6afe6.tar.bz2
Skyblocker-58974e524cd0ceccdd1e88e11680807126d6afe6.zip
1.21.4-rc3
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/de/hysky/skyblocker/mixins/InGameOverlayRendererMixin.java2
-rw-r--r--src/main/java/de/hysky/skyblocker/mixins/PlayerSkinTextureDownloaderMixin.java (renamed from src/main/java/de/hysky/skyblocker/mixins/PlayerSkinTextureMixin.java)20
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/InventorySearch.java2
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/chat/ChatRulesConfigListWidget.java4
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/dungeon/partyfinder/FinderSettingsContainer.java10
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/dungeon/partyfinder/OptionDropdownWidget.java15
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/dungeon/partyfinder/PartyEntryListWidget.java2
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/dungeon/partyfinder/RangedValueWidget.java10
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/fancybars/EditBarColorPopup.java10
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/fancybars/EditBarWidget.java12
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/itemlist/ItemListTab.java93
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/itemlist/ItemListWidget.java136
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/itemlist/ResultButtonWidget.java53
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/itemlist/SearchResultsWidget.java228
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/itemlist/UpcomingEventsTab.java168
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/profileviewer/utils/SubPageSelectButton.java2
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/shortcut/ShortcutsConfigScreen.java4
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/waypoint/DropdownWidget.java22
-rw-r--r--src/main/java/de/hysky/skyblocker/utils/render/RenderHelper.java6
-rw-r--r--src/main/java/de/hysky/skyblocker/utils/render/SkyblockerRenderLayers.java2
20 files changed, 82 insertions, 719 deletions
diff --git a/src/main/java/de/hysky/skyblocker/mixins/InGameOverlayRendererMixin.java b/src/main/java/de/hysky/skyblocker/mixins/InGameOverlayRendererMixin.java
index d3b79efe..38c93253 100644
--- a/src/main/java/de/hysky/skyblocker/mixins/InGameOverlayRendererMixin.java
+++ b/src/main/java/de/hysky/skyblocker/mixins/InGameOverlayRendererMixin.java
@@ -9,7 +9,7 @@ import org.spongepowered.asm.mixin.injection.ModifyArg;
@Mixin(InGameOverlayRenderer.class)
public class InGameOverlayRendererMixin {
- @ModifyArg(method = "renderFireOverlay", index = 2, at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/BufferBuilder;vertex(Lorg/joml/Matrix4f;FFF)Lnet/minecraft/client/render/VertexConsumer;"))
+ @ModifyArg(method = "renderFireOverlay", index = 2, at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/VertexConsumer;vertex(Lorg/joml/Matrix4f;FFF)Lnet/minecraft/client/render/VertexConsumer;"))
private static float configureFlameHeight(float y) {
return y - (0.5f - ((float) SkyblockerConfigManager.get().uiAndVisuals.flameOverlay.flameHeight / 200.0f));
}
diff --git a/src/main/java/de/hysky/skyblocker/mixins/PlayerSkinTextureMixin.java b/src/main/java/de/hysky/skyblocker/mixins/PlayerSkinTextureDownloaderMixin.java
index a9c07adc..fe9702c9 100644
--- a/src/main/java/de/hysky/skyblocker/mixins/PlayerSkinTextureMixin.java
+++ b/src/main/java/de/hysky/skyblocker/mixins/PlayerSkinTextureDownloaderMixin.java
@@ -3,9 +3,7 @@ package de.hysky.skyblocker.mixins;
import java.awt.Color;
import java.util.Set;
-import org.spongepowered.asm.mixin.Final;
import org.spongepowered.asm.mixin.Mixin;
-import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.Unique;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
@@ -19,11 +17,11 @@ import de.hysky.skyblocker.config.SkyblockerConfigManager;
import de.hysky.skyblocker.skyblock.item.PlayerHeadHashCache;
import de.hysky.skyblocker.utils.Utils;
import net.minecraft.client.texture.NativeImage;
-import net.minecraft.client.texture.PlayerSkinTexture;
+import net.minecraft.client.texture.PlayerSkinTextureDownloader;
import net.minecraft.util.math.ColorHelper;
-@Mixin(PlayerSkinTexture.class)
-public class PlayerSkinTextureMixin {
+@Mixin(PlayerSkinTextureDownloader.class)
+public class PlayerSkinTextureDownloaderMixin {
@Unique
private static final Set<String> STRIP_DE_FACTO_TRANSPARENT_PIXELS = Set.of(
"4f3b91b6aa7124f30ed4ad1b2bb012a82985a33640555e18e792f96af8f58ec6", /*Titanium Necklace*/
@@ -32,14 +30,10 @@ public class PlayerSkinTextureMixin {
@Unique
private static final float BRIGHTNESS_THRESHOLD = 0.1f;
- @Shadow
- @Final
- private String url;
-
@Inject(method = "remapTexture", at = @At("HEAD"))
- private void skyblocker$determineSkinSource(NativeImage image, CallbackInfoReturnable<NativeImage> cir, @Share("isSkyblockSkinTexture") LocalBooleanRef isSkyblockSkinTexture) {
+ private static void skyblocker$determineSkinSource(NativeImage image, String uri, CallbackInfoReturnable<NativeImage> cir, @Share("isSkyblockSkinTexture") LocalBooleanRef isSkyblockSkinTexture) {
if (Utils.isOnSkyblock() && SkyblockerConfigManager.get().uiAndVisuals.dontStripSkinAlphaValues) {
- String skinTextureHash = PlayerHeadHashCache.getSkinHash(this.url);
+ String skinTextureHash = PlayerHeadHashCache.getSkinHash(uri);
int skinHash = skinTextureHash.hashCode();
isSkyblockSkinTexture.set(PlayerHeadHashCache.contains(skinHash));
@@ -50,8 +44,8 @@ public class PlayerSkinTextureMixin {
}
}
- @WrapWithCondition(method = "remapTexture", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/texture/PlayerSkinTexture;stripAlpha(Lnet/minecraft/client/texture/NativeImage;IIII)V"))
- private boolean skyblocker$dontStripAlphaValues(NativeImage image, int x1, int y1, int x2, int y2, @Share("isSkyblockSkinTexture") LocalBooleanRef isSkyblockSkinTexture) {
+ @WrapWithCondition(method = "remapTexture", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/texture/PlayerSkinTextureDownloader;stripAlpha(Lnet/minecraft/client/texture/NativeImage;IIII)V"))
+ private static boolean skyblocker$dontStripAlphaValues(NativeImage image, int x1, int y1, int x2, int y2, @Share("isSkyblockSkinTexture") LocalBooleanRef isSkyblockSkinTexture) {
return !isSkyblockSkinTexture.get();
}
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/InventorySearch.java b/src/main/java/de/hysky/skyblocker/skyblock/InventorySearch.java
index 6ca1f236..d0e1b9f6 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/InventorySearch.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/InventorySearch.java
@@ -68,7 +68,7 @@ public class InventorySearch {
// Unfocus when clicking outside
@Override
public boolean mouseClicked(double mouseX, double mouseY, int button) {
- if (isFocused() && !clicked(mouseX, mouseY)) {
+ if (isFocused() && !isMouseOver(mouseX, mouseY)) {
setFocused(false);
return false;
}
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/chat/ChatRulesConfigListWidget.java b/src/main/java/de/hysky/skyblocker/skyblock/chat/ChatRulesConfigListWidget.java
index 1fb763e2..97d593a2 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/chat/ChatRulesConfigListWidget.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/chat/ChatRulesConfigListWidget.java
@@ -124,7 +124,7 @@ public class ChatRulesConfigListWidget extends ElementListWidget<ChatRulesConfig
.build();
deleteButton = ButtonWidget.builder(Text.translatable("selectServer.delete"), a -> {
- oldScrollAmount = getScrollAmount();
+ oldScrollAmount = getScrollY();
client.setScreen(new ConfirmScreen(this::deleteEntry, Text.translatable("skyblocker.config.chat.chatRules.screen.deleteQuestion"), Text.translatable("skyblocker.config.chat.chatRules.screen.deleteWarning", chatRule.getName()), Text.translatable("selectServer.deleteButton"), ScreenTexts.CANCEL));
})
.size(50, 20)
@@ -155,7 +155,7 @@ public class ChatRulesConfigListWidget extends ElementListWidget<ChatRulesConfig
}
client.setScreen(screen);
- setScrollAmount(oldScrollAmount);
+ setScrollY(oldScrollAmount);
}
@Override
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/partyfinder/FinderSettingsContainer.java b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/partyfinder/FinderSettingsContainer.java
index 70902a17..955d1a7a 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/partyfinder/FinderSettingsContainer.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/partyfinder/FinderSettingsContainer.java
@@ -280,4 +280,14 @@ public class FinderSettingsContainer extends ContainerWidget {
@Override
protected void appendClickableNarrations(NarrationMessageBuilder builder) {}
+
+ @Override
+ protected int getContentsHeightWithPadding() {
+ return 0;
+ }
+
+ @Override
+ protected double getDeltaYPerScroll() {
+ return 0;
+ }
}
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/partyfinder/OptionDropdownWidget.java b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/partyfinder/OptionDropdownWidget.java
index d2159751..1088b016 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/partyfinder/OptionDropdownWidget.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/partyfinder/OptionDropdownWidget.java
@@ -25,17 +25,15 @@ public class OptionDropdownWidget extends ElementListWidget<OptionDropdownWidget
private float animationProgress = 0f;
public OptionDropdownWidget(PartyFinderScreen screen, Text name, @Nullable Option selectedOption, int x, int y, int width, int height, int slotId) {
- super(screen.getClient(), width, height, y, 15);
+ super(screen.getClient(), width, height, y, 15, 25);
this.screen = screen;
this.slotId = slotId;
setX(x);
- setRenderHeader(true, 25);
this.name = name;
this.selectedOption = selectedOption;
}
- @Override
- protected boolean clickedHeader(int x, int y) {
+ private boolean clickedHeader(int x, int y) {
if (!(x >= 0 && y >= 10 && x < getWidth() && y < 26)) return false;
if (screen.isWaitingForServer()) return false;
if (isOpen) {
@@ -74,7 +72,14 @@ public class OptionDropdownWidget extends ElementListWidget<OptionDropdownWidget
screen.clickAndWaitForServer(backButtonId);
return true;
}
- return super.mouseClicked(mouseX, mouseY, button);
+
+ boolean superClicked = super.mouseClicked(mouseX, mouseY, button);
+
+ if (!superClicked && clickedHeader((int)(mouseX - (double)(this.getX() + this.width / 2 - this.getRowWidth() / 2)), (int)(mouseY - (double)this.getY()) + (int)this.getScrollY() - 4)) {
+ return true;
+ }
+
+ return superClicked;
}
@Override
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/partyfinder/PartyEntryListWidget.java b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/partyfinder/PartyEntryListWidget.java
index 385b97f0..6a4e189a 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/partyfinder/PartyEntryListWidget.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/partyfinder/PartyEntryListWidget.java
@@ -94,7 +94,7 @@ public class PartyEntryListWidget extends ElementListWidget<PartyEntry> {
if (children().isEmpty()) {
Text string = Text.translatable("skyblocker.partyFinder.loadingError");
TextRenderer textRenderer = MinecraftClient.getInstance().textRenderer;
- context.drawTextWrapped(textRenderer, string, getRowLeft(), getY() + 10, getRowWidth(), 0xFFFFFFFF);
+ context.drawWrappedText(textRenderer, string, getRowLeft(), getY() + 10, getRowWidth(), 0xFFFFFFFF, false);
} else super.renderWidget(context, mouseX, mouseY, delta);
}
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/partyfinder/RangedValueWidget.java b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/partyfinder/RangedValueWidget.java
index 0fcd9d1b..fc6f09ff 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/partyfinder/RangedValueWidget.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/partyfinder/RangedValueWidget.java
@@ -266,4 +266,14 @@ public class RangedValueWidget extends ContainerWidget {
@Override
protected void appendClickableNarrations(NarrationMessageBuilder builder) {}
+
+ @Override
+ protected int getContentsHeightWithPadding() {
+ return 0;
+ }
+
+ @Override
+ protected double getDeltaYPerScroll() {
+ return 0;
+ }
}
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/fancybars/EditBarColorPopup.java b/src/main/java/de/hysky/skyblocker/skyblock/fancybars/EditBarColorPopup.java
index 64e79bab..c98e18f8 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/fancybars/EditBarColorPopup.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/fancybars/EditBarColorPopup.java
@@ -113,5 +113,15 @@ public class EditBarColorPopup extends AbstractPopupScreen {
super.setY(y);
textFieldWidget.setY(getY());
}
+
+ @Override
+ protected int getContentsHeightWithPadding() {
+ return 0;
+ }
+
+ @Override
+ protected double getDeltaYPerScroll() {
+ return 0;
+ }
}
}
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/fancybars/EditBarWidget.java b/src/main/java/de/hysky/skyblocker/skyblock/fancybars/EditBarWidget.java
index f74d53da..e3a94bcd 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/fancybars/EditBarWidget.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/fancybars/EditBarWidget.java
@@ -324,4 +324,14 @@ public class EditBarWidget extends ContainerWidget {
this.onChange = onChange;
}
}
-}
+
+ @Override
+ protected int getContentsHeightWithPadding() {
+ return 0;
+ }
+
+ @Override
+ protected double getDeltaYPerScroll() {
+ return 0;
+ }
+} \ No newline at end of file
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/itemlist/ItemListTab.java b/src/main/java/de/hysky/skyblocker/skyblock/itemlist/ItemListTab.java
deleted file mode 100644
index 3493216b..00000000
--- a/src/main/java/de/hysky/skyblocker/skyblock/itemlist/ItemListTab.java
+++ /dev/null
@@ -1,93 +0,0 @@
-package de.hysky.skyblocker.skyblock.itemlist;
-
-import com.mojang.blaze3d.systems.RenderSystem;
-import net.minecraft.client.MinecraftClient;
-import net.minecraft.client.gui.DrawContext;
-import net.minecraft.client.gui.Element;
-import net.minecraft.client.gui.screen.narration.NarrationMessageBuilder;
-import net.minecraft.client.gui.widget.TextFieldWidget;
-import net.minecraft.client.util.math.MatrixStack;
-import net.minecraft.text.Text;
-import net.minecraft.util.Formatting;
-
-import java.util.List;
-
-@Deprecated(forRemoval = true)
-public class ItemListTab extends ItemListWidget.TabContainerWidget {
-
- private SearchResultsWidget results;
- private final MinecraftClient client;
- private TextFieldWidget searchField;
-
- public ItemListTab(int x, int y, MinecraftClient client, TextFieldWidget searchField) {
- super(x, y, Text.literal("Item List Tab"));
- this.client = client;
- this.searchField = searchField;
- if (ItemRepository.filesImported()) {
- this.results = new SearchResultsWidget(this.client, x - 9, y - 9 );
- this.results.updateSearchResult(searchField == null ? "": this.searchField.getText());
- }
- }
-
- @Override
- public List<? extends Element> children() {
- return List.of(results, searchField);
- }
-
- @Override
- protected void renderWidget(DrawContext context, int mouseX, int mouseY, float delta) {
- MatrixStack matrices = context.getMatrices();
- matrices.push();
- matrices.translate(0.0D, 0.0D, 100.0D);
- RenderSystem.setShaderColor(1.0F, 1.0F, 1.0F, 1.0F);
- int x = getX();
- int y = getY();
-
- // all coordinates offseted -9
- if (!ItemRepository.filesImported() && !this.searchField.isFocused() && this.searchField.getText().isEmpty()) {
- Text hintText = (Text.literal("Loading...")).formatted(Formatting.ITALIC).formatted(Formatting.GRAY);
- context.drawTextWithShadow(this.client.textRenderer, hintText, x + 16, y + 7, -1);
- } else if (!this.searchField.isFocused() && this.searchField.getText().isEmpty()) {
- Text hintText = (Text.translatable("gui.recipebook.search_hint")).formatted(Formatting.ITALIC).formatted(Formatting.GRAY);
- context.drawTextWithShadow(this.client.textRenderer, hintText, x + 16, y + 7, -1);
- } else {
- this.searchField.render(context, mouseX, mouseY, delta);
- }
- if (ItemRepository.filesImported()) {
- if (results == null) {
- this.results = new SearchResultsWidget(this.client, x - 9, y - 9);
- }
- this.results.updateSearchResult(this.searchField.getText());
- this.results.render(context, mouseX, mouseY, delta);
- }
- matrices.pop();
- }
-
- @Override
- protected void appendClickableNarrations(NarrationMessageBuilder builder) {}
-
- public void setSearchField(TextFieldWidget searchField) {
- this.searchField = searchField;
- }
-
- @Override
- public boolean mouseClicked(double mouseX, double mouseY, int button) {
- if (!visible) return false;
- if (this.searchField.mouseClicked(mouseX, mouseY, button) && this.results != null) {
- this.results.closeRecipeView();
- this.searchField.setFocused(true);
- return true;
- } else if (results != null) {
- this.searchField.setFocused(false);
-
- return this.results.mouseClicked(mouseX, mouseY, button);
- }
-
- return false;
- }
-
- @Override
- public void drawTooltip(DrawContext context, int mouseX, int mouseY) {
- if (this.results != null) this.results.drawTooltip(context, mouseX, mouseY);
- }
-}
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/itemlist/ItemListWidget.java b/src/main/java/de/hysky/skyblocker/skyblock/itemlist/ItemListWidget.java
deleted file mode 100644
index 62458c0d..00000000
--- a/src/main/java/de/hysky/skyblocker/skyblock/itemlist/ItemListWidget.java
+++ /dev/null
@@ -1,136 +0,0 @@
-package de.hysky.skyblocker.skyblock.itemlist;
-
-import de.hysky.skyblocker.mixins.accessors.RecipeBookWidgetAccessor;
-import de.hysky.skyblocker.utils.render.gui.SideTabButtonWidget;
-import it.unimi.dsi.fastutil.Pair;
-import it.unimi.dsi.fastutil.objects.ObjectObjectImmutablePair;
-import net.fabricmc.api.EnvType;
-import net.fabricmc.api.Environment;
-import net.minecraft.client.MinecraftClient;
-import net.minecraft.client.gui.DrawContext;
-import net.minecraft.client.gui.screen.recipebook.RecipeBookWidget;
-import net.minecraft.client.gui.tooltip.Tooltip;
-import net.minecraft.client.gui.widget.ContainerWidget;
-import net.minecraft.client.gui.widget.TextFieldWidget;
-import net.minecraft.item.ItemStack;
-import net.minecraft.item.Items;
-import net.minecraft.screen.AbstractRecipeScreenHandler;
-import net.minecraft.text.Text;
-
-import java.util.ArrayList;
-import java.util.List;
-
-@Environment(value = EnvType.CLIENT)
-@Deprecated(forRemoval = true)
-public class ItemListWidget /*extends RecipeBookWidget*/ {
- /*private int parentWidth;
- private int parentHeight;
- private int leftOffset;
-
- private TabContainerWidget currentTabContent;
- private final List<Pair<SideTabButtonWidget, TabContainerWidget>> tabs = new ArrayList<>(2);
- private ItemListTab itemListTab;
-
- private static int currentTab = 0;
-
- public ItemListWidget() {
- super();
- }
-
- @Override
- public void initialize(int parentWidth, int parentHeight, MinecraftClient client, boolean narrow, AbstractRecipeScreenHandler<?, ?> craftingScreenHandler) {
- super.initialize(parentWidth, parentHeight, client, narrow, craftingScreenHandler);
- this.parentWidth = parentWidth;
- this.parentHeight = parentHeight;
- this.leftOffset = narrow ? 0 : 86;
- TextFieldWidget searchField = ((RecipeBookWidgetAccessor) this).getSearchField();
- int x = (parentWidth - 147) / 2 - leftOffset;
- int y = (parentHeight - 166) / 2;
-
- // Init all the tabs, content and the tab button on the left
- tabs.clear();
-
- // Item List
- itemListTab = new ItemListTab(x + 9, y + 9, this.client, searchField);
- SideTabButtonWidget itemListTabButton = new SideTabButtonWidget(x - 30, y + 3, currentTab == 0, new ItemStack(Items.CRAFTING_TABLE));
- itemListTabButton.setTooltip(Tooltip.of(Text.literal("Item List")));
- if (currentTab == 0) currentTabContent = itemListTab;
- tabs.add(new ObjectObjectImmutablePair<>(
- itemListTabButton,
- this.itemListTab));
-
- // Upcoming Events
- UpcomingEventsTab upcomingEventsTab = new UpcomingEventsTab(x + 9, y + 9, this.client);
- SideTabButtonWidget eventsTabButtonWidget = new SideTabButtonWidget(x - 30, y + 3 + 27, currentTab == 1, new ItemStack(Items.CLOCK));
- eventsTabButtonWidget.setTooltip(Tooltip.of(Text.literal("Upcoming Events")));
- if (currentTab == 1) currentTabContent = upcomingEventsTab;
- tabs.add(new ObjectObjectImmutablePair<>(
- eventsTabButtonWidget,
- upcomingEventsTab
- ));
-
- }
-
- @Override
- public void reset() {
- super.reset();
- if (itemListTab != null) itemListTab.setSearchField(((RecipeBookWidgetAccessor) this).getSearchField());
- }
-
- @Override
- public void render(DrawContext context, int mouseX, int mouseY, float delta) {
- if (this.isOpen()) {
- int i = (this.parentWidth - 147) / 2 - this.leftOffset;
- int j = (this.parentHeight - 166) / 2;
- // Draw the texture
- context.drawTexture(TEXTURE, i, j, 1, 1, 147, 166);
- // Draw the tab's content
- if (currentTabContent != null) currentTabContent.render(context, mouseX, mouseY, delta);
- // Draw the tab buttons
- for (Pair<SideTabButtonWidget, TabContainerWidget> tab : tabs) {
- tab.left().render(context, mouseX, mouseY, delta);
- }
-
- }
- }
-
- @Override
- public void drawTooltip(DrawContext context, int x, int y, int mouseX, int mouseY) {
- if (this.isOpen() && currentTabContent != null) {
- this.currentTabContent.drawTooltip(context, mouseX, mouseY);
- }
- }
-
- @Override
- public boolean mouseClicked(double mouseX, double mouseY, int button) {
- if (this.isOpen() && this.client.player != null && !this.client.player.isSpectator()) {
- // check if a tab is clicked
- for (Pair<SideTabButtonWidget, TabContainerWidget> tab : tabs) {
- if (tab.first().mouseClicked(mouseX, mouseY, button) && currentTabContent != tab.right()) {
- for (Pair<SideTabButtonWidget, TabContainerWidget> tab2 : tabs) {
- tab2.first().setToggled(false);
- }
- tab.first().setToggled(true);
- currentTabContent = tab.right();
- currentTab = tabs.indexOf(tab);
- return true;
- }
- }
- // click the tab content
- if (currentTabContent != null) return currentTabContent.mouseClicked(mouseX, mouseY, button);
- else return false;
- } else return false;
- }*/
-
- /**
- * A container widget but with a fixed width and height and a drawTooltip method to implement
- */
- public abstract static class TabContainerWidget extends ContainerWidget {
-
- public TabContainerWidget(int x, int y, Text text) {
- super(x, y, 131, 150, text);
- }
-
- public abstract void drawTooltip(DrawContext context, int mouseX, int mouseY);
- }
-} \ No newline at end of file
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/itemlist/ResultButtonWidget.java b/src/main/java/de/hysky/skyblocker/skyblock/itemlist/ResultButtonWidget.java
deleted file mode 100644
index 91c7a7bc..00000000
--- a/src/main/java/de/hysky/skyblocker/skyblock/itemlist/ResultButtonWidget.java
+++ /dev/null
@@ -1,53 +0,0 @@
-package de.hysky.skyblocker.skyblock.itemlist;
-
-import net.minecraft.client.MinecraftClient;
-import net.minecraft.client.gui.DrawContext;
-import net.minecraft.client.gui.screen.Screen;
-import net.minecraft.client.gui.screen.narration.NarrationMessageBuilder;
-import net.minecraft.client.gui.widget.ClickableWidget;
-import net.minecraft.client.render.RenderLayer;
-import net.minecraft.item.ItemStack;
-import net.minecraft.text.Text;
-import net.minecraft.util.Identifier;
-
-import java.util.List;
-
-@Deprecated(forRemoval = true)
-public class ResultButtonWidget extends ClickableWidget {
- private static final Identifier BACKGROUND_TEXTURE = Identifier.ofVanilla("recipe_book/slot_craftable");
-
- protected ItemStack itemStack = null;
-
- public ResultButtonWidget(int x, int y) {
- super(x, y, 25, 25, Text.literal(""));
- }
-
- protected void setItemStack(ItemStack itemStack) {
- this.active = !itemStack.isEmpty();
- this.visible = true;
- this.itemStack = itemStack;
- }
-
- protected void clearItemStack() {
- this.visible = false;
- this.itemStack = null;
- }
-
- @Override
- public void renderWidget(DrawContext context, int mouseX, int mouseY, float delta) {
- MinecraftClient client = MinecraftClient.getInstance();
- context.drawGuiTexture(RenderLayer::getGuiTextured, BACKGROUND_TEXTURE, this.getX(), this.getY(), this.getWidth(), this.getHeight());
- context.drawItem(this.itemStack, this.getX() + 4, this.getY() + 4);
- context.drawStackOverlay(client.textRenderer, itemStack, this.getX() + 4, this.getY() + 4);
- }
-
- public void renderTooltip(DrawContext context, int mouseX, int mouseY) {
- MinecraftClient client = MinecraftClient.getInstance();
- if (client.currentScreen == null) return;
- List<Text> tooltip = Screen.getTooltipFromItem(client, this.itemStack);
- client.currentScreen.setTooltip(tooltip.stream().map(Text::asOrderedText).toList());
- }
-
- @Override
- protected void appendClickableNarrations(NarrationMessageBuilder builder) {}
-}
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/itemlist/SearchResultsWidget.java b/src/main/java/de/hysky/skyblocker/skyblock/itemlist/SearchResultsWidget.java
deleted file mode 100644
index 19bd05cc..00000000
--- a/src/main/java/de/hysky/skyblocker/skyblock/itemlist/SearchResultsWidget.java
+++ /dev/null
@@ -1,228 +0,0 @@
-package de.hysky.skyblocker.skyblock.itemlist;
-
-import com.mojang.blaze3d.systems.RenderSystem;
-import de.hysky.skyblocker.utils.ItemUtils;
-import net.minecraft.client.MinecraftClient;
-import net.minecraft.client.font.TextRenderer;
-import net.minecraft.client.gui.DrawContext;
-import net.minecraft.client.gui.Drawable;
-import net.minecraft.client.gui.Element;
-import net.minecraft.client.gui.screen.ButtonTextures;
-import net.minecraft.client.gui.widget.ToggleButtonWidget;
-import net.minecraft.component.DataComponentTypes;
-import net.minecraft.component.type.LoreComponent;
-import net.minecraft.item.ItemStack;
-import net.minecraft.text.OrderedText;
-import net.minecraft.text.StringVisitable;
-import net.minecraft.text.Text;
-import net.minecraft.util.Identifier;
-import net.minecraft.util.Language;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Locale;
-
-@Deprecated(forRemoval = true)
-public class SearchResultsWidget implements Drawable, Element {
- private static final ButtonTextures PAGE_FORWARD_TEXTURES = new ButtonTextures(Identifier.ofVanilla("recipe_book/page_forward"), Identifier.ofVanilla("recipe_book/page_forward_highlighted"));
- private static final ButtonTextures PAGE_BACKWARD_TEXTURES = new ButtonTextures(Identifier.ofVanilla("recipe_book/page_backward"), Identifier.ofVanilla("recipe_book/page_backward_highlighted"));
- private static final int COLS = 5;
- private static final int MAX_TEXT_WIDTH = 124;
- private static final String ELLIPSIS = "...";
-
- private final MinecraftClient client;
- private final int parentX;
- private final int parentY;
-
- private final List<ItemStack> searchResults = new ArrayList<>();
- private List<SkyblockCraftingRecipe> recipeResults = new ArrayList<>();
- private String searchText = null;
- private final List<ResultButtonWidget> resultButtons = new ArrayList<>();
- private final ToggleButtonWidget nextPageButton;
- private final ToggleButtonWidget prevPageButton;
- private int currentPage = 0;
- private int pageCount = 0;
- private boolean displayRecipes = false;
-
- public SearchResultsWidget(MinecraftClient client, int parentX, int parentY) {
- this.client = client;
- this.parentX = parentX;
- this.parentY = parentY;
- int gridX = parentX + 11;
- int gridY = parentY + 31;
- int rows = 4;
- for (int i = 0; i < rows; ++i)
- for (int j = 0; j < COLS; ++j) {
- int x = gridX + j * 25;
- int y = gridY + i * 25;
- resultButtons.add(new ResultButtonWidget(x, y));
- }
- this.nextPageButton = new ToggleButtonWidget(parentX + 93, parentY + 137, 12, 17, false);
- this.nextPageButton.setTextures(PAGE_FORWARD_TEXTURES);
- this.prevPageButton = new ToggleButtonWidget(parentX + 38, parentY + 137, 12, 17, true);
- this.prevPageButton.setTextures(PAGE_BACKWARD_TEXTURES);
- }
-
- public void closeRecipeView() {
- this.currentPage = 0;
- this.pageCount = (this.searchResults.size() - 1) / resultButtons.size() + 1;
- this.displayRecipes = false;
- this.updateButtons();
- }
-
- protected void updateSearchResult(String searchText) {
- searchText = searchText.toLowerCase(Locale.ENGLISH);
-
- if (!searchText.equals(this.searchText)) {
- this.searchText = searchText;
- this.searchResults.clear();
- for (ItemStack entry : ItemRepository.getItems()) {
- String name = entry.getName().toString().toLowerCase(Locale.ENGLISH);
- LoreComponent lore = entry.getOrDefault(DataComponentTypes.LORE, LoreComponent.DEFAULT);
- if (name.contains(this.searchText) || lore.lines().stream().map(Text::getString).anyMatch(s -> s.contains(this.searchText)))
- this.searchResults.add(entry);
- }
- this.currentPage = 0;
- this.pageCount = (this.searchResults.size() - 1) / resultButtons.size() + 1;
- this.displayRecipes = false;
- this.updateButtons();