Skip to content

Commit

Permalink
Handle missing models in item overrides
Browse files Browse the repository at this point in the history
  • Loading branch information
embeddedt committed Dec 23, 2023
1 parent bc2e84b commit a7c2424
Showing 1 changed file with 6 additions and 2 deletions.
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
package org.embeddedt.modernfix.common.mixin.perf.dynamic_resources;

import net.minecraft.client.multiplayer.ClientLevel;
import net.minecraft.client.renderer.block.model.ItemOverride;
import net.minecraft.client.renderer.block.model.ItemOverrides;
import net.minecraft.client.resources.model.BakedModel;
import net.minecraft.world.entity.LivingEntity;
import net.minecraft.world.item.ItemStack;
import org.embeddedt.modernfix.dynamicresources.ItemOverrideBakedModel;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
Expand All @@ -20,11 +23,12 @@ private Function<ItemOverride, BakedModel> itemToBaked(Function<ItemOverride, Ba
}

@Inject(method = "resolve", at = @At("RETURN"), cancellable = true)
private void getRealModel(CallbackInfoReturnable<BakedModel> cir) {
private void getRealModel(BakedModel bakedModel, ItemStack itemStack, ClientLevel clientLevel, LivingEntity livingEntity, CallbackInfoReturnable<BakedModel> cir) {
BakedModel original = cir.getReturnValue();
if(original instanceof ItemOverrideBakedModel) {
ItemOverrideBakedModel override = (ItemOverrideBakedModel)original;
cir.setReturnValue(override.getRealModel());
BakedModel overrideModel = override.getRealModel();
cir.setReturnValue(overrideModel != null ? overrideModel : bakedModel);
}
}
}

0 comments on commit a7c2424

Please sign in to comment.