package net.fabricmc.fabric.mixin.renderer.client.block.model;

import java.util.function.Predicate;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.fabricmc.fabric.api.renderer.v1.mesh.QuadEmitter;
import net.minecraft.class_1087;
import net.minecraft.class_10889;
import net.minecraft.class_10893;
import net.minecraft.class_1920;
import net.minecraft.class_2338;
import net.minecraft.class_2350;
import net.minecraft.class_2680;
import net.minecraft.class_5819;
import org.jetbrains.annotations.Nullable;
import org.spongepowered.asm.mixin.Final;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;

@Environment(EnvType.CLIENT)
@Mixin({class_10893.class})
abstract class SimpleBlockStateModelMixin implements class_1087 {
   @Shadow
   @Final
   private class_10889 field_57945;

   public void emitQuads(QuadEmitter emitter, class_1920 blockView, class_2338 pos, class_2680 state, class_5819 random, Predicate<@Nullable class_2350> cullTest) {
      this.field_57945.emitQuads(emitter, cullTest);
   }

   public Object createGeometryKey(class_1920 blockView, class_2338 pos, class_2680 state, class_5819 random) {
      return this;
   }
}
