buildscript {
    repositories {
        maven { 
            url = 'https://maven.minecraftforge.net'
        }
        maven { 
            url = 'https://repo.spongepowered.org/maven' 
        }
    }
    dependencies {
        classpath 'net.minecraftforge.gradle:ForgeGradle:2.3.4'
        if (project.use_mixins.toBoolean()) {
            classpath 'org.spongepowered:mixingradle:0.6-SNAPSHOT'
        }
    }
}

apply plugin: 'net.minecraftforge.gradle.forge'

if (project.use_mixins.toBoolean()) {
    apply plugin: 'org.spongepowered.mixin'
}

version = project.mod_version
group = project.maven_group
archivesBaseName = "MekanismEnergistics"

sourceCompatibility = targetCompatibility = '1.8'

compileJava {
    sourceCompatibility = targetCompatibility = '1.8'
}

configurations {
    embed
    implementation.extendsFrom(embed)
}

minecraft {
    version = '1.12.2-14.23.5.2847'
    runDir = 'run'
    mappings = 'stable_39'
    def args = []
    if (project.use_coremod.toBoolean()) {
        args << '-Dfml.coreMods.load=' + coremod_plugin_class_name
    }
    if (project.use_mixins.toBoolean()) {
        args << '-Dmixin.hotSwap=true'
        args << '-Dmixin.checks.interfaces=true'
        args << '-Dmixin.debug.export=true'
    }
    clientJvmArgs.addAll(args)
    serverJvmArgs.addAll(args)
}

repositories {
    maven { 
        url = 'https://maven.cleanroommc.com' 
    }
    maven {
        url = 'https://repo.spongepowered.org/maven'
    }
    maven { url 'https://jitpack.io/' }
    maven { url 'https://cursemaven.com/' }
    maven { url 'https://minecraft.curseforge.com/api/maven/' }
}

dependencies {
    deobfCompile "curse.maven:jei-238222:4538010" //jei
    deobfCompile 'curse.maven:ae2-extended-life-570458:5378163' //pae2
    deobfCompile "curse.maven:mekanism-ce-399904:4804509" //mek-ce
    compileOnly "curse.maven:gregtech-ce-unofficial-557242:5050979" // gt api
    compileOnly "curse.maven:nae2-884359:5380800" // nae
}

sourceSets {
    main {
        ext.refMap = 'mixins.' + archives_base_name + '.refmap.json'
    }
}

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 mcmod.info, nothing else
    from(sourceSets.main.resources.srcDirs) {
        include 'mcmod.info'
        // replace version and mcversion
        expand 'version':project.version, 'mcversion':project.minecraft.version
    }
    // copy everything else except the mcmod.info
    from(sourceSets.main.resources.srcDirs) {
        exclude 'mcmod.info'
    }
    
    if (project.use_access_transformer.toBoolean()) {
        rename '(.+_at.cfg)', 'META-INF/$1' // Access Transformers
    }
}

jar {
    manifest {
        def attribute_map = [:]
        if (project.use_coremod.toBoolean()) {
            attribute_map['FMLCorePlugin'] = project.coremod_plugin_class_name
            if (project.include_mod.toBoolean()) {
                attribute_map['FMLCorePluginContainsFMLMod'] = true
                attribute_map['ForceLoadAsMod'] = project.gradle.startParameter.taskNames[0] == "build"
            }
        }
		if (project.use_access_transformer.toBoolean()) {
            attribute_map['FMLAT'] = project.archives_base_name + '_at.cfg'
        }
        attributes(attribute_map)
    }
}
