@Override public void renderTileEntityFast(T te, double x, double y, double z, float partialTicks, int destroyStage, float partial, BufferBuilder buffer) { CCRenderState renderState = CCRenderState.instance(); renderState.reset(); renderState.bind(buffer); if(te.getWorld() != null) { renderState.setBrightness(te.getWorld(), te.getPos()); } Matrix4 translation = new Matrix4().translate(x, y, z); draw(te, renderState, translation, partialTicks); }
@Override public void renderItem(ItemStack stack, TransformType transformType) { MetaTileEntity metaTileEntity = MachineItemBlock.getMetaTileEntity(stack); if(metaTileEntity == null) return; GlStateManager.enableBlend(); CCRenderState renderState = CCRenderState.instance(); renderState.reset(); renderState.startDrawing(GL11.GL_QUADS, DefaultVertexFormats.ITEM); metaTileEntity.setRenderContextStack(stack); metaTileEntity.renderMetaTileEntity(renderState, new Matrix4(), new IVertexOperation[0]); metaTileEntity.setRenderContextStack(null); renderState.draw(); GlStateManager.disableBlend(); }
@Override public boolean renderBlock(IBlockAccess world, BlockPos pos, IBlockState state, BufferBuilder buffer) { MetaTileEntity metaTileEntity = BlockMachine.getMetaTileEntity(world, pos); if(metaTileEntity == null) return false; CCRenderState renderState = CCRenderState.instance(); renderState.reset(); renderState.bind(buffer); renderState.lightMatrix.locate(world, pos); IVertexOperation[] pipeline = new IVertexOperation[] {renderState.lightMatrix}; Matrix4 translation = new Matrix4().translate(pos.getX(), pos.getY(), pos.getZ()); metaTileEntity.renderMetaTileEntity(renderState, translation.copy(), pipeline); metaTileEntity.renderCovers(renderState, translation, pipeline); return true; }
@Override public void doRenderLayer(AbstractClientPlayer entity, float limbSwing, float limbSwingAmount, float partialTicks, float ageInTicks, float netHeadYaw, float headPitch, float scale) { if (uuid1.equals(entity.getUniqueID()) || uuid2.equals(entity.getUniqueID()) || uuid3.equals(entity.getUniqueID()) || uuid4.equals(entity.getUniqueID())) { GlStateManager.pushMatrix(); Matrix4 matrix4 = new Matrix4(); matrix4.apply(new Rotation(MathHelper.torad * 180, new Vector3(1, 0, 0))); matrix4.apply(new Scale(0.5)); matrix4.glApply(); if (entity.isSneaking()) { GlStateManager.translate(0, -0.5, 0); } if (entity.isElytraFlying()) { headPitch = -45; } GlStateManager.rotate(netHeadYaw, 0, -1, 0); GlStateManager.rotate(headPitch, 1, 0, 0); GlStateManager.translate(0, 1, 0); RenderTileEnderTank.renderTank(CCRenderState.instance(), 0, (float) (MathHelper.torad * 90F), new Frequency(), -0.5, 0, -0.5, 0); FluidStack fluidStack = FluidUtils.water.copy(); float bob = 0.45F + RenderUtils.getPearlBob(ClientUtils.getRenderTime()) * 2; fluidStack.amount = (int) MathHelper.map(bob, 0.2, 0.6, 1000, 14000); RenderTileEnderTank.renderLiquid(fluidStack, -0.5, 0, -0.5); GlStateManager.popMatrix(); } }
@SideOnly(Side.CLIENT) public boolean renderStatic(Vector3 pos, BlockRenderLayer layer, CCRenderState ccrs) { if (MinecraftForgeClient.getRenderLayer() == BlockRenderLayer.CUTOUT) { TileMultipart tileMultipart = tile(); ccrs.setBrightness(tileMultipart.getWorld(), tileMultipart.getPos()); FluidPipeRenderer.INSTANCE.renderPipeBlock(getPipeMaterial(), getPipeType(), getInsulationColor(), ccrs, new IVertexOperation[]{new Translation(pos)}, activeConnections & ~getBlockedConnections()); getCoverableImplementation().renderCovers(ccrs, new Matrix4().translate(pos), new IVertexOperation[0]); return true; } return false; }
@SideOnly(Side.CLIENT) public boolean renderStatic(Vector3 pos, BlockRenderLayer layer, CCRenderState ccrs) { if (MinecraftForgeClient.getRenderLayer() == BlockRenderLayer.CUTOUT) { TileMultipart tileMultipart = tile(); ccrs.setBrightness(tileMultipart.getWorld(), tileMultipart.getPos()); CableRenderer.INSTANCE.renderCableBlock(getPipeMaterial(), getPipeType(), getInsulationColor(), ccrs, new IVertexOperation[]{new Translation(pos)}, activeConnections & ~getBlockedConnections()); getCoverableImplementation().renderCovers(ccrs, new Matrix4().translate(pos), new IVertexOperation[0]); return true; } return false; } }
@Override public boolean renderBlock(IBlockAccess world, BlockPos pos, IBlockState state, BufferBuilder buffer) { CCRenderState renderState = CCRenderState.instance(); renderState.reset(); renderState.bind(buffer); IVertexOperation[] pipeline = {new Translation(pos)}; renderState.setBrightness(world, pos); BlockFluidPipe blockFluidPipe = (BlockFluidPipe) state.getBlock(); IPipeTile<FluidPipeType, FluidPipeProperties> tileEntityCable = blockFluidPipe.getPipeTileEntity(world, pos); if(tileEntityCable == null) return false; int paintingColor = tileEntityCable.getInsulationColor(); int connectedSidesMask = blockFluidPipe.getActualConnections(tileEntityCable, world); FluidPipeType fluidPipeType = tileEntityCable.getPipeType(); Material material = tileEntityCable.getPipeMaterial(); renderPipeBlock(material, fluidPipeType, paintingColor, renderState, pipeline, connectedSidesMask); tileEntityCable.getCoverableImplementation().renderCovers(renderState, new Matrix4().translate(pos.getX(), pos.getY(), pos.getZ()), new IVertexOperation[0]); return true; }
@Override public boolean renderBlock(IBlockAccess world, BlockPos pos, IBlockState state, BufferBuilder buffer) { CCRenderState renderState = CCRenderState.instance(); renderState.reset(); renderState.bind(buffer); IVertexOperation[] pipeline = {new Translation(pos)}; renderState.setBrightness(world, pos); BlockCable blockCable = (BlockCable) state.getBlock(); IPipeTile<Insulation, WireProperties> tileEntityCable = blockCable.getPipeTileEntity(world, pos); if(tileEntityCable == null) return false; int paintingColor = tileEntityCable.getInsulationColor(); int connectedSidesMask = blockCable.getActualConnections(tileEntityCable, world); Insulation insulation = tileEntityCable.getPipeType(); Material material = tileEntityCable.getPipeMaterial(); renderCableBlock(material, insulation, paintingColor, renderState, pipeline, connectedSidesMask); tileEntityCable.getCoverableImplementation().renderCovers(renderState, new Matrix4().translate(pos.getX(), pos.getY(), pos.getZ()), new IVertexOperation[0]); return true; }
@Override public boolean renderBlock(IBlockAccess world, BlockPos pos, IBlockState state, BufferBuilder buffer) { //render water in dedicated translucent rendering layer lazyInitializeRenderers(); if(state.getBlock() instanceof BlockSurfaceRockFlooded && MinecraftForgeClient.getRenderLayer() == BlockRenderLayer.TRANSLUCENT) { waterRenderer.renderFluid(world, state, pos, buffer); return true; } //otherwise, we are in solid rendering layer and render primary stone CCRenderState renderState = CCRenderState.instance(); renderState.reset(); renderState.bind(buffer); Matrix4 translation = new Matrix4(); translation.translate(pos.getX(), pos.getY(), pos.getZ()); IVertexOperation[] operations = new IVertexOperation[1]; operations[0] = new ColourMultiplier(GTUtility.convertRGBtoOpaqueRGBA_CL( blockColors.colorMultiplier(state, world, pos, 1))); if(world != null) { renderState.setBrightness(world, pos); } TextureAtlasSprite stoneSprite = TextureUtils.getBlockTexture("stone"); Cuboid6 baseBox = BlockSurfaceRock.getShapeFromBlockPos(pos); for(EnumFacing renderSide : EnumFacing.VALUES) { Textures.renderFace(renderState, translation, operations, renderSide, baseBox, stoneSprite); } return true; }