utopia-rise/godot-kotlin-native

Implement godot-entry-generator

chippmann opened this issue · 3 comments

TODO: split in different subtasks

Has to be done after: #68, #69, #70, #71, #72 !

Implement the entry generator. It should be called by the godot-annotation-processor and receive the lists described here: #71 . With those lists, the entry file should be generated and all the gdns files should be generated. If the gradle plugin sets the automated removal of the generated gdns file to true, it should also remove all obsolete gdns files from the filesystem.

For more information: write @chippmann on Discord.

@RegisterProperty
var int = 100

@RegisterProperty
var ints = variantArrayOf(100, 200) //only VariantArray is allowed!

@RegisterProperty
var int = PoolIntArray(100, 200) //treated as primitive

@RegisterProperty
var float = 1.0f

@RegisterProperty
var double = 2.0

@RegisterProperty
var str = "hello"

@RegisterProperty
var bool = true

@RegisterProperty
lateinit var resource: Resource //if not lateinit -> fail, customResources: just have to derive from Resource but are exported as Resource and not as custom type

@RegisterProperty
var nodePath: NodePath = NodePath("")

@RegisterProperty
var nodePaths = variantArrayOf(NodePath("A"), NodePath("B")) //only VariantArray is allowed!

@RegisterProperty
@EnumFlag(MyFlag.ONE, MyFlag.TWO)
lateinit var flags: Set<MyFlag> //fail if not lateinit as default values are passed in annotation

closing in favor of individual issues