PaintTintHandler.java 文件源码

java
阅读 25 收藏 0 点赞 0 评论 0

项目:EnderIO 作者:
@Override
public int getColorFromItemstack(@Nonnull ItemStack stack, int tintIndex) {
  if (Prep.isInvalid(stack)) {
    return -1;
  }
  Item item = stack.getItem();
  Block block = Block.getBlockFromItem(item);
  if (block instanceof IPaintable) {
    IBlockState paintSource = ((IPaintable) block).getPaintSource(block, stack);
    if (paintSource != null) {
      final ItemStack paintStack = new ItemStack(paintSource.getBlock(), 1, paintSource.getBlock().getMetaFromState(paintSource));
      if (paintStack.getItem() != item) {
        return Minecraft.getMinecraft().getItemColors().getColorFromItemstack(paintStack, tintIndex);
      }
    }
  }
  if (item instanceof IItemColor) {
    return ((IItemColor) item).getColorFromItemstack(stack, tintIndex);
  }
  if (item instanceof ITintedItem) {
    return ((ITintedItem) item).getItemTint(stack, tintIndex);
  }
  if (block instanceof IItemColor) {
    return ((IItemColor) block).getColorFromItemstack(stack, tintIndex);
  }
  if (block instanceof ITintedItem) {
    return ((ITintedItem) block).getItemTint(stack, tintIndex);
  }
  return -1;
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号