Yellow-Dog-Man / Resonite-Issues

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

Add an Option to Make World Read-only #2793

Closed stiefeljackal closed 1 month ago

stiefeljackal commented 2 months ago

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

At times, users or individual groups may want to make a world read-only to preserve the current state of said world. For example, the original Creator Jam worlds, original as in the same record, are usually never modified after the end of the event and deemed final. These worlds should never experience any world updates via a "Save Changes" action; any remixes done to them are created as a separate world record. Despite this, there were times were the original world was accidently saved after the event due to a group member accidently initiating a "Save Changes" action upon closing the session.

Describe the solution you'd like

The solution that I like to propose is adding the option to make a world read-only. When a world is read-only, the following should occur:

Describe alternatives you've considered

The user or group member that owns the world being really careful not to accidentally save the world when visiting it. This is currently the process that Creator Jam utilizes when visiting past worlds. However, this process is rather fragile to where accidental saves occurred.

Additional Context

Although I have only listed Creator Jam, I believe other users and groups can benefit from this as well.

I can see this being a huge benefit to those participating in competitions such as MMC where a world cannot be modified after a certain deadline. Allowing teams to mark a world as read-only will ease their minds knowing that the world cannot be accidently modified after the due date.

Whether a group wants to deprecate a world or simply want to protect the world from future updates, having this option will allow one to keep the world in its pristine state.

Requesters

StiefelJackal / Discord: stiefeljackal / GitHub: @stiefeljackal Rucio / Discord: rucio / GitHub: @bontebok Medra / Discord medravr / GitHub: @medravr


For Easy Discord Copy & Paste: @stiefeljackal, @rucio, @medravr

Frooxius commented 2 months ago

This should be relatively easy, we could just add it to the metadata as a flag. Though to be able to change this state (if set by accident), you'll still be able to edit the metadata, just not save the world itself while you're in it. Does that sound okay?

It'll be kinda like this! Except for worlds. image

stiefeljackal commented 2 months ago

This should be relatively easy, we could just add it to the metadata. Though to be able to change this state (if set by accident), you'll still be able to edit the metadata, just not save the world itself while you're in it. Does that sound okay?

It'll be kinda like this! Except for worlds. image

That should be perfectly fine as there should be a way to revert that state. I assumed you were going to add that in as well, so that is why I did not specify it in the issue. :)

Frooxius commented 2 months ago

Okay sounds good! I think this will be good addition, thanks!

stiefeljackal commented 2 months ago

You're welcome!

@Frooxius I do have a question regarding publishing as I know that also modifies the record metadata. If the world record is marked as read-only, should the world still be publishable? My thought is that it should be publishable.

Frooxius commented 2 months ago

@stiefeljackal Yeah, publishing also only modifies metadata.

The way I understand it, the "readonly" will only apply to the actual "content" of the world itself, but the metadata could still be updated.

stiefeljackal commented 2 months ago

@Frooxius Yep! That understanding is exactly right. I was just thinking ahead of possible questions that might be asked.

Thank you for answering.

Foxxboxx commented 2 months ago

This is a wonderful idea! I'm always super paranoid about visiting previous MMC worlds or Creator Jam worlds and accidently saving them. Great suggestion @stiefeljackal

Nytra commented 2 months ago

Somewhat related: https://github.com/Yellow-Dog-Man/Resonite-Issues/issues/606

Frooxius commented 1 month ago

I've added this in 2024.10.4.923! Let me know how it works for you, if there's any issues we can tweak the behavior, but I'll close this one now. Thanks!