ppy / osu

rhythm is just a *click* away!
https://osu.ppy.sh
MIT License
15.13k stars 2.25k forks source link

Allow to jump to a specific timestamp via bottom bar in editor #28511

Closed bdach closed 3 months ago

bdach commented 3 months ago

Apparently this is a stable feature and is helpful for modding / dealing with timestamps outside of web.

https://github.com/ppy/osu/assets/20418176/bb501514-fe54-4f2b-b0d1-cb5272184cd8

OliBomby commented 3 months ago

To match stable there should be a few changes:

bdach commented 3 months ago
  • Timestamps with selected objects should be allowed as input and select the referenced object in the editor. e.g. 10:44:721 (1) - selects object with combo number 1 at the specified time.

  • The time and selection in the editor should update on change of the textbox instead of on commit.

  • Incomplete timestamps should be allowed. e.g. 10:44 goes to 10 minutes 44 seconds.

I've made this work although I'm not completely sold on the third thing being a thing. stable's timestamp parsing is very ad-hoc and hand-rolled so I did my own variant of it without looking at stable source because just glancing at it I don't trust it to be very robust or well-defined.

OliBomby commented 3 months ago

I've made this work although I'm not completely sold on the third thing being a thing. stable's timestamp parsing is very ad-hoc and hand-rolled so I did my own variant of it without looking at stable source because just glancing at it I don't trust it to be very robust or well-defined.

I think your time stamp parser behaviour is pretty good. However I forgot to mention one case in stable which is important to have: If you input a single integer, e.g. 6000, without : it should get interpreted as a total milisecond value. This is useful because such time representations often get used internally or in external tools. Once you implement that, I think its perfect.