166 lines
6.2 KiB
Groovy
166 lines
6.2 KiB
Groovy
plugins {
|
|
id "java"
|
|
id "maven-publish"
|
|
id "net.fabricmc.fabric-loom" version "${loom_version}"
|
|
}
|
|
|
|
import groovy.json.JsonOutput
|
|
import groovy.json.JsonSlurper
|
|
|
|
version = project.mod_version
|
|
group = project.maven_group
|
|
|
|
base {
|
|
archivesName = project.archives_base_name
|
|
}
|
|
|
|
loom {
|
|
splitEnvironmentSourceSets()
|
|
|
|
runs {
|
|
client {
|
|
programArgs "--username", "BlocodexDev", "--uuid", "000000000000400080000000000b10cd"
|
|
}
|
|
}
|
|
|
|
mods {
|
|
blocodex {
|
|
sourceSet sourceSets.main
|
|
sourceSet sourceSets.client
|
|
}
|
|
}
|
|
}
|
|
|
|
dependencies {
|
|
minecraft "com.mojang:minecraft:${project.minecraft_version}"
|
|
implementation "net.fabricmc:fabric-loader:${project.loader_version}"
|
|
implementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_api_version}"
|
|
|
|
testImplementation "org.junit.jupiter:junit-jupiter-api:5.10.3"
|
|
testRuntimeOnly "org.junit.jupiter:junit-jupiter-engine:5.10.3"
|
|
testRuntimeOnly "org.junit.platform:junit-platform-launcher"
|
|
}
|
|
|
|
processResources {
|
|
inputs.property "version", project.version
|
|
|
|
filesMatching("fabric.mod.json") {
|
|
expand "version": inputs.properties.version
|
|
}
|
|
}
|
|
|
|
tasks.withType(JavaCompile).configureEach {
|
|
options.release = 25
|
|
}
|
|
|
|
java {
|
|
withSourcesJar()
|
|
sourceCompatibility = JavaVersion.VERSION_25
|
|
targetCompatibility = JavaVersion.VERSION_25
|
|
}
|
|
|
|
jar {
|
|
from("license.txt")
|
|
}
|
|
|
|
test {
|
|
useJUnitPlatform()
|
|
}
|
|
|
|
tasks.register("importWsmcSnapshot") {
|
|
group = "blocodex"
|
|
description = "Import the local WSMC snapshot into a compact runtime asset."
|
|
|
|
def sourceFile = file("/Users/koka/Documents/wsmc/data/output/latest/snapshot.json")
|
|
def outputFile = file("src/main/resources/assets/blocodex/data/wsmc_snapshot_compact.json")
|
|
|
|
inputs.file(sourceFile)
|
|
outputs.file(outputFile)
|
|
|
|
doLast {
|
|
if (!sourceFile.isFile()) {
|
|
throw new GradleException("WSMC snapshot not found: ${sourceFile}")
|
|
}
|
|
|
|
def snapshot = new JsonSlurper().parse(sourceFile)
|
|
def entries = (snapshot.blocks ?: [])
|
|
.findAll { it.visible == true && ["block", "item", "mob"].contains(it.entry_type) }
|
|
.collect { entry ->
|
|
[
|
|
id : entry.id,
|
|
name : entry.name,
|
|
entry_type : entry.entry_type,
|
|
description: entry.description ?: "",
|
|
history : (entry.history ?: []).collect { note ->
|
|
[
|
|
version: note.version ?: "",
|
|
status : note.status ?: "",
|
|
notes : note.notes ?: ""
|
|
]
|
|
},
|
|
colors : [
|
|
primary : entry.colors?.primary ?: entry.colors?.average_hex ?: entry.colors?.dominant_hex ?: "#000000",
|
|
dominant_hex : entry.colors?.dominant_hex ?: entry.colors?.primary ?: "#000000",
|
|
average_hex : entry.colors?.average_hex ?: entry.colors?.primary ?: "#000000",
|
|
hue_group : entry.colors?.hue_group ?: "neutral",
|
|
lightness : entry.colors?.lightness ?: 0.0,
|
|
saturation : entry.colors?.saturation ?: 0.0,
|
|
palette : entry.colors?.palette ?: [],
|
|
color_groups : (entry.colors?.color_groups ?: []).collect { group ->
|
|
[
|
|
hex : group.hex ?: "#000000",
|
|
weight : group.weight ?: 0.0,
|
|
lightness : group.lightness ?: 0.0,
|
|
saturation: group.saturation ?: 0.0,
|
|
hue_group : group.hue_group ?: "neutral"
|
|
]
|
|
},
|
|
source : entry.colors?.source ?: ""
|
|
],
|
|
icon : entry.icon ?: "",
|
|
family : entry.family ?: "",
|
|
relations : (entry.relations ?: []).collect { relation ->
|
|
[
|
|
type : relation.type ?: "",
|
|
target : relation.target ?: "",
|
|
label : relation.label ?: "",
|
|
confidence: relation.confidence ?: 0.0
|
|
]
|
|
},
|
|
category : entry.category ?: ""
|
|
]
|
|
}
|
|
.sort { a, b -> a.id <=> b.id }
|
|
|
|
def counts = entries.countBy { it.entry_type }
|
|
def compact = [
|
|
kind : "blocodex-wsmc-compact",
|
|
schema_version : "0.1.0",
|
|
minecraft_version: snapshot.minecraft_version ?: project.minecraft_version,
|
|
source : sourceFile.absolutePath,
|
|
source_fingerprint: snapshot.source_fingerprint ?: "",
|
|
generated_at : snapshot.generated_at ?: "",
|
|
entry_count : entries.size(),
|
|
entry_type_counts: [
|
|
block: counts.block ?: 0,
|
|
item : counts.item ?: 0,
|
|
mob : counts.mob ?: 0
|
|
],
|
|
entries : entries
|
|
]
|
|
|
|
outputFile.parentFile.mkdirs()
|
|
outputFile.text = JsonOutput.toJson(compact) + "\n"
|
|
logger.lifecycle("Imported ${entries.size()} WSMC entries into ${outputFile}")
|
|
}
|
|
}
|
|
|
|
publishing {
|
|
publications {
|
|
create("mavenJava", MavenPublication) {
|
|
artifactId = project.archives_base_name
|
|
from components.java
|
|
}
|
|
}
|
|
}
|