/**
* 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()));
}
java类net.minecraft.client.renderer.ItemModelMesher的实例源码
RenderUtils.java 文件源码
项目:Bookshelf
阅读 22
收藏 0
点赞 0
评论 0
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"));
}