Example #1
0
        private void load(OnlinePlayBeatmapAvailabilityTracker beatmapTracker)
        {
            availability.BindTo(beatmapTracker.Availability);

            availability.BindValueChanged(_ => updateState());
            Enabled.BindValueChanged(_ => updateState(), true);
        }
Example #2
0
        public void SetUp() => Schedule(() =>
        {
            beatmaps.AllowImport = new TaskCompletionSource <bool>();

            testBeatmapFile = TestResources.GetQuickTestBeatmapForImport();

            testBeatmapInfo = getTestBeatmapInfo(testBeatmapFile);
            testBeatmapSet  = testBeatmapInfo.BeatmapSet;

            var existing = beatmaps.QueryBeatmapSet(s => s.OnlineID == testBeatmapSet.OnlineID);
            if (existing != null)
            {
                beatmaps.Delete(existing);
            }

            selectedItem.Value = new PlaylistItem
            {
                Beatmap = { Value = testBeatmapInfo },
                Ruleset = { Value = testBeatmapInfo.Ruleset },
            };

            Child = availabilityTracker = new OnlinePlayBeatmapAvailabilityTracker
            {
                SelectedItem = { BindTarget = selectedItem, }
            };
        });
Example #3
0
 protected RoomSubScreen()
 {
     AddRangeInternal(new Drawable[]
     {
         BeatmapAvailabilityTracker = new OnlinePlayBeatmapAvailabilityTracker
         {
             SelectedItem = { BindTarget = SelectedItem }
         },
         new Container
         {
             Anchor           = Anchor.BottomLeft,
             Origin           = Anchor.BottomLeft,
             Depth            = float.MinValue,
             RelativeSizeAxes = Axes.X,
             AutoSizeAxes     = Axes.Y,
             Padding          = new MarginPadding {
                 Horizontal = HORIZONTAL_OVERFLOW_PADDING
             },
             Child = userModsSelectOverlay = new UserModSelectOverlay
             {
                 SelectedMods = { BindTarget = UserMods },
                 IsValidMod   = _ => false
             }
         },
     });
 }
Example #4
0
        protected RoomSubScreen()
        {
            Padding = new MarginPadding {
                Top = Header.HEIGHT
            };

            AddRangeInternal(new Drawable[]
            {
                new Box
                {
                    RelativeSizeAxes = Axes.Both,
                    Colour           = Color4Extensions.FromHex(@"3e3a44") // This is super temporary.
                },
                BeatmapAvailabilityTracker = new OnlinePlayBeatmapAvailabilityTracker
                {
                    SelectedItem = { BindTarget = SelectedItem }
                },
                new Container
                {
                    Anchor           = Anchor.BottomLeft,
                    Origin           = Anchor.BottomLeft,
                    Depth            = float.MinValue,
                    RelativeSizeAxes = Axes.X,
                    AutoSizeAxes     = Axes.Y,
                    Padding          = new MarginPadding {
                        Horizontal = HORIZONTAL_OVERFLOW_PADDING
                    },
                    Child = userModsSelectOverlay = new UserModSelectOverlay
                    {
                        SelectedMods = { BindTarget = UserMods },
                        IsValidMod   = _ => false
                    }
                },
            });
        }
        private void load(GameHost host, AudioManager audio)
        {
            Dependencies.Cache(rulesets = new RulesetStore(ContextFactory));
            Dependencies.Cache(beatmaps = new BeatmapManager(LocalStorage, ContextFactory, rulesets, null, audio, host, Beatmap.Default));
            beatmaps.Import(TestResources.GetQuickTestBeatmapForImport()).Wait();

            Add(beatmapTracker = new OnlinePlayBeatmapAvailabilityTracker
            {
                SelectedItem = { BindTarget = selectedItem }
            });

            Dependencies.Cache(beatmapTracker);
        }
Example #6
0
        public void TestTrackerRespectsChecksum()
        {
            AddStep("allow importing", () => beatmaps.AllowImport.SetResult(true));

            AddStep("import altered beatmap", () =>
            {
                beatmaps.Import(TestResources.GetTestBeatmapForImport(true)).Wait();
            });
            addAvailabilityCheckStep("state still not downloaded", BeatmapAvailability.NotDownloaded);

            AddStep("recreate tracker", () => Child = availabilityTracker = new OnlinePlayBeatmapAvailabilityTracker
            {
                SelectedItem = { BindTarget = selectedItem }
            });
            addAvailabilityCheckStep("state not downloaded as well", BeatmapAvailability.NotDownloaded);
        }
