SM and SMZ3 apworld support (#1677)

This commit is contained in:
lordlou
2023-04-08 16:52:34 -04:00
committed by GitHub
parent f4035b8621
commit 84402a1b55
86 changed files with 522 additions and 445 deletions

View File

@@ -1,17 +1,18 @@
import os, importlib
from worlds.sm.variaRandomizer.logic.logic import Logic
from worlds.sm.variaRandomizer.patches.common.patches import patches, additional_PLMs
from worlds.sm.variaRandomizer.utils.parameters import appDir
import importlib
from ..logic.logic import Logic
from ..patches.common.patches import patches, additional_PLMs
from ..utils.parameters import appDir
from ..utils.utils import listDir, exists
class PatchAccess(object):
def __init__(self):
# load all ips patches
self.patchesPath = {}
commonDir = os.path.join(appDir, 'worlds/sm/variaRandomizer/patches/common/ips/')
for patch in os.listdir(commonDir):
commonDir = "/".join((appDir, 'worlds/sm/variaRandomizer/patches/common/ips'))
for patch in listDir(commonDir):
self.patchesPath[patch] = commonDir
logicDir = os.path.join(appDir, 'worlds/sm/variaRandomizer/patches/{}/ips/'.format(Logic.patches))
for patch in os.listdir(logicDir):
logicDir = "/".join((appDir, 'worlds/sm/variaRandomizer/patches/{}/ips'.format(Logic.patches)))
for patch in listDir(logicDir):
self.patchesPath[patch] = logicDir
# load dict patches
@@ -27,10 +28,10 @@ class PatchAccess(object):
def getPatchPath(self, patch):
# is patch preloaded
if patch in self.patchesPath:
return os.path.join(self.patchesPath[patch], patch)
return "/".join((self.patchesPath[patch], patch))
else:
# patchs from varia_repository used by the customizer for permalinks
if os.path.exists(patch):
if exists(patch):
return patch
else:
raise Exception("unknown patch: {}".format(patch))