Buuz135 / FunctionalStorage

FunctionalStorage
MIT License
30 stars 33 forks source link

[1.18.2] Massive lag/FPS drop when holding the linking tool within 64 blocks of controller and many drawers linked #194

Closed jw-taylor closed 1 year ago

jw-taylor commented 1 year ago

Functional Storage Version: 1.18.2-1.1.3

Titanium Version: 1.18.2-3.5.9-43

I'm playing Stone Block 3. I increased the drawer contoller range to 50 because that's where I like it. I have got a large number of drawers linked.

When I switch to the linking tool, my FPS drops to 0 - I assume as my client struggles to render all of the wireframes for the drawers, which render through walls. There is no lag/FPS drop when holding the tool beyond 64 blocks of the controller, because it doesn't try to render the wireframes then. There is also no lag/FPS drop when you're in the middle of linking multiple drawers. because at that time it only renders the frame for the area you're linking.

Suggestion/request:

Primary: only render wireframes for drawers the player can actually see i.e. defintiely don't render them through walls, and probably also don't render them if the drawers are behind the player. (If having them render through walls is a desireable feature, please allow a config option to disable that)

Secondary: render wireframes based on distance from drawer rather than distance from controller, and have a config option to change that. Explanation: I understand that the wireframes are useful to check whether drawers are linked or not. However, as wireframes don't render beyond 64 blocks from the storage controller, if the linking range is increased beyond 64 blocks then you can't tell whether or not those drawers are linked. Also, if my controller is at 0,0 and I'm linking a drawer at 64,0 I don't need to know whether another drawer at -64,0 is linked, so why render that wireframe?

jw-taylor commented 1 year ago

See issue #170

Buuz135 commented 1 year ago

Duplicate of #170