use of net.minecraft.client.renderer.block.model.BakedQuad 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 net.minecraft.client.renderer.block.model.BakedQuad 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 net.minecraft.client.renderer.block.model.BakedQuad in project BuildCraft by BuildCraft.
the class ModelPowerAdapter method create.
public static PerspAwareModelBase create() {
ImmutableList.Builder<BakedQuad> quads = ImmutableList.builder();
VertexFormat format = DefaultVertexFormats.ITEM;
quads.addAll(INSTANCE.bakeCutout(EnumFacing.EAST, format));
return new PerspAwareModelBase(format, quads.build(), spritePowerAdapter, getBlockTransforms());
}
use of net.minecraft.client.renderer.block.model.BakedQuad 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;
}
use of net.minecraft.client.renderer.block.model.BakedQuad in project BuildCraft by BuildCraft.
the class PlugPluggableModel method create.
public static PerspAwareModelBase create() {
ImmutableList.Builder<BakedQuad> quads = ImmutableList.builder();
VertexFormat format = DefaultVertexFormats.ITEM;
quads.addAll(INSTANCE.bakeCutout(EnumFacing.SOUTH, format));
return new PerspAwareModelBase(format, quads.build(), spritePlug, getPluggableTransforms());
}
Aggregations