Skip to content

Better hud#2377

Open
viciscat wants to merge 37 commits into
SkyblockerMod:mainfrom
viciscat:better-hud
Open

Better hud#2377
viciscat wants to merge 37 commits into
SkyblockerMod:mainfrom
viciscat:better-hud

Conversation

@viciscat

@viciscat viciscat commented May 8, 2026

Copy link
Copy Markdown
Collaborator

hey it's that thing again.
This PR hopefully makes the hud system less confusing. hopefully.
not everything is done to hopefully ease merge conflicts and would be done at a later date.
misssing:

  • removing the instanceof checks for config stuff
  • move widget options from the normal config to the widgets thingamajig
  • some other stuff I probably forgot

A quick run through of changes I guess:

  • no more multiple ScreenBuilder instances, only one whose config is changed
  • /widgets is decoupled from the config screen and has its own option for the fancy stuff
  • new config screen, where you right click to add widgets and stuff

I would appreciate some thoughts on the comment at the top of LayerBuilder

@LifeIsAParadox LifeIsAParadox added the reviews needed This PR needs reviews label May 8, 2026
@AzureAaron AzureAaron added this to the 6.6.0 milestone May 12, 2026

@kevinthegreat1 kevinthegreat1 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would suggest a lot more comments. For example, things like TabHudWidget is widgets from the tab, not related to whether it is being shown on the fancy tab layer or fancy hud layer. Also, document how the new config works, etc.

In addition to code review:

  • The open widget config screen button in skyblocker config doesn't work.
  • Removing a widget with the delete key doesn't seem to work
  • Missing a few textures
  • The "Auto Screen Anchor" tooltip is quite useless, maybe explain what it does in the tooltip?
  • None of the tab hud widgets seem to be showing up on any island? See attached screenshot, I'm expecting a lot of default tab widgets there, but there are none. (This is my first time running the pr.) If this is intended, due to me editing a different island than the one I'm on (which is unknown) then there should be at least some placeholders based on what widgets are expected there, or what widgets are configured. Or perhaps the widgets config really should be connected with the hypixel /widgets?
Image

Comment on lines +299 to +300
.name(Component.translatable("skyblocker.config.uiAndVisuals.tabHud.fancyWidgetsList"))
.description(Component.translatable("skyblocker.config.uiAndVisuals.tabHud.fancyWidgetsList.@Tooltip"))

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think this text is correct?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it is, in fact, incorrect. Copy paste oopsie

Comment on lines +301 to +303
.binding(defaults.uiAndVisuals.tabHud.enableFancyTab,
() -> config.uiAndVisuals.tabHud.enableFancyTab,
newValue -> config.uiAndVisuals.tabHud.enableFancyTab = newValue)

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If this does the same as tabHudEnabled, I think we should keep it as tabHudEnabled.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It does not, tabHudEnabled removed also the tab widgets that were moved on the HUD. This just enables/disables the fancy tab when you press tab you know? Now that I think about it showVanillaTabByDefault can already do enableFancyTab's job, so one could be removed

Comment on lines -36 to -40
.option(ButtonOption.createBuilder()
.name(Component.translatable("skyblocker.config.farming.farmingHud.config"))
.prompt(Component.translatable("text.skyblocker.open"))
.action(screen -> Minecraft.getInstance().setScreen(new WidgetsConfigurationScreen(Location.GARDEN, FarmingHudWidget.getInstance().getInternalID(), screen)))
.build())

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think you should add back these buttons across all the categories.

@viciscat viciscat Jun 4, 2026

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I plan on removing the "enable x hud" toggles across all configs as they literally do nothing right now ✨
And I also plan to move the widget configs from there to the per widget thing in the new system to have them in the side panel (stuff like farming hud and end hud options)
didn't get around to doing it to hopefully avoid merge conflicts a smidge, in case those configs get touched in the time this gets reviewed. Removed these buttons so it would compile

import de.hysky.skyblocker.skyblock.tabhud.screenbuilder.ScreenBuilder;
import de.hysky.skyblocker.skyblock.tabhud.screenbuilder.WidgetManager;

public class ConfigScreenBuilder extends ScreenBuilder {

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You can make ScreenBuilder generic.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure what you mean

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I just mean add <T exntends Layer> to ScreenBuilder and ConfigScreenBuilder extends ScreenBuilder<ConfigLayer>, which gets rid of some casts.

import java.util.Map;
import java.util.Set;

// I would like to remove the tab logic from the hud layer by making it a subclass but that's already taken by ConfigLayerBuilder

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm assuming ConfigLayerBuilder needs both hud and tab LayerBuilders. In that case ConfigLayerBuilder should probably contain a LayerBuilder instead of extending LayerBuilder.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it has been a month now and exams passed by so I forgot a thing a or two as to why I didn't do that. But I did think of doing that, the issue that I had is that I would have to make some things public/have getters and I didn't really want to, and maybe another issue I forgot

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Well you cant extend two things, unless you can make one of them into an interface.

@LifeIsAParadox LifeIsAParadox added merge conflicts This PR has merge conflicts that need solving. and removed reviews needed This PR needs reviews labels Jun 4, 2026
@kevinthegreat1

Copy link
Copy Markdown
Collaborator

I do think this is a lot more intuitive though, so thanks!

@viciscat

viciscat commented Jun 4, 2026

Copy link
Copy Markdown
Collaborator Author

None of the tab hud widgets seem to be showing up on any island? See attached screenshot, I'm expecting a lot of default tab widgets there, but there are none. (This is my first time running the pr.) If this is intended, due to me editing a different island than the one I'm on (which is unknown) then there should be at least some placeholders based on what widgets are expected there, or what widgets are configured. Or perhaps the widgets config really should be connected with the hypixel /widgets?

Well first fancy tab needs to be enabled duh.
It takes the where-you-are-standing island's widgets. So if you are in the HUB, and you are editing the Garden's widgets, then it's gonna show the HUB's tab widgets. And since there's no tab in unknown, there's nothing showing up.
We could do a little list of expected widgets to show if you are editing another island than your current one, based on the hypixel default probably.

Making it connected to the hypixel /widgets again would have advantages and disadvantages:
Disadvantages:

