Files

85 lines
3.1 KiB
Groovy

//version: 1707058017
plugins {
id 'com.gtnewhorizons.gtnhconvention'
id 'dts.typescript-generator'
}
apply from: 'gradle.submodules.gradle'
// Source injection: merges submodule source for IDE hotswap during runClient/runServer.
// Output JAR contains only addon classes. Disable with: -PnoSourceInjection=true
if (!(project.hasProperty("noSourceInjection") && project.noSourceInjection == 'true')) {
ext.sourceInjections = [
[
path: 'CustomNPC-Plus',
src: ['src/api/java', 'src/main/java'],
resources: ['src/main/resources'],
compileOnlyFiles: ['tools/standalone-JaninoLoader-1.0.2.jar'],
mixinConfig: 'mixins.customnpcs.json',
],
[
path: 'GeckoLib',
src: ['src/main/java'],
resources: ['src/main/resources'],
compileOnlyDeps: [
'com.fasterxml.jackson.core:jackson-databind:2.9.0',
'com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.9.0',
],
],
]
apply from: 'gradle.sourceInjection.gradle'
}
version = "1.4-pre"
group = "com.goodbird.npcgecko"
// ============================================================================
// TypeScript Definition Generation Task
// Generates .d.ts files from Java API sources for scripting IDE support
// ============================================================================
tasks.named("generateTypeScriptDefinitions").configure {
sourceDirectories = ['src/main/java']
outputDirectory = "src/main/resources/assets/${project.property("modId")}/api"
apiPackages = ['com.goodbird.npcgecko.api'] as Set
cleanOutputFirst = true
patchesDirectory = "dts-patches"
implementationPackages = [
'com.goodbird.npcgecko.data',
'com.goodbird.npcgecko.entity',
'com.goodbird.npcgecko.tile',
'com.goodbird.npcgecko.client'
] as Set
}
processResources.dependsOn generateTypeScriptDefinitions
sourcesJar.dependsOn generateTypeScriptDefinitions
// ============================================================================
// Javadoc Generation (for GitHub Pages deployment)
// ============================================================================
javadoc {
options.encoding = 'UTF-8'
options.charSet = 'UTF-8'
options.docEncoding = 'UTF-8'
options.stylesheetFile = file('.github/javadoc/javadoc-theme.css')
options.header = file('.github/javadoc/javadoc-header.html').text
options.footer = file('.github/javadoc/javadoc-footer.html').text
options.addBooleanOption('-allow-script-in-comments', true)
// Only document public API
include 'com/goodbird/npcgecko/api/**'
options.links('https://docs.oracle.com/en/java/javase/11/docs/api/')
// Cross-link to CNPC+ javadoc (URL injected by CI workflow)
if (project.hasProperty('cnpcDocUrl') && project.hasProperty('cnpcDocElementList')) {
options.linksOffline(project.property('cnpcDocUrl'), project.property('cnpcDocElementList'))
}
javadocTool = javaToolchains.javadocToolFor {
languageVersion = JavaLanguageVersion.of(11)
}
}