diff --git a/gradle-plugins/factorio-gradle/src/main/kotlin/dev/adamko/gradle/factorio/configureIdea.kt b/gradle-plugins/factorio-gradle/src/main/kotlin/dev/adamko/gradle/factorio/configureIdea.kt index 15b63ee..6b9654c 100644 --- a/gradle-plugins/factorio-gradle/src/main/kotlin/dev/adamko/gradle/factorio/configureIdea.kt +++ b/gradle-plugins/factorio-gradle/src/main/kotlin/dev/adamko/gradle/factorio/configureIdea.kt @@ -4,16 +4,15 @@ import org.gradle.kotlin.dsl.configure import org.gradle.kotlin.dsl.withType import org.gradle.plugins.ide.idea.IdeaPlugin import org.gradle.plugins.ide.idea.model.IdeaModel -import org.gradle.plugins.ide.idea.model.Module +//import org.gradle.plugins.ide.idea.model.Module as IdeaModule internal fun FactorioModPlugin.PluginContext.configureIdea() { project.plugins.withType().configureEach { -// project.afterEvaluate { project.extensions.configure { module { -// this.scopes["MAIN"]?.plusAssign(mutableMapOf("plus" to listOf(project.configurations.create("main")))) -// + // scopes["MAIN"] = mapOf("plus" to listOf(configurations.factorioMod.get())) + sourceDirs.plusAssign(settings.mainSources.typescript.srcDirs) sourceDirs.plusAssign(settings.mainSources.lua.srcDirs) sourceDirs.plusAssign(settings.generatedSources.lua.srcDirs) @@ -27,39 +26,12 @@ internal fun FactorioModPlugin.PluginContext.configureIdea() { generatedSourceDirs.plusAssign(settings.generatedSources.lua.srcDirs) generatedSourceDirs.plusAssign(settings.generatedSources.typescript.srcDirs) -// sourceDirs.plusAssign( -// listOf( -// settings.typescriptSrcDir.get().asFile, -// settings.generatedLuaSrcDir.get().asFile, -// ) -// ) -//// sourceDirs = sourceDirs + file("src/main/lua") -// resourceDirs = resourceDirs + settings.modDataResourcesDir -// testSources.from(typescriptTestSrcDir) -//// testSourceDirs = testSourceDirs + typescriptTestSrcDir +// iml { +// whenMerged { +// require(this is IdeaModule) // -// generatedSourceDirs = generatedSourceDirs + generatedSrcDir -//// excludeDirs = excludeDirs + generatedSrcDir - - iml { - whenMerged { - require(this is Module) - -// sourceDirs.plusAssign(settings.mainSources.typescript.srcDirs) -// sourceDirs.plusAssign(settings.mainSources.lua.srcDirs) -// sourceDirs.plusAssign(settings.generatedSources.lua.srcDirs) -// -// testSources.from(settings.testSources.typescript) -// testSources.from(settings.testSources.lua) -// -// resourceDirs.plusAssign(settings.mainSources.resources.srcDirs) -// testResources.from(settings.testSources.resources) -// -// generatedSourceDirs.plusAssign(settings.generatedSources.lua.srcDirs) -// generatedSourceDirs.plusAssign(settings.generatedSources.typescript.srcDirs) - } - } // } +// } } } } diff --git a/gradle-plugins/factorio-gradle/src/main/kotlin/dev/adamko/gradle/factorio/tasks/LaunchFactorioClientTask.kt b/gradle-plugins/factorio-gradle/src/main/kotlin/dev/adamko/gradle/factorio/tasks/LaunchFactorioClientTask.kt index 04d4ae7..de09e86 100644 --- a/gradle-plugins/factorio-gradle/src/main/kotlin/dev/adamko/gradle/factorio/tasks/LaunchFactorioClientTask.kt +++ b/gradle-plugins/factorio-gradle/src/main/kotlin/dev/adamko/gradle/factorio/tasks/LaunchFactorioClientTask.kt @@ -67,6 +67,12 @@ abstract class LaunchFactorioClientTask @Inject constructor( val modsDirFlag = clientModsPath.map { """--mod-directory "$it"""" }.getOrElse("") val mpConnectFlag = serverConnectHost.map { "--mp-connect $it" }.getOrElse("") +// commandLine = parseSpaceSeparatedArgs( +//// """explorer "steam://rungameid/$factorioGameId// --mp-connect localhost/" """ // not working +//// """explorer "steam://run/$factorioGameId//--mp-connect localhost/" """ // works! But has annoying pop-up +// """ ${steamExe.asFile.orNull?.canonicalPath} -applaunch $factorioGameId --mp-connect localhost --mod-directory ${clientModsDirectory.asFile.orNull?.canonicalPath} """ +// ) + return """ $steamExe --applaunch $factorioId $modsDirFlag $mpConnectFlag """.trimIndent() diff --git a/modules/events-mod/build.gradle.kts b/modules/events-mod/build.gradle.kts index f4d466f..82de877 100644 --- a/modules/events-mod/build.gradle.kts +++ b/modules/events-mod/build.gradle.kts @@ -21,38 +21,8 @@ factorioMod { factorioCompatibility.set(libs.versions.factorio.map { it.substringBeforeLast(".") }) } -// Factorio required format is: -// - filename: `mod-name_version.zip` -// - zip contains one directory, `mod-name` -//val modName: String by extra { "${rootProject.name}-events" } -//extra.set("modName", "kafkatorio-events") -//val modName = extra.get("modName") as String - -//val modDescription: String by project.extra { project.description ?: "" } - -// version of Factorio that the mod is compatible with (must only be "major.minor" - patch causes error) -//val modFactorioCompatibility: Provider = -// libs.versions.factorio.map { SemVer.parse(it).run { "$major.$minor" } } - -//rootProject.layout.projectDirectory.file("LICENSE") val licenseFile: RegularFile by rootProject.extra -@Suppress("UNCHECKED_CAST") -val projectTokens: MapProperty = - rootProject.extra.get("projectTokens") as? MapProperty - ?: error("error getting projectTokens") -//val projectTokens: MapProperty by rootProject.extra - -val projectTokensX1 = projectTokens.apply { - put("mod.name", factorioMod.modName) - put("mod.title", factorioMod.modTitle) - put("mod.description", factorioMod.modDescription) - put("factorio.version", factorioMod.factorioCompatibility) -} - -//val tsSrcDir: Directory = layout.projectDirectory.dir("src/main/typescript") - - node { nodeProjectDir.set(layout.projectDirectory) } @@ -102,21 +72,13 @@ val installEventsTsSchema by tasks.registering(Sync::class) { .map { zipTree(it) } } ) { - // drop the first directory inside the zip -// eachFile { relativePath = dropDirectory() } includeEmptyDirs = false } into(layout.projectDirectory.dir("src/main/typescript/generated")) } -//val zipNameProvider = provider { distributionZipName } - tasks.distZip { -// val projectTokensXX22 = projectTokensX1 - -// inputs.property("zipNameProvider", zipNameProvider) -// inputs.property("projectTokens", projectTokensXX22) val distributionZipName = factorioMod.distributionZipName archiveFileName.set(distributionZipName) } @@ -126,10 +88,8 @@ val publishModToPortal by tasks.registering(FactorioModPublishTask::class) { distributionZip.set(tasks.distZip.flatMap { it.archiveFile }) -// val projectModName = project.extra.get("modName") as String modName.set(factorioMod.modName) modVersion.set(factorioMod.modVersion) -// modVersion.set(project.version.toString()) } tasks.assembleFactorioModContents { @@ -139,49 +99,6 @@ tasks.assembleFactorioModContents { } } - -//distributions { -// main { -// -//// distributionBaseName.set(factorioMod.modName) -// val tokens333: MutableMap = projectTokensX1.get() -// -// contents { -//// from(factorioMod.mainSources.resources) { -//// include("**/**") -//// } -// from(licenseFile) -// from(typescriptToLua.map { it.outputDirectory }) -// filesNotMatching("**/*.png") { -// // maybe make a bug report for projectTokensX1 causing null$null$null error? -// // val tokens333: MutableMap = projectTokensX1.get() -// filter("tokens" to tokens333) -// } -//// includeEmptyDirs = false -//// exclude { -//// // exclude empty files -//// it.file.run { -//// isFile && useLines { lines -> lines.all { line -> line.isBlank() } } -//// } -//// } -// } -// } -//} - - -tasks.withType().configureEach { - val projectTokensXX444 = projectTokensX1 - inputs.property("projectTokens", projectTokensXX444) -} - - -//val factorioModProvider by configurations.registering { -// asProvider() -// factorioModAttributes(objects) -// outgoing.artifact(tasks.distZip.flatMap { it.archiveFile }) -//} - - val projectPackageJsonName: Provider = providers.provider { "${rootProject.name}-${project.name}" } val projectPackageJsonFile: RegularFile = layout.projectDirectory.file("package.json") @@ -207,84 +124,6 @@ tasks.updatePackageJson { tasks.assemble { dependsOn(installEventsTsSchema, tasks.updatePackageJson) } - -//val typescriptSrcDir: File = file("src/main/typescript") -//val luaSrcDir: File = file("src/generated/lua") -//val resourcesDir: File = file("src/main/resources") -//val typescriptTestSrcDir: File = file("src/test/typescript") -//val generatedSrcDir: File = file("src/generated") -// -// -//idea { -// module { -// sourceDirs.plusAssign( -// listOf( -// typescriptSrcDir, -// luaSrcDir, -// ) -// ) -//// sourceDirs = sourceDirs + file("src/main/lua") -// resourceDirs = resourceDirs + resourcesDir -// testSources.from(typescriptTestSrcDir) -//// testSourceDirs = testSourceDirs + typescriptTestSrcDir -// -// generatedSourceDirs = generatedSourceDirs + generatedSrcDir -//// excludeDirs = excludeDirs + generatedSrcDir -// -// iml { -// whenMerged { -// require(this is IdeaImlModule) -// -// sourceDirs.plusAssign( -// listOf( -// typescriptSrcDir, -// luaSrcDir, -// ) -// ) -// -// generatedSourceFolders.plusAssign( -// IdeaImlPath(luaSrcDir.toURI().toString()) -// ) -// resourceDirs = resourceDirs + resourcesDir -// testSources.from(typescriptTestSrcDir) -//// testSourceDirs = testSourceDirs + typescriptTestSrcDir -//// excludeDirs = excludeDirs + generatedSrcDir -// } -// } -// } -//} - - -// trying to get Gradle+idea to recognise the ts-src... - -//val typescriptSrcSet = project.objects.sourceDirectorySet("typescript", "TypeScript").apply { -// srcDirs(tsSrcDir) -// compiledBy(typescriptToLua, TypescriptToLuaTask::outputDirectory) -//// destinationDirectory.set(layout.buildDirectory.dir("typescriptToLua")) -//} -// -//val tsSrcConfiguration by configurations.registering { -// asProvider() -// outgoing.artifact(tsSrcDir) -//} -// -//idea { -// module { -// // Not using += due to https://github.com/gradle/gradle/issues/8749 -// sourceDirs = sourceDirs + typescriptSrcSet.sourceDirectories -// resourceDirs.add(file("src/main/resources")) -// excludeDirs.add(layout.projectDirectory.dir("src/main/typescript/node_modules").asFile) -// scopes.compute("MAIN") { _: String, scope: MutableMap>? -> -// val s = (scope ?: mutableMapOf()) -// s.compute("plus") { _, conf -> -// val c = conf ?: mutableListOf() -// c.add(tsSrcConfiguration.get()) -// c -// } -// s -// } -// } -//} //val downloadFactorioApiDocs by tasks.registering { // group = project.name // diff --git a/modules/events-mod/info.json b/modules/events-mod/info.json deleted file mode 100644 index 68f245b..0000000 --- a/modules/events-mod/info.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "name": "@mod.name@", - "version": "@project.version@", - "title": "@mod.title@", - "description": "@mod.description@", - "author": "@author.email@", - "factorio_version": "@factorio.version@", - "dependencies": [] -} diff --git a/modules/events-mod/kafkatorio-logo.png b/modules/events-mod/kafkatorio-logo.png deleted file mode 100644 index a37200e..0000000 Binary files a/modules/events-mod/kafkatorio-logo.png and /dev/null differ diff --git a/modules/infra-factorio-client/build.gradle.kts b/modules/infra-factorio-client/build.gradle.kts index 61ed6ae..7b7844f 100644 --- a/modules/infra-factorio-client/build.gradle.kts +++ b/modules/infra-factorio-client/build.gradle.kts @@ -1,6 +1,4 @@ import dev.adamko.gradle.factorio.FactorioModPlugin -import dev.adamko.gradle.factorio.factorioModAttributes -import kafkatorio.extensions.not import kafkatorio.tasks.ProcessRunningSpec import org.gradle.kotlin.dsl.support.serviceOf import org.jetbrains.kotlin.util.parseSpaceSeparatedArgs @@ -10,7 +8,7 @@ plugins { id("dev.adamko.factorio-mod") } -description = "Start the Factorio game client" +description = "Manage the Factorio game client" val clientModsDirectory: DirectoryProperty = objects.directoryProperty().apply { val modDir = File("""D:\Users\Adam\AppData\Roaming\Factorio\mods""") @@ -18,69 +16,15 @@ val clientModsDirectory: DirectoryProperty = objects.directoryProperty().apply { set(modDir) } } -//val factorioGameId = "427520" -//val steamExe: RegularFileProperty = objects.fileProperty().apply { -// val steam = File("""C:\Program Files (x86)\Steam\steam.exe""") -// if (steam.exists()) { -// set(steam) -// } -//} - -//val factorioMod: Configuration by configurations.creating { -// asConsumer() -// factorioModAttributes(objects) -//} dependencies { factorioMod(projects.modules.eventsMod) } -// -//val deployModToLocalClient by tasks.registering(Copy::class) { -// description = "Copy the mod to the Factorio client" -// group = FactorioModPlugin.TASK_GROUP -// -// val clientModsDirectory123 = clientModsDirectory -// -// onlyIf { clientModsDirectory123.orNull?.asFile?.exists() == true } -// -// from(configurations.factorioMod.map { it.incoming.artifactView { lenient(true) }.files }) -// into(clientModsDirectory) -// -// doLast { -// logger.lifecycle("Copying mod from ${source.files} to $destinationDir") -// } -//} -// - - -// fun ExecOperations.isFactorioRunning(): Spec = ProcessRunningSpec(this, "factorio.exe") -//val clientLaunch by tasks.registering(Exec::class) { -// description = "Run local Factorio Steam game client" -// group = FactorioModPlugin.TASK_GROUP -// -// val steamExe123 = steamExe -// val clientModsDirectory444 = clientModsDirectory -// -// onlyIf(!serviceOf().isFactorioRunning()) -// onlyIf { steamExe123.orNull?.asFile?.exists() == true } -// onlyIf { clientModsDirectory444.orNull?.asFile?.exists() == true } -// -// dependsOn(deployModToLocalClient) -// mustRunAfter(clientKill, ":modules:infra-factorio-server:processRun") -// -// commandLine = parseSpaceSeparatedArgs( -//// """explorer "steam://rungameid/$factorioGameId// --mp-connect localhost/" """ // not working -//// """explorer "steam://run/$factorioGameId//--mp-connect localhost/" """ // works! But has annoying pop-up -// """ ${steamExe.asFile.orNull?.canonicalPath} -applaunch $factorioGameId --mp-connect localhost --mod-directory ${clientModsDirectory.asFile.orNull?.canonicalPath} """ -// ) -// doFirst { logger.lifecycle("Launching factorio.exe") } -//} - val clientKill by tasks.registering(Exec::class) { description = "Stop the local Factorio Steam game client" group = FactorioModPlugin.TASK_GROUP @@ -90,7 +34,6 @@ val clientKill by tasks.registering(Exec::class) { commandLine = parseSpaceSeparatedArgs(""" taskkill /im factorio.exe """) doFirst { logger.lifecycle("Killing factorio.exe") } } -// tasks.register(FactorioModPlugin.PUBLISH_MOD_LOCAL_TASK_NAME) { diff --git a/modules/infra-factorio-server/build.gradle.kts b/modules/infra-factorio-server/build.gradle.kts index 8b40fe3..00d184f 100644 --- a/modules/infra-factorio-server/build.gradle.kts +++ b/modules/infra-factorio-server/build.gradle.kts @@ -12,19 +12,9 @@ geedeecee { srcDir.set(layout.projectDirectory.dir("src")) } - -//val dockerSrcDir: Directory by extra -//val factorioServerDataDir: Directory = dockerSrcDir.dir("factorio-server") val factorioServerDataDir: DirectoryProperty = objects.directoryProperty() .convention(geedeecee.srcDir.dir("factorio-server")) - -//val factorioMod: Configuration by configurations.creating { -// asConsumer() -// factorioModAttributes(objects) -//} - - dependencies { factorioMod(projects.modules.eventsMod) }