/typedtree-generator-dotnet

Cli tool for generating 'treescheme' files based on dotnet assemblies.

Primary LanguageC#MIT LicenseMIT

TypedTree-Generator-Dotnet

Build Tests codecov License: MIT

Cli tool Global tool Core library
NuGet NuGet NuGet

Dotnet cli tool for generating treescheme files for use in the TypedTree-editor

Description

To avoid having to handwrite treescheme files you can generate them based on the dotnet class structure of your tree (for example a behaviour tree).

Usage

There are 3 different ways to use the generator:

Usecase Project Documentation
Build integration Cli Cli Readme
Command line GlobalTool GlobalTool Readme
Manual library integration Core Core Readme

Example

An example can be found in the example directory.

Supported types

Primitives

Dotnet type Treescheme type Comments
string String
bool Boolean
byte Number Scheme does not have any guards to keep value in bounds
sbyte Number Scheme does not have any guards to keep value in bounds
short Number Scheme does not have any guards to keep value in bounds
ushort Number Scheme does not have any guards to keep value in bounds
int Number Scheme does not have any guards to keep value in bounds
uint Number Scheme does not have any guards to keep value in bounds
long Number Scheme does not have any guards to keep value in bounds
ulong Number Scheme does not have any guards to keep value in bounds
float Number Scheme does not have any guards to keep value in bounds
double Number Scheme does not have any guards to keep value in bounds

Enums

Dotnet type Treescheme type Comments
Custom enum Enum Value of enum has to be convertible to a int

Classes

Dotnet type Treescheme type Comments
Custom class Node Fields are found based on the provided FieldSource
Custom struct Node Fields are found based on the provided FieldSource

References

When a field references a class / struct / interface

Dotnet type Treescheme type Comments
class Alias
struct Alias
interface Alias

Collections

Dotnet type Treescheme type Comments
T[] Array
IReadOnlyList<T> Array
IReadOnlyCollection<T> Array
ICollection<T> Array
IList<T> Array