本文整理了Java中net.minecraft.util.BlockRenderLayer
类的一些代码示例,展示了BlockRenderLayer
类的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。BlockRenderLayer
类的具体详情如下:
包路径:net.minecraft.util.BlockRenderLayer
类名称:BlockRenderLayer
暂无
代码示例来源:origin: AppliedEnergistics/Applied-Energistics-2
for( BlockRenderLayer forcedLayer : BlockRenderLayer.values() )
代码示例来源:origin: SleepyTrousers/EnderIO
private static Integer mkKey(EnumFacing side, BlockRenderLayer pass) {
return (side == null ? 0 : side.ordinal() + 1) * (BlockRenderLayer.values().length + 1) + (pass == BREAKING ? 0 : pass.ordinal() + 1);
}
代码示例来源:origin: OpenMods/OpenModsLib
@Override
public MultiLayerModel process(ImmutableMap<String, String> customData) {
final ModelUpdater updater = new ModelUpdater(customData);
final Optional<ResourceLocation> base = updater.get("base", ModelUpdater.MODEL_LOCATION, this.base);
final Map<BlockRenderLayer, ResourceLocation> models = Maps.newHashMap();
for (BlockRenderLayer layer : BlockRenderLayer.values()) {
final ResourceLocation result = updater.get(layer.toString(), ModelUpdater.MODEL_LOCATION, this.models.get(layer));
if (result != null) models.put(layer, result);
}
return updater.hasChanged()? new MultiLayerModel(base, models) : this;
}
代码示例来源:origin: AlgorithmX2/Chisels-and-Bits
public void setAbovelimit(
final BlockRenderLayer layer,
final int fc )
{
faceCount[layer.ordinal()] = fc;
}
代码示例来源:origin: AlgorithmX2/Chisels-and-Bits
public static ModelQuadLayer[] getCachedFace(
final int stateID,
final long weight,
final EnumFacing face,
final BlockRenderLayer layer )
{
if ( layer == null )
{
return null;
}
final int cacheVal = stateID << 6 | layer.ordinal() << 4 | face.ordinal();
final ModelQuadLayer[] mpc = cache.get( cacheVal );
if ( mpc != null )
{
return mpc;
}
final BlockRenderLayer original = net.minecraftforge.client.MinecraftForgeClient.getRenderLayer();
try
{
ForgeHooksClient.setRenderLayer( layer );
return getInnerCachedFace( cacheVal, stateID, weight, face, layer );
}
finally
{
// restore previous layer.
ForgeHooksClient.setRenderLayer( original );
}
}
代码示例来源:origin: OpenMods/OpenModsLib
public MultiLayerBakedModel(Map<BlockRenderLayer, IBakedModel> models, IBakedModel base, IBakedModel missing, ImmutableMap<TransformType, TRSRTransformation> cameraTransforms) {
super(base, cameraTransforms);
this.models = ImmutableMap.copyOf(models);
this.missing = missing;
final List<BakedQuad> quads = Lists.newArrayList();
for (BlockRenderLayer layer : BlockRenderLayer.values()) {
final IBakedModel model = models.get(layer);
if (model != null) {
buildQuadsForLayer(quads, model);
}
}
this.quads = ImmutableList.copyOf(quads);
}
代码示例来源:origin: AlgorithmX2/Chisels-and-Bits
final int[] faceCount = new int[BlockRenderLayer.values().length];
faceCount[lx.layer.ordinal()] += model.faceCount();
rTracker.setAbovelimit( brl, faceCount[brl.ordinal()] );
faceCount[brl.ordinal()] = 0;
代码示例来源:origin: AlgorithmX2/Chisels-and-Bits
public static ChiseledBlockBaked getBreakingModel(
ChiselLayer layer,
Integer blockStateID )
{
int key = layer.layer.ordinal() + ( blockStateID << 2 );
ChiseledBlockBaked out = breakCache.get( key );
if ( out == null )
{
final IBlockState state = ModUtil.getStateById( blockStateID );
final IBakedModel model = ModelUtil.solveModel( state, 0, Minecraft.getMinecraft().getBlockRendererDispatcher().getBlockModelShapes().getModelForState( ModUtil.getStateById( blockStateID ) ), layer.layer );
if ( model != null )
{
out = ChiseledBlockBaked.createFromTexture( ModelUtil.findTexture( blockStateID, model, EnumFacing.UP, layer.layer ), layer );
}
else
{
out = ChiseledBlockBaked.createFromTexture( null, null );
}
breakCache.put( key, out );
}
return out;
}
代码示例来源:origin: PenguinSquad/Harvest-Festival
@Override
protected void setupRender(BuildingAccess world) {
for (BlockRenderLayer layer: BlockRenderLayer.values()) {
VertexBuffer buffer = renderer.getWorldRendererByLayer(layer);
buffer.begin(7, DefaultVertexFormats.BLOCK);
world.getBlockMap().entrySet().stream().filter(placeable -> placeable.getKey().getY() != 0)
.forEach(placeable -> addRender(world, placeable.getValue(), placeable.getKey(), layer, buffer));
}
}
}
代码示例来源:origin: Lunatrius/Schematica
@Override
public void renderOverlay() {
if (this.initialized) {
preRenderOverlay();
for (final RenderOverlay renderOverlay : this.renderOverlays) {
final VertexBuffer vertexBuffer = renderOverlay.getVertexBufferByLayer(BlockRenderLayer.TRANSLUCENT.ordinal());
GlStateManager.pushMatrix();
preRenderChunk(renderOverlay);
renderOverlay.multModelviewMatrix();
vertexBuffer.bindBuffer();
setupArrayPointersOverlay();
vertexBuffer.drawArrays(GL11.GL_QUADS);
GlStateManager.popMatrix();
}
OpenGlHelper.glBindBuffer(OpenGlHelper.GL_ARRAY_BUFFER, 0);
GlStateManager.resetColor();
this.renderOverlays.clear();
postRenderOverlay();
}
}
代码示例来源:origin: SleepyTrousers/EnderIO
public @Nonnull List<BakedQuad> getQuads(EnumFacing side, BlockRenderLayer pass) {
final List<BakedQuad> list = table[mkKey(side, pass)];
if (list == null || list.isEmpty()) {
if (pass == BREAKING) {
// breaking layer: not set by model, try to construct it on-the-fly
List<BakedQuad> result = Collections.<BakedQuad> emptyList();
for (BlockRenderLayer layer : BlockRenderLayer.values()) {
result = CompositeList.create(result, table[mkKey(side, layer)]);
}
return result;
}
return Collections.<BakedQuad> emptyList();
} else {
return list;
}
}
代码示例来源:origin: Lunatrius/Schematica
@Override
public void renderChunkLayer(final BlockRenderLayer layer) {
preRenderChunk();
if (this.initialized) {
for (final RenderChunk renderChunk : this.renderChunks) {
final VertexBuffer vertexbuffer = renderChunk.getVertexBufferByLayer(layer.ordinal());
GlStateManager.pushMatrix();
preRenderChunk(renderChunk);
renderChunk.multModelviewMatrix();
vertexbuffer.bindBuffer();
setupArrayPointers();
vertexbuffer.drawArrays(GL11.GL_QUADS);
GlStateManager.popMatrix();
}
OpenGlHelper.glBindBuffer(OpenGlHelper.GL_ARRAY_BUFFER, 0);
GlStateManager.resetColor();
this.renderChunks.clear();
}
postRenderChunk();
}
代码示例来源:origin: PenguinSquad/Harvest-Festival
protected void setupRender(BuildingAccess world) {
for (BlockRenderLayer layer: BlockRenderLayer.values()) {
VertexBuffer buffer = renderer.getWorldRendererByLayer(layer);
buffer.begin(7, DefaultVertexFormats.BLOCK);
for (Entry<BlockPos, IBlockState> placeable: world.getBlockMap().entrySet()) {
addRender(world, placeable.getValue(), placeable.getKey(), layer, buffer);
}
}
}
代码示例来源:origin: AlgorithmX2/Chisels-and-Bits
final int cacheV = stateID << 6 | layer.ordinal() << 4 | xf.ordinal();
cache.put( cacheV, mp );
final int cacheV = stateID << 6 | layer.ordinal() << 4 | f.ordinal();
final ArrayList<ModelQuadLayerBuilder> x = tmp.get( f );
final ModelQuadLayer[] mp = new ModelQuadLayer[x.size()];
代码示例来源:origin: AlgorithmX2/Chisels-and-Bits
private static void updateCacheClient()
{
layerFilters.clear();
final Map<BlockRenderLayer, BitSet> layerFilters = VoxelBlob.layerFilters;
final BlockRenderLayer[] layers = BlockRenderLayer.values();
for ( final BlockRenderLayer layer : layers )
{
layerFilters.put( layer, new BitSet( 4096 ) );
}
for ( final Iterator<Block> it = Block.REGISTRY.iterator(); it.hasNext(); )
{
final Block block = it.next();
for ( final IBlockState state : block.getBlockState().getValidStates() )
{
final int id = ModUtil.getStateId( state );
if ( state == null || state.getBlock() != block )
{
// reverse mapping is broken, so just skip over this state.
continue;
}
for ( final BlockRenderLayer layer : layers )
{
if ( block.canRenderInLayer( state, layer ) )
{
layerFilters.get( layer ).set( id );
}
}
}
}
}
代码示例来源:origin: AlgorithmX2/Chisels-and-Bits
final BlockRenderLayer layer )
final int blockToWork = layer.ordinal() * EnumFacing.VALUES.length + myFace.ordinal();
代码示例来源:origin: AlgorithmX2/Chisels-and-Bits
public VoxelNeighborRenderTracker()
{
faceCount = new Integer[BlockRenderLayer.values().length];
if ( ChiselsAndBits.getConfig().defaultToDynamicRenderer )
{
isDynamic = IS_DYNAMIC | IS_LOCKED;
for ( int x = 0; x < faceCount.length; ++x )
{
faceCount[x] = ChiselsAndBits.getConfig().dynamicModelFaceCount + 1;
}
}
else if ( ChiselsAndBits.getConfig().forceDynamicRenderer )
{
isDynamic = IS_DYNAMIC | IS_LOCKED;
}
}
代码示例来源:origin: TeamWizardry/Wizardry
if (info.blockState.getMaterial() == Material.AIR) continue;
if (info.blockState.getRenderType() == EnumBlockRenderType.INVISIBLE) continue;
blocks.put(info.blockState.getBlock().getRenderLayer().ordinal(), info);
代码示例来源:origin: SleepyTrousers/EnderIO
@SuppressWarnings("null")
public static void renderBlockModel(@Nonnull World world, @Nonnull BlockPos pos, @Nonnull IBlockState state, boolean translateToOrigin, boolean relight) {
BufferBuilder wr = Tessellator.getInstance().getBuffer();
wr.begin(GL11.GL_QUADS, DefaultVertexFormats.BLOCK);
if (translateToOrigin) {
wr.setTranslation(-pos.getX(), -pos.getY(), -pos.getZ());
}
BlockRendererDispatcher blockrendererdispatcher = Minecraft.getMinecraft().getBlockRendererDispatcher();
BlockModelShapes modelShapes = blockrendererdispatcher.getBlockModelShapes();
IBakedModel ibakedmodel = modelShapes.getModelForState(state);
final IBlockAccess worldWrapper = relight ? new WorldWrapper(world, pos) : world;
for (BlockRenderLayer layer : BlockRenderLayer.values()) {
if (state.getBlock().canRenderInLayer(state, layer)) {
ForgeHooksClient.setRenderLayer(layer);
blockrendererdispatcher.getBlockModelRenderer().renderModel(worldWrapper, ibakedmodel, state, pos, wr, false);
}
}
ForgeHooksClient.setRenderLayer(null);
if (translateToOrigin) {
wr.setTranslation(0, 0, 0);
}
Tessellator.getInstance().draw();
}
代码示例来源:origin: OpenMods/OpenModsLib
private void drawBlock() {
final Tessellator tessellator = Tessellator.getInstance();
final BufferBuilder wr = tessellator.getBuffer();
final BlockRendererDispatcher dispatcher = parent.getMinecraft().getBlockRendererDispatcher();
for (BlockRenderLayer layer : BlockRenderLayer.values()) {
if (blockState.getBlock().canRenderInLayer(blockState, layer)) {
net.minecraftforge.client.ForgeHooksClient.setRenderLayer(layer);
wr.setTranslation(-0.5, -0.5, -0.5);
wr.begin(GL11.GL_QUADS, DefaultVertexFormats.BLOCK);
dispatcher.renderBlock(blockState, FakeBlockAccess.ORIGIN, access, wr);
tessellator.draw();
}
}
wr.setTranslation(0.0D, 0.0D, 0.0D);
net.minecraftforge.client.ForgeHooksClient.setRenderLayer(null);
}
内容来源于网络,如有侵权,请联系作者删除!