Example #7
0
        /// <summary>
        /// Creates a new <see cref="RoomSubScreen"/>.
        /// </summary>
        /// <param name="room">The <see cref="Room"/>.</param>
        /// <param name="allowEdit">Whether to allow editing room settings post-creation.</param>
        protected RoomSubScreen(Room room, bool allowEdit = true)
        {
            Room           = room;
            this.allowEdit = allowEdit;

            Padding = new MarginPadding {
                Top = Header.HEIGHT
            };

            beatmapAvailabilityTracker = new OnlinePlayBeatmapAvailabilityTracker
            {
                SelectedItem = { BindTarget = SelectedItem }
            };

            RoomId.BindTo(room.RoomID);
        }
Example #8
0
        public OnlinePlayTestSceneDependencies()
        {
            SelectedRoom            = new Bindable <Room>();
            RoomManager             = CreateRoomManager();
            OngoingOperationTracker = new OngoingOperationTracker();
            AvailabilityTracker     = new OnlinePlayBeatmapAvailabilityTracker();

            dependencies = new DependencyContainer(new CachedModelDependencyContainer <Room>(null)
            {
                Model = { BindTarget = SelectedRoom }
            });

            CacheAs(SelectedRoom);
            CacheAs(RoomManager);
            CacheAs(OngoingOperationTracker);
            CacheAs(AvailabilityTracker);
            CacheAs(new OverlayColourProvider(OverlayColourScheme.Plum));
        }
Example #9
0
        public OnlinePlayTestSceneDependencies()
        {
            SelectedRoom            = new Bindable <Room>();
            RoomManager             = CreateRoomManager();
            Filter                  = new Bindable <FilterCriteria>(new FilterCriteria());
            OngoingOperationTracker = new OngoingOperationTracker();
            AvailabilityTracker     = new OnlinePlayBeatmapAvailabilityTracker();

            dependencies = new DependencyContainer(new CachedModelDependencyContainer <Room>(null)
            {
                Model = { BindTarget = SelectedRoom }
            });

            CacheAs(SelectedRoom);
            CacheAs(RoomManager);
            CacheAs(Filter);
            CacheAs(OngoingOperationTracker);
            CacheAs(AvailabilityTracker);
        }
Example #10
0
        public void TestTrackerRespectsChecksum()
        {
            AddStep("allow importing", () => beatmaps.AllowImport.SetResult(true));
            AddStep("import beatmap", () => beatmaps.Import(testBeatmapFile).WaitSafely());
            addAvailabilityCheckStep("initially locally available", BeatmapAvailability.LocallyAvailable);

            AddStep("import altered beatmap", () =>
            {
                beatmaps.Import(TestResources.GetTestBeatmapForImport(true)).WaitSafely();
            });
            addAvailabilityCheckStep("state not downloaded", BeatmapAvailability.NotDownloaded);

            AddStep("recreate tracker", () => Child = availabilityTracker = new OnlinePlayBeatmapAvailabilityTracker
            {
                SelectedItem = { BindTarget = selectedItem }
            });
            addAvailabilityCheckStep("state not downloaded as well", BeatmapAvailability.NotDownloaded);

            AddStep("reimport original beatmap", () => beatmaps.Import(TestResources.GetQuickTestBeatmapForImport()).WaitSafely());
            addAvailabilityCheckStep("locally available after re-import", BeatmapAvailability.LocallyAvailable);
        }
Example #11
0
        public void SetUp() => Schedule(() =>
        {
            beatmaps.AllowImport = new TaskCompletionSource <bool>();

            testBeatmapFile = TestResources.GetQuickTestBeatmapForImport();

            testBeatmapInfo = getTestBeatmapInfo(testBeatmapFile);
            testBeatmapSet  = testBeatmapInfo.BeatmapSet;

            Realm.Write(r => r.RemoveAll <BeatmapSetInfo>());
            Realm.Write(r => r.RemoveAll <BeatmapInfo>());

            selectedItem.Value = new PlaylistItem
            {
                Beatmap   = { Value = testBeatmapInfo },
                RulesetID = testBeatmapInfo.Ruleset.OnlineID,
            };

            Child = availabilityTracker = new OnlinePlayBeatmapAvailabilityTracker
            {
                SelectedItem = { BindTarget = selectedItem, }
            };
        });