  • Need inventory interaction, dropdown would have to go back to the previous menu, and selecting something would have to click on the correct slot. Doable I suppose, but more spaghetti code probably
  • Less responsive buttons on high ping

Advantages:

  • Correct tab
  • Directly editing the hypixel settings on the side panel thing for tab widgets
  • Maybe more, like ordering the tab

So uuuhh maybe I guess 🤷

Other issues in the "main review message" should be easy to fix and are due to oversights and voodoo magic (the description of the auto screen anchor button IS there, just... with the wrong translation key somehow, and i was 99% sure i committed the textures lol)

@kevinthegreat1

Copy link
Copy Markdown
Collaborator

I think separating them works, just have a difficult to miss note on the screen when configuring with /skyblocker hud that only the current island hypixel widgets are available. Or just say like hypixel widgets when configuring other islands are not accurate. I don’t think any of the other options you presented is better or worth the effort. What do you think?

@kevinthegreat1

Copy link
Copy Markdown
Collaborator

also, I think you should distinguish hypixel widgets in both the list (when adding widgets) and the preview. Like add a [Hypixel] in front of the name or something, both in the list and the preview.

@viciscat

viciscat commented Jun 6, 2026

Copy link
Copy Markdown
Collaborator Author

Or just say like hypixel widgets when configuring other islands are not accurate. I don’t think any of the other options you presented is better or worth the effort.

The question is where

you should distinguish hypixel widgets in the preview

Again, where. On the widget itself or in the side panel?

# Conflicts:
#	src/main/java/de/hysky/skyblocker/skyblock/ItemPickupWidget.java
#	src/main/java/de/hysky/skyblocker/skyblock/garden/FarmingHudWidget.java
#	src/main/java/de/hysky/skyblocker/skyblock/tabhud/config/WidgetsConfigurationScreen.java
@kevinthegreat1

Copy link
Copy Markdown
Collaborator

For the notice, just put it below the current instructions in the middle of the screen. For the per widget, I’d say everywhere where the name appears, so in the title of the widget itself (only in preview), in the widget list when adding it, and maybe on the right panel as well. Just add like [Hypixel] in front of the widget name/title.

@kevinthegreat1

Copy link
Copy Markdown
Collaborator

And for the first part, the general note, I would also say whether the current page is skyblocker hud or /widgets.

@viciscat

viciscat commented Jun 6, 2026

Copy link
Copy Markdown
Collaborator Author

I would also say whether the current page is skyblocker hud or /widgets.

the config screen doesn't replace /widgets anymore

@viciscat

viciscat commented Jun 6, 2026

Copy link
Copy Markdown
Collaborator Author

For the notice, just put it below the current instructions in the middle of the screen. For the per widget, I’d say everywhere where the name appears, so in the title of the widget itself (only in preview), in the widget list when adding it, and maybe on the right panel as well. Just add like [Hypixel] in front of the widget name/title.

Should probably have said that earlier but I'm not sure if it's a good idea. i'm guessing you're suggesting that because you think that it will be confusing if the widget disappears cuz TAB ran out of space. So saying that it's from hypixel might explain it?
I haven't implemented it yet but if you have a tab widget on your HUD (say commissions) and the hypixel TAB widget is not there for whatever reason, it will just show a message saying "the tab widget is missing" instead of disappearing like a prick

@LifeIsAParadox LifeIsAParadox added reviews needed This PR needs reviews and removed merge conflicts This PR has merge conflicts that need solving. labels Jun 6, 2026
@kevinthegreat1

Copy link
Copy Markdown
Collaborator

the config screen doesn't replace /widgets anymore

So the only way to accurately see the preview for all widgets is using skyblocker hud on the current island? I’m mostly worried about people trying to configure for other islands and either things not showing up in the preview or disappearing when actually going on the island.

@viciscat

viciscat commented Jun 6, 2026

Copy link
Copy Markdown
Collaborator Author

I’m mostly worried about people trying to configure for other islands and either things not showing up in the preview or disappearing when actually going on the island.

The contents of the widgets may be different than what they expect, but the widgets configured in the other location will be in the correct spot and displayed correctly. Fancy tab stuff will indeed be different as previously discussed.

@kevinthegreat1

Copy link
Copy Markdown
Collaborator

The contents of the widgets may be different than what they expect, but the widgets configured in the other location will be in the correct spot and displayed correctly. Fancy tab stuff will indeed be different as previously discussed.

I’m talking about hypixel widgets, aka fancy tab. Right now it would be very confusing for a user configuring another island’s hypixel/fancy tab widgets and seeing nothing or different widgets than what’s actually should be there.

@viciscat

viciscat commented Jun 6, 2026

Copy link
Copy Markdown
Collaborator Author

Yea. Well like I said earlier there's a 2 solutions to that:

  • Show a fake preview based on the hypixel defaults (only partly solves the issue)
  • Re-link the menu back to /widgets (mildly annoying, see advantages and disadvantages mentioned earlier)

If you have other ideas then shoot away

@LifeIsAParadox LifeIsAParadox added merge conflicts This PR has merge conflicts that need solving. and removed reviews needed This PR needs reviews labels Jun 10, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

merge conflicts This PR has merge conflicts that need solving.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants