Java 类net.minecraft.item.ItemBanner 实例源码

项目:Backmemed    文件:TileEntityBanner.java   
public void setItemValues(ItemStack stack, boolean p_175112_2_)
{
    this.patterns = null;
    NBTTagCompound nbttagcompound = stack.getSubCompound("BlockEntityTag");

    if (nbttagcompound != null && nbttagcompound.hasKey("Patterns", 9))
    {
        this.patterns = nbttagcompound.getTagList("Patterns", 10).copy();
    }

    this.baseColor = p_175112_2_ ? func_190616_d(stack) : ItemBanner.getBaseColor(stack);
    this.patternList = null;
    this.colorList = null;
    this.patternResourceLocation = "";
    this.patternDataSet = true;
    this.field_190617_a = stack.hasDisplayName() ? stack.getDisplayName() : null;
}
项目:Mods    文件:TF2EventsCommon.java   
@SubscribeEvent(priority = EventPriority.LOWEST)
public void craftItem(net.minecraftforge.fml.common.gameevent.PlayerEvent.ItemCraftedEvent event) {
    ItemStack withPattern=ItemStack.EMPTY;
    ItemStack noPattern=ItemStack.EMPTY;
    for(int i=0; i<event.craftMatrix.getSizeInventory();i++){
        ItemStack stack=event.craftMatrix.getStackInSlot(i);
        if(!stack.isEmpty() && stack.getItem() instanceof ItemBanner){
            if(TileEntityBanner.getPatterns(stack)>0){
                withPattern=stack;
            }
            else{
                noPattern=stack;
            }
            if(!withPattern.isEmpty()&&!noPattern.isEmpty()){
                withPattern.shrink(1);
            }
        }
    }
}
项目:Backmemed    文件:RecipesBanners.java   
/**
 * Adds the banner recipes to the CraftingManager.
 */
