diff --git a/metadrive/engine/asset_loader.py b/metadrive/engine/asset_loader.py index bfe226814..0a0962b8f 100644 --- a/metadrive/engine/asset_loader.py +++ b/metadrive/engine/asset_loader.py @@ -21,18 +21,6 @@ def init_loader(engine): """ Due to the feature of Panda3d, keep reference of loader in static variable """ - msg = "Assets folder doesn't exist. Begin to download assets..." - if not os.path.exists(AssetLoader.asset_path): - AssetLoader.logger.warning(msg) - pull_asset(False) - else: - if asset_version() != VERSION: - AssetLoader.logger.warning( - "Assets version mismatch! Current: {}, Expected: {}. " - "Update the assets by `python -m metadrive.pull_asset --update'".format(asset_version(), VERSION) - ) - else: - AssetLoader.logger.info("Assets version: {}".format(VERSION)) if engine.win is None: AssetLoader.logger.debug("Physics world mode") return diff --git a/metadrive/engine/base_engine.py b/metadrive/engine/base_engine.py index 54dba5e1d..f9a87083d 100644 --- a/metadrive/engine/base_engine.py +++ b/metadrive/engine/base_engine.py @@ -1,4 +1,7 @@ import logging +from metadrive.version import VERSION, asset_version +import os +from metadrive.pull_asset import pull_asset from metadrive.constants import RENDER_MODE_NONE, RENDER_MODE_OFFSCREEN, RENDER_MODE_ONSCREEN import pickle import time @@ -28,6 +31,7 @@ class BaseEngine(EngineCore, Randomizable): global_random_seed = None def __init__(self, global_config): + self.try_pull_asset() EngineCore.__init__(self, global_config) Randomizable.__init__(self, self.global_random_seed) self.episode_step = 0 @@ -685,6 +689,21 @@ def warmup(self): barrier = None cone = None + @staticmethod + def try_pull_asset(): + msg = "Assets folder doesn't exist. Begin to download assets..." + if not os.path.exists(AssetLoader.asset_path): + AssetLoader.logger.warning(msg) + pull_asset(False) + else: + if asset_version() != VERSION: + AssetLoader.logger.warning( + "Assets version mismatch! Current: {}, Expected: {}. " + "Update the assets by `python -m metadrive.pull_asset --update'".format(asset_version(), VERSION) + ) + else: + AssetLoader.logger.info("Assets version: {}".format(VERSION)) + if __name__ == "__main__": from metadrive.envs.base_env import BASE_DEFAULT_CONFIG