Skip to content

Commit 79219d2

Browse files
committed
Fix issue with anonymous classes in mixin
Related: #151
1 parent 8f896f0 commit 79219d2

File tree

2 files changed

+17
-13
lines changed

2 files changed

+17
-13
lines changed

common/src/main/java/org/embeddedt/modernfix/dynamicresources/ModelBakeryHelpers.java

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,7 @@
99
import it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap;
1010
import it.unimi.dsi.fastutil.objects.ObjectOpenHashSet;
1111
import net.minecraft.client.renderer.block.model.BlockModel;
12-
import net.minecraft.client.resources.model.Material;
13-
import net.minecraft.client.resources.model.ModelBakery;
14-
import net.minecraft.client.resources.model.ModelResourceLocation;
15-
import net.minecraft.client.resources.model.UnbakedModel;
12+
import net.minecraft.client.resources.model.*;
1613
import net.minecraft.resources.ResourceLocation;
1714
import net.minecraft.server.packs.PackResources;
1815
import net.minecraft.server.packs.PackType;
@@ -24,6 +21,7 @@
2421
import net.minecraft.world.level.block.state.StateDefinition;
2522
import net.minecraft.world.level.block.state.properties.Property;
2623
import org.embeddedt.modernfix.ModernFix;
24+
import org.embeddedt.modernfix.api.entrypoint.ModernFixClientIntegration;
2725

2826
import java.io.IOException;
2927
import java.io.InputStream;
@@ -32,6 +30,8 @@
3230
import java.util.*;
3331
import java.util.concurrent.CompletableFuture;
3432
import java.util.concurrent.ConcurrentLinkedQueue;
33+
import java.util.function.BiConsumer;
34+
import java.util.function.BiFunction;
3535
import java.util.function.Function;
3636
import java.util.function.Predicate;
3737
import java.util.stream.Collectors;
@@ -342,4 +342,13 @@ public static ImmutableList<BlockState> getBlockStatesForMRL(StateDefinition<Blo
342342
}
343343
return ImmutableList.copyOf(finalList);
344344
}
345+
346+
public static ModernFixClientIntegration bakedModelWrapper(BiFunction<ResourceLocation, Pair<UnbakedModel, BakedModel>, BakedModel> consumer) {
347+
return new ModernFixClientIntegration() {
348+
@Override
349+
public BakedModel onBakedModelLoad(ResourceLocation location, UnbakedModel baseModel, BakedModel originalModel, ModelState state, ModelBakery bakery) {
350+
return consumer.apply(location, Pair.of(baseModel, originalModel));
351+
}
352+
};
353+
}
345354
}

forge/src/main/java/org/embeddedt/modernfix/forge/mixin/perf/dynamic_resources/ae2/RegistrationMixin.java

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
import org.embeddedt.modernfix.ModernFixClient;
1212
import org.embeddedt.modernfix.annotation.ClientOnlyMixin;
1313
import org.embeddedt.modernfix.annotation.RequiresMod;
14-
import org.embeddedt.modernfix.api.entrypoint.ModernFixClientIntegration;
14+
import org.embeddedt.modernfix.dynamicresources.ModelBakeryHelpers;
1515
import org.spongepowered.asm.mixin.Mixin;
1616
import org.spongepowered.asm.mixin.injection.At;
1717
import org.spongepowered.asm.mixin.injection.Inject;
@@ -30,13 +30,9 @@ public class RegistrationMixin {
3030
@Inject(method = "registerClientEvents", at = @At("TAIL"), remap = false)
3131
private void doRegisterDynBake(CallbackInfo ci) {
3232
customizerField = ObfuscationReflectionHelper.findField(ModelOverrideComponent.class, "customizer");
33-
ModernFixClient.CLIENT_INTEGRATIONS.add(new ModernFixClientIntegration() {
34-
@Override
35-
public BakedModel onBakedModelLoad(ResourceLocation location, UnbakedModel baseModel, BakedModel originalModel, ModelState state, ModelBakery bakery) {
33+
ModernFixClient.CLIENT_INTEGRATIONS.add(ModelBakeryHelpers.bakedModelWrapper((location, pair) -> {
34+
BakedModel originalModel = pair.getSecond();
3635
if(location.getNamespace().equals(AppEng.MOD_ID)) {
37-
BakedModel m = bakery.bake(ModelBakery.MISSING_MODEL_LOCATION, BlockModelRotation.X0_Y0);
38-
if(originalModel == m)
39-
return originalModel;
4036
Iterator<IModelBakeComponent> components = Api.INSTANCE.definitions().getRegistry().getBootstrapComponents(IModelBakeComponent.class);
4137
while(components.hasNext()) {
4238
IModelBakeComponent c = components.next();
@@ -55,7 +51,6 @@ public BakedModel onBakedModelLoad(ResourceLocation location, UnbakedModel baseM
5551
}
5652
}
5753
return originalModel;
58-
}
59-
});
54+
}));
6055
}
6156
}

0 commit comments

Comments
 (0)