类net.minecraft.util.BlockRenderLayer源码实例Demo

下面列出了怎么用net.minecraft.util.BlockRenderLayer的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: OpenModsLib   文件: MultiLayerModel.java
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);
}
 
@Override
public BlockRenderLayer deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException
{
    if (json.isJsonPrimitive())
    {
        JsonPrimitive primitive = json.getAsJsonPrimitive();
        if (primitive.isString())
        {
            String string = primitive.getAsString();
            if (string.equals("solid"))
                return BlockRenderLayer.SOLID;
            if (string.equals("mippedCutout"))
                return BlockRenderLayer.CUTOUT_MIPPED;
            if (string.equals("cutout"))
                return BlockRenderLayer.CUTOUT;
            if (string.equals("translucent"))
                return BlockRenderLayer.TRANSLUCENT;
        }
    }

    throw new JsonParseException("Invalid block render layer: " + json);
}
 
源代码3 项目: OpenModsLib   文件: GuiComponentSideSelector.java
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);
}
 
源代码4 项目: GregTech   文件: InvPipeRenderer.java
@Override
public boolean renderBlock(IBlockAccess world, BlockPos pos, IBlockState state, BufferBuilder buffer) {
    CCRenderState renderState = CCRenderState.instance();
    renderState.reset();
    renderState.bind(buffer);
    renderState.setBrightness(world, pos);
    IVertexOperation[] pipeline = {new Translation(pos)};

    BlockInventoryPipe block = (BlockInventoryPipe) state.getBlock();
    TileEntityInventoryPipe tileEntity = (TileEntityInventoryPipe) block.getPipeTileEntity(world, pos);
    if (tileEntity == null) {
        return false;
    }
    int paintingColor = tileEntity.getInsulationColor();
    int connectedSidesMask = block.getActualConnections(tileEntity, world);

    BlockRenderLayer renderLayer = MinecraftForgeClient.getRenderLayer();
    if (renderLayer == BlockRenderLayer.SOLID) {
        renderPipe(renderState, pipeline, paintingColor, connectedSidesMask);
    }
    ICoverable coverable = tileEntity.getCoverableImplementation();
    coverable.renderCovers(renderState, new Matrix4().translate(pos.getX(), pos.getY(), pos.getZ()), renderLayer);
    return true;
}
 
源代码5 项目: OpenModsLib   文件: MultiLayerModel.java
@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;

}
 
源代码6 项目: TFC2   文件: BlockVegDesert.java
/*******************************************************************************
 * 2. Rendering
 *******************************************************************************/

@Override
@SideOnly(Side.CLIENT)
public BlockRenderLayer getBlockLayer()
{
	return BlockRenderLayer.CUTOUT;
}
 
源代码7 项目: Valkyrien-Skies   文件: PhysRenderChunk.java
public void renderBlockLayer(BlockRenderLayer layerToRender, double partialTicks,
                             int pass) {
    switch (layerToRender) {
        case CUTOUT:
            if (needsCutoutUpdate) {
                updateList(layerToRender);
            }
            GL11.glCallList(glCallListCutout);
            break;
        case CUTOUT_MIPPED:
            if (needsCutoutMippedUpdate) {
                updateList(layerToRender);
            }
            GL11.glCallList(glCallListCutoutMipped);
            break;
        case SOLID:
            if (needsSolidUpdate) {
                updateList(layerToRender);
            }
            GL11.glCallList(glCallListSolid);
            break;
        case TRANSLUCENT:
            if (needsTranslucentUpdate) {
                updateList(layerToRender);
            }
            GL11.glCallList(glCallListTranslucent);
            break;
        default:
            break;
    }
}
 
源代码8 项目: TFC2   文件: BlockAncientDevice.java
/*******************************************************************************
 * 2. Rendering
 *******************************************************************************/

@Override
@SideOnly(Side.CLIENT)
public BlockRenderLayer getBlockLayer()
{
	return BlockRenderLayer.CUTOUT;
}
 
源代码9 项目: Valkyrien-Skies   文件: PhysRenderChunk.java
public void renderBlockLayer(BlockRenderLayer layerToRender, double partialTicks, int pass) {
    switch (layerToRender) {
        case CUTOUT:
            if (needsCutoutUpdate) {
                updateList(layerToRender);
            }
            FastBlockModelRenderer.renderVertexBuffer(cutoutBuffer);
            break;
        case CUTOUT_MIPPED:
            if (needsCutoutMippedUpdate) {
                updateList(layerToRender);
            }
            FastBlockModelRenderer.renderVertexBuffer(cutoutMippedBuffer);
            break;
        case SOLID:
            if (needsSolidUpdate) {
                updateList(layerToRender);
            }
            FastBlockModelRenderer.renderVertexBuffer(solidBuffer);
            break;
        case TRANSLUCENT:
            if (needsTranslucentUpdate) {
                updateList(layerToRender);
            }
            FastBlockModelRenderer.renderVertexBuffer(translucentBuffer);
            break;
        default:
            break;
    }
}
 
