Skip to content

Commit 95a8e4f

Browse files
committed
Merge 1.20 into 1.20.4
2 parents add7dd4 + ab077bc commit 95a8e4f

File tree

1 file changed

+14
-0
lines changed

1 file changed

+14
-0
lines changed

common/src/main/java/org/embeddedt/modernfix/common/mixin/perf/dynamic_resources/ModelManagerMixin.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import com.google.common.collect.ImmutableList;
44
import net.minecraft.client.renderer.block.model.BlockModel;
5+
import net.minecraft.client.resources.model.BakedModel;
56
import net.minecraft.client.resources.model.ModelBakery;
67
import net.minecraft.client.resources.model.ModelManager;
78
import net.minecraft.resources.ResourceLocation;
@@ -14,11 +15,15 @@
1415
import org.embeddedt.modernfix.annotation.ClientOnlyMixin;
1516
import org.embeddedt.modernfix.util.LambdaMap;
1617
import org.spongepowered.asm.mixin.Mixin;
18+
import org.spongepowered.asm.mixin.Shadow;
1719
import org.spongepowered.asm.mixin.injection.At;
20+
import org.spongepowered.asm.mixin.injection.Inject;
1821
import org.spongepowered.asm.mixin.injection.Redirect;
22+
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
1923

2024
import java.io.BufferedReader;
2125
import java.io.IOException;
26+
import java.util.HashMap;
2227
import java.util.List;
2328
import java.util.Map;
2429
import java.util.Objects;
@@ -29,6 +34,15 @@
2934
@Mixin(ModelManager.class)
3035
@ClientOnlyMixin
3136
public class ModelManagerMixin {
37+
@Shadow private Map<ResourceLocation, BakedModel> bakedRegistry;
38+
39+
@Inject(method = "<init>", at = @At("RETURN"))
40+
private void injectDummyBakedRegistry(CallbackInfo ci) {
41+
if(this.bakedRegistry == null) {
42+
this.bakedRegistry = new HashMap<>();
43+
}
44+
}
45+
3246
@Redirect(method = "reload", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/resources/model/ModelManager;loadBlockModels(Lnet/minecraft/server/packs/resources/ResourceManager;Ljava/util/concurrent/Executor;)Ljava/util/concurrent/CompletableFuture;"))
3347
private CompletableFuture<Map<ResourceLocation, BlockModel>> deferBlockModelLoad(ResourceManager manager, Executor executor) {
3448
return CompletableFuture.completedFuture(new LambdaMap<>(location -> loadSingleBlockModel(manager, location)));

0 commit comments

Comments
 (0)