@Override
@SuppressWarnings("deprecation")
public BakedModel resolve(BakedModel originalBakedModel, ItemStack stack, ClientLevel level, LivingEntity entity, int p_173469_) {
BakedModel overrideModel = overrides.resolve(originalBakedModel, stack, level, entity, p_173469_);
if (originalBakedModel != overrideModel)
return overrideModel;
int hash = calcHash(stack);
if (!MODELS_CACHE.containsKey(hash)) {
ATMItemModel newBakedModel = new ATMItemModel(originalBakedModel);
if (ATMTagContainer.isAmethyst(stack)) {
float delta = 0.0015f;
newBakedModel.addQuads(ItemLayerModel.getQuadsForSprite(1, atlas.apply(resolveSprite(stack.getItem())), TransformationHelper.toTransformation(new ItemTransform(new Vector3f(), new Vector3f(-delta / 2, -delta / 2, -delta / 2), new Vector3f(1 + delta, 1 + delta, 1 + delta)))));
}
return MODELS_CACHE.put(hash, newBakedModel);
}
return MODELS_CACHE.getOrDefault(hash, originalBakedModel);
}
}