源代码10 项目: TFC2   文件: BlockSmallVessel.java
/*******************************************************************************
 * 2. Rendering
 *******************************************************************************/

@Override
@SideOnly(Side.CLIENT)
public BlockRenderLayer getBlockLayer()
{
	return BlockRenderLayer.CUTOUT;
}
 
源代码11 项目: TFC2   文件: BlockGrass.java
/*******************************************************************************
 * 2. Rendering
 *******************************************************************************/


@Override
@SideOnly(Side.CLIENT)
public BlockRenderLayer getBlockLayer()
{
	return BlockRenderLayer.CUTOUT_MIPPED;
}
 
源代码12 项目: Valkyrien-Skies   文件: PhysRenderChunk.java
public void renderBlockLayer(BlockRenderLayer layerToRender, double partialTicks, int pass, ICamera iCamera) {
    for (int i = 0; i < 16; i++) {
        IVSRenderChunk renderChunk = renderChunks[i];
        if (renderChunk != null) {
            AxisAlignedBB renderChunkBB = new AxisAlignedBB(chunk.x << 4, renderChunk.minY(), chunk.z << 4, (chunk.x << 4) + 15, renderChunk.maxY(), (chunk.z << 4) + 15);
            Polygon polygon = new Polygon(renderChunkBB, toRender.getShipTransformationManager().getRenderTransform(), TransformType.SUBSPACE_TO_GLOBAL);
            AxisAlignedBB inWorldBB = polygon.getEnclosedAABB();

            // Only render chunks that can be shown by the camera.
            if (iCamera.isBoundingBoxInFrustum(inWorldBB)) {
                renderChunk.renderBlockLayer(layerToRender, partialTicks, pass);
            }
        }
    }
}
 
源代码13 项目: litematica   文件: LitematicaRenderer.java
public void piecewiseRenderSolid(boolean renderColliding, float partialTicks)
{
    if (this.renderPiecewiseBlocks)
    {
        this.mc.profiler.startSection("litematica_blocks_solid");

        if (renderColliding)
        {
            GlStateManager.enablePolygonOffset();
            GlStateManager.doPolygonOffset(-0.3f, -0.6f);
        }

        this.startShaderIfEnabled();

        this.getWorldRenderer().renderBlockLayer(BlockRenderLayer.SOLID, partialTicks, this.entity);

        this.disableShader();

        if (renderColliding)
        {
            GlStateManager.doPolygonOffset(0f, 0f);
            GlStateManager.disablePolygonOffset();
        }

        this.mc.profiler.endSection();
    }
}
 
源代码14 项目: Valkyrien-Skies   文件: PhysObjectRenderManager.java
public void renderBlockLayer(BlockRenderLayer layerToRender, double partialTicks, int pass, ICamera iCamera) {
    if (renderChunks == null) {
        renderChunks = new PhysRenderChunk[parent.getOwnedChunks().chunkLengthX()][parent
            .getOwnedChunks()
            .chunkLengthZ()];
        for (int xChunk = 0; xChunk < parent.getOwnedChunks().chunkLengthX(); xChunk++) {
            for (int zChunk = 0; zChunk < parent.getOwnedChunks().chunkLengthZ(); zChunk++) {
                renderChunks[xChunk][zChunk] = new PhysRenderChunk(parent, parent
                    .getChunkAt(xChunk + parent.getOwnedChunks().minX(),
                        zChunk + parent.getOwnedChunks().minZ()));
            }
        }
    }

    GL11.glPushMatrix();
    Minecraft.getMinecraft().entityRenderer.enableLightmap();
    // int i = parent.wrapper.getBrightnessForRender((float) partialTicks);

    // int j = i % 65536;
    // int k = i / 65536;
    // OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, (float)
    // j, (float) k);
    // GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F);

    applyRenderTransform(partialTicks);
    for (PhysRenderChunk[] chunkArray : renderChunks) {
        for (PhysRenderChunk renderChunk : chunkArray) {
            renderChunk.renderBlockLayer(layerToRender, partialTicks, pass, iCamera);
        }
    }

    Minecraft.getMinecraft().entityRenderer.disableLightmap();
    GL11.glPopMatrix();
}
 
