AELog.debug( EXPORTING_SUBTYPES_MESSAGE, input.getUnlocalizedName(), input.getHasSubtypes() ); final boolean hasSubtypes = input.getHasSubtypes(); if( hasSubtypes )
@Override public ImmutableCollection<ICraftingPatternDetails> getCraftingFor( final IAEItemStack whatToCraft, final ICraftingPatternDetails details, final int slotIndex, final World world ) { final ImmutableList<ICraftingPatternDetails> res = this.craftableItems.get( whatToCraft ); if( res == null ) { if( details != null && details.isCraftable() ) { for( final IAEItemStack ais : this.craftableItems.keySet() ) { if( ais.getItem() == whatToCraft.getItem() && ( !ais.getItem().getHasSubtypes() || ais.getItemDamage() == whatToCraft.getItemDamage() ) ) { // TODO: check if OK // TODO: this is slightly hacky, but fine as long as we only deal with itemstacks if( details.isValidItemForSlot( slotIndex, ais.asItemStackRepresentation(), world ) ) { return this.craftableItems.get( ais ); } } } } return ImmutableSet.of(); } return res; }
@Override protected List<ItemStack> obtainBlockDrops( final WorldServer w, final BlockPos pos ) { final FakePlayer fakePlayer = FakePlayerFactory.getMinecraft( w ); final IBlockState state = w.getBlockState( pos ); if( state.getBlock().canSilkHarvest( w, pos, state, fakePlayer ) ) { final List<ItemStack> out = new ArrayList<>( 1 ); final Item item = Item.getItemFromBlock( state.getBlock() ); if( item != Items.AIR ) { int meta = 0; if( item.getHasSubtypes() ) { meta = state.getBlock().getMetaFromState( state ); } final ItemStack itemstack = new ItemStack( item, 1, meta ); out.add( itemstack ); } return out; } else { return super.obtainBlockDrops( w, pos ); } }
Item item = Item.getItemFromBlock(wstate.getBlock()); setBlock(stack, wstate.getBlock(), !item.getHasSubtypes() ? 0 : wstate.getBlock().getMetaFromState(wstate)); player.setItemStackToSlot(hand == EnumHand.MAIN_HAND ? EntityEquipmentSlot.MAINHAND : EntityEquipmentSlot.OFFHAND, stack);
private static void addItem(Item item, PageCategory category) { // Manually exclude alchBag from having 16 of the same entry List<ItemStack> list = (item == ObjHandler.alchBag || !item.getHasSubtypes()) ? Collections.singletonList(new ItemStack(item)) : getSubItems(item); for (ItemStack s : list) { AbstractPage page = AbstractPage.createItemPage(s, category); categoryMap.get(category).add(page); categoryMap.get(category).addAll(page.subPages); PECore.debugLog("Added {} item pages for stack {}", page.subPages.size() + 1, s.toString()); } }
protected @Nonnull ItemStack mkItemStack(@Nonnull ItemStack target, @Nonnull Block targetBlock) { Item itemFromBlock = Item.getItemFromBlock(targetBlock); if (itemFromBlock.isDamageable() || itemFromBlock.getHasSubtypes()) { return new ItemStack(targetBlock, 1, target.getItemDamage()); } else { return new ItemStack(targetBlock, 1, 0); } }
public static void registerItem(Item item, String prefix, boolean metaSuffix, Function<Integer, String> getVariant) { registerItem(item, (it, meta) -> { String modelName = AncientWarfareCore.MOD_ID + ":" + (prefix.isEmpty() ? "" : prefix + "/") + it.getRegistryName().getResourcePath(); String suffix = it.getHasSubtypes() && metaSuffix ? "_" + meta : ""; return new ModelResourceLocation(modelName + suffix, getVariant.apply(meta)); }); }
public static int tryRegisterItemAndSubtypes(Item item) { int numRegistered = 0; List<ItemStack> stacks; if (item.getHasSubtypes()) { stacks = new ArrayList<ItemStack>(); item.getSubItems(item, null, stacks); } else stacks = Collections.singletonList(new ItemStack(item)); for (ItemStack stack : stacks) { if (tryRegisterDescriptions(stack)) numRegistered++; } return numRegistered; }
public static JsonElement serializeToJson(ItemStack stack) { JsonObject ret = new JsonObject(); //noinspection ConstantConditions ret.addProperty("name", stack.getItem().getRegistryName().toString()); if (stack.getItem().getHasSubtypes() || stack.getItemDamage() != 0) { ret.addProperty("data", stack.getItemDamage()); } if (stack.getCount() > 1) { ret.addProperty("count", stack.getCount()); } if (stack.hasTagCompound()) { //noinspection ConstantConditions ret.addProperty("nbt", stack.getTagCompound().toString()); } return ret; }
public static ItemStack getSilkTouchDrop(IBlockState state) { Item item = Item.getItemFromBlock(state.getBlock()); int i = 0; if (item.getHasSubtypes()) { i = state.getBlock().damageDropped(state); } return new ItemStack(item, 1, i); }
public static ItemStack getSilkTouchDrop(IBlockState state) { Item item = Item.getItemFromBlock(state.getBlock()); int i = 0; if (item.getHasSubtypes()) { i = state.getBlock().getMetaFromState(state); } return new ItemStack(item, 1, i); }
public static ItemStack getStackFromBlockState(IBlockState state) { Item item = Item.getItemFromBlock(state.getBlock()); if (item == null) { return null; } else { int i = 0; if (item.getHasSubtypes()) { i = state.getBlock().getMetaFromState(state); } return new ItemStack(item, 1, i); } } }
public static ItemStack createStackedBlock(IBlockState state) { Item item = Item.getItemFromBlock(state.getBlock()); if (item.getHasSubtypes()) { return new ItemStack(item, 1, state.getBlock().getMetaFromState(state)); } return new ItemStack(item, 1, 0); }
public static void registerItem(Item item) { if (item.getHasSubtypes()) { NonNullList<ItemStack> subItems = NonNullList.create(); // noinspection ConstantConditions item.getSubItems(item.getCreativeTab(), subItems); for (ItemStack stack : subItems) { registerItem(item, stack.getMetadata()); } } else { registerItem(item, 0); } }
private void renderIcon(int p_178054_1_, int p_178054_2_, Item icon, int iconMetadata) { this.blitSlotBg(p_178054_1_ + 1, p_178054_2_ + 1); GlStateManager.enableRescaleNormal(); RenderHelper.enableGUIStandardItemLighting(); GuiFlatPresetsMod.this.itemRender.renderItemIntoGUI(new ItemStack(icon, 1, icon.getHasSubtypes() ? iconMetadata : 0), p_178054_1_ + 2, p_178054_2_ + 2); RenderHelper.disableStandardItemLighting(); GlStateManager.disableRescaleNormal(); }
@SideOnly(Side.CLIENT) public void registerModels(Item item, String name) { if (item.getHasSubtypes()) { List<ItemStack> subItems = new ArrayList<>(); if (item.getCreativeTabs().length > 0) { for (CreativeTabs tab : item.getCreativeTabs()) { item.getSubItems(item, tab, subItems); } } for (ItemStack stack : subItems) { String subItemName = item.getUnlocalizedName(stack).replace("item.", "").replace(".", "_"); ModelLoader.setCustomModelResourceLocation(item, item.getDamage(stack), new ModelResourceLocation(new ResourceLocation(MODID, subItemName), "inventory")); } } else { ModelLoader.setCustomModelResourceLocation(item, 0, new ModelResourceLocation(new ResourceLocation(MODID, name), "inventory")); } } }
@SideOnly(Side.CLIENT) public void registerModels(Item item, String name) { if (item.getHasSubtypes()) { List<ItemStack> subItems = new ArrayList<>(); if (item.getCreativeTabs().length > 0) { for (CreativeTabs tab : item.getCreativeTabs()) { item.getSubItems(item, tab, subItems); } } for (ItemStack stack : subItems) { String subItemName = item.getUnlocalizedName(stack).replace("item.", "").replace(".", "_"); ModelLoader.setCustomModelResourceLocation(item, item.getDamage(stack), new ModelResourceLocation(new ResourceLocation(MODID, subItemName), "inventory")); } } else { ModelLoader.setCustomModelResourceLocation(item, 0, new ModelResourceLocation(new ResourceLocation(MODID, name), "inventory")); } } }
@Override public void registerItemSided(Item item) { // register sub types if there are any if (item.getHasSubtypes()) { NonNullList<ItemStack> subItems = NonNullList.create(); item.getSubItems(CreativeTabTAN.instance, subItems); for (ItemStack subItem : subItems) { String subItemName = item.getUnlocalizedName(subItem); subItemName = subItemName.substring(subItemName.indexOf(".") + 1); // remove 'item.' from the front ModelLoader.registerItemVariants(item, new ResourceLocation(ToughAsNails.MOD_ID, subItemName)); ModelLoader.setCustomModelResourceLocation(item, subItem.getMetadata(), new ModelResourceLocation(ToughAsNails.MOD_ID + ":" + subItemName, "inventory")); } } else { ModelLoader.setCustomModelResourceLocation(item, 0, new ModelResourceLocation(ToughAsNails.MOD_ID + ":" + item.delegate.name().getResourcePath(), "inventory")); } }
@Override public void registerItemSided(Item item) { // register sub types if there are any if (item.getHasSubtypes()) { NonNullList<ItemStack> subItems = NonNullList.create(); item.getSubItems(CreativeTabSS.instance, subItems); for (ItemStack subItem : subItems) { String subItemName = item.getUnlocalizedName(subItem); subItemName = subItemName.substring(subItemName.indexOf(".") + 1); // remove 'item.' from the front ModelLoader.registerItemVariants(item, new ResourceLocation(SereneSeasons.MOD_ID, subItemName)); ModelLoader.setCustomModelResourceLocation(item, subItem.getMetadata(), new ModelResourceLocation(SereneSeasons.MOD_ID + ":" + subItemName, "inventory")); } } else { ModelLoader.setCustomModelResourceLocation(item, 0, new ModelResourceLocation(SereneSeasons.MOD_ID + ":" + item.delegate.name().getResourcePath(), "inventory")); } }
public static void registerItem(Item item, Function2<Item, Integer, ModelResourceLocation> getModelLocation) { if (item.getHasSubtypes()) { NonNullList<ItemStack> subItems = NonNullList.create(); item.getSubItems(item.getCreativeTab(), subItems); for (ItemStack subItem : subItems) { ModelLoader.setCustomModelResourceLocation(item, subItem.getMetadata(), getModelLocation.apply(item, subItem.getMetadata())); } } else { ModelLoader.setCustomModelResourceLocation(item, 0, getModelLocation.apply(item, 0)); } }