mindustry logic execution, map- and schematic- parsing and rendering
Add a readme
KosmosPrime 2023-02-13
parent 806f71c · commit 427845f
-rw-r--r--README.md37
1 files changed, 37 insertions, 0 deletions
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..c9fca3c
--- /dev/null
+++ b/README.md
@@ -0,0 +1,37 @@
+# Plandustry
+Plandustry is a command-line tool for editing [Mindustry](https://github.com/Anuken/Mindustry) schematics.
+
+## Command-Line usage
+The program must be run with a command line first determining the operation to perform, followed by arguments that depend on the operation.
+In general, arguments can either be literal (not starting with a dash) short form (starting with a single dash) and long form (starting with a double dash). In
+all cases, arguments are space-delimited or can be wrapped in quotes (but internal quites are considered literal). Both short and long form arguments may be
+passed a value (py), but differ in their syntax and interpretation. Short form arguments are only a single character long, but multiple (even duplicates) can
+be used in the same group (following a single dash). This has the advantage that the value following it is passed to all arguments. For example:
+- `-a -b -c=value` is 2 arguments with no value (`a` and `b`) and another argument (`c`) with value `value`
+- `-ab -xyx` is 5 arguments with no value: `a`, `b`, 2 times `x` and `z`
+- `-hello=world` is 5 arguments: `h`, `e`, 2 times `l` and `o` each (even the double `l`) with the value `world`
+Long form arguments are simpler: they start with a double dash and may be arbitrarily long. The syntax for passing values is the same but there can only be one
+argument per token, and the value only applies to it (such as `--long-form-arg=its-value`).
+Note that arguments can forbid, require or permit the inclusion of a value, and some may be used multiple times (as noted below).
+
+### Print
+The print command takes in schematics from the command line, from files or interactively and prints the name, tags, build cost and blocks contained in it.
+
+| Argument | Description | Appears | Value |
+| --- | --- | --- | --- |
+| `literal` | A base-64 encoded Schematic to print | Optional, Repeatable | N/A |
+| `-f`, `--file` | A path to a `.msch` file (binary schematic) to print | Optional, Repeatable | Required |
+| `-i`, `--interactive` | Run interactively where base-64 encoded schematics are read from stdin and printed | Optional | Forbidden |
+
+Note that interactive mode is the default if no literals or files are given, but to include it anyway is not an error.
+
+### Edit
+The edit command is an interactive prompt capable of loading, editing, printing and saving schematics.
+
+| Argument | Description | Appears | Value |
+| --- | --- | --- | --- |
+| `literal` | A base-64 encoded Schematic to load | Optional | N/A |
+| `-f`, `--file` | A path to a `.msch` file (binary schematic) to load | Optional | Required |
+
+If the file argument is present, literals are ignored. After loading the given schematic (if any), the program enters interactive mode. Use "help" for a list
+of available commands in interactive mode.