java类net.minecraft.client.renderer.ItemModelMesher的实例源码

RenderUtils.java 文件源码 项目:Bookshelf 阅读 22 收藏 0 点赞 0 评论 0
/**
 * Gets the TextureAtlasSprite for the ItemStack. Has support for both Items and Blocks.
 *
 * @param stack The ItemStack to get the sprite for.
 * @return The sprite for the ItemStack.
 */
public static TextureAtlasSprite getSprite (ItemStack stack) {

    final Minecraft mc = Minecraft.getMinecraft();
    final Block block = StackUtils.getBlockFromStack(stack);

    if (block == null) {

        final ItemModelMesher mesher = mc.getRenderItem().getItemModelMesher();
        return !stack.isEmpty() ? mesher.getParticleIcon(stack.getItem(), stack.getItemDamage()) : mesher.getItemModel(null).getParticleTexture();
    }

    return mc.getBlockRendererDispatcher().getBlockModelShapes().getTexture(block.getStateFromMeta(stack.getItemDamage()));
}
CustomItemSystem.java 文件源码 项目:Skree 阅读 17 收藏 0 点赞 0 评论 0
@SuppressWarnings("unused")
private void render(Object item) {
  if (item instanceof Item && item instanceof ICustomItem) {
    if (Sponge.getPlatform().getExecutionType().isClient()) {
      RenderItem renderItem = Minecraft.getMinecraft().getRenderItem();
      ItemModelMesher mesher = renderItem.getItemModelMesher();

      Optional<ItemMeshDefinition> optMeshDefinition = ((ICustomItem) item).__getCustomMeshDefinition();
      if (optMeshDefinition.isPresent()) {
        mesher.register((Item) item, optMeshDefinition.get());
      }

      List<String> variants = ((ICustomItem) item).__getMeshDefinitions();
      List<ResourceLocation> modelResources = new ArrayList<>();

      for (int i = 0; i < variants.size(); ++i) {
        ModelResourceLocation resourceLocation = new ModelResourceLocation(
            "skree:" + variants.get(i),
            "inventory"
        );

        if (!optMeshDefinition.isPresent()) {
          mesher.register((Item) item, i, resourceLocation);
        }
        modelResources.add(resourceLocation);
      }

      ModelBakery.registerItemVariants(
          (Item) item,
          modelResources.toArray(new ResourceLocation[modelResources.size()])
      );
    }
  } else {
    throw new IllegalArgumentException("Invalid custom item!");
  }
}
GameIntegrator.java 文件源码 项目:Skree 阅读 11 收藏 0 点赞 0 评论 0
private void registerItemRendering(ItemDescriptor descriptor) {
  Item item = descriptor.item;
  ItemConfig config = descriptor.config;

  RenderItem renderItem = Minecraft.getMinecraft().getRenderItem();
  ItemModelMesher mesher = renderItem.getItemModelMesher();

  // TODO Custom mesher currently not supported
  // Optional<ItemMeshDefinition> optMeshDefinition = (item).__getCustomMeshDefinition();
  // if (optMeshDefinition.isPresent()) {
  //     mesher.register((Item) item, optMeshDefinition.get());
  // }

  List<String> variants = config.getMeshDefinitions();
  List<ResourceLocation> modelResources = new ArrayList<>();

  for (int i = 0; i < variants.size(); ++i) {
    ModelResourceLocation resourceLocation = new ModelResourceLocation(
        modID + ":" + variants.get(i),
        "inventory"
    );

    // if (!optMeshDefinition.isPresent()) {
    mesher.register(item, i, resourceLocation);
    // }
    modelResources.add(resourceLocation);
  }

  ModelBakery.registerItemVariants(item, modelResources.toArray(new ResourceLocation[modelResources.size()]));
}
StartupClientOnly.java 文件源码 项目:FutureCraft 阅读 15 收藏 0 点赞 0 评论 0
private static void registerMetaItemRendering(String name, String... modelNames) {
    Item item = GameRegistry.findItem(FutureCraft.MODID, name);
    ItemModelMesher mesher = Minecraft.getMinecraft().getRenderItem().getItemModelMesher();
    String[] newModelNames = new String[modelNames.length];
    for (int i = 0; i < modelNames.length; i++) {
        newModelNames[i] = FutureCraft.MODID + ":" + modelNames[i];
    }

    ModelBakery.addVariantName(item, newModelNames);

    for (int i = 0; i < modelNames.length; i++) {
        mesher.register(item, i, new ModelResourceLocation(FutureCraft.MODID + ":" + modelNames[i], "inventory"));
    }
}
ClientProxy.java 文件源码 项目:SurvivalCommandBlocks 阅读 17 收藏 0 点赞 0 评论 0
@Override
public void registerRenderers() 
   {  
    String item;
       ItemModelMesher mesher = Minecraft.getMinecraft().getRenderItem().getItemModelMesher();
        for(int i = 0; i < BlockRegistry.delay.size(); i++)
        {
            item = ModSurvCommand.TEXTURE_LOCATION + BlockRegistry.delayNames.get(i); 
            mesher.register(BlockRegistry.delay.get(i), 0, new ModelResourceLocation( item , "inventory"));                 
        } 
   }
