MineLittlePony/build.gradle
2018-11-05 16:42:43 +02:00

193 lines
4.5 KiB
Groovy

buildscript {
repositories {
jcenter()
maven {
name 'forge'
url 'http://files.minecraftforge.net/maven'
}
maven {
name = 'sponge'
url = 'https://repo.spongepowered.org/maven'
}
}
dependencies {
classpath 'net.minecraftforge.gradle:ForgeGradle:2.3-SNAPSHOT'
classpath 'org.spongepowered:mixingradle:0.6-SNAPSHOT'
classpath 'com.github.jengelman.gradle.plugins:shadow:2.0.4'
}
}
plugins {
id 'org.ajoberstar.grgit' version '1.7.2'
}
apply plugin: 'net.minecraftforge.gradle.liteloader'
apply plugin: 'org.spongepowered.mixin'
apply plugin: 'com.github.johnrengelman.shadow'
ext {
revision = grgit.log().size()
hash = grgit.head().abbreviatedId
if (file('.git/shallow').exists()) {
// don't clone with --depth
revision = -1
hash += " shallow"
}
}
if (project.release != 'RELEASE') {
version += "-${project.release}"
}
if (project.release == 'SNAPSHOT') {
version += "-${project.revision}-${project.hash}"
}
group = project.group
description = project.displayname
minecraft {
version = project.minecraft_version
mappings = project.mappings_version
runDir = 'run'
replace '@VERSION@', project.version
}
mixin {
defaultObfuscationEnv notch
}
targetCompatibility = 1.8
sourceCompatibility = 1.8
sourceSets {
hdskins {
compileClasspath += main.compileClasspath
ext.refMap = 'hdskins.mixin.refmap.json'
}
main {
compileClasspath += hdskins.output
ext.refMap = 'minelp.mixin.refmap.json'
}
}
dependencies {
// use the same version as httpclient
compile('org.apache.httpcomponents:httpmime:4.3.2') {
transitive = false
}
compile('org.spongepowered:mixin:0.7.11-SNAPSHOT') {
transitive = false
}
}
manifest {
attributes 'Implementation-Version': "${project.version} (git-${project.hash})"
}
litemod.json {
mcversion = project.minecraft_version
displayName = project.displayname
author = project.authors
revision = project.revision
description = project.description
description.minelittlepony = project.description_mlp
description.hdskinsmod = project.description_hd
mixinConfigs += [
'minelp.mixin.json',
'hdskins.mixin.json'
]
}
afterEvaluate {
file('build.number').delete()
}
jar {
from sourceSets.hdskins.output
from litemod
classifier 'base'
extension 'jar'
}
archivesBaseName = "mod-${project.name.toLowerCase()}"
task copyBGPones(type: Copy) {
delete "${buildDir}/skins/assets/minelittlepony/textures/entity/pony"
// use the same rejex for both filenames and the bgponies.json
// Otherwise there could be errors because of the names in the json not matching the ones on disk
def permittedChars = /[^0-9a-z_-\",\t\{\}\[\]\(\):\'\.\/ ]/
from("skins/Background Ponies") {
exclude "bgponies.json"
rename { filename ->
filename.toLowerCase()
.replaceAll(permittedChars, '')
}
}
from("skins/Background Ponies") {
include "bgponies.json"
filter { line ->
line.toLowerCase()
.replaceAll(permittedCharsJSON, '')
}
}
into "${buildDir}/skins/assets/minelittlepony/textures/entity/pony"
}
shadowJar {
extension 'litemod'
classifier "mc$minecraft.version"
from sourceSets.hdskins.output
from litemod
exclude "/assets/minelittlepony/textures/entity/pony"
from(copyBGPones) {
into "/assets/minelittlepony/textures/entity/pony"
}
dependencies {
exclude dependency('deobf.com.mumfrey:liteloader:')
exclude dependency('deobf.org.ow2.asm:')
exclude dependency('org.spongepowered:mixin:')
exclude 'META-INF/**'
}
relocate 'org.apache.http.entity.mime', 'com.voxelmodpack.repack.org.apache.http.entity.mime'
exclude 'dummyThing'
}
sourceJar {
// add hdskins sources
from sourceSets.hdskins.allSource
}
task srgJar(type: Jar) {
from sourceSets.main.output
from sourceSets.hdskins.output
from litemod
classifier "mc$minecraft.version-srg"
}
task zipCommunityPack(type: Zip) {
baseName = "Pony Skin Pack"
destinationDir = new File(buildDir, "libs")
from("skins") {
// TODO: Later packs will have their folders excluded.
// For now we just zip everything.
exclude "README.md"
}
}
reobf {
srgJar {
mappingType = 'SEARGE'
}
shadowJar{}
}