Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
feat: Implement NPC drop table viewer in music tab
This commit introduces a major UI feature that allows players to view NPC drop tables directly in-game by temporarily hijacking the music tab interface.
A "Show Drops" menu option has been added to the right-click menu for NPCs. When selected, the plugin fetches the NPC's drop data and dynamically replaces the content of the music tab with a custom drop viewer UI.
The new UI consists of several components:
DropsTabUI
: The main class that initializes and manages the lifecycle of this feature.DropsMenuListener
: Injects the "Show Drops" option into the NPC context menu.MusicWidgetController
: The core of the feature, responsible for:SpriteOverrideManager
: Replaces the default music tab icon with a custom "drops" icon to indicate that the drop viewer is active.TabListener
: Detects when the player navigates away from the music tab and restores its original content, ensuring the drop viewer is temporary.WidgetUtils
: Provides helper functions for creating menu entries and managing widget children.