use of crazypants.enderio.base.render.model.CollectedQuadBakedBlockModel in project EnderIO by SleepyTrousers.
the class BlockStateWrapperBase method bakeModel.
@Override
public void bakeModel() {
long start = Profiler.instance.start();
QuadCollector quads = null;
QuadCollector overlayQuads = null;
@Nonnull QuadCollector paintQuads = new QuadCollector();
boolean hasPaintRendered = false;
String cacheResult;
if (block instanceof IBlockPaintableBlock && (!(block instanceof IWrenchHideablePaint) || !getYetaDisplayMode().isHideFacades())) {
hasPaintRendered = PaintWrangler.wrangleBakedModel(world, pos, ((IBlockPaintableBlock) block).getPaintSource(state, world, pos), paintQuads);
}
boolean fromCache = doCaching && MinecraftForgeClient.getRenderLayer() != null;
if (!hasPaintRendered || renderMapper instanceof IRenderMapper.IBlockRenderMapper.IRenderLayerAware.IPaintAware) {
if (fromCache) {
quads = getFromCache();
cacheResult = quads == null ? "miss" : "hit";
} else {
cacheResult = "not cachable";
}
if (quads == null) {
quads = new QuadCollector();
bakeBlockLayer(quads);
if (fromCache) {
putIntoCache(quads);
}
}
} else {
cacheResult = "paint only";
}
overlayQuads = OverlayHolder.getOverlay(renderMapper.mapOverlayLayer(this, world, pos, hasPaintRendered));
model = new CollectedQuadBakedBlockModel(paintQuads.combine(overlayQuads).combine(quads));
Profiler.instance.stop(start, state.getBlock().getLocalizedName() + " (bake, cache=" + cacheResult + ")");
}
use of crazypants.enderio.base.render.model.CollectedQuadBakedBlockModel in project EnderIO by SleepyTrousers.
the class BlockStateWrapperRelay method bakeModel.
@Override
public void bakeModel() {
long start = Profiler.instance.start();
@Nonnull QuadCollector paintQuads = new QuadCollector();
boolean hasPaintRendered = false;
String cacheResult;
if (block instanceof IBlockPaintableBlock && (!(block instanceof IWrenchHideablePaint) || !getYetaDisplayMode().isHideFacades())) {
hasPaintRendered = PaintWrangler.wrangleBakedModel(world, pos, ((IBlockPaintableBlock) block).getPaintSource(state, world, pos), paintQuads);
}
if (!hasPaintRendered) {
if (MinecraftForgeClient.getRenderLayer() == null || MinecraftForgeClient.getRenderLayer() == block.getBlockLayer()) {
model = null;
cacheResult = "relaying";
} else {
model = NULL;
cacheResult = "none";
}
} else {
model = new CollectedQuadBakedBlockModel(paintQuads);
cacheResult = "paint only";
}
Profiler.instance.stop(start, state.getBlock().getLocalizedName() + " (bake, cache=" + cacheResult + ")");
}
Aggregations