use of buildcraft.lib.client.model.MutableQuad in project BuildCraft by BuildCraft.
the class LensPluggableModel method bakeCutout.
private List<BakedQuad> bakeCutout(boolean isFilter, EnumFacing face, VertexFormat format) {
IModel model = isFilter ? modelCutoutFilter() : modelCutoutLens();
TextureAtlasSprite sprite = isFilter ? spriteFilterCutout : spriteLensCutout;
List<BakedQuad> quads = Lists.newArrayList();
List<BakedQuad> bakedQuads = renderLens(model, sprite, format);
Matrix4f matrix = MatrixUtil.rotateTowardsFace(face);
for (BakedQuad quad : bakedQuads) {
MutableQuad mutable = MutableQuad.create(quad);
mutable.transform(matrix);
ModelUtil.appendBakeQuads(quads, format, mutable);
}
return quads;
}
use of buildcraft.lib.client.model.MutableQuad in project BuildCraft by BuildCraft.
the class LensPluggableModel method bakeTransclucent.
private List<BakedQuad> bakeTransclucent(EnumDyeColor colour, boolean isFilter, EnumFacing face, VertexFormat format) {
TextureAtlasSprite sprite = spriteTranslucent;
int shade = -1;
if (colour == null) {
if (isFilter)
return Collections.emptyList();
sprite = spriteWaterFlow;
} else {
shade = ColorUtils.getLightHex(colour);
}
List<BakedQuad> quads = Lists.newArrayList();
List<BakedQuad> bakedQuads = renderLens(modelTranslucent(), sprite, format);
Matrix4f matrix = MatrixUtil.rotateTowardsFace(face);
for (BakedQuad quad : bakedQuads) {
MutableQuad mutable = MutableQuad.create(quad);
mutable.setTint(shade);
mutable.transform(matrix);
ModelUtil.appendBakeQuads(quads, format, mutable);
}
return quads;
}
use of buildcraft.lib.client.model.MutableQuad in project BuildCraft by BuildCraft.
the class FacadePluggableModel method bake.
public List<BakedQuad> bake(EnumWorldBlockLayer layer, EnumFacing face, boolean hollow, IBlockState state, VertexFormat format) {
List<BakedQuad> quads = Lists.newArrayList();
Matrix4f matrix = MatrixUtil.rotateTowardsFace(face);
if (layer == EnumWorldBlockLayer.TRANSLUCENT) {
if (!state.getBlock().canRenderInLayer(EnumWorldBlockLayer.TRANSLUCENT)) {
return quads;
}
} else {
if (!hollow && !ItemFacade.isTransparentFacade(state)) {
IModel connector = modelConnector();
TextureAtlasSprite structure = PipeIconProvider.TYPE.PipeStructureCobblestone.getIcon();
IFlexibleBakedModel baked = connector.bake(ModelRotation.X0_Y0, format, singleTextureFunction(structure));
for (BakedQuad quad : baked.getGeneralQuads()) {
MutableQuad mutable = MutableQuad.create(quad);
mutable.transform(matrix);
mutable.setCalculatedDiffuse();
ModelUtil.appendBakeQuads(quads, mutable);
}
}
if (!state.getBlock().canRenderInLayer(EnumWorldBlockLayer.SOLID) && !state.getBlock().canRenderInLayer(EnumWorldBlockLayer.CUTOUT) && !state.getBlock().canRenderInLayer(EnumWorldBlockLayer.CUTOUT_MIPPED)) {
return quads;
}
}
// FIXME: Use the model bisector to cut a model down + squish one side down so it looks right
final TextureAtlasSprite sprite = Minecraft.getMinecraft().getBlockRendererDispatcher().getBlockModelShapes().getTexture(state);
IModel model;
if (hollow) {
model = modelHollow();
} else {
model = modelFilled();
}
if (model != null) {
IFlexibleBakedModel baked = model.bake(ModelRotation.X0_Y0, format, singleTextureFunction(sprite));
for (BakedQuad quad : baked.getGeneralQuads()) {
MutableQuad mutable = MutableQuad.create(quad);
mutable.transform(matrix);
mutable.setCalculatedDiffuse();
ModelUtil.appendBakeQuads(quads, mutable);
}
}
return quads;
}
use of buildcraft.lib.client.model.MutableQuad in project BuildCraft by BuildCraft.
the class GatePluggableModel method bakeCutout.
public List<BakedQuad> bakeCutout(KeyPlugGate key, VertexFormat format) {
List<BakedQuad> quads = Lists.newArrayList();
List<MutableQuad> bakedQuads = renderGate(key, format);
Matrix4f matrix = MatrixUtil.rotateTowardsFace(key.side);
for (MutableQuad quad : bakedQuads) {
quad.transform(matrix);
quad.setCalculatedDiffuse();
quads.add(quad.toUnpacked());
}
return quads;
}
use of buildcraft.lib.client.model.MutableQuad in project BuildCraft by BuildCraft.
the class PlugPluggableModel method bakeCutout.
private List<BakedQuad> bakeCutout(EnumFacing face, VertexFormat format) {
IModel model = modelPlug();
TextureAtlasSprite sprite = spritePlug;
List<BakedQuad> quads = Lists.newArrayList();
List<BakedQuad> bakedQuads = renderPlug(model, sprite, format);
Matrix4f matrix = MatrixUtil.rotateTowardsFace(face);
for (BakedQuad quad : bakedQuads) {
MutableQuad mutable = MutableQuad.create(quad);
mutable.transform(matrix);
ModelUtil.appendBakeQuads(quads, format, mutable);
}
return quads;
}
Aggregations