package openmods.renderer;
import net.minecraft.client.renderer.Tessellator;
import net.minecraftforge.common.util.ForgeDirection;
public class RotatedTessellator extends Tessellator {
protected final Tessellator wrapped;
public RotatedTessellator(Tessellator wrapped) {
this.wrapped = wrapped;
}
@Override
public void setTextureUV(double par1, double par3) {
wrapped.setTextureUV(par1, par3);
}
@Override
public void setColorRGBA(int par1, int par2, int par3, int par4) {
wrapped.setColorRGBA(par1, par2, par3, par4);
}
public static class R90 extends RotatedTessellator {
public R90(Tessellator wrapped) {
super(wrapped);
}
@Override
public void addVertex(double x, double y, double z) {
wrapped.addVertex(1 - z, y, x);
}
}
public static class R180 extends RotatedTessellator {
public R180(Tessellator wrapped) {
super(wrapped);
}
@Override
public void addVertex(double x, double y, double z) {
wrapped.addVertex(1 - x, y, 1 - z);
}
}
public static class R270 extends RotatedTessellator {
public R270(Tessellator wrapped) {
super(wrapped);
}
@Override
public void addVertex(double x, double y, double z) {
wrapped.addVertex(z, y, 1 - x);
}
}
public static Tessellator wrap(Tessellator tes, ForgeDirection dir) {
switch (dir) {
case NORTH:
return new R180(tes);
case SOUTH:
return tes;
case EAST:
return new R270(tes);
case WEST:
return new R90(tes);
default:
return tes;
}
}
}