//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) } }