1
0
mirror of synced 2024-12-01 00:57:18 +01:00
bemaniutils/bemani/utils/config.py

48 lines
1.8 KiB
Python

import yaml
from typing import Set
from bemani.backend.iidx import IIDXFactory
from bemani.backend.popn import PopnMusicFactory
from bemani.backend.jubeat import JubeatFactory
from bemani.backend.bishi import BishiBashiFactory
from bemani.backend.ddr import DDRFactory
from bemani.backend.sdvx import SoundVoltexFactory
from bemani.backend.reflec import ReflecBeatFactory
from bemani.backend.museca import MusecaFactory
from bemani.backend.mga import MetalGearArcadeFactory
from bemani.common import GameConstants
from bemani.data import Config, Data
def load_config(filename: str, config: Config) -> None:
config.update(yaml.safe_load(open(filename)))
config["database"]["engine"] = Data.create_engine(config)
config["filename"] = filename
supported_series: Set[GameConstants] = set()
for series in GameConstants:
if config.get("support", {}).get(series.value, False):
supported_series.add(series)
config["support"] = supported_series
def register_games(config: Config) -> None:
if GameConstants.POPN_MUSIC in config.support:
PopnMusicFactory.register_all()
if GameConstants.JUBEAT in config.support:
JubeatFactory.register_all()
if GameConstants.IIDX in config.support:
IIDXFactory.register_all()
if GameConstants.BISHI_BASHI in config.support:
BishiBashiFactory.register_all()
if GameConstants.DDR in config.support:
DDRFactory.register_all()
if GameConstants.SDVX in config.support:
SoundVoltexFactory.register_all()
if GameConstants.REFLEC_BEAT in config.support:
ReflecBeatFactory.register_all()
if GameConstants.MUSECA in config.support:
MusecaFactory.register_all()
if GameConstants.MGA in config.support:
MetalGearArcadeFactory.register_all()