plugins { id 'base' id 'net.fabricmc.fabric-loom' version "${loom_version}" apply false } tasks.named('build') { dependsOn(':sanctuary:build', ':demeure:build', ':jei:build', ':sanctuary-test:build') } tasks.named('check') { dependsOn(':sanctuary:check', ':demeure:check', ':jei:check', ':sanctuary-test:check', 'verifyPack') } tasks.register('verifyPack', Exec) { group = 'verification' description = 'Verify pinned pack dependencies, versions and index hashes.' commandLine('python3', 'scripts/pack.py', 'check') } tasks.register('assemblePack', Exec) { group = 'distribution' description = 'Assemble a local packwiz pack including the built Sanctuary mod.' dependsOn(':sanctuary:build', 'verifyPack', 'assembleResourcePack', 'assembleResourceTemplate') commandLine('python3', 'scripts/pack.py', 'assemble') } tasks.register('verifyResourcePack', Exec) { group = 'verification' description = 'Verify the versioned Sanctuary texture sources and their release hashes.' commandLine('python3', 'scripts/resource_pack.py') } tasks.named('check') { dependsOn('verifyResourcePack') } tasks.register('assembleResourcePack', Zip) { group = 'distribution' description = 'Export the same textures as the built-in resource pack for standalone use.' dependsOn('verifyResourcePack') from('ressources-pack/sanctuary') { include 'assets/**', 'pack.mcmeta', 'pack.png' exclude '**/.DS_Store' } destinationDirectory = layout.buildDirectory archiveFileName = "Sanctuary-Resource-Pack-${resource_pack_version}.zip" preserveFileTimestamps = false reproducibleFileOrder = true } tasks.register('assembleTestPack', Exec) { group = 'distribution' description = 'Stage the separate flat-world Sanctuary Test profile.' dependsOn('assemblePack', ':sanctuary-test:build') commandLine('python3', 'scripts/test_pack.py') } tasks.register('assembleResourceTemplate', Zip) { group = 'distribution' description = 'Export all Sanctuary client assets as an editable personal resource pack.' dependsOn(':sanctuary:processResources', 'verifyResourcePack') def resources = project(':sanctuary').layout.buildDirectory.dir('resources/main') // Same precedence as the native exporter: built-in textures override mod defaults. duplicatesStrategy = DuplicatesStrategy.EXCLUDE from(resources.map { it.dir('resourcepacks/textures/assets') }) { into 'assets' } from(resources.map { it.dir('assets') }) { into 'assets' } from(resources.map { it.dir('resourcepacks/template') }) from(resources.map { it.file('resourcepacks/textures/pack.png') }) exclude '**/.DS_Store' destinationDirectory = layout.buildDirectory archiveFileName = "Sanctuary-Template-${mod_version}.zip" preserveFileTimestamps = false reproducibleFileOrder = true }