Skip to content

Commit

Permalink
Misc: Round various internal map token values to sane amount of decimals
Browse files Browse the repository at this point in the history
  • Loading branch information
Piotrekol committed Oct 5, 2021
1 parent 8ad2321 commit 7b91d87
Show file tree
Hide file tree
Showing 3 changed files with 108 additions and 229 deletions.
218 changes: 0 additions & 218 deletions osu!StreamCompanion/Code/Helpers/BeatmapHelpers.cs

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,8 @@
using osu_StreamCompanion.Code.Misc;
using StreamCompanionTypes.Interfaces.Services;
using StreamCompanionTypes.Interfaces.Sources;
using Beatmap = StreamCompanionTypes.DataTypes.Beatmap;
using System;
using System.Globalization;

namespace osu_StreamCompanion.Code.Modules.MapDataReplacements.Map
{
Expand Down Expand Up @@ -37,7 +38,7 @@ public Task CreateTokensAsync(IMapSearchResult map, CancellationToken cancellati
var OsuFileLocationToken = _tokenSetter("osuFileLocation", string.Empty);
if (map.BeatmapsFound.Any())
{
dict = map.BeatmapsFound[0].GetTokens();
dict = GetTokens(map.BeatmapsFound[0]);

var osuLocation = _settings.Get<string>(_names.MainOsuDirectory);
var customSongsLocation = _settings.Get<string>(_names.SongsFolderLocation);
Expand All @@ -54,7 +55,7 @@ public Task CreateTokensAsync(IMapSearchResult map, CancellationToken cancellati
}
else
{
dict = ((Beatmap)null).GetTokens(true);
dict = GetTokens(null, true);
OsuFileLocationToken.Value = string.Empty;
}

Expand All @@ -65,5 +66,101 @@ public Task CreateTokensAsync(IMapSearchResult map, CancellationToken cancellati

return Task.CompletedTask;
}

private Dictionary<string, object> GetTokens(IBeatmap bm, bool empty = false)
{
Dictionary<string, object> dict;
if (bm == null || empty)
{
dict = new Dictionary<string, object>
{
{"titleRoman", null},
{"artistRoman", null},
{"titleUnicode", null},
{"artistUnicode", null},
{"mapArtistTitle", null},
{"mapArtistTitleUnicode", null},
{"mapDiff", null},
{"creator", null},
{"diffName", null},
{"mp3Name", null},
{"md5", null},
{"osuFileName", null},
{"maxBpm", null},
{"minBpm", null},
{"bpm", null},
{"mainBpm", null },
{"tags", null},
{"circles", null},
{"sliders", null},
{"spinners", null},
{"ar", null},
{"cs", null},
{"hp", null},
{"od", null},
{"sv", null},
{"starsNomod", null},
{"drainingtime", null},
{"totaltime", null},
{"previewtime", null},
{"mapid", null},
{"dl", null},
{"mapsetid", null},
{"threadid", null},
{"sl", null},
{"mode", null},
{"source", null},
{"dir", null},
};
}
else
{
dict = new Dictionary<string, object>
{
{"titleRoman", bm.TitleRoman},
{"artistRoman", bm.ArtistRoman},
{"titleUnicode", bm.TitleUnicode},
{"artistUnicode", bm.ArtistUnicode},
{"mapArtistTitle", string.Format("{0} - {1}", bm.ArtistRoman, bm.TitleRoman) },
{"mapArtistTitleUnicode", string.Format("{0} - {1}", bm.ArtistUnicode, bm.TitleUnicode) },
{"mapDiff", string.IsNullOrWhiteSpace(bm.DiffName)? "" : "[" + bm.DiffName + "]" },
{"creator", bm.Creator},
{"diffName", bm.DiffName},
{"mp3Name", bm.Mp3Name},
{"md5", bm.Md5},
{"osuFileName", bm.OsuFileName},
{"maxBpm", Math.Round(bm.MaxBpm, 2)},
{"minBpm", Math.Round(bm.MinBpm, 2)},
{"bpm", Math.Abs(bm.MinBpm - bm.MaxBpm) < double.Epsilon
? Math.Round(bm.MinBpm, 2).ToString(CultureInfo.InvariantCulture)
: string.Format(CultureInfo.InvariantCulture, "{0:0.##} - {1:0.##} ({2:0.##})", bm.MinBpm, bm.MaxBpm, bm.MainBpm)
},
{"mainBpm", Math.Round(bm.MainBpm, 2) },
{"tags", bm.Tags},
{"circles", bm.Circles},
{"sliders", bm.Sliders},
{"spinners", bm.Spinners},
{"ar", Math.Round(bm.ApproachRate, 2)},
{"cs", Math.Round(bm.CircleSize, 2)},
{"hp", Math.Round(bm.HpDrainRate, 2)},
{"od", Math.Round(bm.OverallDifficulty, 2)},
{"sv", Math.Round(bm.SliderVelocity ?? 0, 2)},
{"starsNomod", Math.Round(bm.StarsNomod, 2)},
{"drainingtime", bm.DrainingTime},
{"totaltime", bm.TotalTime},
{"previewtime", bm.PreviewTime},
{"dl", bm.MapLink},
{"threadid", bm.ThreadId},
{"sl", Math.Round(bm.StackLeniency ?? 0, 3)},
{"mode", bm.PlayMode.GetHashCode().ToString()},
{"source", bm.Source},
{"dir", bm.Dir},
};
}

dict["lb"] = Environment.NewLine;

return dict;
}
}
}
16 changes: 8 additions & 8 deletions plugins/ModsHandler/ModsHandler.cs
Original file line number Diff line number Diff line change
Expand Up @@ -62,15 +62,15 @@ public Task CreateTokensAsync(IMapSearchResult map, CancellationToken cancellati

_tokenSetter("mods", map.Mods?.ShownMods);
_tokenSetter("modsEnum", map.Mods?.Mods);
_tokenSetter("mAR", Math.Round(c["AR"], 2));
_tokenSetter("mCS", Math.Round(c["CS"], 2));
_tokenSetter("mOD", Math.Round(c["OD"], 2));
_tokenSetter("mHP", c["HP"], format: "{0:0.##}");
_tokenSetter("mStars", foundMap.Stars(map.PlayMode ?? PlayMode.Osu, mods), format: "{0:0.##}");
_tokenSetter("mAR", Math.Round(c["AR"], 2), format: "{0:0.##}");
_tokenSetter("mCS", Math.Round(c["CS"], 2), format: "{0:0.##}");
_tokenSetter("mOD", Math.Round(c["OD"], 2), format: "{0:0.##}");
_tokenSetter("mHP", Math.Round(c["HP"], 2), format: "{0:0.##}");
_tokenSetter("mStars", Math.Round(foundMap.Stars(map.PlayMode ?? PlayMode.Osu, mods), 3), format: "{0:0.##}");
_tokenSetter("mBpm", bpm);
_tokenSetter("mMaxBpm", c["MaxBpm"], format: "{0:0}");
_tokenSetter("mMinBpm", c["MinBpm"], format: "{0:0}");
_tokenSetter("mMainBpm", c["MainBpm"], format: "{0:0}");
_tokenSetter("mMaxBpm", Math.Round(c["MaxBpm"], 2), format: "{0:0}");
_tokenSetter("mMinBpm", Math.Round(c["MinBpm"], 2), format: "{0:0}");
_tokenSetter("mMainBpm", Math.Round(c["MainBpm"], 2), format: "{0:0}");
}
else
{
Expand Down

0 comments on commit 7b91d87

Please sign in to comment.