summaryrefslogtreecommitdiff
path: root/modules/zip/doc_classes
diff options
context:
space:
mode:
authorMarcelo Fernandez <marcelofg55@gmail.com>2018-09-30 10:13:33 -0300
committerMisterMX <mbxd12@web.de>2022-10-14 21:51:38 +0200
commitea6cc3e2607a7b902a1a748e5b5623fcbb18da27 (patch)
treec637221a43f15b96434402b719c0e271d98716e4 /modules/zip/doc_classes
parentf8745f2f71c79972df66f17a3da75f6e328bc55d (diff)
Expose minizip API to allow creating zips using scripts
Co-authored-by: Marcelo Fernandez <marcelofg55@gmail.com> Co-authored-by: James Westman <flyingpimonster@gmail.commail> Co-authored-by: MisterMX <mbxd12@web.de> Signed-off-by: MisterMX <mbxd12@web.de>
Diffstat (limited to 'modules/zip/doc_classes')
-rw-r--r--modules/zip/doc_classes/ZIPPacker.xml72
-rw-r--r--modules/zip/doc_classes/ZIPReader.xml52
2 files changed, 124 insertions, 0 deletions
diff --git a/modules/zip/doc_classes/ZIPPacker.xml b/modules/zip/doc_classes/ZIPPacker.xml
new file mode 100644
index 0000000000..95d7ef50f9
--- /dev/null
+++ b/modules/zip/doc_classes/ZIPPacker.xml
@@ -0,0 +1,72 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<class name="ZIPPacker" inherits="RefCounted" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../doc/class.xsd">
+ <brief_description>
+ Allows the creation of zip files.
+ </brief_description>
+ <description>
+ This class implements a writer that allows storing the multiple blobs in a zip archive.
+ [codeblock]
+ func write_zip_file():
+ var writer := ZIPPacker.new()
+ var err := writer.open("user://archive.zip")
+ if err != OK:
+ return err
+ writer.start_file("hello.txt")
+ writer.write_file("Hello World".to_utf8_buffer())
+ writer.close_file()
+
+ writer.close()
+ return OK
+ [/codeblock]
+ </description>
+ <tutorials>
+ </tutorials>
+ <methods>
+ <method name="close">
+ <return type="int" enum="Error" />
+ <description>
+ Closes the underlying resources used by this instance.
+ </description>
+ </method>
+ <method name="close_file">
+ <return type="int" enum="Error" />
+ <description>
+ Stops writing to a file within the archive.
+ It will fail if there is no open file.
+ </description>
+ </method>
+ <method name="open">
+ <return type="int" enum="Error" />
+ <param index="0" name="path" type="String" />
+ <param index="1" name="append" type="int" enum="ZIPPacker.ZipAppend" default="0" />
+ <description>
+ Opens a zip file for writing at the given path using the specified write mode.
+ This must be called before everything else.
+ </description>
+ </method>
+ <method name="start_file">
+ <return type="int" enum="Error" />
+ <param index="0" name="path" type="String" />
+ <description>
+ Starts writing to a file within the archive. Only one file can be written at the same time.
+ Must be called after [method open].
+ </description>
+ </method>
+ <method name="write_file">
+ <return type="int" enum="Error" />
+ <param index="0" name="data" type="PackedByteArray" />
+ <description>
+ Write the given [param data] to the file.
+ Needs to be called after [method start_file].
+ </description>
+ </method>
+ </methods>
+ <constants>
+ <constant name="APPEND_CREATE" value="0" enum="ZipAppend">
+ </constant>
+ <constant name="APPEND_CREATEAFTER" value="1" enum="ZipAppend">
+ </constant>
+ <constant name="APPEND_ADDINZIP" value="2" enum="ZipAppend">
+ </constant>
+ </constants>
+</class>
diff --git a/modules/zip/doc_classes/ZIPReader.xml b/modules/zip/doc_classes/ZIPReader.xml
new file mode 100644
index 0000000000..717116a531
--- /dev/null
+++ b/modules/zip/doc_classes/ZIPReader.xml
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<class name="ZIPReader" inherits="RefCounted" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../doc/class.xsd">
+ <brief_description>
+ Allows reading the content of a zip file.
+ </brief_description>
+ <description>
+ This class implements a reader that can extract the content of individual files inside a zip archive.
+ [codeblock]
+ func read_zip_file():
+ var reader := ZIPReader.new()
+ var err := reader.open("user://archive.zip")
+ if err == OK:
+ return PackedByteArray()
+ var res := reader.read_file("hello.txt")
+ reader.close()
+ return res
+ [/codeblock]
+ </description>
+ <tutorials>
+ </tutorials>
+ <methods>
+ <method name="close">
+ <return type="int" enum="Error" />
+ <description>
+ Closes the underlying resources used by this instance.
+ </description>
+ </method>
+ <method name="get_files">
+ <return type="PackedStringArray" />
+ <description>
+ Returns the list of names of all files in the loaded archive.
+ Must be called after [method open].
+ </description>
+ </method>
+ <method name="open">
+ <return type="int" enum="Error" />
+ <param index="0" name="path" type="String" />
+ <description>
+ Opens the zip archive at the given [param path] and reads its file index.
+ </description>
+ </method>
+ <method name="read_file">
+ <return type="PackedByteArray" />
+ <param index="0" name="path" type="String" />
+ <param index="1" name="case_sensitive" type="bool" default="true" />
+ <description>
+ Loads the whole content of a file in the loaded zip archive into memory and returns it.
+ Must be called after [method open].
+ </description>
+ </method>
+ </methods>
+</class>