diff --git a/README.md b/README.md index 1cb6e93..2d9376e 100644 --- a/README.md +++ b/README.md @@ -1 +1,91 @@ # t5-gsc-utils +T5 version of [t6-gsc-utils](https://github.com/fedddddd/t6-gsc-utils). +If you wish for any feature to be added please create an [issue](https://github.com/fedddddd/t5-gsc-utils/issues/new). + +# Installation +* Download the latest version from the [releases](https://github.com/fedddddd/t5-gsc-utils/releases) +* Copy it to `Plutonium/storage/t5/plugins` + +# Features + +* Easily add almost any C++ function into GSC: + + C++ + ```c++ + { + gsc::function::add("myfunc", [](int a, const std::string& b) + { + printf("%i %s\n", a, b.data()); + }); + } + ``` + + GSC + ```gsc + init() + { + myFunc(1, "hello world"); + } + ``` + +* Non-primitive GSC types such as **arrays** and **structs** (soon) are also supported and can be implicitly converted to STL containers: + + C++ + ```c++ + { + gsc::function::add("sort", [](std::vector vec) + { + std::sort(vec.begin(), vec.end()); + return vec; + }); + } + ``` + + GSC + ```gsc + init() + { + arr = []; + arr[arr.size] = 10; + arr[arr.size] = 5; + arr[arr.size] = 3; + arr[arr.size] = 2; + arr[arr.size] = 9; + + for (i = 0; i < arr.size; i++) + { + print_(arr[i]); + } + + print_(); + + arr = sort(arr); + + for (i = 0; i < arr.size; i++) + { + print_(arr[i]); + } + } + ``` + + More examples can be found [here](https://github.com/fedddddd/t5-gsc-utils/tree/main/src/component) + +# Functions & Methods + +A list of all the functions and methods that are added to the GSC VM by this plugin. + +## IO + * `fileExists(path)`: Returns true if the file exists. + * `writeFile(path, data[, append])`: Creates a file if it doesn't exist and writes/appends text to it. + * `readFile(path)`: Reads a file. + * `fileSize(path)`: Returns file size in bytes. + * `createDirectory(path)`: Creates a directory. + * `directoryExists(path)`: Returns true if the directory exists. + * `directoryIsEmpty(path)`: Returns true if the directory is empty. + * `listFiles(path)`: Returns the list of files in the directory as an array. + * `copyFolder(source, target)`: Copies a folder. + * `copyDirectory(source, target)`: Same as `copyFolder`. + * `removeDirectory(path[, recursive)`: Removes a directory and optionally all its contents. + +## SOON + * ...