General:
- Applied the design I proposed in issue #1342
- Applied custom component: MaterialTabs
- Removed default scrolling behaviour from parent PluginPanel
- Added error panels for empty searches and empty offer slots
- Added new formatter to the StackFormatter that displays integers
as rs stacks with decimals (21700 into 21.7k)
- Changed the Locale on the stack formatter and respective unit testing
to UK, this makes sure all tests are consistent with Travis (ex: i ran
the unit testing in europe, travis ran in the us, so it passed my tests,
failed his)
Offers:
- Refactored the GE offers into it's own seperate file:
GrandExchangeOffersPanel
- Redesigned the ge offers items
- Included the custom component ThinProgressBar on the bottom of each
ge item panel
- Added secondary information panel, toggled by clicking on the primary
panel
- Added a game state check that resets all ge offers on logout
Search:
- Recoloured and resized the search bar
- Added new icons to the search bar (incluing a loading wheel gif)
- Removed focus on the search bar when results are displayed
- Added custom scrolling behaviour
- Blocked input when search is in progress
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.
The rasterizer crashes on certain tiles ingame with specific camera angles.
java.lang.ArrayIndexOutOfBoundsException: -1
at Graphics3D.rasterGouraudLine(Graphics3D.java:797)
at Graphics3D.rasterGouraud(Graphics3D.java:680)
at Region.drawTileUnderlay(Region.java:1853)
at Region.draw(Region.java:1376)
at Region.drawRegion(Region.java:1187)
at class35.method682(class35.java:808)
at WorldMapType3.gameDraw(WorldMapType3.java:448)
at class218.method4359(class218.java:1069)
at Client.method1268(Client.java:3922)
at Client.methodDraw(Client.java:2239)
at GameEngine.method914(GameEngine.java:605)
at GameEngine.run(GameEngine.java:1027)
at java.lang.Thread.run(Thread.java:748)
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).