- Thread Author
- #1
- Added Bank.open(LocatableEntity)
- Added additional functions to the bridge that are now being used to make a variety of parts of the api faster
- Made getting the root bounds of interfaces require less calls over the bridge.
- Fixed some equals & hashcode methods
- Adjusted some toString methods for a better presentation in the developer toolkit
- Improved the handling of some exceptions occurring over the bridge
- Replaced any RuntimeExceptions we were throwing with subclasses of it that are more appropriate for the situation.
- Made the max mouse movement duration a part of PlayerSense
- Fixed LocatableEntityQueryBuilder#unreachable/surroundingsUnreachable()
- Improved handling of the execution of onStop
- Throw an exception when building an InteractableRectangle that would overflow the integer bitspace. The primary purpose of this is so that I can see what exactly is going on when it's occurring for interface components in extremely rare situations.
- Fixed a bug in Distance.between that was resulting in at least one call to Region.getBase() if either of the arguments was a LocateableEntity object, regardless of if was already stored in the cache or not. This fix resulted in a significant improvement in the speed of sorting entities, and as a result, .nearest() and similar calls when working with large sets of entities.
- Optimized InterfaceContainers.getAt(int) by reducing the amount of data that gets transferred over the bridge from a boolean[] to a single boolean.
- Fixed several ArrayIndexOutOfBoundsExceptions caused by an internal api attempted to decode -1.
- Optimized GameEvent#getName() because it's string manipulation was actually slowing down the event handler slightly.
- Added InterfaceComponentQueryBuilder#grandchildren(boolean) - by default it's set to true, but if you set it to false it'll only search the components during underneath the InterfaceContainers and will not invoke or search through InterfaceComponent#getComponents() for each of the InterfaceContainers components. Setting it to false is a major optimization in a lot of cases, often reducing the amount of components being iterated over by at least several hundred components.
- Optimized ObjectDefinition#getName to not try to parse out the jag tags when it has the default value for a name which is "null".
- Made the internal osrs interface option handler be more error resilient in regards to tab layouts.
- Optimized osrs projection by applying the grandchildren(false) optimization in various places along with making some improvements to it in regards to tab layouts.
- Added the same game object cache to osrs game objects that I'd previously applied to rs3 game objects, offering a reasonable speedup when doing operations on similar objects across multiple queries
- Optimized ChatDialog.getContinue() on osrs
- Rewrote the logic behind ActorQueryBuilder#targetedBy(Arrays.asList(null)). It now requires calculation of the target of each actor once instead of once for each Actor being analyzed (so O -> (1)).
- Made LootInventory.isOpen() immediately return false on osrs instead of trying to run the query. This was done because of MassFighter not doing proper checks and crashing as a result of it.