ClientProxy.java 文件源码 项目:SurvivalWings 阅读 19 收藏 0 点赞 0 评论 0
@Override
public void init()
{
    RenderItem ri = Minecraft.getMinecraft().getRenderItem();
    ItemModelMesher imm = ri.getItemModelMesher();

    imm.register( Wings.items.featherWings,  0, new ModelResourceLocation( "sc0_wings:featherWings",  "inventory" ) );
    imm.register( Wings.items.obsidianWings, 0, new ModelResourceLocation( "sc0_wings:obsidianWings", "inventory" ) );
    imm.register( Wings.items.sturdyWings,   0, new ModelResourceLocation( "sc0_wings:sturdyWings",   "inventory" ) );
    imm.register( Wings.items.fastWings,     0, new ModelResourceLocation( "sc0_wings:fastWings",     "inventory" ) );
}
TaamClientProxy.java 文件源码 项目:taam 阅读 18 收藏 0 点赞 0 评论 0
/**
 * Registers & remembers a model location for inventory rendering for the
 * given item, for a single meta value.
 *
 * Specific for items using OBJ models.
 *
 * @param modelMesher
 * @param itemId
 * @param metaValue
 * @param modelFile
 */
private void registerItemOBJSingleMeta(ItemModelMesher modelMesher, String itemId, int metaValue, String modelFile) {
    // Find item to register
    Item item = GameRegistry.findItem(Taam.MOD_ID, itemId);

    // Create & remember model location
    final ModelResourceLocation resourceLocation = new ModelResourceLocation(Taam.MOD_ID + ":" + modelFile, "inventory");
    locationsToReplace.add(resourceLocation);

    // Register the variant
    modelMesher.register(item, metaValue, resourceLocation);
    // Register the model location
    ModelLoader.setCustomModelResourceLocation(item, metaValue, resourceLocation);
}
TESRStonePot.java 文件源码 项目:vintagecraft 阅读 14 收藏 0 点赞 0 评论 0
void renderItemStack(ItemStack itemstack, EntityPlayer player, ItemCameraTransforms.TransformType cameraTransformType, ResourceLocation texture, int color) {
    ItemModelMesher mesher = Minecraft.getMinecraft().getRenderItem().getItemModelMesher();
    IBakedModel ibakedmodel = mesher.getItemModel(itemstack);

    TextureManager textureManager = Minecraft.getMinecraft().renderEngine;

       textureManager.bindTexture(texture);
       //textureManager.getTexture(texture).setBlurMipmap(false, false);


       GL11.glTranslatef(-0.5f, -0.5f, -0.5f);

       Tessellator tessellator = Tessellator.getInstance();
       WorldRenderer worldrenderer = tessellator.getWorldRenderer();
       worldrenderer.startDrawingQuads();
       worldrenderer.setVertexFormat(DefaultVertexFormats.ITEM);
       EnumFacing[] aenumfacing = EnumFacing.values();
       int j = aenumfacing.length;

       for (int k = 0; k < j; ++k) {
           EnumFacing enumfacing = aenumfacing[k];
           renderQuads(worldrenderer, ibakedmodel.getFaceQuads(enumfacing), itemstack, 1, color);
       }

       renderQuads(worldrenderer, ibakedmodel.getGeneralQuads(), itemstack, 1, color);
       tessellator.draw();



       //textureManager.bindTexture(texture);
       //textureManager.getTexture(texture).restoreLastBlurMipmap();
}
ClientProxy.java 文件源码 项目:Floocraft 阅读 16 收藏 0 点赞 0 评论 0
@Override
public void registerModels()
{
    //Describes how some blocks should look in the inventory
    ItemModelMesher m = Minecraft.getMinecraft().getRenderItem().getItemModelMesher();
    m.register(FloocraftBase.itemFlooSign, 0, new ModelResourceLocation(DataReference.MODID + ":itemfloosign", "inventory"));
    m.register(Item.getItemFromBlock(FloocraftBase.blockFlooTorch), 0, new ModelResourceLocation(DataReference.MODID + ":flootorch", "inventory"));
    m.register(Item.getItemFromBlock(FloocraftBase.floowerPot), 0, new ModelResourceLocation(DataReference.MODID + ":floowerpot", "inventory"));
    m.register(FloocraftBase.floopowder1t, 0, new ModelResourceLocation(DataReference.MODID + ":floopowder_one", "inventory"));
    m.register(FloocraftBase.floopowder2t, 0, new ModelResourceLocation(DataReference.MODID + ":floopowder_two", "inventory"));
    m.register(FloocraftBase.floopowder4t, 0, new ModelResourceLocation(DataReference.MODID + ":floopowder_four", "inventory"));
    m.register(FloocraftBase.floopowder8t, 0, new ModelResourceLocation(DataReference.MODID + ":floopowder_eight", "inventory"));
    m.register(FloocraftBase.floopowderc, 0, new ModelResourceLocation(DataReference.MODID + ":floopowder_infinite", "inventory"));
}
ClientProxy.java 文件源码 项目:Crying-Obsidian 阅读 22 收藏 0 点赞 0 评论 0
@Override
public void registerModels() {

    final ItemModelMesher mesher = Minecraft.getMinecraft().getRenderItem().getItemModelMesher();
    mesher.register(Item.getItemFromBlock(CryingObsidian.cryingObsidianBlock), 0, new ModelResourceLocation(Utils.ID + ":crying_obsidian_block", "inventory"));
    mesher.register(Item.getItemFromBlock(CryingObsidian.cryingObsidianBlockDecoration), 0, new ModelResourceLocation(Utils.ID + ":crying_obsidian_block_decoration", "inventory"));
    mesher.register(Item.getItemFromBlock(CryingObsidian.cryingObsidianBlockAdvanced), 0, new ModelResourceLocation(Utils.ID + ":crying_obsidian_block_advanced", "inventory"));
    mesher.register(CryingObsidian.cryingObsidianItem, 0, new ModelResourceLocation(Utils.ID + ":crying_obsidian_item", "inventory"));

}


问题


面经


文章

微信
公众号

扫码关注公众号