1
0
mirror of https://github.com/ppy/osu.git synced 2026-05-30 03:11:18 +08:00
Commit Graph

6 Commits

  • Change ICarouselFilter interface return type rather than manual ToList
    I was hung up on keeping `IEnumerable` but there doesn't seem to be a
    good reason to do so.
  • Ensure carousel filters are manifested to lists at each step
    The original `IEnumerable` flow prioritised slight performance gains,
    but a filter's implementation could actually make this detrimental to
    overall performance.
    
    I noticed in passing that there were already potentially multiple
    enumerations, via `updateYPositions` and the final `ToList` call. Rather
    than faffing around, let's keep things simple and require lists.
    
    In benchmarking, the difference is (currently) negiligible. Slight
    improvement if anything.
  • Change equality to allow non-reference comparisons
    This is required to hold selection when beatmaps are updates, as one
    important case.
  • Disable masking of Carousel
    The default for carousels should be unmasked as their usage generally
    sees them overflowing outside their main usage area (see `bleed`
    variables).
  • Rename song select v2 classes and namespaces
    This aims to bring some conformity to naming to make it easier to
    understand component structure for new components.
    
    Renames are pulled out of the song select v2 changes and are more
    relevant there due to many new classes being added.
    
    - `V2` suffix is dropped, with v2 components being moved to a relevant V2 namespace.
    - Related classes have a prefix of the area they are used.
    - Experimenting with using partial/nested classes in the song select v2 implementation.
      Not committing to this yet but want to see how it plays out.
    - Moved base carousel components to a generic namespace to avoid confusion with actual beatmap carousel implementation.