configurations {
    texturePacker
}

dependencies {
    texturePacker "com.badlogicgames.gdx:gdx-tools:$gdxVersion"
}

defaultTasks 'build'

task clean(type: Delete) {
    delete '../android/assets'
    doFirst {
        println "Delete android/assets"
    }
}

task copySkin(type: Copy) {
    from 'skin'
    into '../android/assets/skin'
}

task copyImages(type: Copy) {
    from 'images'
    into '../android/assets/data'
}

task copySounds(type: Copy) {
    from 'sounds'
    into '../android/assets/sounds'
}

task packUi(type: JavaExec) {
    main = 'com.badlogic.gdx.tools.texturepacker.TexturePacker'
    classpath = configurations.texturePacker
    args = ['../assets/ui', '../android/assets/data', 'ui']
}

task packHud(type: JavaExec) {
    main = 'com.badlogic.gdx.tools.texturepacker.TexturePacker'
    classpath = configurations.texturePacker
    args = ['../assets/hud', '../android/assets/data', 'hud']
}

task packUnits0(type: JavaExec) {

    main = 'com.badlogic.gdx.tools.texturepacker.TexturePacker'
    classpath = configurations.texturePacker
    args = ['../assets/units0', '../android/assets/data', 'units0']
}

task packUnitOverlays0(type: JavaExec) {
    main = 'com.badlogic.gdx.tools.texturepacker.TexturePacker'
    classpath = configurations.texturePacker
    args = ['../assets/unit-overlays0', '../android/assets/data', 'unit-overlays0']
}

task packUnits1(type: JavaExec) {

    main = 'com.badlogic.gdx.tools.texturepacker.TexturePacker'
    classpath = configurations.texturePacker
    args = ['../assets/units1', '../android/assets/data', 'units1']
}

task packUnitOverlays1(type: JavaExec) {
    main = 'com.badlogic.gdx.tools.texturepacker.TexturePacker'
    classpath = configurations.texturePacker
    args = ['../assets/unit-overlays1', '../android/assets/data', 'unit-overlays1']
}

task packHexOverlays(type: JavaExec) {
    main = 'com.badlogic.gdx.tools.texturepacker.TexturePacker'
    classpath = configurations.texturePacker
    args = ['../assets/hex-overlays', '../android/assets/data', 'hex-overlays']
}

/* task buildUI(dependsOn: ["processXHDPI"]) { */
task build(dependsOn: clean) {
    description "Builds the skin at various DPIs"
    doFirst {
        println "Packing the textures..."
    }
    doLast {
        println "Finished"
    }
}

build.dependsOn {
    tasks.findAll { task -> (task.name.startsWith('pack') || task.name.startsWith('copy')) }
}