in mae_envs/viewer/env_viewer.py [0:0]
def key_callback(self, window, key, scancode, action, mods):
# Trigger on keyup only:
if action != glfw.RELEASE:
return
if key == glfw.KEY_ESCAPE:
self.env.close()
# Increment experiment seed
elif key == glfw.KEY_N:
self.seed[0] += 1
self.env.seed(self.seed)
self.env_reset()
self.action = self.zero_action(self.env.action_space)
# Decrement experiment trial
elif key == glfw.KEY_P:
self.seed = [max(self.seed[0] - 1, 0)]
self.env.seed(self.seed)
self.env_reset()
self.action = self.zero_action(self.env.action_space)
current_action_space = self.env.action_space.spaces[self.action_types[self.action_type_mod_index]].spaces[0]
if key == glfw.KEY_A:
if isinstance(current_action_space, Box):
self.action[self.action_types[self.action_type_mod_index]][self.agent_mod_index][self.action_mod_index] -= 0.05
elif isinstance(current_action_space, Discrete):
self.action[self.action_types[self.action_type_mod_index]][self.agent_mod_index] = \
(self.action[self.action_types[self.action_type_mod_index]][self.agent_mod_index] - 1) % current_action_space.n
elif isinstance(current_action_space, MultiDiscrete):
self.action[self.action_types[self.action_type_mod_index]][self.agent_mod_index][self.action_mod_index] = \
(self.action[self.action_types[self.action_type_mod_index]][self.agent_mod_index][self.action_mod_index] - 1) \
% current_action_space.nvec[self.action_mod_index]
elif key == glfw.KEY_Z:
if isinstance(current_action_space, Box):
self.action[self.action_types[self.action_type_mod_index]][self.agent_mod_index][self.action_mod_index] += 0.05
elif isinstance(current_action_space, Discrete):
self.action[self.action_types[self.action_type_mod_index]][self.agent_mod_index] = \
(self.action[self.action_types[self.action_type_mod_index]][self.agent_mod_index] + 1) % current_action_space.n
elif isinstance(current_action_space, MultiDiscrete):
self.action[self.action_types[self.action_type_mod_index]][self.agent_mod_index][self.action_mod_index] = \
(self.action[self.action_types[self.action_type_mod_index]][self.agent_mod_index][self.action_mod_index] + 1) \
% current_action_space.nvec[self.action_mod_index]
elif key == glfw.KEY_K:
self.action_mod_index = (self.action_mod_index + 1) % self.num_action[self.action_type_mod_index]
elif key == glfw.KEY_J:
self.action_mod_index = (self.action_mod_index - 1) % self.num_action[self.action_type_mod_index]
elif key == glfw.KEY_Y:
self.agent_mod_index = (self.agent_mod_index + 1) % self.n_agents
elif key == glfw.KEY_U:
self.agent_mod_index = (self.agent_mod_index - 1) % self.n_agents
elif key == glfw.KEY_G:
self.action_type_mod_index = (self.action_type_mod_index + 1) % self.num_action_types
self.action_mod_index = 0
elif key == glfw.KEY_B:
self.action_type_mod_index = (self.action_type_mod_index - 1) % self.num_action_types
self.action_mod_index = 0
super().key_callback(window, key, scancode, action, mods)