evaluationDependsOn(':version')

buildscript {
    repositories {
        mavenCentral()
        maven {
            name = "forge"
            url = "http://files.minecraftforge.net/maven"
        }
        maven {
            name = "sonatype"
            url = "https://oss.sonatype.org/content/repositories/snapshots/"
        }
    }
    dependencies {
        classpath 'net.minecraftforge.gradle:ForgeGradle:1.2-SNAPSHOT'
    }
}

apply plugin: 'forge'
apply plugin: 'maven'
apply plugin: 'signing'

group = "net.extrabiomes"
archivesBaseName = "extrabiomesxl_"+ project.mcversion

ext.apiATG = "./api/atg"
ext.apiNewDawn = "./api/newdawn"
ext.apiThaumcraft = "./api/thaumcraft"

minecraft {
    version = project.mcversion + "-" + project.forgeversion
    runDir = "run"
    
    replace '@VERSION@', project.version
}

sourceSets {
  main {
    java {
      srcDir project.apiATG
      srcDir project.apiNewDawn
      srcDir project.apiThaumcraft
      exclude '**/thaumcraft/api/damagesource/**'
      exclude '**/thaumcraft/api/entities/**'
      exclude '**/thaumcraft/api/nodes/**'
      exclude '**/thaumcraft/api/potions/**'
      exclude '**/thaumcraft/api/visnet/**'
      exclude '**/thaumcraft/api/wands/**'
    }
  }
}

processResources
{
    // this will ensure that this task is redone when the versions change.
    inputs.property "version", project.version
    inputs.property "mcversion", project.minecraft.version

    // replace stuff in the files we want.
    from(sourceSets.main.resources.srcDirs) {
        include '**/*.info'

      expand 'version': project.version, 'mcversion': project.minecraft.version
    }

    // copy everything else, thats we didnt do before
    from(sourceSets.main.resources.srcDirs) {
        exclude '**/*.info'
    }
}

jar {
    exclude 'thaumcraft'
  exclude 'ttftcuts'
  exclude 'two'

  includeEmptyDirs = false
}

// add a source jar
task sourceJar(type: Jar) {
    from sourceSets.main.allSource 
    appendix = 'deobf'
    classifier = 'src'
    exclude 'thaumcraft/**'
    exclude 'ttftcuts/**'
    exclude 'two/**'
}

// create a deobfuscated jar for developers
task devJar(type: Jar) {
  from(sourceSets.main.output) {
    include '**'
  }

    exclude 'thaumcraft'
  exclude 'ttftcuts'
  exclude 'two'

  duplicatesStrategy = DuplicatesStrategy.EXCLUDE

  classifier = 'dev'
}

// create a source jar
task srcJar(type: Jar) {
  from(sourceSets.main.allSource) {
    include '**'
  }

    exclude 'thaumcraft'
  exclude 'ttftcuts'
  exclude 'two'

  duplicatesStrategy = DuplicatesStrategy.EXCLUDE

  classifier = 'src'
}

// create an api jar for developers
task apiJar(type: Jar, dependsOn: 'classes') {
  from (sourceSets.main.output) {
    include 'extrabiomes/api/**'
  }
  extension = 'jar'
  classifier = 'api'
}

artifacts {
    archives apiJar
    archives srcJar
    archives devJar
}

signing {
    required { gradle.taskGraph.hasTask(":uploadArchives") }
    sign configurations.archives
}
