get a shared kotlin-typescript data model working

This commit is contained in:
Adam 2021-11-27 17:57:50 +01:00
parent d6a9a58dc9
commit 0d85bfca60
10 changed files with 173 additions and 178 deletions

View file

@ -1,4 +1,6 @@
import com.github.gradle.node.npm.task.NpmTask
import dev.adamko.factoriowebmap.configurations.asConsumer
import dev.adamko.factoriowebmap.configurations.typescriptAttributes
import org.apache.tools.ant.filters.ReplaceTokens
import org.jetbrains.kotlin.util.parseSpaceSeparatedArgs
@ -53,6 +55,35 @@ val tstlTask = tasks.register<NpmTask>("typescriptToLua") {
}
val dataModelTs: Configuration by configurations.creating {
asConsumer()
typescriptAttributes(objects)
}
dependencies {
dataModelTs(projects.modules.factorioEventsDataModel)
}
val updateDataModel by tasks.registering(Sync::class) {
group = project.name
dependsOn(dataModelTs)
from(
dataModelTs.incoming
.artifactView { lenient(true) }
.artifacts
.artifactFiles
.filter { it.exists() }
)
into(layout.projectDirectory.dir("src/main/typescript/generated"))
}
tasks.assemble { dependsOn(updateDataModel) }
idea {
module {
sourceDirs.add(mkdir(layout.projectDirectory.dir("src/main/typescript").asFile))

View file

@ -0,0 +1,45 @@
// Generated code - do edit this file manually
interface FactorioObjectData {
object_name: string;
}
interface FactorioEvent {
data: FactorioObjectData;
event_type: string;
mod_version: string;
tick: uint;
}
interface PositionData {
x: int;
y: int;
}
interface PlayerData extends FactorioObjectData {
associated_character_unit_numbers: uint[];
character_unit_number: uint;
object_name: string;
position_data: PositionData;
}
interface EntityData extends FactorioObjectData {
active: boolean;
health: float | null;
health_ratio: float;
name: string;
object_name: string;
player_index: uint | null;
position: PositionData;
surface_index: int;
type: string;
unit_number: uint | null;
}
interface SurfaceData extends FactorioObjectData {
daytime: float;
index: uint;
name: string;
object_name: string;
}