To organize the project a bit, decided to add a new folder inside the
ui folder, to hold all custom components. ui/components/
Rewrote IconTextField
I wasn't happy with its functionality, so I rewrote it to
include the following:
- Left aligned centered icons
- Animated gif support (ex: loading wheels)
- Custom hover effects (color change)
- Input blocking
All changes:
- Created new folder ui/components/
- Moved JShadowLabel and JShadowLabelUI to components folder
- Moved IconTextField to components folder
- Rewrote IconTextField
- Created new components: MaterialTab & MaterialTabGroup
- Created new components: CustomScrollBarUI
- Created new components: PluginErrorPanel
- Created new components: ThinProgressBar
- Applied the new scroll bar ui to the UI defaults (UIManager)
- Created new substance theme "Obsidian"
- Created new ColorScheme file to hold all globally used colors
- Darkened the client frame using the substance color scheme file
- Changed substance's colorization factor to 1
- Tweaked the coloring on the dev plugin panel
- Set the UI default foreground color on Buttons and MenuItems to White.
This broke the speccounter plugin, and is moderately incorrect because client scripts can update varbits before a tick has happened, and the event should reflect that.
Since commit 08c816e, the varbit change event is fired after this widget is shown and inRaidChambers is always false at that point. This would prevent the vanilla point box from being hidden.
If a plugin used a combination of renderPolygon and either use other
util methods or draw on their own on the same graphics object, the
stroke would get applied as well.
The map region change is triggered when a game starts loading new regions, but that doesn't necessarily mean the player is in the correct region. Additionally the currently loaded regions reveal very little information about where a player is actually located. Instead of relying on this event, the plugin now listens to game state changes, which are triggered for player region changes. When that happens, the plugin checks player region against the actual kingdom regions (2 in total).
If panel component child exceeds the preferred size, correctly send this
new max size to other children, so they can resize/reposition themselves
correctly.
Signed-off-by: Tomas Slusny <slusnucky@gmail.com>
To prevent affecting other clue types, reset the preferred size of the
clue scroll panel component to default value each render cycle, as the
clues can modify it.
Signed-off-by: Tomas Slusny <slusnucky@gmail.com>
- Create new interface for clues that will return multiple locations,
have update and reset methods for clues with undetermined location
- Implement new LocationsClueScroll and LocationClueScroll to
HotColdClue to add support for displaying all the points on world map
- Handle the LocationsClueScroll to add each WorldPoint to the world map
when found
- Add new removeIf method to the WorldMapPointsManager
Signed-off-by: Tomas Slusny <slusnucky@gmail.com>