minor cleanup
This commit is contained in:
@@ -8,29 +8,28 @@ plugins {
|
|||||||
}
|
}
|
||||||
apply(plugin = "org.ajoberstar.grgit")
|
apply(plugin = "org.ajoberstar.grgit")
|
||||||
|
|
||||||
|
val gitHash = (project.ext.get("grgit") as Grgit).head().abbreviatedId
|
||||||
|
val semVer = "${project.version}+$gitHash"
|
||||||
|
val jarName = "BetterFoliage-$semVer-Fabric-${properties["mcVersion"]}"
|
||||||
|
|
||||||
repositories {
|
repositories {
|
||||||
maven("http://maven.fabricmc.net/")
|
maven("http://maven.fabricmc.net/")
|
||||||
maven("https://minecraft.curseforge.com/api/maven")
|
maven("https://minecraft.curseforge.com/api/maven")
|
||||||
maven("http://maven.sargunv.s3-website-us-west-2.amazonaws.com/")
|
|
||||||
maven("http://maven.modmuss50.me/")
|
maven("http://maven.modmuss50.me/")
|
||||||
maven("https://grondag-repo.appspot.com").credentials { username = "guest"; password = "" }
|
maven("https://grondag-repo.appspot.com").credentials { username = "guest"; password = "" }
|
||||||
maven("https://jitpack.io")
|
maven("https://jitpack.io")
|
||||||
}
|
}
|
||||||
val gitHash = (project.ext.get("grgit") as Grgit).head().abbreviatedId
|
|
||||||
|
|
||||||
val semVer = "${project.version}+$gitHash"
|
|
||||||
|
|
||||||
val jarName = "BetterFoliage-$semVer-Fabric-${properties["mcVersion"]}"
|
|
||||||
print("VERSION: $jarName")
|
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
"minecraft"("com.mojang:minecraft:${properties["mcVersion"]}")
|
"minecraft"("com.mojang:minecraft:${properties["mcVersion"]}")
|
||||||
"mappings"("net.fabricmc:yarn:${properties["yarnMappings"]}:v2")
|
"mappings"("net.fabricmc:yarn:${properties["yarnMappings"]}:v2")
|
||||||
|
|
||||||
|
// basic Fabric stuff
|
||||||
"modImplementation"("net.fabricmc:fabric-loader:${properties["loaderVersion"]}")
|
"modImplementation"("net.fabricmc:fabric-loader:${properties["loaderVersion"]}")
|
||||||
"modImplementation"("net.fabricmc.fabric-api:fabric-api:${properties["fabricVersion"]}")
|
"modImplementation"("net.fabricmc.fabric-api:fabric-api:${properties["fabricVersion"]}")
|
||||||
"modImplementation"("net.fabricmc:fabric-language-kotlin:${properties["fabricKotlinVersion"]}")
|
"modImplementation"("net.fabricmc:fabric-language-kotlin:${properties["fabricKotlinVersion"]}")
|
||||||
|
|
||||||
|
// configuration handling
|
||||||
"modImplementation"("io.github.prospector:modmenu:${properties["modMenuVersion"]}")
|
"modImplementation"("io.github.prospector:modmenu:${properties["modMenuVersion"]}")
|
||||||
listOf("modImplementation", "include").forEach { configuration ->
|
listOf("modImplementation", "include").forEach { configuration ->
|
||||||
configuration("me.shedaniel.cloth:config-2:${properties["clothConfigVersion"]}")
|
configuration("me.shedaniel.cloth:config-2:${properties["clothConfigVersion"]}")
|
||||||
@@ -47,11 +46,6 @@ dependencies {
|
|||||||
|
|
||||||
sourceSets {
|
sourceSets {
|
||||||
get("main").ext["refMap"] = "betterfoliage.refmap.json"
|
get("main").ext["refMap"] = "betterfoliage.refmap.json"
|
||||||
get("main").resources.srcDir("src/forge/resources")
|
|
||||||
get("main").java.srcDir("src/forge/java")
|
|
||||||
}
|
|
||||||
kotlin.sourceSets {
|
|
||||||
get("main").kotlin.srcDir("src/forge/kotlin")
|
|
||||||
}
|
}
|
||||||
|
|
||||||
java {
|
java {
|
||||||
@@ -60,7 +54,6 @@ java {
|
|||||||
}
|
}
|
||||||
|
|
||||||
kotlin {
|
kotlin {
|
||||||
target.platformType
|
|
||||||
target.compilations.configureEach {
|
target.compilations.configureEach {
|
||||||
kotlinOptions.jvmTarget = "1.8"
|
kotlinOptions.jvmTarget = "1.8"
|
||||||
kotlinOptions.freeCompilerArgs += listOf("-Xno-param-assertions", "-Xno-call-assertions")
|
kotlinOptions.freeCompilerArgs += listOf("-Xno-param-assertions", "-Xno-call-assertions")
|
||||||
@@ -73,5 +66,4 @@ tasks.getByName<ProcessResources>("processResources") {
|
|||||||
|
|
||||||
tasks.getByName<RemapJarTask>("remapJar") {
|
tasks.getByName<RemapJarTask>("remapJar") {
|
||||||
archiveName = "$jarName.jar"
|
archiveName = "$jarName.jar"
|
||||||
exclude("net")
|
|
||||||
}
|
}
|
||||||
@@ -17,7 +17,5 @@ kotlinVersion=1.3.60
|
|||||||
fabricKotlinVersion=1.3.60+build.1
|
fabricKotlinVersion=1.3.60+build.1
|
||||||
|
|
||||||
clothConfigVersion=1.8
|
clothConfigVersion=1.8
|
||||||
autoConfigVersion=1.2.0+mc1.14.4
|
|
||||||
|
|
||||||
modMenuVersion=1.7.6+build.115
|
modMenuVersion=1.7.6+build.115
|
||||||
fiberVersion=0.8.0-2
|
fiberVersion=0.8.0-2
|
||||||
@@ -20,6 +20,7 @@ public class MixinModelLoader {
|
|||||||
|
|
||||||
@Inject(at = @At("HEAD"), method = "addModel")
|
@Inject(at = @At("HEAD"), method = "addModel")
|
||||||
private void addModelHook(ModelIdentifier id, CallbackInfo info) {
|
private void addModelHook(ModelIdentifier id, CallbackInfo info) {
|
||||||
|
// use the same trick fabric-api does to get around the no-mixins-in-constructors policy
|
||||||
if (id == MISSING) {
|
if (id == MISSING) {
|
||||||
ModelLoadingCallback.EVENT.invoker().beginLoadModels((ModelLoader) (Object) this, resourceManager);
|
ModelLoadingCallback.EVENT.invoker().beginLoadModels((ModelLoader) (Object) this, resourceManager);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -34,6 +34,9 @@ interface ClientWorldLoadCallback {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Event fired after [BlockModels.reload] finishes.
|
||||||
|
*/
|
||||||
interface BlockModelsReloadCallback {
|
interface BlockModelsReloadCallback {
|
||||||
fun reloadBlockModels(blockModels: BlockModels)
|
fun reloadBlockModels(blockModels: BlockModels)
|
||||||
|
|
||||||
|
|||||||
@@ -25,17 +25,10 @@ import java.util.function.Supplier
|
|||||||
// net.minecraft.client.render.block.BlockModels.models
|
// net.minecraft.client.render.block.BlockModels.models
|
||||||
val BlockModels_models = YarnHelper.requiredField<Map<BlockState, BakedModel>>("net.minecraft.class_773", "field_4162", "Ljava/util/Map;")
|
val BlockModels_models = YarnHelper.requiredField<Map<BlockState, BakedModel>>("net.minecraft.class_773", "field_4162", "Ljava/util/Map;")
|
||||||
|
|
||||||
/** Threadsafe collector for sprite IDs */
|
|
||||||
class SpriteCollectorSync {
|
|
||||||
val idSet = Collections.synchronizedSet(mutableSetOf<Identifier>())
|
|
||||||
fun add(id: Identifier) = id.apply { idSet.add(this) }
|
|
||||||
fun dump(target: ClientSpriteRegistryCallback.Registry) { idSet.forEach { target.register(it) } }
|
|
||||||
}
|
|
||||||
|
|
||||||
class BakedModelReplacer : ModelLoadingCallback, ClientSpriteRegistryCallback, BlockModelsReloadCallback, Invalidator, HasLogger {
|
class BakedModelReplacer : ModelLoadingCallback, ClientSpriteRegistryCallback, BlockModelsReloadCallback, Invalidator, HasLogger {
|
||||||
override val logger get() = BetterFoliage.logDetail
|
override val logger get() = BetterFoliage.logDetail
|
||||||
|
|
||||||
val discoverers = mutableListOf<ModelDiscoveryBase>()
|
val discoverers = mutableListOf<ModelDiscovery>()
|
||||||
override val callbacks = mutableListOf<WeakReference<()->Unit>>()
|
override val callbacks = mutableListOf<WeakReference<()->Unit>>()
|
||||||
|
|
||||||
protected var keys = emptyMap<BlockState, BlockRenderKey>()
|
protected var keys = emptyMap<BlockState, BlockRenderKey>()
|
||||||
@@ -46,6 +39,7 @@ class BakedModelReplacer : ModelLoadingCallback, ClientSpriteRegistryCallback, B
|
|||||||
var currentLoader: ModelLoader? = null
|
var currentLoader: ModelLoader? = null
|
||||||
|
|
||||||
override fun beginLoadModels(loader: ModelLoader, manager: ResourceManager) {
|
override fun beginLoadModels(loader: ModelLoader, manager: ResourceManager) {
|
||||||
|
// Step 1: get a hold of the ModelLoader instance when model reloading starts
|
||||||
currentLoader = loader
|
currentLoader = loader
|
||||||
log("reloading block discovery configuration")
|
log("reloading block discovery configuration")
|
||||||
BetterFoliage.blockConfig.reloadConfig(manager)
|
BetterFoliage.blockConfig.reloadConfig(manager)
|
||||||
@@ -53,6 +47,7 @@ class BakedModelReplacer : ModelLoadingCallback, ClientSpriteRegistryCallback, B
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun registerSprites(atlasTexture: SpriteAtlasTexture, registry: ClientSpriteRegistryCallback.Registry) {
|
override fun registerSprites(atlasTexture: SpriteAtlasTexture, registry: ClientSpriteRegistryCallback.Registry) {
|
||||||
|
// Step 2: ModelLoader is finished with the unbaked models by now, we can inspect them
|
||||||
log("discovering blocks")
|
log("discovering blocks")
|
||||||
val idSet = Collections.synchronizedSet(mutableSetOf<Identifier>())
|
val idSet = Collections.synchronizedSet(mutableSetOf<Identifier>())
|
||||||
val allKeys = discoverers.map {
|
val allKeys = discoverers.map {
|
||||||
@@ -77,6 +72,7 @@ class BakedModelReplacer : ModelLoadingCallback, ClientSpriteRegistryCallback, B
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun reloadBlockModels(blockModels: BlockModels) {
|
override fun reloadBlockModels(blockModels: BlockModels) {
|
||||||
|
// Step 3: replace the baked models with our own
|
||||||
log("block model baking finished")
|
log("block model baking finished")
|
||||||
val modelMap = blockModels[BlockModels_models] as MutableMap<BlockState, BakedModel>
|
val modelMap = blockModels[BlockModels_models] as MutableMap<BlockState, BakedModel>
|
||||||
keys.forEach { (state, key) ->
|
keys.forEach { (state, key) ->
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ val aoWinding = allDirections.map { when(it) {
|
|||||||
SOUTH -> (UP to WEST).ccwWinding()
|
SOUTH -> (UP to WEST).ccwWinding()
|
||||||
WEST -> (SOUTH to UP).ccwWinding()
|
WEST -> (SOUTH to UP).ccwWinding()
|
||||||
EAST -> (SOUTH to DOWN).ccwWinding()
|
EAST -> (SOUTH to DOWN).ccwWinding()
|
||||||
} }
|
} }.toTypedArray()
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Indexing for undirected box corners (component order does not matter).
|
* Indexing for undirected box corners (component order does not matter).
|
||||||
|
|||||||
Reference in New Issue
Block a user