1
0
mirror of https://github.com/0O0o0oOoO00/Alas.git synced 2026-05-15 04:09:26 +08:00
Files
Alas/module/exercise/assets_override.py
2024-05-22 20:19:48 +08:00

56 lines
1.4 KiB
Python

from functools import wraps
import module.exercise.assets as exer_assets
from module.logger import logger
g_exer_assets_ver = "new"
def exer_override_to_new():
global g_exer_assets_ver
if g_exer_assets_ver == "new":
return
logger.info("switch exercise assets to new version")
exer_assets.EQUIP_ENTER = exer_assets.EQUIP_ENTER_NEW
def exer_override_to_old():
global g_exer_assets_ver
if g_exer_assets_ver == "old":
return
logger.info("switch exercise assets to old version")
exer_assets.EQUIP_ENTER = exer_assets.EQUIP_ENTER_OLD
def exer_assets_override(ver: str = "old"):
"""
Args:
ver (str): "old" or "new"
"""
def deco(func):
@wraps(func)
def wrapped_function(*args, **kwargs):
# switch to target ver
if ver == "old":
exer_override_to_old()
elif ver == "new":
exer_override_to_new()
else:
raise TypeError(f"Unknown exerment assets ver: {ver}")
res = func(*args, **kwargs)
# switch back
if ver == "old":
exer_override_to_new()
elif ver == "new":
exer_override_to_old()
else:
raise TypeError(f"Unknown exerment assets ver: {ver}")
return res
return wrapped_function
return deco