Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Refactor the singer stage structure. #2286

Open
andy840119 opened this issue Sep 21, 2024 · 0 comments
Open

Refactor the singer stage structure. #2286

andy840119 opened this issue Sep 21, 2024 · 0 comments
Assignees
Labels
code quality Improve code quality. encoder/decoder About beatmap format decode/encoder

Comments

@andy840119
Copy link
Member

andy840119 commented Sep 21, 2024

Currently Singer and SingerState inherit the ISinger, but SingerState is not a part of singer.
SingerState is designed to describe the state of the singer (e.g. happy, yell, soft, sad...), but not very sure SingerState is needed because:

  1. Singer should be enough now.
  2. It might make the editor too complex if add the singer state.

But before deciding to remove the SingerState, maybe some refactoring job can be done first.

in Lyric:

  1. BindableList<ElementId> SingerIdsBindable should be BindableDictioary<ElementId, ElementId[]> SingerIdsBindable

in SingerInfo:

  1. Record the Singer and SingerState can be two different list.
  2. Add/remove singer/singer info logic should be moved into the change handler. singer info should only focus on store the singer's info.
  3. Add checks for the singer's info.

in SingerState:

  1. Remove the ISinger interface.

in ISinger:

  1. Remove this interface.
@andy840119 andy840119 added code quality Improve code quality. encoder/decoder About beatmap format decode/encoder labels Sep 21, 2024
@andy840119 andy840119 self-assigned this Sep 21, 2024
@andy840119 andy840119 moved this to Ready in What's next Sep 21, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
code quality Improve code quality. encoder/decoder About beatmap format decode/encoder
Projects
Status: Ready
Development

No branches or pull requests

1 participant