Autopack sprites when running

This commit is contained in:
Anuken 2020-04-27 17:35:10 -04:00
parent a4d49f5d17
commit 2504fd536b
3 changed files with 33 additions and 1 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 128 KiB

After

Width:  |  Height:  |  Size: 130 KiB

Before After
Before After

View file

@ -1,6 +1,9 @@
import com.badlogicgames.packr.Packr
import com.badlogicgames.packr.PackrConfig
import java.nio.ByteBuffer
import java.security.MessageDigest
apply plugin: "java"
sourceCompatibility = 1.8
@ -12,6 +15,27 @@ project.ext.assetsDir = new File("../core/assets")
def enableTemplates = true
def JDK_DIR = "$System.env.JDK_DIR"
def ICON_DIR = new File("core/assets/icons/icon.icns")
def spriteHashFile = new File(project.rootDir, "build/spritehash")
def hashDirectory = {
def root = new File(project.rootDir, "core/assets-raw/sprites/")
MessageDigest digest = MessageDigest.getInstance("MD5")
ByteBuffer buffer = ByteBuffer.allocate(16)
def files = []
root.eachFileRecurse{ file ->
files += file
}
files.sort()
for(File file : files){
buffer.position(0)
buffer.putLong(file.lastModified())
digest.update(buffer.array())
}
return digest.digest().encodeHex()
}
task run(dependsOn: classes, type: JavaExec){
main = project.mainClassName
@ -24,6 +48,14 @@ task run(dependsOn: classes, type: JavaExec){
jvmArgs("-XstartOnFirstThread", "-Djava.awt.headless=true")
}
spriteHashFile.parentFile.mkdirs()
String spriteHash = hashDirectory()
if(spriteHashFile.exists() && spriteHashFile.text != spriteHash){
dependsOn ":tools:pack"
}
spriteHashFile.text = spriteHash
if(project.hasProperty("args")){
args Eval.me(project.getProperties()["args"])
}

View file

@ -1,3 +1,3 @@
org.gradle.daemon=true
org.gradle.jvmargs=-Xms256m -Xmx1024m
archash=c3020adc9f3b6180662a1b8f9f3046b9266fe012
archash=b5b739a5e4a4eef3fee045944e220f40de0f6f85