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

Rework beatmap conversion process to use IBeatmap #2491

merged 18 commits into from May 10, 2018


2 participants

smoogipoo commented May 7, 2018


Significant changes:

  • WorkingBeatmap now exposes a GetPlayableBeatmap(RulesetInfo) method, which returns the converted beatmap with all mods applied. Previously this was done in RulesetContainer.
  • No more object-specific mods. e.g. IApplicableToHitObject<TObject> is now IApplicableToObject.
  • BeatmapConverter and BeatmapProcessor now take an IBeatmap constructor parameter, because some of them typically need to determine if the beatmap passed in is for the current ruleset or not, prior to conversion actually happening.

Currently broken:

  • Difficulty calculation - star difficulty is computed before a WorkingBeatmap becomes available during the import process. This process is wrong anyway.

@smoogipoo smoogipoo referenced this pull request May 7, 2018


Add mode-specific beatmap statistics #2492

1 of 1 task complete

This comment has been minimized.


peppy commented May 10, 2018

This is a pretty hard change to review, but everything seems to be in the right place. Let's go for it 👍 .


peppy approved these changes May 10, 2018

@peppy peppy merged commit 0afe33d into ppy:master May 10, 2018

1 check passed

continuous-integration/appveyor/pr AppVeyor build succeeded

@smoogipoo smoogipoo deleted the smoogipoo:beatmap-conversion-rework branch Jun 15, 2018

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment