Yellow-Dog-Man / Resonite-Issues

Issue repository for Resonite.
https://resonite.com
141 stars 2 forks source link

Confirmation for unpacking a "root" flux slot. #3118

Open 3x1t-5tyl3 opened 1 month ago

3x1t-5tyl3 commented 1 month ago

Is your feature request related to a problem? Please describe.

Yes. Currently there's no confirmation when a slot is unpacked in this (or lower depth) configuration:

Describe the solution you'd like

Either a component to disallow this behaviour. Or an explicit warning to confirm "multi slot unpacking"

Describe alternatives you've considered

Not sure if there's any more?

Just having a confirmation could solve this issue. Though a meta component to disallow this behaviour would be neat as-well. So you're forced to unpack the root slot or one of the nodes directly.

Additional Context

Typically this happens on accident; So having a confirmation of "HEY YOU?RE ABOUT TO UNPACK A LOT OF FLUX" would go a long way from accidental unpacking of thousands of nodes which can lead to crashes.

Requesters

3x1t_5tyl3

TisFoolish commented 1 month ago

I would love a node that prevents the unpacking of flux via the tool

Frooxius commented 1 month ago

Hmm, I wonder if it would make more sense to have this be based on the total number of nodes above certain threshold, rather than particular hierarchy. If it scans the hierarchy and finds say more than 2000 of nodes, then it gives warning.

@TisFoolish We ask that you do not hijack existing issues for other related feature requests. Make separate issue instead: https://github.com/Yellow-Dog-Man/Resonite-Issues

shiftyscales commented 1 month ago

I think a confirmation would be useful regardless as even in the context of a single object / avatar, it could still be useful to signal "hey- you're about to unpack EVERYTHING in this thing" even if it's just dozens or hundreds of nodes instead of thousands.

I know I've personally had a few occasions where I've accidentally grabbed the wrong slot in the hierarchy when I meant to unpack one specific module of my avatar as I have Flux bundles all stored within the same slot on my avatar.

It also makes it easier to delineate that multiple ProtoFlux roots are in-use so the user is less likely to accidentally move their ProtoFlux when packing into a specified slot.

TisFoolish commented 4 weeks ago

We ask that you do not hijack existing issues for other related feature requests

I was in no way hijacking the post. The idea was already mentioned in the op, I was responding to the op's own suggestion.

Frooxius commented 4 weeks ago

I don't think adding it to every single scenario, even if unpacking just a few nodes, is a good idea.

If it happens every time, then this effectively reduces the effectiveness of the warning - people will just make it part of their muscle memory to just click the confirmation right after triggering unpack, because they have to do it every single time. At that point they're unlikely to notice that it's warning them about big number of slots. You have to use warning sparingly for them to be effective, because they should be an exception, not a norm.

Generally if you're unpacking nodes, you are already taking deliberate steps to do that.

JackTheFoxOtter commented 4 weeks ago

Hmm, I wonder if it would make more sense to have this be based on the total number of nodes above certain threshold, rather than particular hierarchy. If it scans the hierarchy and finds say more than 2000 of nodes, then it gives warning.

Maybe. Then again I do have massive node groups that get close to that limit. I feel like nodes packed "together" might be a better indicator in most cases. The message could display the amount of node groups. Like, if I want to unpack all ProtoFlux on an object and it tells me "you're about to unpack 5 node groups (240 nodes), are you sure about that?" Then I could say "yeah sounds about right". If it says "you're about to unpack 172 node groups (16200 nodes)" then I'd definitely raise an eyebrow and maybe not click that button.

It could take both into account for when to display the message. Either if you unpack more than X node groups or more than Y nodes.

JackTheFoxOtter commented 4 weeks ago

But in most cases I'm unpacking nodes through a RedPrint, which uses the ProtoFlux node to unpack nodes. Would this message also appear when unpacking isn't done by the tool, but through the node?

Frooxius commented 4 weeks ago

My problem is that if it happens regardless, people will stop seeing the numbers and just muscle-memory clicking "OK" out of habit.

Frooxius commented 4 weeks ago

@JackTheFoxOtter No, it wouldn't happen in that case.

JackTheFoxOtter commented 4 weeks ago

My problem is that if it happens regardless, people will stop seeing the numbers and just muscle-memory clicking "OK" out of habit.

Yeah that's fair. But I do think setting somewhat high limits for the message to show up should alleviate this. If it's for example "more than 10 20 node groups or more than 2000 nodes" then I do think this message would show up pretty rarely, and when it does, it probably has a good reason to.

JackTheFoxOtter commented 4 weeks ago

And if it shows up too frequently in practice the limits can still be raised.

shiftyscales commented 4 weeks ago

Perhaps an alternative approach would be to determine the search depth / number of branching paths of where ProtoFlux is stored and use that instead, @Frooxius?

Even if it isn't thousands of nodes- it can still be quite disruptive to unpack the world's root- e.g. detect if you're unpacking Flux at a search depth greater than say- 3 slots deep?

In this context, I think "how far apart" the node groups are is more relevant than the node count itself in this case.

shiftyscales commented 4 weeks ago

Sheer node count is useful too as an additional warning for that context of thousands of nodes that are densely packed, e.g. in an avatar close together.

JackTheFoxOtter commented 4 weeks ago

Perhaps an alternative approach would be to determine the search depth / number of branching paths of where ProtoFlux is stored and use that instead, @Frooxius?

I'm not sure how much relevance the search depth has here. This heavily depends. Often you'd put small bits of ProtoFlux all over an object / avatar when each is driving a different property. Then they would be far apart, but harmless to unpack.

Frooxius commented 4 weeks ago

I think we're making this overly complicated.

The main issue here is that user gets warning when they're about to unpack a lot of flux, because that can lag out and cause issues.

The condition for that should be just that a lot of flux is about to be unpacked.

Hierarchy, grouping and so on does not matter for lagging out. The sheer amount of nodes does.

shiftyscales commented 4 weeks ago

I just feel that the action itself can still be disruptive even if it doesn't generate enough Flux nodes to cause a significant amount of lag.

If performance issues are the only condition that is to be considered then I agree- node count would be the only relevant thing we'd need to track.

3x1t-5tyl3 commented 4 weeks ago

I think we're making this overly complicated.

The main issue here is that user gets warning when they're about to unpack a lot of flux, because that can lag out and cause issues.

The condition for that should be just that a lot of flux is about to be unpacked.

Hierarchy, grouping and so on does not matter for lagging out. The sheer amount of nodes does.

Works for me personally! It is really mostly a "You're about to fuck up your world by unpacking all this flux due to lag" IMO.