mirror of
https://github.com/KAMKEEL/CustomNPC-Gecko-Addon.git
synced 2026-11-11 04:27:33 +00:00
85 lines
3.1 KiB
Groovy
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)
|
|
}
|
|
}
|