From 40acd715462f912146effc236b90ebae506ec155 Mon Sep 17 00:00:00 2001 From: embeddedt <42941056+embeddedt@users.noreply.github.com> Date: Tue, 2 May 2023 08:15:39 -0400 Subject: [PATCH 1/2] Fix JiJ --- fabric/build.gradle | 1 + fabric/src/main/resources/fabric.mod.json | 2 ++ 2 files changed, 3 insertions(+) diff --git a/fabric/build.gradle b/fabric/build.gradle index a4784f91..e09df301 100644 --- a/fabric/build.gradle +++ b/fabric/build.gradle @@ -29,6 +29,7 @@ configurations { dependencies { modImplementation "net.fabricmc:fabric-loader:${rootProject.fabric_loader_version}" + modIncludeImplementation(fabricApi.module("fabric-api-base", rootProject.fabric_api_version)) { exclude group: 'net.fabricmc', module: 'fabric-loader' } modIncludeImplementation(fabricApi.module("fabric-lifecycle-events-v1", rootProject.fabric_api_version)) { exclude group: 'net.fabricmc', module: 'fabric-loader' } modIncludeImplementation(fabricApi.module("fabric-screen-api-v1", rootProject.fabric_api_version)) { exclude group: 'net.fabricmc', module: 'fabric-loader' } // Remove the next line if you don't want to depend on the API diff --git a/fabric/src/main/resources/fabric.mod.json b/fabric/src/main/resources/fabric.mod.json index 79f1703f..e3f622da 100644 --- a/fabric/src/main/resources/fabric.mod.json +++ b/fabric/src/main/resources/fabric.mod.json @@ -25,6 +25,8 @@ "modernfix-common.mixins.json" ], "depends": { + "fabric-lifecycle-events-v1": "*", + "fabric-screen-api-v1": "*", "minecraft": ">=1.16.5" } } \ No newline at end of file From c415549f4e25cbd6d8c956cc67b796e19f85d56d Mon Sep 17 00:00:00 2001 From: embeddedt <42941056+embeddedt@users.noreply.github.com> Date: Tue, 2 May 2023 08:26:45 -0400 Subject: [PATCH 2/2] Adjust Fabric model bakery mixin for compatibility --- .../dynamic_resources/ModelBakeryMixin.java | 21 +++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/fabric/src/main/java/org/embeddedt/modernfix/fabric/mixin/perf/dynamic_resources/ModelBakeryMixin.java b/fabric/src/main/java/org/embeddedt/modernfix/fabric/mixin/perf/dynamic_resources/ModelBakeryMixin.java index 2d7007af..c1caf35b 100644 --- a/fabric/src/main/java/org/embeddedt/modernfix/fabric/mixin/perf/dynamic_resources/ModelBakeryMixin.java +++ b/fabric/src/main/java/org/embeddedt/modernfix/fabric/mixin/perf/dynamic_resources/ModelBakeryMixin.java @@ -3,6 +3,7 @@ package org.embeddedt.modernfix.fabric.mixin.perf.dynamic_resources; import com.google.common.cache.Cache; import com.google.common.cache.CacheBuilder; import com.google.common.cache.RemovalNotification; +import com.google.common.collect.ForwardingMap; import com.google.common.collect.ImmutableList; import com.google.gson.JsonElement; import com.mojang.math.Transformation; @@ -42,6 +43,7 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; import java.util.*; +import java.util.concurrent.ConcurrentMap; import java.util.concurrent.TimeUnit; import java.util.function.BiConsumer; import java.util.function.Function; @@ -100,7 +102,19 @@ public abstract class ModelBakeryMixin implements IExtendedModelBakery { .softValues() .build(); this.bakedCache = loadedBakedModels.asMap(); - this.unbakedCache = loadedModels.asMap(); + ConcurrentMap unbakedCacheBackingMap = loadedModels.asMap(); + this.unbakedCache = new ForwardingMap() { + @Override + protected Map delegate() { + return unbakedCacheBackingMap; + } + + @Override + public UnbakedModel put(ResourceLocation key, UnbakedModel value) { + smallLoadingCache.put(key, value); + return super.put(key, value); + } + }; this.bakedTopLevelModels = new DynamicBakedModelProvider((ModelBakery)(Object)this, bakedCache); filler.push(s); } @@ -206,11 +220,6 @@ public abstract class ModelBakeryMixin implements IExtendedModelBakery { return unbakedCache.get(rl); } - @Inject(method = "cacheAndQueueDependencies", at = @At("RETURN")) - private void addToSmallLoadingCache(ResourceLocation location, UnbakedModel model, CallbackInfo ci) { - smallLoadingCache.put(location, model); - } - /** * @author embeddedt