net.minecraft.util.BlockRenderLayer.values()方法的使用及代码示例

x33g5p2x  于2022-01-17 转载在 其他  
字(9.6k)|赞(0)|评价(0)|浏览(74)

本文整理了Java中net.minecraft.util.BlockRenderLayer.values()方法的一些代码示例,展示了BlockRenderLayer.values()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。BlockRenderLayer.values()方法的具体详情如下:
包路径:net.minecraft.util.BlockRenderLayer
类名称:BlockRenderLayer
方法名:values

BlockRenderLayer.values介绍

暂无

代码示例

代码示例来源:origin: AppliedEnergistics/Applied-Energistics-2

for( BlockRenderLayer forcedLayer : BlockRenderLayer.values() )

代码示例来源: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: 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: 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: 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: 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: 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

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

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: 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: AlgorithmX2/Chisels-and-Bits

final int[] faceCount = new int[BlockRenderLayer.values().length];

代码示例来源: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);
}

代码示例来源:origin: AlgorithmX2/Chisels-and-Bits

for ( final BlockRenderLayer layer : BlockRenderLayer.values() )

代码示例来源:origin: Vazkii/Patchouli

private void renderElements(Multiblock mb, Iterable<? extends BlockPos> blocks, Vector4f eye) {
  GlStateManager.pushMatrix();
  GlStateManager.color(1F, 1F, 1F, 1F);
  GlStateManager.translate(0, 0, -1);
  
  TileEntityRendererDispatcher.instance.entityX = eye.x;
  TileEntityRendererDispatcher.instance.entityY = eye.y;
  TileEntityRendererDispatcher.instance.entityZ = eye.z;
  TileEntityRendererDispatcher.staticPlayerX = eye.x;
  TileEntityRendererDispatcher.staticPlayerY = eye.y;
  TileEntityRendererDispatcher.staticPlayerZ = eye.z;
  BlockRenderLayer oldRenderLayer = MinecraftForgeClient.getRenderLayer();
  for (BlockRenderLayer layer : BlockRenderLayer.values()) {
    if (layer == BlockRenderLayer.TRANSLUCENT) {
      doTileEntityRenderPass(mb, blocks, 0);
    }
    doWorldRenderPass(mb, blocks, layer, eye);
    if (layer == BlockRenderLayer.TRANSLUCENT) {
      doTileEntityRenderPass(mb, blocks, 1);
    }
  }
  ForgeHooksClient.setRenderLayer(oldRenderLayer);
  ForgeHooksClient.setRenderPass(-1);
  setGlStateForPass(0);
  mc.getTextureManager().getTexture(TextureMap.LOCATION_BLOCKS_TEXTURE).restoreLastBlurMipmap();
  GlStateManager.popMatrix();
}

代码示例来源:origin: raoulvdberge/refinedstorage

for (BlockRenderLayer layer : BlockRenderLayer.values()) {
  ForgeHooksClient.setRenderLayer(layer);

代码示例来源:origin: RS485/LogisticsPipes

for (BlockRenderLayer layer : BlockRenderLayer.values()) {
  ForgeHooksClient.setRenderLayer(layer);
  setGlStateForPass(layer, false);
  for (BlockRenderLayer layer : BlockRenderLayer.values()) {
    ForgeHooksClient.setRenderLayer(layer);
    setGlStateForPass(layer, true);

代码示例来源:origin: amadornes/MCMultiPart

buffer.noColor();
for (BlockRenderLayer layer : BlockRenderLayer.values()) {
  if (info.getPart().canRenderInLayer(info.getPartWorld(), info.getPartPos(), info, state, layer)) {
    ForgeHooksClient.setRenderLayer(layer);

代码示例来源:origin: SleepyTrousers/EnderIO

public void renderBlock(@Nonnull BlockPos pos, IBlockAccess blockAccess, double globalScale, boolean highlight) {
 BufferBuilder tes = Tessellator.getInstance().getBuffer();
 BlockRendererDispatcher blockrendererdispatcher = Minecraft.getMinecraft().getBlockRendererDispatcher();
 GlStateManager.pushMatrix();
 GlStateManager.translate(0.5f, 0.5f, 0.5f);
 GlStateManager.scale(globalScale, globalScale, globalScale);
 GlStateManager.translate(-0.5f, -0.5f, -0.5f);
 IBlockState state = blockAccess.getBlockState(pos).getActualState(blockAccess, pos);
 IBakedModel ibakedmodel = blockrendererdispatcher.getModelForState(state);
 state = state.getBlock().getExtendedState(state, blockAccess, pos);
 tes.setTranslation(-pos.getX(), -pos.getY(), -pos.getZ());
 Vector4f color = highlight ? selectedBlockBlend : blockBlend;
 GlStateManager.color(1, 1, 1, 1);
 GlStateManager.tryBlendFuncSeparate(GL11.GL_SRC_ALPHA, GL11.GL_CONSTANT_COLOR, GlStateManager.SourceFactor.ONE.factor,
   GlStateManager.DestFactor.ZERO.factor);
 GL14.glBlendColor(color.x, color.y, color.z, color.w);
 tes.begin(GL11.GL_QUADS, DefaultVertexFormats.BLOCK);
 for (BlockRenderLayer layer : BlockRenderLayer.values()) {
  if (state.getBlock().canRenderInLayer(state, NullHelper.notnullJ(layer, "BlockRenderLayer value was null!"))) {
   ForgeHooksClient.setRenderLayer(layer);
   blockrendererdispatcher.getBlockModelRenderer().renderModel(blockAccess, ibakedmodel, state, pos, tes, false);
  }
 }
 ForgeHooksClient.setRenderLayer(null);
 Tessellator.getInstance().draw();
 GL14.glBlendColor(1, 1, 1, 1);
 GlStateManager.blendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
 tes.setTranslation(0, 0, 0);
 GlStateManager.popMatrix();
}

相关文章

微信公众号

最新文章

更多