run.py 1.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. # coding: utf-8
  2. import argparse
  3. import os
  4. import sys
  5. import logging
  6. from random import seed
  7. synergine2_path = os.path.abspath(os.path.join(os.path.dirname(os.path.abspath(__file__)), '../../'))
  8. sys.path.append(synergine2_path)
  9. from sandbox.tiledstrategy.simulation.base import TiledStrategySimulation, TiledStrategySubjects
  10. from synergine2.log import get_default_logger
  11. from synergine2.config import Config
  12. from sandbox.tiledstrategy.terminal.base import CocosTerminal
  13. from synergine2.core import Core
  14. from synergine2.cycle import CycleManager
  15. from synergine2.terminals import TerminalManager
  16. def main(map_dir_path: str, seed_value: int=42):
  17. seed(seed_value)
  18. config = Config()
  19. config.load_files(['sandbox/engulf/config.yaml'])
  20. logger = get_default_logger(level=logging.DEBUG)
  21. simulation = TiledStrategySimulation(config)
  22. subjects = TiledStrategySubjects(simulation=simulation)
  23. # TODO: Create subjects
  24. simulation.subjects = subjects
  25. core = Core(
  26. config=config,
  27. logger=logger,
  28. simulation=simulation,
  29. cycle_manager=CycleManager(
  30. config=config,
  31. logger=logger,
  32. simulation=simulation,
  33. ),
  34. terminal_manager=TerminalManager(
  35. config=config,
  36. logger=logger,
  37. terminals=[CocosTerminal(
  38. config,
  39. logger,
  40. asynchronous=False,
  41. map_dir_path=map_dir_path,
  42. )]
  43. ),
  44. cycles_per_seconds=1 / config.core.cycle_duration,
  45. )
  46. core.run()
  47. if __name__ == '__main__':
  48. parser = argparse.ArgumentParser(description='Run TiledStrategy')
  49. parser.add_argument('map_dir_path', help='map directory path')
  50. parser.add_argument('--seed', dest='seed', default=42)
  51. args = parser.parse_args()
  52. main(args.map_dir_path, seed_value=args.seed)