void addRecipes(CraftingManager manager)
{
    for (EnumDyeColor enumdyecolor : EnumDyeColor.values())
    {
        manager.addRecipe(ItemBanner.func_190910_a(enumdyecolor, (NBTTagList)null), new Object[] {"###", "###", " | ", '#', new ItemStack(Blocks.WOOL, 1, enumdyecolor.getMetadata()), '|', Items.STICK});
    }

    manager.addRecipe(new RecipesBanners.RecipeDuplicatePattern());
    manager.addRecipe(new RecipesBanners.RecipeAddPattern());
}
项目:Backmemed    文件:TileEntityBanner.java   
public ItemStack func_190615_l()
{
    ItemStack itemstack = ItemBanner.func_190910_a(this.baseColor, this.patterns);

    if (this.hasCustomName())
    {
        itemstack.setStackDisplayName(this.getName());
    }

    return itemstack;
}
项目:Mods    文件:ContainerTF2Workbench.java   
public static ItemStack getReplacement(EntityPlayer player, ItemStack stack) {
    if (!stack.isEmpty() && stack.getItem() instanceof ItemBuildingBox
            && player.getTeam() == player.world.getScoreboard().getTeam("BLU"))
        stack.setItemDamage(stack.getItemDamage() + 1);
    if (!stack.isEmpty() && stack.getItem() instanceof ItemBanner){
        NBTTagCompound pattern=new NBTTagCompound();
        if(player.getTeam() == player.world.getScoreboard().getTeam("BLU")){
            stack.setItemDamage(EnumDyeColor.BLUE.getDyeDamage());
            pattern.setString("Pattern", "bb");
            pattern.setInteger("Color", 15);
        }
        else{
            pattern.setString("Pattern", "rb");
            pattern.setInteger("Color", 15);
        }

        stack.getSubCompound("BlockEntityTag").getTagList("Patterns", 10).appendTag(pattern);
    }
    if (!stack.isEmpty() && stack.getItem() instanceof ItemBuildingBox && stack.getItemDamage()/2 == 11) {
        ItemStack wrench=TF2Util.getFirstItem(player.inventory, stackL ->{
            return TF2Attribute.getModifier("Teleporter Cost", stackL, 1, player) != 1;
        });
        if(!wrench.isEmpty()) {
            stack.setCount((int) TF2Attribute.getModifier("Teleporter Cost", wrench, 1, player));
        }
    }
    return stack;
}
项目:BetterWithAddons    文件:BannerUtil.java   
public static boolean isSameBanner(ItemStack banner, Entity bannerHolder)
{
    if(bannerHolder instanceof EntityLivingBase) {
        ItemStack helmet = ((EntityLivingBase) bannerHolder).getItemStackFromSlot(EntityEquipmentSlot.HEAD);
        if(!helmet.isEmpty() && helmet.getItem() instanceof ItemBanner)
        {
            return isSameBanner(banner,helmet);
        }
    }

    return false;
}
项目:BetterWithAddons    文件:TileEntityBannerDetector.java   
private boolean checkSupposedPoweredState()
{
    final ItemStack filter = bannerInventory.getStackInSlot(0);

    IBlockState blockState = world.getBlockState(pos);
    EnumFacing facing = blockState.getValue(BlockBannerDetector.FACING);

    boolean detected = false;
    BlockPos lastPos = null;

    if(!filter.isEmpty() && filter.getItem() instanceof ItemBanner) {
        for (int i = 1; i <= maxdist; i++) {
            BlockPos nextPos = new BlockPos(pos.offset(facing, i));
            lastPos = nextPos;

            if (world.isBlockLoaded(nextPos)) {
                IBlockState nextState = world.getBlockState(nextPos);
                if (nextState.isOpaqueCube()) break;
                detected = checkBanner(nextPos,filter,BlockBanner.class);
                if(!detected) detected = checkBanner(nextPos.up(), filter, BlockBanner.BlockBannerHanging.class);
                if(!detected) detected = checkBanner(nextPos.down(), filter, BlockBanner.BlockBannerStanding.class);

                if(detected) break;
            }
        }

        if (!detected && maxdist > 0) {
            List<Entity> entityList = world.getEntitiesWithinAABB(Entity.class, new AxisAlignedBB(this.pos, lastPos.add(1,1,1)), new Predicate<Entity>() {
                @Override
                public boolean apply(Entity input) {
                    return BannerUtil.isSameBanner(filter, input);
                }
            });
            detected = entityList != null && entityList.size() > 0;
        }
    }

    return detected;
}
项目:Culinary-Cultivation    文件:BlockModCauldron.java   
private boolean removeDye(World world, BlockPos pos, EntityPlayer player, EnumHand hand, @Nonnull ItemStack stack, TileFluidTank tank) {
    IFluidHandler handler = FluidUtil.getFluidHandler(world, pos, null);
    if (handler == null) return false;
    if (tank.getFluid() != null && tank.getFluid().getFluid() == FluidRegistry.WATER && tank.getFluidAmount() >= 250) {
        if (stack.getItem() instanceof ItemArmor && ((ItemArmor) stack.getItem()).hasColor(stack)) {
            if (!world.isRemote) {
                ((ItemArmor) stack.getItem()).removeColor(stack);
                player.addStat(StatList.ARMOR_CLEANED);
                handler.drain(250, true);
            }
            player.playSound(SoundEvents.ENTITY_BOBBER_SPLASH, 0.16F, 0.66F);
            return true;
        }
        if (stack.getItem() instanceof ItemBanner) {
            if (TileEntityBanner.getPatterns(stack) > 0) {
                if (!world.isRemote) {
                    ItemStack banner = stack.copy();
                    banner.setCount(1);
                    TileEntityBanner.removeBannerData(banner);
                    player.addStat(StatList.BANNER_CLEANED);

                    if (!player.capabilities.isCreativeMode) {
                        stack.shrink(1);
                        handler.drain(250, true);
                    }
                    InventoryHandlerHelper.giveItem(player, hand, banner);
                }
                player.playSound(SoundEvents.ENTITY_BOBBER_SPLASH, 0.16F, 0.66F);
            }
            return true;
        }
    }
    return false;
}
项目:Backmemed    文件:RecipesBanners.java   
public boolean matches(InventoryCrafting inv, World worldIn)
{
    ItemStack itemstack = ItemStack.field_190927_a;
    ItemStack itemstack1 = ItemStack.field_190927_a;

    for (int i = 0; i < inv.getSizeInventory(); ++i)
    {
        ItemStack itemstack2 = inv.getStackInSlot(i);

        if (!itemstack2.func_190926_b())
        {
            if (itemstack2.getItem() != Items.BANNER)
            {
                return false;
            }

            if (!itemstack.func_190926_b() && !itemstack1.func_190926_b())
            {
                return false;
            }

            EnumDyeColor enumdyecolor = ItemBanner.getBaseColor(itemstack2);
            boolean flag = TileEntityBanner.getPatterns(itemstack2) > 0;

            if (!itemstack.func_190926_b())
            {
                if (flag)
                {
                    return false;
                }

                if (enumdyecolor != ItemBanner.getBaseColor(itemstack))
                {
                    return false;
                }

                itemstack1 = itemstack2;
            }
            else if (!itemstack1.func_190926_b())
            {
                if (!flag)
                {
                    return false;
                }

                if (enumdyecolor != ItemBanner.getBaseColor(itemstack1))
                {
                    return false;
                }

                itemstack = itemstack2;
            }
            else if (flag)
            {
                itemstack = itemstack2;
            }
            else
            {
                itemstack1 = itemstack2;
            }
        }
    }

    return !itemstack.func_190926_b() && !itemstack1.func_190926_b();
}
项目:CrystalMod    文件:TileEntityPanelItemRenderer.java   
public boolean renderItem(ItemStack displayItem){
    GlStateManager.pushMatrix();
    boolean itemBlock = false;  
    try
    {
        final ItemStack sis = displayItem;

        GlStateManager.disableRescaleNormal();
        IBakedModel model = Minecraft.getMinecraft().getRenderItem().getItemModelMesher().getItemModel(sis);

        if(sis.getItem() instanceof ItemBanner){
            GlStateManager.rotate(180.0F, 0.0F, 1.0F, 0.0F);
            GlStateManager.scale(0.5, 0.5, 0.5);
            GlStateManager.translate( 0.0f, (-0.14f*2)+0.1, 0 );
        }
        else if(sis.getItem() instanceof ItemBlock && model.isGui3d()){
            GlStateManager.scale(0.5, 0.5, 0.5);


            GlStateManager.scale(1, 1, 0.001F);
            GlStateManager.rotate(180, 0, 0, 1);
            GlStateManager.rotate(-210, 1, 0, 0);
            GlStateManager.rotate(45, 0, 1, 0);
            itemBlock = true;
        }else{
            GlStateManager.rotate(180.0F, 0.0F, 1.0F, 0.0F);
            GlStateManager.scale(0.4, 0.4, 0.4);
        }

        if (!Minecraft.getMinecraft().getRenderItem().shouldRenderItemIn3D(sis) || sis.getItem() instanceof ItemSkull)
           {
               GlStateManager.rotate(180.0F, 0.0F, 1.0F, 0.0F);
           }

        GlStateManager.translate( 0.0f, 0.14f, 0 );
        if(sis.getItem() instanceof net.minecraft.item.ItemMap){
            bindTexture(new ResourceLocation("textures/map/map_background.png"));
            MapData mapdata = Items.FILLED_MAP.getMapData(sis, CrystalMod.proxy.getClientWorld());

            if (mapdata != null)
            {
                GlStateManager.rotate(180, 0, 0, 1);
                GlStateManager.rotate(180, 0, 1, 0);
                GlStateManager.translate(-1, -0.9, 0);
                GlStateManager.scale(0.015625F, 0.015625F, 0.015625F);
                Minecraft.getMinecraft().entityRenderer.getMapItemRenderer().renderMap(mapdata, true);
            }
        }else Minecraft.getMinecraft().getRenderItem().renderItem(sis, TransformType.GUI);
    }
    catch( final Exception e )
    {
        e.printStackTrace();
    }
    finally
    {
        GlStateManager.enableRescaleNormal();
    }
    GlStateManager.popMatrix();

    return itemBlock;
}
项目:Alchemy    文件:PBlockCauldron.java   
@Beta
    @Override
    public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand,
            EnumFacing side, float hitX, float hitY, float hitZ) {
        TileEntityCauldron cauldron = getTileEntityCauldron(world, pos);
        ItemStack heldItem = player.getHeldItem(hand);
        CauldronActivatedEvent event;
        if (MinecraftForge.EVENT_BUS.post(event = new CauldronActivatedEvent(world, pos, state, player, hand, cauldron,
                heldItem, side, hitX, hitY, hitZ)))
            return event.getResult() == Result.DEFAULT;

        LinkedList<ItemStack> list = getTileEntityCauldron(world, pos).getContainer();
        if (heldItem == null) {
            if (Always.isServer()) {
                if (list.size() > 0) {
                    player.setHeldItem(hand, list.removeLast());
                    player.inventory.markDirty();
                    cauldron.onContainerChange();
                    cauldron.updateTracker();
                }
            }
        } else {
            int i = getWaterLevel(world, pos, state);
            Item item = heldItem.getItem();
            if (item == ModItems.botania$waterRod) {
//              if (i > -1 && i < 3 && ManaItemHandler.requestManaExact(heldItem, player, ItemWaterRod.COST, true))
//                  setWaterLevel(world, pos, state, 3);
            } else if (FluidUtil.getFluidHandler(heldItem) != null) {
                FluidUtil.interactWithFluidHandler(player, hand, cauldron.getTank());
            } else if (!list.isEmpty()) {
                if (Always.isServer()) {
                    boolean flag = false;
                    int limit = heldItem.getMaxStackSize();
                    if (heldItem.getCount() >= limit)
                        return false;
                    for (Iterator<ItemStack> iterator = list.iterator(); iterator.hasNext();) {
                        ItemStack citem = iterator.next();
                        if (InventoryHelper.canMergeItemStack(heldItem, citem))
                            if (heldItem.getCount() < limit) {
                                heldItem.setCount(heldItem.getCount() + 1);
                                iterator.remove();
                                flag = true;
                            } else
                                break;
                    }
                    if (flag) {
                        player.inventory.markDirty();
                        cauldron.onContainerChange();
                        cauldron.updateTracker();
                    }
                }
            } else {
                if (item instanceof ItemArmor) {
                    if (i > 0) {
                        ItemArmor armor = (ItemArmor) item;
                        if (armor.getArmorMaterial() == ItemArmor.ArmorMaterial.LEATHER && armor.hasColor(heldItem)) {
                            armor.removeColor(heldItem);
                            player.addStat(StatList.ARMOR_CLEANED);
                            setWaterLevel(world, pos, state, i - 1);
                        }
                    }
                } else if (item instanceof ItemBanner) {
                    if (i > 0 && TileEntityBanner.getPatterns(heldItem) > 0) {
                        ItemStack banner = heldItem.copy();
                        banner.setCount(1);
                        TileEntityBanner.removeBannerData(banner);
                        InventoryHelper.addItemStackOrSetToHand(player, hand, heldItem, banner);
                        player.addStat(StatList.BANNER_CLEANED);
                        setWaterLevel(world, pos, state, i - 1);
                    }
                }
            }
        }
        return true;
    }
项目:AdditionalBanners    文件:PatternHandler.java   
/**
 * Creates a new Banner ItemStack that has all of the patterns in the NBTTagList written to
 * it.
 *
 * @param baseColor The base color for the banner.
 * @param patterns The patterns to apply. This can be null if you want no patterns. See
 *        {@link #createPatternList(BannerLayer...)} for an easy way to make this.
 * @return The ItemStack that was created. All of the data is on the NBT.
 */
public static ItemStack createBanner (EnumDyeColor baseColor, NBTTagList patterns) {

    return ItemBanner.makeBanner(baseColor, patterns);
}
项目:Bookshelf    文件:BannerUtils.java   
/**
 * Creates a new Banner ItemStack that has all of the patterns in the NBTTagList written to
 * it.
 *
 * @param baseColor The base color for the banner.
 * @param patterns The patterns to apply. This can be null if you want no patterns. See
 *        {@link #createPatternList(BannerLayer...)} for an easy way to make this.
 * @return The ItemStack that was created. All of the data is on the NBT.
 */
public static ItemStack createBanner (EnumDyeColor baseColor, NBTTagList patterns) {

    return ItemBanner.makeBanner(baseColor, patterns);
}