源代码15 项目: litematica   文件: LitematicaRenderer.java
public void piecewiseRenderCutout(boolean renderColliding, float partialTicks)
{
    if (this.renderPiecewiseBlocks)
    {
        this.mc.profiler.startSection("litematica_blocks_cutout");

        if (renderColliding)
        {
            GlStateManager.enablePolygonOffset();
            GlStateManager.doPolygonOffset(-0.3f, -0.6f);
        }

        this.startShaderIfEnabled();

        this.getWorldRenderer().renderBlockLayer(BlockRenderLayer.CUTOUT, partialTicks, this.entity);

        this.disableShader();

        if (renderColliding)
        {
            GlStateManager.doPolygonOffset(0f, 0f);
            GlStateManager.disablePolygonOffset();
        }

        this.mc.profiler.endSection();
    }
}
 
源代码16 项目: OpenModsLib   文件: MultiLayerModel.java
@Nonnull
@Override
public List<BakedQuad> getQuads(IBlockState state, EnumFacing side, long rand) {
	final BlockRenderLayer layer = MinecraftForgeClient.getRenderLayer();
	if (layer == null) { return side == null? quads : ImmutableList.<BakedQuad> of(); }

	final IBakedModel model = models.get(layer);
	return MoreObjects.firstNonNull(model, missing).getQuads(state, side, rand);
}
 
源代码17 项目: ForgeHax   文件: ForgeHaxHooks.java
public static BlockRenderLayer onRenderBlockInLayer(
  Block block, IBlockState state, BlockRenderLayer layer, BlockRenderLayer compareToLayer) {
  if (HOOK_onRenderBlockInLayer.reportHook()) {
    RenderBlockInLayerEvent event =
      new RenderBlockInLayerEvent(block, state, layer, compareToLayer);
    MinecraftForge.EVENT_BUS.post(event);
    return event.getLayer();
  } else {
    return layer;
  }
}
 
源代码18 项目: TFC2   文件: BlockCactus.java
/*******************************************************************************
 * 2. Rendering
 *******************************************************************************/

@Override
@SideOnly(Side.CLIENT)
public BlockRenderLayer getBlockLayer()
{
	return BlockRenderLayer.CUTOUT;
}
 
源代码19 项目: TofuCraftReload   文件: BlockTofuYuba.java
@SideOnly(Side.CLIENT)
public BlockRenderLayer getBlockLayer() {
    return BlockRenderLayer.CUTOUT;
}
 
源代码20 项目: AgriCraft   文件: BlockGrate.java
@Override
public BlockRenderLayer getBlockLayer() {
    return BlockRenderLayer.CUTOUT;
}
 
源代码21 项目: litematica   文件: IMixinCompiledChunk.java
@Invoker
void invokeSetLayerUsed(BlockRenderLayer layer);
 
@Override
public BlockRenderLayer getRenderLayer() {
    return BlockRenderLayer.CUTOUT;
}
 
源代码23 项目: ForgeHax   文件: RenderBlockInLayerEvent.java
public BlockRenderLayer getLayer() {
  return layer;
}
 
源代码24 项目: enderutilities   文件: BlockPhasing.java
@Override
public BlockRenderLayer getRenderLayer()
{
    return BlockRenderLayer.TRANSLUCENT;
}
 
源代码25 项目: Sakura_mod   文件: BlockGrapeSplint.java
@SideOnly(Side.CLIENT)
public BlockRenderLayer getBlockLayer()
{
    return BlockRenderLayer.CUTOUT;
}
 
源代码26 项目: AgriCraft   文件: BlockSeedAnalyzer.java
@Override
public BlockRenderLayer getBlockLayer() {
    return BlockRenderLayer.CUTOUT_MIPPED;
}
 
源代码27 项目: TFC2   文件: BlockPortal.java
@Override
@SideOnly(Side.CLIENT)
public BlockRenderLayer getBlockLayer()
{
	return BlockRenderLayer.TRANSLUCENT;
}
 
源代码28 项目: Sakura_mod   文件: BlockVanillaCrop.java
@SideOnly(Side.CLIENT)
public BlockRenderLayer getBlockLayer() {
	return BlockRenderLayer.CUTOUT;
}
 
源代码29 项目: Sakura_mod   文件: BlockGrapeSplintStand.java
@SideOnly(Side.CLIENT)
public BlockRenderLayer getBlockLayer()
{
    return BlockRenderLayer.CUTOUT;
}
 
源代码30 项目: Sakura_mod   文件: BlockGrapeVine.java
@SideOnly(Side.CLIENT)
public BlockRenderLayer getBlockLayer() {
	return BlockRenderLayer.CUTOUT;
}
 
 类所在包
 同包方法