# from ray.rllib.env.multi_agent_env import MultiAgentEnv
from ray.rllib.env import *
__all__ = [
    "BaseEnv",
    "MultiAgentEnv",
    "ExternalEnv",
    "ExternalMultiAgentEnv",
    "VectorEnv",
    "EnvContext",
    "DMEnv",
    "DMCEnv",
    "Unity3DEnv",
    "PettingZooEnv",
    "PolicyClient",
    "PolicyServerInput",
]


# MultiAgentEnv = MAEnv
# class SimulateEnv(object):
#     '''
#     仿真引擎环境接口
#     '''
#     def __init__(self):
#         pass

#     def reset(self):
#         """重置环境
#         reset内部会根据生成的env实例， 重置所有参数

#                 description:
#                     重置环境和实例。
#                Returns:
#                 	obs:状态

#         """

#         return obs


#     def step(self, action, episode):
#         """根据输入的action（指令集），对环境进行更新
#                 description:
#                     环境更新，返回obs,reward,done，info
#                 Args:
#                     action: 动作指令集
#                     episode:局数
#                 Returns:
#                 	obs:状态
#             """
#         return obs


# class MultiAgentEnv(MAEnv):
#     '''
#     自定义的ray环境，继承ray中的MultiAgentEnv
#     '''
#     def __init__(self, *arg):
#         pass
# self.env = SimulateEnv()  # 仿真引擎环境

# def step(self, action):
#     """
#     根据仿真环境构造自己的step函数

#     输入为：action
#     输出为：obs，reward，done，info

#     用户在该函数中进行，仿真引擎交互，奖励设计、指令及态势转换等操作。
#     """
#     return obs,reward,done,info

# def reset(self):
#     """
#     重置环境，返回环境的初始状态
#     """
#     return obs
