diff --git a/src/codechicken/lib/render/BlockRenderer.java b/src/codechicken/lib/render/BlockRenderer.java index 311b046..a408e97 100644 --- a/src/codechicken/lib/render/BlockRenderer.java +++ b/src/codechicken/lib/render/BlockRenderer.java @@ -138,17 +138,32 @@ public class BlockRenderer } public static FullBlock fullBlock = new FullBlock(); + public static void renderFullBlock(int sideMask) { + CCRenderState.setModel(fullBlock); + renderFaces(sideMask); + } + + /** + * Renders faces of a block-like model based on a sideMask. Eg for side 2, verts 8-11 will be rendered + * @param sideMask A mask of faces not to render + */ + public static void renderFaces(int sideMask) { + if(sideMask == 0x3F) return; + for(int s = 0; s < 6; s++) + if((sideMask & 1< { public Vector3 vec; public UV uv; - - public Vertex5() - { + + public Vertex5() { this(new Vector3(), new UV()); } - - public Vertex5(Vector3 vert, UV uv) - { + + public Vertex5(Vector3 vert, UV uv) { this.vec = vert; this.uv = uv; } - - public Vertex5(Vector3 vert, double u, double v) - { + + public Vertex5(Vector3 vert, double u, double v) { this(vert, new UV(u, v)); } - public Vertex5(double x, double y, double z, double u, double v) - { + public Vertex5(double x, double y, double z, double u, double v) { this(x, y, z, u, v, 0); } - public Vertex5(double x, double y, double z, double u, double v, int tex) - { - this(new Vector3(x, y, z), new UV(u, v)); + public Vertex5(double x, double y, double z, double u, double v, int tex) { + this(new Vector3(x, y, z), new UV(u, v, tex)); } - public Vertex5 set(double x, double y, double z, double u, double v) - { + public Vertex5 set(double x, double y, double z, double u, double v) { vec.set(x, y, z); uv.set(u, v); return this; } - public Vertex5 set(double x, double y, double z, double u, double v, int tex) - { + public Vertex5 set(double x, double y, double z, double u, double v, int tex) { vec.set(x, y, z); uv.set(u, v, tex); return this; @@ -61,30 +54,26 @@ public class Vertex5 implements Copyable return this; } - public Vertex5(Vertex5 vertex5) - { + public Vertex5(Vertex5 vertex5) { this(vertex5.vec.copy(), vertex5.uv.copy()); } - public Vertex5 copy() - { + public Vertex5 copy() { return new Vertex5(this); } - - public String toString() - { + + public String toString() { MathContext cont = new MathContext(4, RoundingMode.HALF_UP); - return "Vertex: ("+new BigDecimal(vec.x, cont)+", "+new BigDecimal(vec.y, cont)+", "+new BigDecimal(vec.z, cont)+") ("+new BigDecimal(uv.u, cont)+", "+new BigDecimal(uv.v, cont)+")"; + return "Vertex: (" + new BigDecimal(vec.x, cont) + ", " + new BigDecimal(vec.y, cont) + ", " + new BigDecimal(vec.z, cont) + ") " + + "(" + new BigDecimal(uv.u, cont) + ", " + new BigDecimal(uv.v, cont) + ") ("+uv.tex+")"; } - public Vertex5 apply(Transformation t) - { + public Vertex5 apply(Transformation t) { vec.apply(t); return this; } - - public Vertex5 apply(UVTransformation t) - { + + public Vertex5 apply(UVTransformation t) { uv.apply(t); return this; }