diff --git a/src/primaite/game/agent/actions.py b/src/primaite/game/agent/actions.py index f4f9a2cc..b2bb1a2f 100644 --- a/src/primaite/game/agent/actions.py +++ b/src/primaite/game/agent/actions.py @@ -312,6 +312,13 @@ class NodeFolderRestoreAction(NodeFolderAbstractAction): super().__init__(manager, num_nodes=num_nodes, num_folders=num_folders, **kwargs) self.verb: str = "restore" +class NodeFolderFileCreateAction(NodeFolderAbstractAction): + """Action which creates a new file in a given folder.""" + + def __init__(self, manager: "ActionManager", num_nodes: int, num_folders: int, **kwargs) -> None: + super().__init__(manager, num_nodes=num_nodes, num_folders=num_folders, **kwargs) + self.verb: str = "create" + class NodeFileAbstractAction(AbstractAction): """Abstract base class for file actions. diff --git a/src/primaite/simulator/file_system/folder.py b/src/primaite/simulator/file_system/folder.py index 90ad4425..6107c655 100644 --- a/src/primaite/simulator/file_system/folder.py +++ b/src/primaite/simulator/file_system/folder.py @@ -61,6 +61,12 @@ class Folder(FileSystemItemABC): func=lambda request, context: RequestResponse.from_bool(self.remove_file_by_name(file_name=request[0])) ), ) + rm.add_request( + name="create", + request_type=RequestType( + func=lambda request, context: RequestResponse.from_bool(self.create_file(file_name=request[0])) + ), + ) self._file_request_manager = RequestManager() rm.add_request( name="file",