Exemplo n.º 1
0
        public IMapSearchResult FindBeatmap(IMapSearchArgs searchArgs, CancellationToken cancellationToken)
        {
            if (!Started)
            {
                return(null);
            }

            if (searchArgs == null)
            {
                throw new ArgumentException(nameof(searchArgs));
            }

            var result = new MapSearchResult(searchArgs);

            if (!Started || !_settings.Get <bool>(_names.EnableMemoryScanner))
            {
                return(result);
            }

            var mods = ReadMods(searchArgs);

            result.Mods = GetModsEx(mods);

            Logger?.Log($">Got mods from memory: {result.Mods.ShownMods}({mods})", LogLevel.Debug);

            Mods eMods = result.Mods?.Mods ?? Mods.Omod;

            if (Helpers.IsInvalidCombination(eMods))
            {
                Logger?.Log("Sanity check tiggered - invalidating last result", LogLevel.Debug);
                result.Mods = null;
            }

            return(result);
        }
        public async Task CreateTokensAsync(IMapSearchResult mapSearchResult, CancellationToken cancellationToken)
        {
            if (IsMainProcessor)
            {
                SetSkinTokens();
            }

            if (mapSearchResult.SearchArgs.EventType != OsuEventType.MapChange)
            {
                return;
            }

            _mods     = mapSearchResult.Mods?.Mods ?? Mods.Omod;
            _playMode = mapSearchResult.PlayMode ?? PlayMode.Osu;
            if (!IsMainProcessor)
            {
                return;
            }

            _strainsToken.Value = (await mapSearchResult.GetPpCalculator(cancellationToken))?.CalculateStrains(cancellationToken, _settings.Get <int?>(StrainsAmount));
        }
        public async Task CreateTokensAsync(IMapSearchResult mapSearchResult, CancellationToken cancellationToken)
        {
            if (IsMainProcessor)
            {
                SetSkinTokens();
            }

            if (mapSearchResult.SearchArgs.EventType != OsuEventType.MapChange)
            {
                return;
            }

            _mods     = mapSearchResult.Mods?.Mods ?? Mods.Omod;
            _playMode = mapSearchResult.PlayMode ?? PlayMode.Osu;
            if (!IsMainProcessor)
            {
                return;
            }

            _beatmapRankedStatusToken.Value = OsuMemoryData.Beatmap.Status;
            var ppCalculator = await mapSearchResult.GetPpCalculator(cancellationToken);

            _firstHitObjectTimeToken.Value = ppCalculator?.FirstHitObjectTime();
            _MapBreaksToken.Value          = ppCalculator?.Breaks().ToList();
            var mapTimingPoints = ppCalculator?.TimingPoints().ToList();

            _MapTimingPointsToken.Value = mapTimingPoints;
            if (mapTimingPoints == null)
            {
                _reversedMapTimingPoints = new List <TimingPoint>();
            }
            else
            {
                mapTimingPoints = mapTimingPoints.ToList();
                mapTimingPoints.Reverse();
                _reversedMapTimingPoints = mapTimingPoints;
            }

            _strainsToken.Value = ppCalculator?.CalculateStrains(cancellationToken, _settings.Get <int?>(StrainsAmount));
        }