diff --git a/assets/jsons/bs-versions.json b/assets/jsons/bs-versions.json index 6484682a..a1fa8659 100644 --- a/assets/jsons/bs-versions.json +++ b/assets/jsons/bs-versions.json @@ -598,8 +598,7 @@ "ReleaseURL": "https://steamcommunity.com/games/620980/announcements/detail/6169409105101272202", "ReleaseImg": "https://cdn.akamai.steamstatic.com/steamcommunity/public/images/clans/32055887/c328e407367e9914abaf92f609501877ee5abb63.png", "ReleaseDate": "1680623885", - "year": "2023", - "recommended": true + "year": "2023" }, { "BSVersion": "1.29.4", @@ -700,7 +699,7 @@ "ReleaseDate": "1708091473", "year": "2024" }, - { + { "BSVersion": "1.35.0", "BSManifest": "1490986193481243578", "OculusBinaryId": "6720809361352119", @@ -708,5 +707,85 @@ "ReleaseImg": "https://clan.cloudflare.steamstatic.com/images//32055887/9a141be5c44ca6fc81551a2c7e7f28407df413ed.png", "ReleaseDate": "1709831174", "year": "2024" + }, + { + "BSVersion": "1.36.0", + "BSManifest": "8533509040167838423", + "OculusBinaryId": "6863072637125790", + "ReleaseURL": "https://store.steampowered.com/news/app/620980/view/4205873192610459250", + "ReleaseImg": "https://clan.akamai.steamstatic.com/images//32055887/b8bd8a050e2bc3903cf18a277c5489ade01f7e75.png", + "ReleaseDate": "1712681263", + "year": "2024" + }, + { + "BSVersion": "1.36.2", + "BSManifest": "4832237377879752064", + "OculusBinaryId": "6983660338400352", + "ReleaseURL": "https://store.steampowered.com/news/app/620980/view/4181105931135110118", + "ReleaseImg": "https://clan.cloudflare.steamstatic.com/images//32055887/74541417f14dee210bcfd89eefeabd7c0cc27c7d.png", + "ReleaseDate": "1715008020", + "year": "2024" + }, + { + "BSVersion": "1.37.0", + "BSManifest": "7270690075584855288", + "OculusBinaryId": "7062062833893435", + "ReleaseURL": "https://store.steampowered.com/news/app/620980/view/4161968170153497460", + "ReleaseImg": "https://clan.akamai.steamstatic.com/images//32055887/f82d34c7582137a6748a28c5b02670ff4b235356.png", + "ReleaseDate": "1717513346", + "year": "2024" + }, + { + "BSVersion": "1.37.1", + "BSManifest": "9129356330007601179", + "OculusBinaryId": "7313068492126200", + "ReleaseURL": "https://steamcommunity.com/games/620980/announcements/detail/4253168598913260422", + "ReleaseImg": "https://clan.akamai.steamstatic.com/images/32055887/039be718c1494f948257cd5b09f0082986484a58.png", + "ReleaseDate": "1720710529", + "year": "2024" + }, + { + "BSVersion": "1.37.2", + "BSManifest": "6848299977215652352", + "OculusBinaryId": "7438773609555687", + "ReleaseURL": "https://steamcommunity.com/games/620980/announcements/detail/4349999161850643744", + "ReleaseImg": "https://clan.akamai.steamstatic.com/images/32055887/7c03af6d12fad23f1d439666d4be86b492d40003.png", + "ReleaseDate": "1722945814", + "year": "2024" + }, + { + "BSVersion": "1.37.3", + "BSManifest": "5834150512217183366", + "OculusBinaryId": "7553569971409383", + "ReleaseURL": "https://steamcommunity.com/games/620980/announcements/detail/6808965920900622902", + "ReleaseImg": "https://clan.akamai.steamstatic.com/images/32055887/a1c9a6737cc5182fca8cddc7c8088eda6dd4d82d.png", + "ReleaseDate": "1724061712", + "year": "2024" + }, + { + "BSVersion": "1.37.4", + "BSManifest": "7585106640515547731", + "OculusBinaryId": "7630971613669218", + "ReleaseURL": "https://steamcommunity.com/games/620980/announcements/detail/4601078012425941968", + "ReleaseImg": "https://clan.akamai.steamstatic.com/images/32055887/23e6e6f219a56d2f9ea4a27b560c54ac1214aec3.png", + "ReleaseDate": "1725548547", + "year": "2024" + }, + { + "BSVersion": "1.37.5", + "BSManifest": "3122533396458693889", + "OculusBinaryId": "7685108391588873", + "ReleaseDate": "1725628356", + "year": "2024" + }, + { + "BSVersion": "1.38.0", + "BSManifest": "3482902979520746178", + "OculusBinaryId": "7834818833284494", + "ReleaseURL": "https://steamcommunity.com/games/620980/announcements/detail/4669760442595134838", + "ReleaseImg": "https://clan.akamai.steamstatic.com/images/32055887/57cfa043407c091e67b7e0a8ae86fe5590deae33.png", + "ReleaseDate": "1728399815", + "year": "2024", + "recommended": true } -] +] \ No newline at end of file diff --git a/assets/jsons/translations/de.json b/assets/jsons/translations/de.json index 10e276c5..7fd34fef 100644 --- a/assets/jsons/translations/de.json +++ b/assets/jsons/translations/de.json @@ -750,48 +750,48 @@ "accuracy": "Präzision", "balanced": "Ausgeglichen", "challenge": "Herausforderung", - "dancestyle": "Tanz", + "dance-style": "Tanz", "fitness": "Fitness", "speed": "Geschwindigkeit", "tech": "Tech" }, "map-styles": { - "dance": "Tanz", - "swing": "Swing", - "nightcore": "Nightcore", - "folk": "Folk", - "family": "Familie", - "ambient": "umgebung", - "funk": "Funk", - "jazz": "Jazz", - "soul": "Soul", - "speedcore": "Speedcore", - "punk": "Punk", - "rb": "R&B", - "holiday": "Urlaub", - "vocaloid": "Vokaloid", - "jrock": "J-Rock", - "trance": "Trance", - "drumbass": "Basstrommel", - "comedy": "Komödie", - "instrumental": "Instrumental", - "hardcore": "Hardcore", - "kpop": "K-Pop", - "indie": "Indie", - "techno": "Techno", - "house": "House", - "game": "Videospiele", - "film": "Filme", - "alt": "Alternativ", - "dubstep": "Dubstep", - "metal": "Metal", - "anime": "Anime", - "hiphop": "HipHop", - "jpop": "J-Pop", - "rock": "Rock", - "pop": "Pop", - "electronic": "Elektronisch", - "classical-orchestral": "Klassisch & Orchestra" + "dance": "tanz", + "swing": "swing", + "nightcore": "nightcore", + "folk-acoustic": "folk & akustisch", + "kids-family": "kinder & familie", + "ambient": "ambient", + "funk-disco": "funk & disco", + "jazz": "jazz", + "soul": "soul", + "speedcore": "speedcore", + "punk": "punk", + "rb": "r&b", + "holiday": "urlaub", + "vocaloid": "vocaloid", + "j-rock": "j-rock", + "trance": "trance", + "drum-and-bass": "drum & bass", + "comedy-meme": "komödie & meme", + "instrumental": "instrumental", + "hardcore": "hardcore", + "k-pop": "k-pop", + "indie": "indie", + "techno": "techno", + "house": "house", + "video-game-soundtrack": "videospiel", + "tv-movie-soundtrack": "TV & film", + "alternative": "alternativ", + "dubstep": "dubstep", + "metal": "metal", + "anime": "anime", + "hip-hop-rap": "hip hop & rap", + "j-pop": "j-pop", + "rock": "rock", + "pop": "pop", + "electronic": "elektronisch", + "classical-orchestral": "Klassisch & Orchestral" }, "map-specificities": { "automapper": "KI", diff --git a/assets/jsons/translations/en.json b/assets/jsons/translations/en.json index 109ed3cb..bd128c29 100644 --- a/assets/jsons/translations/en.json +++ b/assets/jsons/translations/en.json @@ -750,7 +750,7 @@ "accuracy": "accuracy", "balanced": "balanced", "challenge": "challenge", - "dancestyle": "dance", + "dance-style": "dance", "fitness": "fitness", "speed": "speed", "tech": "tech" @@ -759,10 +759,10 @@ "dance": "dance", "swing": "swing", "nightcore": "nightcore", - "folk": "folk", - "family": "family", + "folk-acoustic": "folk & acoustic", + "kids-family": "kids & family", "ambient": "ambient", - "funk": "funk", + "funk-disco": "funk & disco", "jazz": "jazz", "soul": "soul", "speedcore": "speedcore", @@ -770,24 +770,24 @@ "rb": "r&b", "holiday": "holiday", "vocaloid": "vocaloid", - "jrock": "j-rock", + "j-rock": "j-rock", "trance": "trance", - "drumbass": "drum & bass", - "comedy": "comedy", + "drum-and-bass": "drum & bass", + "comedy-meme": "comedy & meme", "instrumental": "instrumental", "hardcore": "hardcore", - "kpop": "k-pop", + "k-pop": "k-pop", "indie": "indie", "techno": "techno", "house": "house", - "game": "video game", - "film": "film", - "alt": "alternative", + "video-game-soundtrack": "video game", + "tv-movie-soundtrack": "TV & film", + "alternative": "alternative", "dubstep": "dubstep", "metal": "metal", "anime": "anime", - "hiphop": "hiphop", - "jpop": "j-pop", + "hip-hop-rap": "hip hop & rap", + "j-pop": "j-pop", "rock": "rock", "pop": "pop", "electronic": "electronic", diff --git a/assets/jsons/translations/es.json b/assets/jsons/translations/es.json index 9edd4163..79e66f08 100644 --- a/assets/jsons/translations/es.json +++ b/assets/jsons/translations/es.json @@ -750,19 +750,19 @@ "accuracy": "precisión", "balanced": "equilibrado", "challenge": "desafío", - "dancestyle": "baile", + "dance-style": "baile", "fitness": "fitness", "speed": "speed", "tech": "tech" }, "map-styles": { - "dance": "baile", + "dance": "danza", "swing": "swing", "nightcore": "nightcore", - "folk": "folk", - "family": "familia", - "ambient": "ambiente", - "funk": "funk", + "folk-acoustic": "folk & acústico", + "kids-family": "niños & familia", + "ambient": "ambiental", + "funk-disco": "funk & disco", "jazz": "jazz", "soul": "soul", "speedcore": "speedcore", @@ -770,28 +770,28 @@ "rb": "r&b", "holiday": "vacaciones", "vocaloid": "vocaloid", - "jrock": "j-rock", + "j-rock": "j-rock", "trance": "trance", - "drumbass": "drum & bass", - "comedy": "comedia", + "drum-and-bass": "drum & bass", + "comedy-meme": "comedia & meme", "instrumental": "instrumental", "hardcore": "hardcore", - "kpop": "k-pop", + "k-pop": "k-pop", "indie": "indie", - "techno": "tecno", + "techno": "techno", "house": "house", - "game": "videojuego", - "film": "film", - "alt": "alternativa", + "video-game-soundtrack": "videojuego", + "tv-movie-soundtrack": "TV & cine", + "alternative": "alternativo", "dubstep": "dubstep", "metal": "metal", "anime": "anime", - "hiphop": "hiphop", - "jpop": "j-pop", + "hip-hop-rap": "hip hop & rap", + "j-pop": "j-pop", "rock": "rock", "pop": "pop", - "electronic": "electrónico", - "classical-orchestral": "Clásico y orquestal" + "electronic": "electrónica", + "classical-orchestral": "Clásica & Orquestal" }, "map-specificities": { "automapper": "IA", diff --git a/assets/jsons/translations/fr.json b/assets/jsons/translations/fr.json index 998080b9..364d9da3 100644 --- a/assets/jsons/translations/fr.json +++ b/assets/jsons/translations/fr.json @@ -751,48 +751,48 @@ "accuracy": "précision", "balanced": "équilibrée", "challenge": "challenge", - "dancestyle": "dance", + "dance-style": "dance", "fitness": "fitness", "speed": "vitesse", "tech": "tech" }, "map-styles": { - "dance": "dance", + "dance": "danse", "swing": "swing", "nightcore": "nightcore", - "folk": "folk", - "family": "famille", - "ambient": "ambiante", - "funk": "funk", + "folk-acoustic": "folk & acoustique", + "kids-family": "enfants & famille", + "ambient": "ambiant", + "funk-disco": "funk & disco", "jazz": "jazz", "soul": "soul", "speedcore": "speedcore", "punk": "punk", "rb": "r&b", - "holiday": "vacance", + "holiday": "vacances", "vocaloid": "vocaloid", - "jrock": "j-rock", + "j-rock": "j-rock", "trance": "trance", - "drumbass": "drum & bass", - "comedy": "comédie", + "drum-and-bass": "drum & bass", + "comedy-meme": "comédie & meme", "instrumental": "instrumental", "hardcore": "hardcore", - "kpop": "k-pop", - "indie": "indé", + "k-pop": "k-pop", + "indie": "indie", "techno": "techno", "house": "house", - "game": "jeu vidéo", - "film": "film", - "alt": "alternative", + "video-game-soundtrack": "jeu vidéo", + "tv-movie-soundtrack": "TV & film", + "alternative": "alternatif", "dubstep": "dubstep", - "metal": "metal", + "metal": "métal", "anime": "anime", - "hiphop": "hiphop", - "jpop": "j-pop", + "hip-hop-rap": "hip hop & rap", + "j-pop": "j-pop", "rock": "rock", "pop": "pop", "electronic": "électronique", - "classical-orchestral": "classique & orchestrale" + "classical-orchestral": "Classique & Orchestral" }, "map-specificities": { "automapper": "IA", diff --git a/assets/jsons/translations/ja.json b/assets/jsons/translations/ja.json index e3c3c510..327c253e 100644 --- a/assets/jsons/translations/ja.json +++ b/assets/jsons/translations/ja.json @@ -759,39 +759,39 @@ "dance": "ダンス", "swing": "スウィング", "nightcore": "ナイトコア", - "folk": "フォーク", - "family": "ファミリー", + "folk-acoustic": "フォーク & アコースティック", + "kids-family": "キッズ & ファミリー", "ambient": "アンビエント", - "funk": "ファンク", + "funk-disco": "ファンク & ディスコ", "jazz": "ジャズ", "soul": "ソウル", - "speedcore": "スピードコア ", + "speedcore": "スピードコア", "punk": "パンク", "rb": "r&b", - "holiday": "休日", + "holiday": "ホリデー", "vocaloid": "ボーカロイド", - "jrock": "j-rock", + "j-rock": "J-ロック", "trance": "トランス", - "drumbass": "ドラムンベース", - "comedy": "コメディ", - "instrumental": "器楽", + "drum-and-bass": "ドラム & ベース", + "comedy-meme": "コメディ & ミーム", + "instrumental": "インストゥルメンタル", "hardcore": "ハードコア", - "kpop": "k-pop", + "k-pop": "k-pop", "indie": "インディー", "techno": "テクノ", - "house": "家", - "game": "ビデオゲーム", - "film": "映画音楽", - "alt": "オルタナティヴ", + "house": "ハウス", + "video-game-soundtrack": "ゲーム音楽", + "tv-movie-soundtrack": "TV & 映画", + "alternative": "オルタナティブ", "dubstep": "ダブステップ", "metal": "メタル", "anime": "アニメ", - "hiphop": "ヒップポップ", - "jpop": "j-pop", + "hip-hop-rap": "ヒップホップ & ラップ", + "j-pop": "J-ポップ", "rock": "ロック", "pop": "ポップ", "electronic": "エレクトロニック", - "classical-orchestral": "Classical & Orchestral" + "classical-orchestral": "クラシック & オーケストラ" }, "map-specificities": { "automapper": "AI", diff --git a/assets/jsons/translations/ru.json b/assets/jsons/translations/ru.json index fca856f2..37efcdd7 100644 --- a/assets/jsons/translations/ru.json +++ b/assets/jsons/translations/ru.json @@ -749,7 +749,7 @@ "accuracy": "точность", "balanced": "баланс", "challenge": "испытание", - "dancestyle": "танец", + "dance-style": "танец", "fitness": "фитнес", "speed": "скорость", "tech": "техника" @@ -758,36 +758,36 @@ "dance": "танец", "swing": "свинг", "nightcore": "найткор", - "folk": "народные", - "family": "семейные", + "folk-acoustic": "фолк и акустика", + "kids-family": "дети и семья", "ambient": "эмбиент", - "funk": "фанк", + "funk-disco": "фанк и диско", "jazz": "джаз", "soul": "соул", "speedcore": "спидкор", "punk": "панк", - "rb": "ар-н-би", - "holiday": "праздник", - "vocaloid": "вокалоиды", - "jrock": "джей-рок", + "rb": "r&b", + "holiday": "праздники", + "vocaloid": "вокалоид", + "j-rock": "джей-рок", "trance": "транс", - "drumbass": "драм-н-бейс", - "comedy": "комедия", - "instrumental": "инструментальные", + "drum-and-bass": "драм-н-бейс", + "comedy-meme": "комедия и мемы", + "instrumental": "инструментал", "hardcore": "хардкор", - "kpop": "кей-поп", + "k-pop": "k-pop", "indie": "инди", "techno": "техно", "house": "хаус", - "game": "видеоигры", - "film": "фильмы", - "alt": "альтернативные", - "dubstep": "дапстеп", + "video-game-soundtrack": "видеоигра", + "tv-movie-soundtrack": "ТВ и кино", + "alternative": "альтернатива", + "dubstep": "дабстеп", "metal": "метал", "anime": "аниме", - "hiphop": "хипхоп", - "jpop": "джей-поп", - "rock": "прк", + "hip-hop-rap": "хип-хоп и рэп", + "j-pop": "j-pop", + "rock": "рок", "pop": "поп", "electronic": "электроника", "classical-orchestral": "Классика и Оркестр" diff --git a/assets/jsons/translations/zh-tw.json b/assets/jsons/translations/zh-tw.json index 73021787..f422b078 100644 --- a/assets/jsons/translations/zh-tw.json +++ b/assets/jsons/translations/zh-tw.json @@ -750,48 +750,48 @@ "accuracy": "精確度", "balanced": "平衡", "challenge": "挑戰", - "dancestyle": "舞蹈", + "dance-style": "舞蹈", "fitness": "健身", "speed": "速度", "tech": "技術" }, "map-styles": { - "dance": "Dance", - "swing": "Swing", - "nightcore": "Nightcore", - "folk": "Folk", - "family": "Family", - "ambient": "Ambient", - "funk": "Funk", - "jazz": "Jazz", - "soul": "Soul", - "speedcore": "Speedcore", - "punk": "Punk", - "rb": "R&B", - "holiday": "Holiday", - "vocaloid": "Vocaloid", - "jrock": "J-rock", - "trance": "Trance", - "drumbass": "Drum & Bass", - "comedy": "Comedy", - "instrumental": "Instrumental", - "hardcore": "Hardcore", - "kpop": "K-pop", - "indie": "Indie", - "techno": "Techno", - "house": "House", - "game": "Video game", - "film": "Film", - "alt": "Alternative", - "dubstep": "Dubstep", - "metal": "Metal", - "anime": "Anime", - "hiphop": "Hiphop", - "jpop": "J-pop", - "rock": "Rock", - "pop": "Pop", - "electronic": "Electronic", - "classical-orchestral": "Classical & Orchestral" + "dance": "舞蹈", + "swing": "搖擺", + "nightcore": "夜核", + "folk-acoustic": "民謠 & 原聲", + "kids-family": "兒童 & 家庭", + "ambient": "氛圍音樂", + "funk-disco": "放克 & 迪斯科", + "jazz": "爵士", + "soul": "靈魂", + "speedcore": "極速核", + "punk": "龐克", + "rb": "r&b", + "holiday": "假日", + "vocaloid": "聲庫", + "j-rock": "日式搖滾", + "trance": "迷幻", + "drum-and-bass": "鼓 & 貝斯", + "comedy-meme": "喜劇 & 表情包", + "instrumental": "純音樂", + "hardcore": "硬核", + "k-pop": "k-pop", + "indie": "獨立", + "techno": "電子舞曲", + "house": "浩室音樂", + "video-game-soundtrack": "遊戲音樂", + "tv-movie-soundtrack": "電視 & 電影", + "alternative": "另類", + "dubstep": "電音鼓", + "metal": "金屬", + "anime": "動漫", + "hip-hop-rap": "嘻哈 & 說唱", + "j-pop": "日式流行", + "rock": "搖滾", + "pop": "流行", + "electronic": "電子", + "classical-orchestral": "古典 & 管弦樂" }, "map-specificities": { "automapper": "AI", diff --git a/assets/jsons/translations/zh.json b/assets/jsons/translations/zh.json index 1a1a5067..5c0fdb75 100644 --- a/assets/jsons/translations/zh.json +++ b/assets/jsons/translations/zh.json @@ -750,48 +750,48 @@ "accuracy": "精确度", "balanced": "平衡", "challenge": "挑战", - "dancestyle": "舞蹈", + "dance-style": "舞蹈", "fitness": "健身", "speed": "速度", "tech": "技术" }, "map-styles": { - "dance": "dance", - "swing": "swing", - "nightcore": "nightcore", - "folk": "folk", - "family": "family", - "ambient": "ambient", - "funk": "funk", - "jazz": "jazz", - "soul": "soul", - "speedcore": "speedcore", - "punk": "punk", + "dance": "舞蹈", + "swing": "摇摆", + "nightcore": "夜核", + "folk-acoustic": "民谣 & 原声", + "kids-family": "儿童 & 家庭", + "ambient": "氛围音乐", + "funk-disco": "放克 & 迪斯科", + "jazz": "爵士", + "soul": "灵魂", + "speedcore": "极速核", + "punk": "朋克", "rb": "r&b", - "holiday": "holiday", - "vocaloid": "vocaloid", - "jrock": "j-rock", - "trance": "trance", - "drumbass": "drum & bass", - "comedy": "comedy", - "instrumental": "instrumental", - "hardcore": "hardcore", - "kpop": "k-pop", - "indie": "indie", - "techno": "techno", - "house": "house", - "game": "video game", - "film": "film", - "alt": "alternative", - "dubstep": "dubstep", - "metal": "metal", - "anime": "anime", - "hiphop": "hiphop", - "jpop": "j-pop", - "rock": "rock", - "pop": "pop", - "electronic": "electronic", - "classical-orchestral": "Classical & Orchestral" + "holiday": "假日", + "vocaloid": "声库", + "j-rock": "日式摇滚", + "trance": "迷幻", + "drum-and-bass": "鼓 & 贝斯", + "comedy-meme": "喜剧 & 表情包", + "instrumental": "纯音乐", + "hardcore": "硬核", + "k-pop": "k-pop", + "indie": "独立", + "techno": "电子舞曲", + "house": "浩室音乐", + "video-game-soundtrack": "游戏音乐", + "tv-movie-soundtrack": "电视 & 电影", + "alternative": "另类", + "dubstep": "电音鼓", + "metal": "金属", + "anime": "动漫", + "hip-hop-rap": "嘻哈 & 说唱", + "j-pop": "日式流行", + "rock": "摇滚", + "pop": "流行", + "electronic": "电子", + "classical-orchestral": "古典 & 管弦乐" }, "map-specificities": { "automapper": "AI", diff --git a/src/main/services/thrid-party/beat-saver/beat-saver-api.service.ts b/src/main/services/thrid-party/beat-saver/beat-saver-api.service.ts index a8fef0a4..b2ba7dc3 100644 --- a/src/main/services/thrid-party/beat-saver/beat-saver-api.service.ts +++ b/src/main/services/thrid-party/beat-saver/beat-saver-api.service.ts @@ -49,6 +49,9 @@ export class BeatSaverApiService { ...(filter.maxNps && { maxNps: String(filter.maxNps) }), }; + delete params.enabledTags; + delete params.excludedTags; + return new URLSearchParams(params); } diff --git a/src/renderer/components/maps-mangement-components/filter-panel.component.tsx b/src/renderer/components/maps-mangement-components/filter-panel.component.tsx index 0459f19b..4065a884 100644 --- a/src/renderer/components/maps-mangement-components/filter-panel.component.tsx +++ b/src/renderer/components/maps-mangement-components/filter-panel.component.tsx @@ -1,17 +1,12 @@ -import { MapFilter, MapSpecificity, MapStyle, MapTag, MapType } from "shared/models/maps/beat-saver.model"; +import { MapFilter, MapRequirement, MapSpecificity, MapStyle, MapTag, MapType } from "shared/models/maps/beat-saver.model"; import { motion } from "framer-motion"; import { MutableRefObject, useEffect, useRef, useState } from "react"; -import { MAP_TYPES } from "renderer/partials/maps/map-tags/map-types"; -import { MAP_STYLES } from "renderer/partials/maps/map-tags/map-styles"; import { BsmCheckbox } from "../shared/bsm-checkbox.component"; import { minToS } from "../../../shared/helpers/time.helpers"; import dateFormat from "dateformat"; import { BsmRange } from "../shared/bsm-range.component"; import { useTranslation } from "renderer/hooks/use-translation.hook"; -import { MAP_SPECIFICITIES } from "renderer/partials/maps/map-general/map-specificity"; -import { MAP_REQUIREMENTS } from "renderer/partials/maps/map-requirements/map-requirements"; import { MAP_DIFFICULTIES_COLORS } from "renderer/partials/maps/map-difficulties/map-difficulties-colors"; -import { MapExclude, MAP_EXCLUDES } from "renderer/partials/maps/map-excludes/map-excludes"; import { BsmButton } from "../shared/bsm-button.component"; import equal from "fast-deep-equal/es6"; import clone from "rfdc"; @@ -149,10 +144,6 @@ export function FilterPanel({ className, ref, playlist = false, filter, localDat return t(`maps.map-specificities.${specificity}`); }; - const translateMapExclude = (exclude: MapExclude): string => { - return t(`maps.map-excludes.${exclude}`); - }; - type BooleanKeys = { [k in keyof T]: T[k] extends boolean ? k : never }[keyof T]; const handleCheckbox = (key: BooleanKeys) => { @@ -182,14 +173,14 @@ export function FilterPanel({ className, ref, playlist = false, filter, localDat

{t("maps.map-filter-panel.specificities")}

- {MAP_SPECIFICITIES.map(specificity => ( + {Object.values(MapSpecificity).map(specificity => (
handleCheckbox(specificity)}> handleCheckbox(specificity)} /> {translateMapSpecificity(specificity)}
))}

{t("maps.map-filter-panel.requirements")}

- {MAP_REQUIREMENTS.map(requirement => ( + {Object.values(MapRequirement).map(requirement => (
handleCheckbox(requirement)}> handleCheckbox(requirement)} /> {requirement} @@ -198,26 +189,24 @@ export function FilterPanel({ className, ref, playlist = false, filter, localDat { !localData && ( <>

{t("maps.map-filter-panel.exclude")}

- {MAP_EXCLUDES.map(exclude => ( -
handleCheckbox(exclude)}> - handleCheckbox(exclude)} /> - {translateMapExclude(exclude)} -
- ))} +
handleCheckbox("installed")}> + handleCheckbox("installed")} /> + {t("maps.map-excludes.installed")} +
)}

{t("maps.map-filter-panel.tags")}

- {MAP_TYPES.map(tag => ( + {Object.values(MapType).map(tag => ( handleTagClick(tag)} className={`text-[12.5px] text-black rounded-md px-1 font-bold cursor-pointer ${!isTagActivated(tag) && "opacity-40 hover:opacity-90"}`} style={{ backgroundColor: isTagExcluded(tag) ? MAP_DIFFICULTIES_COLORS.Expert : MAP_DIFFICULTIES_COLORS.Normal }}> {translateMapType(tag)} ))}
- {MAP_STYLES.map(tag => ( + {Object.values(MapStyle).map(tag => ( handleTagClick(tag)} className={`text-[12.5px] text-black rounded-md px-1 font-bold cursor-pointer ${!isTagActivated(tag) && "opacity-40 hover:opacity-90"}`} style={{ backgroundColor: isTagExcluded(tag) ? MAP_DIFFICULTIES_COLORS.Expert : MAP_DIFFICULTIES_COLORS.Easy }}> {translateMapStyle(tag)} diff --git a/src/renderer/partials/maps/map-excludes/map-excludes.ts b/src/renderer/partials/maps/map-excludes/map-excludes.ts deleted file mode 100644 index 8244cc6a..00000000 --- a/src/renderer/partials/maps/map-excludes/map-excludes.ts +++ /dev/null @@ -1,3 +0,0 @@ -export type MapExclude = "installed"; - -export const MAP_EXCLUDES: MapExclude[] = ["installed"]; diff --git a/src/renderer/partials/maps/map-general/map-specificity.ts b/src/renderer/partials/maps/map-general/map-specificity.ts deleted file mode 100644 index f703c627..00000000 --- a/src/renderer/partials/maps/map-general/map-specificity.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { MapSpecificity } from "shared/models/maps/beat-saver.model"; - -export const MAP_SPECIFICITIES: MapSpecificity[] = ["automapper", "ranked", "curated", "verified", "fullSpread"]; diff --git a/src/renderer/partials/maps/map-requirements/map-requirements.ts b/src/renderer/partials/maps/map-requirements/map-requirements.ts deleted file mode 100644 index 7c82e6d2..00000000 --- a/src/renderer/partials/maps/map-requirements/map-requirements.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { MapRequirement } from "shared/models/maps/beat-saver.model"; - -export const MAP_REQUIREMENTS: MapRequirement[] = ["chroma", "noodle", "me", "cinema"]; diff --git a/src/renderer/partials/maps/map-tags/map-styles.ts b/src/renderer/partials/maps/map-tags/map-styles.ts deleted file mode 100644 index a66aef1d..00000000 --- a/src/renderer/partials/maps/map-tags/map-styles.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { MapStyle } from "shared/models/maps/beat-saver.model"; - -export const MAP_STYLES: MapStyle[] = ["dance", "swing", "nightcore", "folk", "family", "ambient", "funk", "jazz", "soul", "speedcore", "punk", "rb", "holiday", "vocaloid", "jrock", "trance", "drumbass", "comedy", "instrumental", "hardcore", "kpop", "indie", "techno", "house", "game", "film", "alt", "dubstep", "metal", "anime", "hiphop", "jpop", "rock", "pop", "electronic", "classical-orchestral"]; diff --git a/src/renderer/partials/maps/map-tags/map-types.ts b/src/renderer/partials/maps/map-tags/map-types.ts deleted file mode 100644 index 89387c81..00000000 --- a/src/renderer/partials/maps/map-tags/map-types.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { MapType } from "shared/models/maps/beat-saver.model"; - -export const MAP_TYPES: MapType[] = ["accuracy", "balanced", "challenge", "dancestyle", "fitness", "speed", "tech"]; diff --git a/src/shared/models/maps/beat-saver.model.ts b/src/shared/models/maps/beat-saver.model.ts index e40939fa..1e630951 100644 --- a/src/shared/models/maps/beat-saver.model.ts +++ b/src/shared/models/maps/beat-saver.model.ts @@ -143,12 +143,72 @@ export interface BsvMapParitySummary { export type BsvMapCharacteristic = "Standard" | "OneSaber" | "NoArrows" | "90Degree" | "360Degree" | "Lightshow" | "Lawless"; export type BsvMapDifficultyType = "Easy" | "Normal" | "Hard" | "Expert" | "ExpertPlus"; -export type MapStyle = "dance" | "swing" | "nightcore" | "folk" | "family" | "ambient" | "funk" | "jazz" | "soul" | "speedcore" | "punk" | "rb" | "holiday" | "vocaloid" | "jrock" | "trance" | "drumbass" | "comedy" | "instrumental" | "hardcore" | "kpop" | "indie" | "techno" | "house" | "game" | "film" | "alt" | "dubstep" | "metal" | "anime" | "hiphop" | "jpop" | "rock" | "pop" | "electronic" | "classical-orchestral"; -export type MapType = "accuracy" | "balanced" | "challenge" | "dancestyle" | "fitness" | "speed" | "tech"; +export enum MapStyle { + Alt = "alternative", + Ambient = "ambient", + Anime = "anime", + ClassicalOrchestral = "classical-orchestral", + Comedy = "comedy-meme", + Dance = "dance", + DrumBass = "drum-and-bass", + Dubstep = "dubstep", + Electronic = "electronic", + Folk = "folk-acoustic", + Funk = "funk-disco", + Hardcore = "hardcore", + Hiphop = "hip-hop-rap", + Holiday = "holiday", + House = "house", + Indie = "indie", + Instrumental = "instrumental", + JPop = "j-pop", + JRock = "j-rock", + Jazz = "jazz", + KPop = "k-pop", + Family = "kids-family", + Metal = "metal", + Nightcore = "nightcore", + Pop = "pop", + Punk = "punk", + Rb = "rb", + Rock = "rock", + Soul = "soul", + Speedcore = "speedcore", + Swing = "swing", + Film = "tv-movie-soundtrack", + Techno = "techno", + Trance = "trance", + Game = "video-game-soundtrack", + Vocaloid = "vocaloid", +} + +export enum MapType { + Accuracy = "accuracy", + Balanced = "balanced", + Challenge = "challenge", + Dancestyle = "dance-style", + Fitness = "fitness", + Speed = "speed", + Tech = "tech" +} + export type MapTag = MapStyle | MapType; -export type MapRequirement = "chroma" | "noodle" | "me" | "cinema"; -export type MapSpecificity = "automapper" | "ranked" | "curated" | "verified" | "fullSpread"; +export enum MapRequirement { + Chroma = "chroma", + Noodle = "noodle", + Me = "me", + Cinema = "cinema" + +} + +export enum MapSpecificity { + Automapper = "automapper", + Ranked = "ranked", + Curated = "curated", + Verified = "verified", + FullSpread = "fullSpread" +} export interface MapFilter { automapper?: boolean;