namespace SameBeat.Domain.Enumy; /// /// Jedyne zrodlo prawdy o tym, ile slotow ma kazdy uklad sceny. Host nie moze przypisac slotu /// o numerze wiekszym niz dopuszcza aktualny uklad -- ta walidacja (oraz korekta "sierocych" /// przypisan po zmianie ukladu) zawsze przechodzi przez ten rejestr, zeby liczby nie rozjechaly /// sie miedzy warstwami. /// public static class RejestrSlotowSceny { private static readonly Dictionary LiczbaSlotow = new() { [UkladSceny.Grid4] = 4, [UkladSceny.Grid6] = 6, [UkladSceny.Grid9] = 9, [UkladSceny.BigSide] = 4, [UkladSceny.MainPlus4] = 5, [UkladSceny.Fullscreen] = 1 }; /// Liczba dostepnych slotow dla danego ukladu (numery slotow to 1..LiczbaSlotow). public static int PobierzLiczbeSlotow(UkladSceny uklad) => LiczbaSlotow[uklad]; /// Czy dany numer slotu miesci sie w zakresie dopuszczalnym przez uklad. public static bool CzyNumerSlotuJestPoprawny(UkladSceny uklad, int numerSlotu) => numerSlotu >= 1 && numerSlotu <= PobierzLiczbeSlotow(uklad); }