Caeden117 / ChroMapper

GitHub repository for ChroMapper, the Unity-based map editor for Beat Saber.
https://cm.topc.at/dl
GNU General Public License v2.0
300 stars 86 forks source link

Prevent events from being placed/saved outside the time of the song #398

Closed aceofalmonds closed 1 year ago

aceofalmonds commented 2 years ago

Currently, when pasting events into a map, it is possible to place events outside the bounds of the song. These events are never reached, have no use, and prevent the map from being uploaded to sites like BeatSaver or to the game itself. Ideally, users should not be pasting events outside the bounds of the song; however, given how selection currently works, it is very easy to accidentally do.

Ideal fix: Events cannot be pasted (or placed) outside the bounds of a song's time. I don't believe any warning is necessary here (I cannot currently think of a reason to have an event outside the bounds of a song); any event placed outside the time is automatically deleted.

Strong fix: When saving, events placed outside of the bounds of the song are automatically deleted. Based on my knowledge of programming, this may be the easiest solution, and has the same effect as the ideal fix.

Okay fix: Add a button/widget/thing-a-user-can-manually-do that deletes any events outside the bounds of the song. If there is a reason that events should be saveable outside the bounds of the song, this would probably be the best fix. That said, this fix will require more support (in terms of documentation and help given to new users). If this is the selected solution, I would request a warning added when saving when events are outside the bounds of a song, with a recommendation that a user presses this button before saving (or that the button is available as part of this warning).

This primarily solves the problem of errors when uploading to BeatSaver and non-working songs when uploading to the game itself. While it is possible for users to fix these errors manually, it tends to be newer mappers who run into this problem, and those mappers have more trouble fixing the problem. Currently, individuals will provide advice/tech support on a one-at-a-time basis, but if events were not able to be saved outside the time signature, that would save frustration and time of both users and of supporters.

GalaxyMaster2 commented 2 years ago

Agree, this is something that should be fixed. I'm not exactly sure which way would be best, but this problem is common enough it's clear something should be done about it.

Caeden117 commented 2 years ago

At this point, with enough mappers using CM I agree this is something that should be fixed. I can't guarantee when I will resolve this myself, but PRs are always welcome.