renaming, formatting, comments, typescript source set experiment, run Factorioi client experiment, download Factorio API json
This commit is contained in:
parent
16137e5435
commit
b8de97afc9
1 changed files with 95 additions and 43 deletions
|
|
@ -8,7 +8,6 @@ plugins {
|
|||
|
||||
val projectId: String by project.extra
|
||||
|
||||
|
||||
val tsSrcDir = layout.projectDirectory.dir("src/main/typescript")
|
||||
val modBuildDir = layout.buildDirectory.dir(projectId).get()
|
||||
|
||||
|
|
@ -17,45 +16,46 @@ node {
|
|||
}
|
||||
|
||||
val tstlTask = tasks.register<NpmTask>("typescriptToLua") {
|
||||
description = "Typescript To Lua"
|
||||
description = "Convert Typescript To Lua"
|
||||
group = projectId
|
||||
|
||||
dependsOn(tasks.npmInstall)
|
||||
|
||||
execOverrides { standardOutput = System.out }
|
||||
|
||||
npmCommand.set(listOf(
|
||||
"run",
|
||||
"build",
|
||||
// "--workspace=factorio-web-map-mod",
|
||||
))
|
||||
npmCommand.set(listOf("run", "build"))
|
||||
|
||||
inputs.dir(node.nodeProjectDir)
|
||||
inputs.dir(node.nodeProjectDir.asFileTree)
|
||||
.skipWhenEmpty()
|
||||
.withPropertyName("sourceFiles")
|
||||
.withPathSensitivity(PathSensitivity.RELATIVE)
|
||||
|
||||
val outputDir = modBuildDir.dir("typescriptToLua")
|
||||
outputs.dir(outputDir)
|
||||
args.set(parseSpaceSeparatedArgs("-- --outDir $outputDir"))
|
||||
// args.set(listOf(
|
||||
// "--",
|
||||
// "--outDir $outputDir",
|
||||
// "--workspace=factorio-web-map-mod",
|
||||
// ))
|
||||
outputs.dir(outputDir)
|
||||
.withPropertyName("outputDir")
|
||||
|
||||
|
||||
ignoreExitValue.set(false)
|
||||
// workingDir.set(tsSrcDir.asFile)
|
||||
// inputs.dir("node_modules")
|
||||
// inputs.dir(fileTree("src"))
|
||||
// inputs.files(
|
||||
// "tsconfig.json",
|
||||
// "package.json",
|
||||
// )
|
||||
// outputs.dir("$buildDir/factorio-web-map/")
|
||||
// outputs.dir("$buildDir/npm-output")
|
||||
// outputs.upToDateWhen { false }
|
||||
}
|
||||
|
||||
//val typescriptSrc =
|
||||
// project.objects.sourceDirectorySet("typescript", "typescript").apply {
|
||||
// srcDir(
|
||||
// layout.projectDirectory.dir("src/main/typescript")
|
||||
// )
|
||||
// destinationDirectory.set(
|
||||
// modBuildDir.dir("typescriptToLua")
|
||||
// )
|
||||
// compiledBy(tstlTask) {
|
||||
// project.objects.directoryProperty().apply {
|
||||
// set( modBuildDir.dir("typescriptToLua"))
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
val modPackageTask = tasks.register<Zip>("package") {
|
||||
description = "Package mod"
|
||||
description = "Package mod files into ZIP"
|
||||
group = projectId
|
||||
|
||||
dependsOn(tstlTask)
|
||||
|
|
@ -63,14 +63,14 @@ val modPackageTask = tasks.register<Zip>("package") {
|
|||
from(
|
||||
layout.projectDirectory.dir("src/main/resources/mod-data"),
|
||||
rootProject.layout.projectDirectory.file("LICENSE"),
|
||||
tstlTask,
|
||||
tstlTask.get().outputs.files.filter { it.extension == "lua" },
|
||||
)
|
||||
|
||||
into(rootProject.name)
|
||||
|
||||
// Factorio required format is:
|
||||
// - filename: `mod-name_version.zip`
|
||||
// - zip contains dir `mod-name`
|
||||
// - zip contains one directory, `mod-name`
|
||||
archiveFileName.set("${rootProject.name}_${rootProject.version}.zip")
|
||||
destinationDirectory.set(modBuildDir.dir("dist"))
|
||||
}
|
||||
|
|
@ -79,7 +79,7 @@ val modPackageTask = tasks.register<Zip>("package") {
|
|||
|
||||
val copyModToServerTask = tasks.register<Copy>("copyModToServer") {
|
||||
description = "Copy the mod to the Factorio Docker server"
|
||||
group = projectId
|
||||
group = "$projectId.factorioServer"
|
||||
|
||||
dependsOn(modPackageTask)
|
||||
|
||||
|
|
@ -87,9 +87,31 @@ val copyModToServerTask = tasks.register<Copy>("copyModToServer") {
|
|||
into(layout.projectDirectory.dir("src/test/resources/server/data/mods").asFile)
|
||||
}
|
||||
|
||||
val serverUpTask = tasks.register<Exec>("dockerUp") {
|
||||
group = "$projectId.factorioServer"
|
||||
|
||||
workingDir = layout.projectDirectory.dir("src/test/resources/server/").asFile
|
||||
commandLine = parseSpaceSeparatedArgs("docker-compose up")
|
||||
}
|
||||
|
||||
|
||||
//val serverRestartTask = tasks.register<Exec>("dockerRestart") {
|
||||
// group = "$projectId.factorioServer"
|
||||
//
|
||||
// workingDir = layout.projectDirectory.dir("src/test/resources/server/").asFile
|
||||
// commandLine = parseSpaceSeparatedArgs("docker-compose restart")
|
||||
//}
|
||||
|
||||
tasks.register<Exec>("dockerStop") {
|
||||
group = "$projectId.factorioServer"
|
||||
|
||||
workingDir = layout.projectDirectory.dir("src/test/resources/server/").asFile
|
||||
commandLine = parseSpaceSeparatedArgs("docker-compose stop")
|
||||
}
|
||||
|
||||
val copyModToClientTask = tasks.register<Copy>("copyModToClient") {
|
||||
description = "Copy the mod to the Factorio client"
|
||||
group = projectId
|
||||
group = "$projectId.factorioClient"
|
||||
|
||||
dependsOn(modPackageTask)
|
||||
|
||||
|
|
@ -97,25 +119,55 @@ val copyModToClientTask = tasks.register<Copy>("copyModToClient") {
|
|||
into("""D:\Users\Adam\AppData\Roaming\Factorio\mods""")
|
||||
}
|
||||
|
||||
val serverRestartTask = tasks.register<Exec>("serverRestart") {
|
||||
group = projectId
|
||||
|
||||
workingDir = layout.projectDirectory.dir("src/test/resources/server/").asFile
|
||||
commandLine = parseSpaceSeparatedArgs("docker-compose restart")
|
||||
}
|
||||
|
||||
tasks.register<Exec>("serverStop") {
|
||||
group = projectId
|
||||
|
||||
workingDir = layout.projectDirectory.dir("src/test/resources/server/").asFile
|
||||
commandLine = parseSpaceSeparatedArgs("docker-compose stop")
|
||||
}
|
||||
//val factorioClientLaunch = tasks.register<Exec>("launch") {
|
||||
// description = "Run Factorio client"
|
||||
// group = "$projectId.factorioClient"
|
||||
//
|
||||
// dependsOn(
|
||||
// serverRestartTask,
|
||||
// copyModToClientTask
|
||||
// )
|
||||
//
|
||||
//// workingDir = layout.projectDirectory.dir("src/test/resources/server/").asFile
|
||||
// commandLine = parseSpaceSeparatedArgs(
|
||||
// """explorer "steam://rungameid/427520 --mp-connect localhost" """
|
||||
// )
|
||||
//}
|
||||
|
||||
val launch = tasks.register("modLauncher") {
|
||||
description = "Build the mod, upload to Server and Client, and start both"
|
||||
group = projectId
|
||||
dependsOn(
|
||||
copyModToServerTask,
|
||||
copyModToClientTask,
|
||||
serverRestartTask,
|
||||
serverUpTask,
|
||||
// factorioClientLaunch,
|
||||
)
|
||||
}
|
||||
|
||||
tasks.register("downloadFactorioApiDocs") {
|
||||
group = projectId
|
||||
|
||||
val target = uri("https://lua-api.factorio.com/latest/runtime-api.json")
|
||||
val apiFilename = File(target.path).name
|
||||
val downloadedFile = file(temporaryDir.path + "/" + apiFilename)
|
||||
|
||||
val apiFile = modBuildDir.file(apiFilename)
|
||||
outputs.file(apiFile)
|
||||
|
||||
doLast {
|
||||
|
||||
ant.invokeMethod("get", mapOf(
|
||||
"src" to target,
|
||||
"dest" to downloadedFile,
|
||||
"verbose" to true,
|
||||
))
|
||||
|
||||
val json = downloadedFile.readText()
|
||||
val prettyJson = groovy.json.JsonOutput.prettyPrint(json)
|
||||
|
||||
apiFile.asFile.writeText(prettyJson)
|
||||
|
||||
logger.lifecycle("Downloaded Factorio API json: $apiFile")
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue