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

项目:Factorization    文件:PumpLiquids.java   
boolean placeFluid(PumpCoord pc, Fluid fluid) {
    at.w = worldObj;
    at.set(pc.pos);
    if (!at.isReplacable()) return false;
    Block block = fluid.getBlock();
    if (block == null) return false;
    if (drainBlock(pc, false) != null) return false;
    if (block == Blocks.water) block = Blocks.flowing_water;
    else if (block == Blocks.lava) block = Blocks.flowing_lava;

    if (block == Blocks.flowing_water) {
        ((ItemBucket) Items.water_bucket).tryPlaceContainedLiquid(at.w, pos);
    } else {
        // NORELEASE: Is there a 1.8-ish way of placing fluid blocks now?
        at.setIdMd(block, block instanceof BlockFluidFinite ? 0xF : 0, true);
    }
    buffer.setFluid(null);
    at.notifyBlockChange();
    return true;
}
项目:ToggleBlocks    文件:BucketToggleAction.java   
@Override
public void placeBlock(World world, int x, int y, int z, ForgeDirection direction, EntityPlayer player,
                       ItemStack placing, IToggleController controller) // TODO: Add storage item index as parameter?
{
    if (FluidContainerRegistry.isFilledContainer(placing))
    {
        FluidStack fluidStack = FluidContainerRegistry.getFluidForFilledItem(placing);
        Fluid fluid = fluidStack.getFluid();
        if (fluidStack.getFluid().canBePlacedInWorld())
        {
            Block fluidBlock = fluid.getBlock();
            world.setBlock(x, y, z, fluidBlock);
            world.notifyBlockChange(x, y, z, fluidBlock);
            fluidBlock.onBlockAdded(world, x, y, z);
            ItemStack drainedContainer = FluidContainerRegistry.drainFluidContainer(placing);
            placing.stackSize--;
            controller.getStorageHandler().addItemStackToStorage(drainedContainer);
        }
    } else if (placing.getItem() instanceof ItemBucket)
    {
        ItemBucket item = (ItemBucket) placing.getItem();
        item.tryPlaceContainedLiquid(world, x, y, z);
    }
}
项目:InventoryTools    文件:ToolBoxRegistry.java   
public final static boolean addToWhiteList(String id){
    String[] parts = id.split(":", 4);
    if(parts.length < 1)
        return false;
    ItemStack stack = GameRegistry.findItemStack(parts.length==1 ? "minecraft" : parts[0], parts.length==1 ? parts[0] : parts[1], 1);
    if(stack == null)
        return false;
    if((stack.getItem() instanceof ItemBlock) || (stack.getItem() instanceof ItemPotion) || (stack.getItem() instanceof ItemArmor) || (stack.getItem() instanceof ItemBucket))
        return false;
    int meta=OreDictionary.WILDCARD_VALUE;
    if(parts.length >= 3){
        try{
            meta=Integer.parseInt(parts[2]);
        }catch(NumberFormatException e){
            meta=OreDictionary.WILDCARD_VALUE;
        }
    }
    return addToWhiteList(new ItemData(stack.getItem(), meta));
}
项目:It-s-About-Time-Minecraft-Mod    文件:ModItems.java   
public static void initializeItems(){

    timeToolMaterial = EnumHelper.addToolMaterial("timeToolMaterial", 6, 1620, 8.0F, 4.0F, 7);
    pheromoneArmor = EnumHelper.addArmorMaterial("pheromoneArmor", 12, new int[]{2, 4, 2, 1}, 9);

    fossil_Shard = new Item().setUnlocalizedName("iat.fossil_Shard").setTextureName("iat:fossil").setCreativeTab(ItsAboutTime.iatTab);
    rockPick = new ItemRockPick().setUnlocalizedName("iat.rockPick").setTextureName("iat:rockPick").setCreativeTab(ItsAboutTime.iatTab);
    fossil_Broken = new ItemFossilBroken().setUnlocalizedName("iat.fossil_Broken").setCreativeTab(ItsAboutTime.iatTab);
    fossil = new ItemFossil().setUnlocalizedName("iat.fossil").setCreativeTab(ItsAboutTime.iatTab);
    for (int i = 0; i < EnumFossilSkeleton.values().length; i++) {
        EnumFossilSkeleton.values()[i].fossilItem = new Item().setTextureName("iat:fossil").setUnlocalizedName("iat.fossil" + EnumFossilSkeleton.values()[i].name).setCreativeTab(ItsAboutTime.iatTab);
        EnumFossilSkeleton.values()[i].fossilBrokenItem = new Item().setTextureName("iat:fossil").setUnlocalizedName("iat.fossil_Broken" + EnumFossilSkeleton.values()[i].name).setCreativeTab(ItsAboutTime.iatTab);
    }
    amber = new ItemAmber().setUnlocalizedName("iat.amber").setCreativeTab(ItsAboutTime.iatTab);
    plaster_Ball = new Item().setUnlocalizedName("iat.plaster_Ball").setTextureName("iat:plaster").setCreativeTab(ItsAboutTime.iatTab);
    time_Crystal = new ItemTimeCrystal().setUnlocalizedName("iat.time_Crystal").setTextureName("iat:time_Crystal").setCreativeTab(ItsAboutTime.iatTab);
    time_Shovel = new ItemModSpade(timeToolMaterial).setUnlocalizedName("iat.time_Shovel").setTextureName("iat:time_Shovel").setCreativeTab(ItsAboutTime.iatTab);
    time_Pickaxe = new ItemModPickaxe(timeToolMaterial).setUnlocalizedName("iat.time_Pickaxe").setTextureName("iat:time_Pickaxe").setCreativeTab(ItsAboutTime.iatTab);
    time_Axe = new ItemModAxe(timeToolMaterial).setUnlocalizedName("iat.time_Axe").setTextureName("iat:time_Axe").setCreativeTab(ItsAboutTime.iatTab);
    time_Sword = new ItemSword(timeToolMaterial).setUnlocalizedName("iat.time_Sword").setTextureName("iat:time_Sword").setCreativeTab(ItsAboutTime.iatTab);
    time_Hoe = new ItemHoe(timeToolMaterial).setUnlocalizedName("iat.time_Hoe").setTextureName("iat:time_Hoe").setCreativeTab(ItsAboutTime.iatTab);
    pheromoneChest = new ItemPheromoneArmor(pheromoneArmor, 0, 1).setUnlocalizedName("iat.pheromoneCanester").setTextureName("iat:pheromoneCanester").setCreativeTab(ItsAboutTime.iatTab);
    bucket_Time = new ItemBucket(ModBlocks.fluidTimeBlock).setUnlocalizedName("iat.bucket_Time").setTextureName("iat:bucket_Time").setContainerItem(Items.bucket);
    ginkoNuts = new ItemFood(2, 0.2F, false).setPotionEffect(Potion.hunger.id, 30, 0, 0.3F).setUnlocalizedName("iat.ginkoNut").setTextureName("iat:ginko_nut").setCreativeTab(ItsAboutTime.iatTab);
}
项目:RuneCraftery    文件:DispenserBehaviorFilledBucket.java   
/**
 * Dispense the specified stack, play the dispense sound and spawn particles.
 */
public ItemStack dispenseStack(IBlockSource par1IBlockSource, ItemStack par2ItemStack)
{
    ItemBucket itembucket = (ItemBucket)par2ItemStack.getItem();
    int i = par1IBlockSource.getXInt();
    int j = par1IBlockSource.getYInt();
    int k = par1IBlockSource.getZInt();
    EnumFacing enumfacing = BlockDispenser.getFacing(par1IBlockSource.getBlockMetadata());

    if (itembucket.tryPlaceContainedLiquid(par1IBlockSource.getWorld(), i + enumfacing.getFrontOffsetX(), j + enumfacing.getFrontOffsetY(), k + enumfacing.getFrontOffsetZ()))
    {
        par2ItemStack.itemID = Item.bucketEmpty.itemID;
        par2ItemStack.stackSize = 1;
        return par2ItemStack;
    }
    else
    {
        return this.defaultDispenserItemBehavior.dispense(par1IBlockSource, par2ItemStack);
    }
}
项目:BetterNutritionMod    文件:DispenserBehaviorFilledBucket.java   
/**
 * Dispense the specified stack, play the dispense sound and spawn particles.
 */
public ItemStack dispenseStack(IBlockSource par1IBlockSource, ItemStack par2ItemStack)
{
    ItemBucket itembucket = (ItemBucket)par2ItemStack.getItem();
    int i = par1IBlockSource.getXInt();
    int j = par1IBlockSource.getYInt();
    int k = par1IBlockSource.getZInt();
    EnumFacing enumfacing = BlockDispenser.getFacing(par1IBlockSource.getBlockMetadata());

    if (itembucket.tryPlaceContainedLiquid(par1IBlockSource.getWorld(), i + enumfacing.getFrontOffsetX(), j + enumfacing.getFrontOffsetY(), k + enumfacing.getFrontOffsetZ()))
    {
        par2ItemStack.itemID = Item.bucketEmpty.itemID;
        par2ItemStack.stackSize = 1;
        return par2ItemStack;
    }
    else
    {
        return this.defaultDispenserItemBehavior.dispense(par1IBlockSource, par2ItemStack);
    }
}
项目:OpenBlocks    文件:LoreFlimFlam.java   
private static String identityType(@Nonnull ItemStack stack) {
    Item item = stack.getItem();
    if (item instanceof ItemArmor) {
        switch (((ItemArmor)item).armorType) {
            case HEAD:
                return "helmet";
            case CHEST:
                return "chestplate";
            case LEGS:
                return "leggings";
            case FEET:
                return "boots";
            default:
                break;
        }
    } else if (item instanceof ItemPickaxe) return "pickaxe";
    else if (item instanceof ItemShears) return "shears";
    else if (item instanceof ItemAxe) return "axe";
    else if (item instanceof ItemSpade) return "shovel";
    else if (item instanceof ItemBlock) return "block";
    else if (item instanceof ItemBucket) return "bucket";

    return "gizmo";
}
项目:pnc-repressurized    文件:ClientEventHandler.java   
@SubscribeEvent
public void onItemTooltip(ItemTooltipEvent event) {
    if (event.getItemStack().getItem() instanceof IProgrammable) {
        handleProgrammableTooltip(event);
    } else if (event.getItemStack().getItem() instanceof ItemBucket || event.getItemStack().getItem() instanceof UniversalBucket) {
        handleFluidContainerTooltip(event);
    }
}
项目:ItsJustaCharm1.10.2Dead    文件:TileEntityConstructionTable.java   
private void decrVanillaGrid(int amount) {
    for (int i = 1; i < 10; i++) {
        if (slots[i] != null) {
            if (slots[i].stackSize == amount) {
                if (slots[i].getItem() instanceof ItemBucket) {
                    slots[i] = new ItemStack(Items.BUCKET);
                } else {
                    slots[i] = null;
                }
            } else if (slots[i].stackSize > amount) {
                slots[i].stackSize -= amount;
            }
        }
    }
}
项目:ItsJustaCharm1.10.2Dead    文件:TileEntityConstructionTable.java   
private void decrAllGrid(int amount) {
    for (int i = 1; i <= 17; i++) {
        if (slots[i] != null) {
            if (slots[i].stackSize == amount) {
                if (slots[i].getItem() instanceof ItemBucket) {
                    slots[i] = new ItemStack(Items.BUCKET);
                } else {
                    slots[i] = null;
                }
            } else if (slots[i].stackSize > amount) {
                slots[i].stackSize -= amount;
            }
        }
    }
}
项目:Alchemy    文件:DrinkingLava.java   
@Patch.Exception
@Hook("net.minecraft.item.ItemBucket#func_77659_a")
public static Hook.Result onItemRightClick(ItemBucket item, ItemStack stack, World world, EntityPlayer player, EnumHand hand) {
    if (item == Items.LAVA_BUCKET) {
        RayTraceResult rayTrace = item.rayTrace(world, player, false);
        if (rayTrace == null) {
            player.setActiveHand(hand);
            return new Hook.Result(new ActionResult(EnumActionResult.SUCCESS, stack));
        }
    }
    return Hook.Result.VOID;
}
项目:Alchemy    文件:DrinkingLava.java   
@Patch.Exception
    @Hook("net.minecraft.item.ItemBucket#func_77654_b")
    public static Hook.Result onItemUseFinish(ItemBucket item, ItemStack stack, World world, EntityLivingBase living) {
        if (item == Items.LAVA_BUCKET) {
            living.attackEntityFrom(DamageSource.LAVA, 10);
            living.setFire(30);
//          if (living instanceof EntityPlayer) {
//              EntityPlayer player = (EntityPlayer) living;
//          }
            return new Hook.Result(new ItemStack(Items.BUCKET));
        } else
            return Hook.Result.VOID;
    }
项目:DimsumCraft    文件:RChoppingBoardCrafting.java   
public boolean hasBucketInStacks() {
    for (int i = 0; i < this.stackList.length; ++i) {
        if (this.stackList[i] != null && this.stackList[i].getItem() instanceof ItemBucket) {
            return true;
        }
    }
    return false;
}
项目:DimsumCraft    文件:SChoppingBoard.java   
@Override
public boolean isItemValid(ItemStack stack) {
    if (stack != null) {
        if (stack.getItem() instanceof ItemBucket) {
            return !this.inv.hasBucketInStacks();
        } else if (stack.getItem().getContainerItem() != null) {
            return !this.inv.hasItemsHasContainerItem();
        } else {
            return true;
        }
    }
    return false;
}
项目:Cyclic    文件:TileEntityBaseMachineInvo.java   
protected void importFuel() {
  ItemStack itemstack = this.getStackInSlot(this.fuelSlot);
  //pull in item from fuel slot, if it has fuel burn time
  int fuelFromStack = FUEL_FACTOR * TileEntityFurnace.getItemBurnTime(itemstack);
  if (fuelFromStack > 0 && this.energyStorage.emptyCapacity() >= fuelFromStack
      && world.isRemote == false) {
    int newEnergy = Math.min(this.getFuelMax(), this.getFuelCurrent() + fuelFromStack);
    this.energyStorage.setEnergyStored(newEnergy);
    if (itemstack.getItem() instanceof ItemBucket && itemstack.getCount() == 1) {
      this.setInventorySlotContents(this.fuelSlot, new ItemStack(Items.BUCKET));
    }
    else {
      itemstack.shrink(1);
    }
  }
  //what if item in fuel slot is an RF battery type item? start draining it ya
  if (itemstack.hasCapability(CapabilityEnergy.ENERGY, null)) {
    IEnergyStorage storage = itemstack.getCapability(CapabilityEnergy.ENERGY, null);
    if (storage != null && storage.getEnergyStored() > 0) {
      int canWithdraw = Math.min(EnergyStore.MAX_INPUT, storage.getEnergyStored());
      if (canWithdraw > 0 && this.getFuelCurrent() + canWithdraw <= this.getFuelMax()) {
        storage.extractEnergy(canWithdraw, false);
        this.setFuelCurrent(this.getFuelCurrent() + canWithdraw);
      }
    }
  }
}
项目:InventoryTools    文件:ToolBoxRegistry.java   
public static final boolean isValidTool(ItemStack stack){
    if((stack.getItem() instanceof ItemBlock) || (stack.getItem() instanceof ItemPotion) || (stack.getItem() instanceof ItemArmor) || (stack.getItem() instanceof ItemBucket))
        return false;
    if(isWhiteListed(stack))
        return true;
    if(isBlackListed(stack))
        return false;
    return stack.getMaxStackSize() == 1 && !(stack.getItem() instanceof ItemBlock) && !(stack.getItem() instanceof ItemPotion) && !(stack.getItem() instanceof ItemArmor) && !(stack.getItem() instanceof ItemBucket);
}
项目:mod_quiver    文件:EntityWaterArrow.java   
@Override
    protected void handleInTileState(Block block, EnumFacing facing) {
        BlockPos blockpos = new BlockPos(this.xTile, this.yTile, this.zTile);
        BlockPos facingBlockPos = facingBlock(blockpos, facing);
//      worldObj.setBlockState(facingBlockPos, Blocks.water.getDefaultState());
        ItemBucket waterBucket = (ItemBucket)(Items.WATER_BUCKET);
        waterBucket.tryPlaceContainedLiquid((EntityPlayer)this.shootingEntity, this.world, facingBlockPos);
        this.setDead();
    }
项目:mod_quiver    文件:EntityWaterArrow.java   
@Override
    protected void handleEntityHit(Entity entity) {
        BlockPos blockpos = new BlockPos(this.posX, this.posY, this.posZ);
//      Block.spawnAsEntity(worldObj, blockpos, new ItemStack(ModFreneticFolly.waterArrow));
        ItemBucket waterBucket = (ItemBucket)(Items.WATER_BUCKET);
//      FFLogger.info("EntityWaterArrow handleEntityHit: trying to place a block of water at " + blockpos);
        waterBucket.tryPlaceContainedLiquid((EntityPlayer)this.shootingEntity, this.world, blockpos);
        this.setDead();
    }
项目:mod_quiver    文件:EntityLavaArrow.java   
@Override
    protected void handleInTileState(Block block, EnumFacing facing) {
        BlockPos blockpos = new BlockPos(this.xTile, this.yTile, this.zTile);
        BlockPos facingBlockPos = facingBlock(blockpos, facing);
//      worldObj.setBlockState(facingBlockPos, Blocks.water.getDefaultState());
        ItemBucket waterBucket = (ItemBucket)(Items.LAVA_BUCKET);
        waterBucket.tryPlaceContainedLiquid((EntityPlayer)this.shootingEntity, this.world, facingBlockPos);
        this.setDead();
    }
项目:mod_quiver    文件:EntityLavaArrow.java   
@Override
    protected void handleEntityHit(Entity entity) {
        BlockPos blockpos = new BlockPos(this.posX, this.posY, this.posZ);
//      Block.spawnAsEntity(worldObj, blockpos, new ItemStack(ModFreneticFolly.waterArrow));
        ItemBucket waterBucket = (ItemBucket)(Items.LAVA_BUCKET);
//      FFLogger.info("EntityLavaArrow handleEntityHit: trying to place a block of lava at " + blockpos);
        waterBucket.tryPlaceContainedLiquid((EntityPlayer)this.shootingEntity, this.world, blockpos);
        this.setDead();
    }
项目:EnergizedPower    文件:ModItems.java   
/**
 * Initialize Items
 */
public static void init()
{
    wrench = new ItemWrench().setUnlocalizedName("wrench").setTextureName("wrench");
    energizedWaterBucket = new ItemBucket(ModBlocks.energizedWater).setUnlocalizedName("energizedWaterBucket").setTextureName(Reference.MOD_ID + ":" + "bucket_energized_water").setCreativeTab(EnergizedPowerTabs.mainTab).setContainerItem(Items.bucket);

    GameRegistry.registerItem(wrench, "wrench");
    GameRegistry.registerItem(energizedWaterBucket, "bucket_energized_water");

    debug = new ItemDebug().setUnlocalizedName("debug").setTextureName("debug");
    GameRegistry.registerItem(debug, "debug");
}
项目:ShadowsOfPhysis    文件:PhysisArtifacts.java   
public static boolean canItemAcceptSockets(ItemStack stack) {
    Item item = stack.getItem();
    if (item == PhysisItems.socketable) {
        return false;
    }
    if (item instanceof ItemBlock
        || item instanceof ItemReed
        || item instanceof ItemBed
        || item instanceof ItemFood
        || item instanceof ItemPotion
        || item instanceof ItemMinecart
        || item instanceof ItemBoat
        || item instanceof ItemEnchantedBook
        || item instanceof ItemWritableBook
        || item instanceof ItemBucket
        || item instanceof ItemBucketMilk
        || item instanceof ItemDoor) {
        return false;
    }
    if (item.getItemStackLimit(stack) > 1) {
        return false;
    }
    if (item.hasContainerItem(stack)){
        ItemStack container = item.getContainerItem(stack);
        if (container != null && container.getItem() instanceof ItemBucket) {
            return false;
        }
    }
    if (item.getUnlocalizedName(stack).toLowerCase().contains("bucket")) {
        return false;
    }
    return true;
}
项目:RuneCraftery    文件:DispenserBehaviorFilledBucket.java   
public ItemStack func_82487_b(IBlockSource p_82487_1_, ItemStack p_82487_2_) {
   ItemBucket var3 = (ItemBucket)p_82487_2_.func_77973_b();
   int var4 = p_82487_1_.func_82623_d();
   int var5 = p_82487_1_.func_82622_e();
   int var6 = p_82487_1_.func_82621_f();
   EnumFacing var7 = BlockDispenser.func_100009_j_(p_82487_1_.func_82620_h());
   if(var3.func_77875_a(p_82487_1_.func_82618_k(), var4 + var7.func_82601_c(), var5 + var7.func_96559_d(), var6 + var7.func_82599_e())) {
      p_82487_2_.field_77993_c = Item.field_77788_aw.field_77779_bT;
      p_82487_2_.field_77994_a = 1;
      return p_82487_2_;
   } else {
      return this.field_96459_b.func_82482_a(p_82487_1_, p_82487_2_);
   }
}
项目:PneumaticCraft    文件:Fluids.java   
private static void initializeFluidBlocksAndBuckets(){
    for(final Fluid fluid : fluids) {
        //FluidRegistry.registerFluid(fluid); (The constructor of FluidPneumaticCrafts registers the fluid.
        Block fluidBlock = fluid.getBlock();
        Blockss.registerBlock(fluidBlock);
        fluidToBlockMap.put(fluid.getName(), fluidBlock);

        Item fluidBucket = new ItemBucket(fluidBlock){
            @Override
            public void addInformation(ItemStack p_77624_1_, net.minecraft.entity.player.EntityPlayer p_77624_2_, List p_77624_3_, boolean p_77624_4_){
                super.addInformation(p_77624_1_, p_77624_2_, p_77624_3_, p_77624_4_);
                ItemPneumatic.addTooltip(p_77624_1_, p_77624_2_, p_77624_3_);
            };

            @Override
            @SideOnly(Side.CLIENT)
            public void getSubItems(Item item, CreativeTabs creativeTab, List items){
                if(FluidRegistry.isFluidDefault(fluid)) super.getSubItems(item, creativeTab, items);
            }
        }.setContainerItem(Items.bucket).setCreativeTab(PneumaticCraft.tabPneumaticCraft).setTextureName(Textures.ICON_LOCATION + fluid.getName() + "Bucket").setUnlocalizedName(fluid.getName() + "Bucket");

        Itemss.registerItem(fluidBucket);

        fluidBlockToBucketMap.put(fluidBlock, fluidBucket);

        FluidContainerRegistry.registerFluidContainer(new FluidStack(fluid, 1000), new ItemStack(fluidBucket), new ItemStack(Items.bucket));
    }
}
项目:Industrial-Foregoing    文件:JEICustomPlugin.java   
@Override
public void register(IModRegistry registry) {
    if (BlockRegistry.sludgeRefinerBlock.isEnabled()) {
        int maxWeight = WeightedRandom.getTotalWeight(BlockRegistry.sludgeRefinerBlock.getItems());
        List<SludgeRefinerRecipeWrapper> wrapperList = new ArrayList<>();
        BlockRegistry.sludgeRefinerBlock.getItems().forEach(itemStackWeightedItem -> wrapperList.add(new SludgeRefinerRecipeWrapper(itemStackWeightedItem, maxWeight)));
        registry.addRecipes(wrapperList, sludgeRefinerRecipeCategory.getUid());
        registry.addRecipeCatalyst(new ItemStack(BlockRegistry.sludgeRefinerBlock), sludgeRefinerRecipeCategory.getUid());
    }
    if (BlockRegistry.bioReactorBlock.isEnabled()) {
        List<ReactorRecipeWrapper> bioreactor = new ArrayList<>();
        BioReactorEntry.BIO_REACTOR_ENTRIES.forEach(entry -> bioreactor.add(new ReactorRecipeWrapper(entry.getStack(), FluidsRegistry.BIOFUEL, BlockRegistry.bioReactorBlock.getBaseAmount())));
        registry.addRecipes(bioreactor, bioReactorRecipeCategory.getUid());
        registry.addRecipeCatalyst(new ItemStack(BlockRegistry.bioReactorBlock), bioReactorRecipeCategory.getUid());
    }
    if (BlockRegistry.proteinReactorBlock.isEnabled()) {
        List<ReactorRecipeWrapper> proteinreactor = new ArrayList<>();
        ProteinReactorEntry.PROTEIN_REACTOR_ENTRIES.forEach(entry -> proteinreactor.add(new ReactorRecipeWrapper(entry.getStack(), FluidsRegistry.PROTEIN, BlockRegistry.proteinReactorBlock.getBaseAmount())));
        registry.addRecipes(proteinreactor, proteinReactorRecipeCategory.getUid());
        registry.addRecipeCatalyst(new ItemStack(BlockRegistry.proteinReactorBlock), proteinReactorRecipeCategory.getUid());
    }
    if (BlockRegistry.laserBaseBlock.isEnabled() || BlockRegistry.laserDrillBlock.isEnabled()) {
        List<ItemStackWeightedItem> item = new ArrayList<>();
        LaserDrillEntry.LASER_DRILL_ENTRIES.forEach(entry -> item.add(new ItemStackWeightedItem(entry.getStack(), entry.getWeight())));
        final int laserMaxWeight = WeightedRandom.getTotalWeight(item);
        List<LaserRecipeWrapper> laserRecipeWrappers = new ArrayList<>();
        LaserDrillEntry.LASER_DRILL_ENTRIES.forEach(entry -> laserRecipeWrappers.add(new LaserRecipeWrapper(new ItemStackWeightedItem(entry.getStack(), entry.getWeight()), laserMaxWeight, entry.getLaserMeta())));
        registry.addRecipes(laserRecipeWrappers, laserRecipeCategory.getUid());
        registry.addRecipeCatalyst(new ItemStack(BlockRegistry.laserDrillBlock), laserRecipeCategory.getUid());
        registry.addRecipeCatalyst(new ItemStack(BlockRegistry.laserBaseBlock), laserRecipeCategory.getUid());
    }
    if (BlockRegistry.resourcefulFurnaceBlock.isEnabled())
        registry.addRecipeCatalyst(new ItemStack(BlockRegistry.resourcefulFurnaceBlock), VanillaRecipeCategoryUid.SMELTING);
    if (BlockRegistry.potionEnervatorBlock.isEnabled())
        registry.addRecipeCatalyst(new ItemStack(BlockRegistry.potionEnervatorBlock), VanillaRecipeCategoryUid.BREWING);

    registry.addRecipes(Arrays.asList(
            new MachineProduceWrapper(BlockRegistry.sporesRecreatorBlock, new ItemStack(Blocks.BROWN_MUSHROOM)),
            new MachineProduceWrapper(BlockRegistry.sporesRecreatorBlock, new ItemStack(Blocks.RED_MUSHROOM)),
            new MachineProduceWrapper(BlockRegistry.sewageCompostSolidiferBlock, new ItemStack(ItemRegistry.fertilizer)),
            new MachineProduceWrapper(BlockRegistry.dyeMixerBlock, new ItemStack(Items.DYE, 1, OreDictionary.WILDCARD_VALUE)),
            new MachineProduceWrapper(BlockRegistry.lavaFabricatorBlock, new ItemStack(Items.LAVA_BUCKET)),
            new MachineProduceWrapper(BlockRegistry.waterResourcesCollectorBlock, new ItemStack(Items.FISH, 1, OreDictionary.WILDCARD_VALUE)),
            new MachineProduceWrapper(BlockRegistry.mobRelocatorBlock, FluidUtil.getFilledBucket(new FluidStack(FluidsRegistry.ESSENCE, 1000))),
            new MachineProduceWrapper(BlockRegistry.cropRecolectorBlock, FluidUtil.getFilledBucket(new FluidStack(FluidsRegistry.SLUDGE, 1000))),
            new MachineProduceWrapper(BlockRegistry.waterCondensatorBlock, FluidUtil.getFilledBucket(new FluidStack(FluidRegistry.WATER, 1000))),
            new MachineProduceWrapper(BlockRegistry.animalResourceHarvesterBlock, FluidUtil.getFilledBucket(new FluidStack(FluidsRegistry.MILK, 1000))),
            new MachineProduceWrapper(BlockRegistry.mobSlaughterFactoryBlock, FluidUtil.getFilledBucket(new FluidStack(FluidsRegistry.MEAT, 1000))),
            new MachineProduceWrapper(BlockRegistry.mobSlaughterFactoryBlock, FluidUtil.getFilledBucket(new FluidStack(FluidsRegistry.PINK_SLIME, 1000))),
            new MachineProduceWrapper(BlockRegistry.treeFluidExtractorBlock, FluidUtil.getFilledBucket(new FluidStack(FluidsRegistry.LATEX, 1000))),
            new MachineProduceWrapper(BlockRegistry.latexProcessingUnitBlock, new ItemStack(ItemRegistry.tinyDryRubber)),
            new MachineProduceWrapper(BlockRegistry.animalByproductRecolectorBlock, FluidUtil.getFilledBucket(new FluidStack(FluidsRegistry.SEWAGE, 1000))),
            new MachineProduceWrapper(BlockRegistry.lavaFabricatorBlock, FluidUtil.getFilledBucket(new FluidStack(FluidRegistry.LAVA, 1000))),
            new MachineProduceWrapper(BlockRegistry.proteinReactorBlock, FluidUtil.getFilledBucket(new FluidStack(FluidsRegistry.PROTEIN, 1000)))).stream().filter(machineProduceWrapper -> ((CustomOrientedBlock) machineProduceWrapper.getBlock()).isEnabled()).collect(Collectors.toList()),
            machineProduceCategory.getUid());

    if (BlockRegistry.materialStoneWorkFactoryBlock.isEnabled()) {
        NonNullList<ItemStack> wrappers = NonNullList.create();
        findAllStoneWorkOutputs(wrappers, new ItemStack(Blocks.COBBLESTONE), 0);
        wrappers.stream().filter(stack -> !stack.isEmpty()).forEach(stack -> registry.addRecipes(Collections.singletonList(new MachineProduceWrapper(BlockRegistry.materialStoneWorkFactoryBlock, stack)), machineProduceCategory.getUid()));
    }
    if (BlockRegistry.petrifiedFuelGeneratorBlock.isEnabled()) {
        List<PetrifiedBurnTimeWrapper> petrifiedBurnTimeWrappers = new ArrayList<>();
        registry.getIngredientRegistry().getFuels().stream().filter(stack -> !(stack.getItem() instanceof ItemBucket)).forEach(stack -> petrifiedBurnTimeWrappers.add(new PetrifiedBurnTimeWrapper(stack, TileEntityFurnace.getItemBurnTime(stack))));
        registry.addRecipes(petrifiedBurnTimeWrappers, petrifiedBurnTimeCategory.getUid());
        registry.addRecipeCatalyst(new ItemStack(BlockRegistry.petrifiedFuelGeneratorBlock), petrifiedBurnTimeCategory.getUid());
    }
    if (CustomConfiguration.enableBookEntriesInJEI) {
        for (BookCategory category : BookCategory.values()) {
            registry.addRecipes(category.getEntries().values().stream().map(ManualWrapper::new).collect(Collectors.toList()), manualCategory.getUid());
        }
        registry.addRecipeCatalyst(new ItemStack(ItemRegistry.bookManualItem), manualCategory.getUid());
    }
}
项目:Alchemy    文件:DrinkingLava.java   
@Patch.Exception
@Hook("net.minecraft.item.ItemBucket#func_77661_b")
public static Hook.Result getItemUseAction(ItemBucket item, ItemStack stack) {
    return item == Items.LAVA_BUCKET ? new Hook.Result(EnumAction.DRINK) : Hook.Result.VOID;
}
项目:Alchemy    文件:DrinkingLava.java   
@Patch.Exception
@Hook("net.minecraft.item.ItemBucket#func_77626_a")
public static Hook.Result getMaxItemUseDuration(ItemBucket item, ItemStack stack) {
    return item == Items.LAVA_BUCKET ? new Hook.Result(32) : Hook.Result.VOID;
}
项目:Enterprise    文件:FluidPrefab.java   
public ItemBucket makeBucket(){
    return new ItemBucket(block);
}
项目:Enterprise    文件:FluidPrefab.java   
public void registerBucket(ItemBucket bucket){
    bucket.setUnlocalizedName(unlocalizedName+"_bucket");
    GameRegistry.registerItem(bucket, unlocalizedName+"_bucket");
    FluidContainerRegistry.registerFluidContainer(this, new ItemStack(bucket), new ItemStack(Items.bucket));
}
项目:ToggleBlocks    文件:BucketToggleAction.java   
@Override
    public boolean canPlaceBlock(World world, int x, int y, int z, ItemStack placing, IToggleController controller)
    {
        return FluidContainerRegistry.isFilledContainer(placing) || placing.getItem() instanceof ItemBucket;
//        return placing.getItem() instanceof ItemBucket && placing.getItem() != Items.bucket;
    }
项目:amunra    文件:ContainerRocketEngine.java   
protected void initSlots(TileEntityMothershipEngineAbstract tile) {
    this.addSlotToContainer(new SlotSpecific(tile, 0, 8, 7, ItemFluidContainer.class, ItemBucket.class));
}
项目:Production-Line    文件:PLItems.java   
public static void init() {
        diamondApple = new ItemDiamondApple();


        record_MusicSpring = new ItemPLRecord("record_musicspring", PLSounds.recordMusicSpring);
        salt = new ItemPLFood("salt", 0, 10F, true);
        gravityRay = new ItemGravityRay();

        //MultiMetaItem registry
        itemOre = new ItemOre();
        itemCrafting = new ItemCrafting();


        // special registry TODO: Better registry system

        packagedSalt = new ItemPL("packaged_salt") {
            /**
             * Called whenever this item is equipped and the right mouse button is pressed. Args: itemStack, world, entityPlayer
             */
            @Override
            public ActionResult<ItemStack> onItemRightClick(ItemStack itemStack, World world, EntityPlayer player, EnumHand hand) {
                if (PLConfig.instance.throwablePackagedSalt) {
                    if (!player.capabilities.isCreativeMode) {
                        --itemStack.stackSize;
                    }
                    world.playSound(null, player.posX, player.posY, player.posZ, SoundEvents.ENTITY_SNOWBALL_THROW, SoundCategory.NEUTRAL, 0.5F, 0.4F / (itemRand.nextFloat() * 0.4F + 0.8F));
                    if (!world.isRemote) {
                        world.spawnEntity(new EntityThrownItem(world, player, itemStack));
                    }
                }

                return new ActionResult<>(EnumActionResult.SUCCESS, itemStack);
            }

        };

        saltWaterBucket = new ItemBucket(Blocks.WATER);
        saltWaterBucket.setCreativeTab(ProductionLine.creativeTabPL)
                .setUnlocalizedName(MOD_ID + ".saltwater_bucket");

//        iridiumPickaxe = ToolPL.registerPickaxe(PLToolMaterial.iridium, "iridium_pickaxe");
//        iridiumAxe = ToolPL.registerAxe(PLToolMaterial.iridium, "iridium_axe");
//        iridiumSpade = ToolPL.registerSpade(PLToolMaterial.iridium, "iridium_spade");
//        iridiumSword = ToolPL.registerSword(PLToolMaterial.iridium, "iridium_sword");

        // TODO: Better registry system
        GameRegistry.<Item>register(saltWaterBucket, new ResourceLocation(MOD_ID, "saltwater_bucket"));
        GameRegistry.registerFuelHandler(new PLItems());
    }
项目:MC-MineAPI.Java    文件:InputSlot.java   
@Override
public boolean isItemValid(ItemStack stack)
{
    // Grab the recipe archive object array.
    TileEntityFactoryProduct possibleMachine = TileEntityFactory.instance().getMachineInfo( machineName );

    // Prevent multiple queries.
    if (registeredMachine == null)
    {
        this.registeredMachine = possibleMachine;
    }

    if (this.registeredMachine != null)
    {
        // Check if this slot is for buckets (filled or unfilled).
        ContainerTemplate[] containerSlots = this.registeredMachine.getContainerTemplate();
        for (ContainerTemplate machineSlot : containerSlots)
        {
            if (machineSlot.getSlotType().name().toLowerCase().contains( "bucket" ) &&
                stack.getItem() instanceof ItemBucket)
            {
                return true;
            }
        }

        // Loop through all of the machines internal recipes and look for matches to item for any input slot.
        RecipeArchive[] recipeArchiveArray = this.registeredMachine.getRecipeArchive();
        for (RecipeArchive machineRecipe : recipeArchiveArray)
        {
            RecipeComponent[] inputIngredients = machineRecipe.getInputIngredientsArray();
            for (RecipeComponent recipeResult : inputIngredients)
            {
                if (! recipeResult.isLoaded())
                {
                    continue;
                }

                // Determine if this recipe result matches anything in ingredient list.
                if (recipeResult.getAssociatedItemStack().getItem().equals( stack.getItem() ))
                {
                    return true;
                }
            }
        }
    }

    // Ensure that we return false in the event something goes wrong before this.
    return false;
}
项目:Gizmos    文件:FluidPrefab.java   
public ItemBucket makeBucket(){
    return new ItemBucket(block);
}
项目:Gizmos    文件:FluidPrefab.java   
public void registerBucket(ItemBucket bucket){
    bucket.setUnlocalizedName(unlocalizedName+"_bucket");
    GameRegistry.registerItem(bucket, unlocalizedName+"_bucket");
    FluidContainerRegistry.registerFluidContainer(this, new ItemStack(bucket), new ItemStack(Items.bucket));
}
项目:Battlegear2    文件:BattlegearClientUtils.java   
/**
 * Flip the sheathed item
 * @param stack
 */
private void onRenderSheathedItem(ItemStack stack){
    if (stack.getItem() instanceof ItemBucket || stack.getItem() instanceof ItemPotion || stack.getItem() instanceof IArrowContainer2) {
        GlStateManager.rotate(180F, 0.0F, 0.0F, 1.0F);
    }
}
项目:FusionReactor    文件:Tools.java   
/**
 * Register a fluid bucket with forge
 *  @param fluid      fluid for bucket to register
 * @param fluidBlock fluidBlock for bucket to register
 * @param bucket     bucket item to use
 * @param name       name for bucket
 * @return returns used itemBucket due register things
 */
public static ItemBucket registerFluidBucket(Fluid fluid, Block fluidBlock, ItemBucket bucket, String name) {
    GameRegistry.registerItem(bucket, name);
    FluidContainerRegistry.registerFluidContainer(fluid, new ItemStack(bucket), new ItemStack(Items.bucket));
    BucketHandler.INSTANCE.buckets.put(fluidBlock, bucket);
    return bucket;
}
项目:TheStuffMod    文件:Register.java   
/**public static void addMaterial(String itemname, String blockname, String orename, int blockhard, int blocklevel, Material blockmaterial, int orehard, int orelevel, Material orematerial, boolean oredropitem) {
    item = new ItemBasic(itemname,TMCreativeTabs.item);
    block = new BlockBasic(blockname, blockmaterial, TMCreativeTabs.block, blocklevel, blockhard);
    ore = new BlockBasic(orename, orematerial, TMCreativeTabs.block, orelevel, orehard);

    GameRegistry.registerItem(item, itemname);
    GameRegistry.registerBlock(block, blockname);
    GameRegistry.registerBlock(ore, orename);
    OreDictionary.registerOre(itemname, item);
    GameRegistry.addSmelting(ore, new ItemStack(item), 5);
    GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(block), true, new Object[]{"xxx", "xxx", "xxx", Character.valueOf('x'), itemname}));
    GameRegistry.addShapelessRecipe(new ItemStack(item, 9), new ItemStack(block));
}*/

public static ItemBucket registerBucket(ItemBucket bucket, String name, Fluid fluid, Block block) {
    GameRegistry.registerItem(bucket, name);
    FluidContainerRegistry.registerFluidContainer(new FluidStack(fluid, 1000), new ItemStack(bucket), new ItemStack(Items.bucket));
    BucketHandler.INSTANCE.buckets.put(block, bucket);
    return bucket;
}