package net.fabricmc.fabric.api.renderer.v1.render;

import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.minecraft.class_11515;
import net.minecraft.class_1921;
import net.minecraft.class_4597;
import net.minecraft.class_4722;

@Environment(EnvType.CLIENT)
public final class RenderLayerHelper {
   private RenderLayerHelper() {
   }

   public static class_1921 getMovingBlockLayer(class_11515 layer) {
      class_1921 var10000;
      switch (layer) {
         case field_60923 -> var10000 = class_1921.method_23577();
         case field_60924 -> var10000 = class_1921.method_23579();
         case field_60925 -> var10000 = class_1921.method_23581();
         case field_60926 -> var10000 = class_1921.method_29380();
         case field_60927 -> var10000 = class_1921.method_29997();
         default -> throw new MatchException((String)null, (Throwable)null);
      }

      return var10000;
   }

   public static class_1921 getEntityBlockLayer(class_11515 layer) {
      return layer == class_11515.field_60926 ? class_4722.method_29382() : class_4722.method_24074();
   }

   public static BlockVertexConsumerProvider movingDelegate(class_4597 vertexConsumers) {
      return (layer) -> vertexConsumers.method_73477(getMovingBlockLayer(layer));
   }

   public static BlockVertexConsumerProvider entityDelegate(class_4597 vertexConsumers) {
      return (layer) -> vertexConsumers.method_73477(getEntityBlockLayer(layer));
   }
}
