infinitay / tree-count-plugin Goto Github PK
View Code? Open in Web Editor NEWA RuneLite plugin to track the number of players chopping a tree
License: BSD 2-Clause "Simplified" License
A RuneLite plugin to track the number of players chopping a tree
License: BSD 2-Clause "Simplified" License
Loving this plugin to maximize the Forestry bonus I get, but it seems it does not currently track felling axes interacting with the trees. Any news on when this might get fixed?
I was thinking of making a plugin which adds a despawn timer on the tree (eg: how long it has left before it falls). But the UI for your plugin and mine would probably be mutually exclusive since both are trying to overlay stuff on a tree. So I wanted to see if we could combine somehow. Since your plugin already has a decent user-base, it would probably make sense to expand yours than for me to try to duplicate your functionality and expand on it and then have to compete with you.
Would you be interested in the tree-count plugin both counting ticks until it falls and number of people chopping? We could probably justify both features under the same name. ๐
Since we rely on chopping animations, it'll count players as chopping a tree when they are chopping the roots. However, it'll increment the choppers count on the nearest tree instead which is incorrect behavior
There are logic issues that are causing incorrect in/decrements such as when walking back into range of the tree and the choppers. This causes unexpected behavior whenever either a chopper leaves the area and returns, logs in or out, or if the player themselves does any of the following.
Number can sometimes be hard to see especially on red colored trees like maples, I'd like it if we could change color of the number
As the title suggests, during the rising roots minigame you can tell there are slight microstutters if you look out for them. It happens when lots of players begin to change to the next glowing root. It's not unplayable and it doesn't make you freeze, but it will drop a few frames for <= 1 second.
IntelliJ Profiler reports that most of the processing occurs in the overlay
The profiler showed that there was a lot of time being spent by calling Tree#findForestryTree within the overlay. This was because we wanted to make sure the tree was able to have a hidden boost from group woodcutting, and if so then render it's overlay. However, it seems that the underlying #get call to the hashmap was resource intensive. Which I don't understand why because it's a map and even an ImmutableMap uses hashing. Additionally, the key is an integer so there's no deep comparison to be checked.
I then did what I initially wanted to do back when I was writing the plugin. I created an object that would have a reference to both the GameObject
tree and the Tree
tree (type of tree). That way I could just reference the Tree
(type of tree) and fetch whether or not it is a forestry tree without any lookups. This seemed to have a big performance increase.
After a 30 second profiling with 2 samples, these are the results sometime before refactoring to use TreeGameObject
In this image it says 30% but I specifically remember a test right before this where it was 20%. This image is from a profiling that last contained the results for the plugin before the refactor.
After a 2 minute 15 second profiling with 1 sample, these are the results after refactoring to use TreeGameObject
I read briefly that ImmutableMap could pose a slight performance decrease when compared to a HashMap. I tried to test it for myself and although game conditions are not 100% reproducible, I didn't seem to have similar results. In my case, ImmutableMap held better results. Again, because the conditions can't be reproduced, it could have been the case that during ImmutableMap's testing there was one or no rising root events, but during HashMap's testing there could have been two. It all depends, but nonetheless, I will share the results.
After a 10 minute profiling and 3 samples, these are the results for ImmutableMap:
After a 10 minute profiling and 4 samples, these are the results for HashMap:
The yew trees behind the varrock palace are not being tracked by the addon, verified the addon was working elsewhere though.
Missing id = 36688
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.