Yellow-Dog-Man / Resonite-Issues

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

Userspace Context Menu for "Overwrite World" Spawns at [0,0,0] #722

Open PointerOffset opened 9 months ago

PointerOffset commented 9 months ago

Describe the bug?

While trying to update a world using the World Overwrite feature it was discovered that overwriting worlds is non-functional. Holding a world orb, placing my laser through the intended target of the overwrite, and clicking does present the overwrite option. Clicking the option doesn't seem to result in any action at all. Nothing is even logged in my log file.

I think the intention is for a confirmation prompt to ask if I'm sure I want to overwrite. It seems like that prompt is never being called upon. Since I can't confirm the overwrite, nothing happens.

This was originally replicated when trying to overwrite a world belonging to a group. However, for this bug, I also replicated the issue myself with world orbs I own. The behavior was identical in both cases.

To Reproduce

  1. Spawn two different world orbs.
  2. Grab the orb you intended to use as new data for the overwrite with your laser.
  3. Position your laser so it passes through the world orb you intended to overwrite.
  4. Click your primary button.
  5. Select "Overwrite [WORLD ORB NAME]" from the context menu

Expected behavior

Attempting to overwrite one world orb with another will trigger a confirmation choice in the context menu. When confirmed, the target world will be overwritten with the new world data from the held orb. Declining will cancel the action.

Screenshots

https://github.com/Yellow-Dog-Man/Resonite-Issues/assets/61102129/3d3d6558-c85b-4f04-a8b1-f9873ebc2459

Resonite Version Number

2023.11.15.1158

What Platforms does this occur on?

Windows

What headset if any do you use?

Oculus Queset Pro w/ Virtual Desktop, Desktop/Screen Mode

Log Files

DESKTOP-3NG8JGV - 2023.11.15.1158 - 2023-11-16 17_34_32.log

Additional Context

This feature isn't particularly well know so I imagine it's not often used. However, at least for our group's workflow, it's becoming somewhat essential.

We're using a pattern of Build World -> Publish -> Save new "Dev Branch" Copy -> Develop updates on "Dev Branch" -> Overwrite Published World w/ "Dev Branch" Copy

With this feature broken it unfortunately means we have to make changes directly in the published production world. We can get around the difficulties of this process by developing in another world, saving a slot in our inventory that's effectively the whole world root, and transplanting it into the production world.

This workaround can create tedious pain points though. Such as accidentally overriding Dynamic Variable values if we aren't mindful of Dynamic Variable Space names that might collide during the replacement.

Reporters

GitHub: @PointerOffset. Discord: @spexcat GitHub/Discord: @badhaloninja GitHub: @RileyGuy, Discord: BlueCyro

PointerOffset commented 9 months ago

I was digging into this more with @RileyGuy, attempting to make a mod to get around the issue for now. We discovered the nature of the bug is very different. It turns out the confirmation prompt is being spawned. However it's not spawning in the correct location in most cases.

Instead of not working at all, the Userspace Context Menu is spawning at [0,0,0] in Userspace making it seem like it did not spawn. In my case I was able to get the confirmation menu to come up consistently in the expected location with the following steps:

  1. Spawn two world orbs
  2. Grab one orb with a laser
  3. Position the grabbed orb behind the other orb so the laser passes through the other orb
  4. Click the primary button to open the context menu for overwrite
  5. Release the grabbed orb while the context menu is open.
  6. While the context menu is open, position yourself at least 1 meter away from the world orbs
  7. Click the "Overwrite" option in the context menu

The Userspace confirmation dialog will pop up as expected in front of the user.

PointerOffset commented 9 months ago

As an additional note: The same bug may be affecting other Userspace Context Menus. I am experiencing similar inconsistency with the confirmation dialog on removing SimpleAvatarProtection.

shiftyscales commented 9 months ago

Is this issue only occurring in desktop mode, @PointerOffset? I'd removed SimpleAvatarProtection without issue in VR the other day. The menu appeared in the expected place.

PointerOffset commented 9 months ago

I haven't tested it in VR yet but I'll give it a shot when I next have a chance. I replicated the SimpleAvatarProtection bug only in Desktop.

The SimpleAvatarProtection menu issue could be a different bug which is why I'm mentioning it in only in passing. I was able to reproduce it but @RileyGuy was not when he tried. However we suspect a connection since they're both userspace context menus and the behavior is similar.

The Overwrite confirmation bug did reproduce for me, @badhaloninja, and @RileyGuy. I'm actually uncertain if any of us got to try it in VR though so I'll see if it reproduces in VR too and get back to you.

PointerOffset commented 8 months ago

Apologies for not getting around to replicating this sooner in VR.

I have a video attached here. The bug still occurs, it's just slightly different. If you are holding the sphere when you click the overwrite button, you don't get the UserSpace context menu to confirm. If I let go of the sphere then click the overwrite button, the menu appears as expected.

https://github.com/Yellow-Dog-Man/Resonite-Issues/assets/61102129/087a4ec6-8eb0-43fb-ad61-aca82c7aad40

shiftyscales commented 8 months ago

I messed around in replicating this issue, and I believe I have a more specific replication case. It doesn't seem to directly depend on whether or not you are holding the orb, as I can replicate the same condition while not holding the orb as well.

It seems instead that the underlying issue is if the laser is still in contact with the world orb that was being held.

Hope there is enough to go off of for this issue now, @Frooxius.

https://github.com/Yellow-Dog-Man/Resonite-Issues/assets/54213390/cc5dc1ae-fb69-4a50-8dcf-d584facd2a71

SHIFTY-LAPTOP - 2024.1.3.1265 - 2024-01-08 14_53_24.log

shiftyscales commented 8 months ago

Thanks for following up, @PointerOffset.

gentlecolts commented 2 months ago

Ran into something that I think might another example of this same issue. Issue can occur with the save world options as well, requiring third person to interact with depending on your view orientation (and dash orientation?) when spawned:

image image image