package net.minecraft.client.renderer; import com.mojang.blaze3d.vertex.VertexConsumer; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.minecraft.client.renderer.texture.TextureAtlasSprite; @Environment(EnvType.CLIENT) public class SpriteCoordinateExpander implements VertexConsumer { private final VertexConsumer delegate; private final TextureAtlasSprite sprite; public SpriteCoordinateExpander(VertexConsumer delegate, TextureAtlasSprite sprite) { this.delegate = delegate; this.sprite = sprite; } @Override public VertexConsumer addVertex(float x, float y, float z) { return this.delegate.addVertex(x, y, z); } @Override public VertexConsumer setColor(int red, int green, int blue, int alpha) { return this.delegate.setColor(red, green, blue, alpha); } @Override public VertexConsumer setUv(float u, float v) { return this.delegate.setUv(this.sprite.getU(u), this.sprite.getV(v)); } @Override public VertexConsumer setUv1(int u, int v) { return this.delegate.setUv1(u, v); } @Override public VertexConsumer setUv2(int u, int v) { return this.delegate.setUv2(u, v); } @Override public VertexConsumer setNormal(float normalX, float normalY, float normalZ) { return this.delegate.setNormal(normalX, normalY, normalZ); } @Override public void addVertex(float x, float y, float z, int color, float u, float v, int packedOverlay, int packedLight, float normalX, float normalY, float normalZ) { this.delegate.addVertex(x, y, z, color, this.sprite.getU(u), this.sprite.getV(v), packedOverlay, packedLight, normalX, normalY, normalZ); } }