Skip to content

Refactor the singer stage structure. #2286

Open
@andy840119

Description

@andy840119

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.

Metadata

Metadata

Assignees

Labels

code qualityImprove code quality.encoder/decoderAbout beatmap format decode/encoder

Type

No type

Projects

Status

Ready

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions