def _generate_reset_input(self, training, config: ArenaConfig) -> UnityRLInput: rl_in = UnityRLInput() rl_in.is_training = training rl_in.command = 1 rl_reset = UnityRLResetInput() if (config is not None): rl_reset.CopyFrom(config.dict_to_arena_config()) result = UnityInput() result.rl_input.CopyFrom(rl_in) result.rl_reset_input.CopyFrom(rl_reset) return result
def dict_to_arena_config(self) -> UnityRLResetInput: config_out = UnityRLResetInput() for k in self.arenas: config_out.arenas[k].CopyFrom(ArenaParametersProto()) config_out.arenas[k].t = self.arenas[k].t config_out.arenas[k].blackouts.extend(self.arenas[k].blackouts) for item in self.arenas[k].items: to_spawn = config_out.arenas[k].items.add() to_spawn.name = item.name to_spawn.positions.extend( [v.to_proto() for v in item.positions]) to_spawn.rotations.extend(item.rotations) to_spawn.sizes.extend([v.to_proto() for v in item.sizes]) to_spawn.colors.extend([v.to_proto() for v in item.colors]) return config_out