Пример #1
0
  /**
   * Clear this player's inventory, using the specified ID and metadata as filters or -1 for no
   * filter.
   */
  public int clearInventory(int par1, int par2) {
    int var3 = 0;
    int var4;
    ItemStack var5;

    for (var4 = 0; var4 < this.mainInventory.length; ++var4) {
      var5 = this.mainInventory[var4];

      if (var5 != null
          && (par1 <= -1 || var5.itemID == par1)
          && (par2 <= -1 || var5.getItemDamage() == par2)) {
        var3 += var5.stackSize;
        this.mainInventory[var4] = null;
      }
    }

    for (var4 = 0; var4 < this.armorInventory.length; ++var4) {
      var5 = this.armorInventory[var4];

      if (var5 != null
          && (par1 <= -1 || var5.itemID == par1)
          && (par2 <= -1 || var5.getItemDamage() == par2)) {
        var3 += var5.stackSize;
        this.armorInventory[var4] = null;
      }
    }

    return var3;
  }
Пример #2
0
  /** Attempts to right-click use an item by the given EntityPlayer in the given World */
  public boolean tryUseItem(
      EntityPlayer par1EntityPlayer, World par2World, ItemStack par3ItemStack) {
    int var4 = par3ItemStack.stackSize;
    int var5 = par3ItemStack.getItemDamage();
    ItemStack var6 = par3ItemStack.useItemRightClick(par2World, par1EntityPlayer);

    if (var6 == par3ItemStack
        && (var6 == null
            || var6.stackSize == var4
                && var6.getMaxItemUseDuration() <= 0
                && var6.getItemDamage() == var5)) {
      return false;
    } else {
      par1EntityPlayer.inventory.mainInventory[par1EntityPlayer.inventory.currentItem] = var6;

      if (this.isCreative()) {
        var6.stackSize = var4;

        if (var6.isItemStackDamageable()) {
          var6.setItemDamage(var5);
        }
      }

      if (var6.stackSize == 0) {
        par1EntityPlayer.inventory.mainInventory[par1EntityPlayer.inventory.currentItem] = null;
      }

      if (!par1EntityPlayer.isUsingItem()) {
        ((EntityPlayerMP) par1EntityPlayer)
            .sendContainerToPlayer(par1EntityPlayer.inventoryContainer);
      }

      return true;
    }
  }
  private boolean func_21137_a(InventoryCrafting inventorycrafting, int i, int j, boolean flag) {
    for (int k = 0; k < 3; k++) {
      for (int l = 0; l < 3; l++) {
        int i1 = k - i;
        int j1 = l - j;
        ItemStack itemstack = null;
        if (i1 >= 0 && j1 >= 0 && i1 < recipeWidth && j1 < recipeHeight) {
          if (flag) {
            itemstack = recipeItems[(recipeWidth - i1 - 1) + j1 * recipeWidth];
          } else {
            itemstack = recipeItems[i1 + j1 * recipeWidth];
          }
        }
        ItemStack itemstack1 = inventorycrafting.func_21103_b(k, l);
        if (itemstack1 == null && itemstack == null) {
          continue;
        }
        if (itemstack1 == null && itemstack != null || itemstack1 != null && itemstack == null) {
          return false;
        }
        if (itemstack.itemID != itemstack1.itemID) {
          return false;
        }
        if (itemstack.getItemDamage() != -1
            && itemstack.getItemDamage() != itemstack1.getItemDamage()) {
          return false;
        }
      }
    }

    return true;
  }
Пример #4
0
 public String getItemNameIS(ItemStack itemstack) {
   return (new StringBuilder())
       .append(super.getItemName())
       .append(".")
       .append(ItemDye.dyeColorNames[BlockCloth.getBlockFromDye(itemstack.getItemDamage())])
       .toString();
 }
Пример #5
0
  public boolean onItemUse(
      ItemStack par1ItemStack,
      EntityPlayer par2EntityPlayer,
      World par3World,
      int par4,
      int par5,
      int par6,
      int par7) {
    if (par3World.isRemote) {
      return true;
    } else {
      int var8 = par3World.getBlockId(par4, par5, par6);
      par4 += Facing.offsetsXForSide[par7];
      par5 += Facing.offsetsYForSide[par7];
      par6 += Facing.offsetsZForSide[par7];
      double var9 = 0.0D;
      if (par7 == 1 && var8 == Block.fence.blockID || var8 == Block.netherFence.blockID) {
        var9 = 0.5D;
      }

      if (func_48440_a(
              par3World,
              par1ItemStack.getItemDamage(),
              (double) par4 + 0.5D,
              (double) par5 + var9,
              (double) par6 + 0.5D)
          && !par2EntityPlayer.capabilities.isCreativeMode) {
        --par1ItemStack.stackSize;
      }

      return true;
    }
  }
Пример #6
0
 @Override
 public String getItemNameIS(ItemStack itemstack) {
   String name = "";
   switch (itemstack.getItemDamage()) {
     case 0:
       name = "PlatinumBlock";
       break;
     case 1:
       name = "RedstoneBlock";
       break;
     case 2:
       name = "RefinedObsidian";
       break;
     case 3:
       name = "CoalBlock";
       break;
     case 4:
       name = "RefinedGlowstone";
       break;
     default:
       name = "Unknown";
       break;
   }
   return getItemName() + "." + name;
 }
Пример #7
0
  /** Called when the player picks up an item from an inventory slot */
  public void onPickupFromSlot(ItemStack par1ItemStack) {
    if (par1ItemStack.itemID == Item.potion.shiftedIndex && par1ItemStack.getItemDamage() > 0) {
      player.addStat(AchievementList.potion, 1);
    }

    super.onPickupFromSlot(par1ItemStack);
  }
Пример #8
0
  public boolean hitEntity(ItemStack itemstack, EntityLiving mob, EntityLiving entityliving1) {
    World world = entityliving1.worldObj;
    if (type1 == type2) {
      attacks(itemstack, world, entityliving1, mob, type1);
    } else {
      if (random.nextInt(100) + 1 <= 80) {
        attacks(itemstack, world, entityliving1, mob, type1);
      }
      if (random.nextInt(100) + 1 <= 20) {
        attacks(itemstack, world, entityliving1, mob, type2);
      }
    }
    int i = itemstack.getItemDamage();
    if (i >= dur) {
      itemstack.stackSize = 0;
    }
    if (type1 == 3 || type2 == 3 || type1 == 4 || type2 == 4 || type1 == 8 || type2 == 8) {
      if (random.nextInt(100) + 1 <= 90) {
        itemstack.damageItem(1, entityliving1);
      }
    } else {
      itemstack.damageItem(1, entityliving1);
    }

    return true;
  }
  /**
   * Activate the clicked on block, otherwise use the held item. Args: player, world, itemStack, x,
   * y, z, side, xOffset, yOffset, zOffset
   */
  public boolean activateBlockOrUseItem(
      EntityPlayer par1EntityPlayer,
      World par2World,
      ItemStack par3ItemStack,
      int par4,
      int par5,
      int par6,
      int par7,
      float par8,
      float par9,
      float par10) {
    int var11 = par2World.getBlockId(par4, par5, par6);

    if (var11 > 0
        && Block.blocksList[var11].onBlockActivated(
            par2World, par4, par5, par6, par1EntityPlayer, par7, par8, par9, par10)) {
      return true;
    } else if (par3ItemStack == null) {
      return false;
    } else if (this.isCreative()) {
      int var12 = par3ItemStack.getItemDamage();
      int var13 = par3ItemStack.stackSize;
      boolean var14 =
          par3ItemStack.func_77943_a(
              par1EntityPlayer, par2World, par4, par5, par6, par7, par8, par9, par10);
      par3ItemStack.setItemDamage(var12);
      par3ItemStack.stackSize = var13;
      return var14;
    } else {
      return par3ItemStack.func_77943_a(
          par1EntityPlayer, par2World, par4, par5, par6, par7, par8, par9, par10);
    }
  }
Пример #10
0
  public void updateEquippedItem() {
    this.prevEquippedProgress = this.equippedProgress;
    EntityPlayerSP var1 = this.mc.thePlayer;
    ItemStack var2 = var1.inventory.getCurrentItem();
    boolean var4 = this.equippedItemSlot == var1.inventory.currentItem && var2 == this.itemToRender;
    if (this.itemToRender == null && var2 == null) {
      var4 = true;
    }

    if (var2 != null
        && this.itemToRender != null
        && var2 != this.itemToRender
        && var2.itemID == this.itemToRender.itemID
        && var2.getItemDamage() == this.itemToRender.getItemDamage()) {
      this.itemToRender = var2;
      var4 = true;
    }

    float var5 = 0.4F;
    float var6 = var4 ? 1.0F : 0.0F;
    float var7 = var6 - this.equippedProgress;
    if (var7 < -var5) {
      var7 = -var5;
    }

    if (var7 > var5) {
      var7 = var5;
    }

    this.equippedProgress += var7;
    if (this.equippedProgress < 0.1F) {
      this.itemToRender = var2;
      this.equippedItemSlot = var1.inventory.currentItem;
    }
  }
Пример #11
0
  /** Handles a players right click */
  public boolean onPlayerRightClick(
      EntityPlayer par1EntityPlayer,
      World par2World,
      ItemStack par3ItemStack,
      int par4,
      int par5,
      int par6,
      int par7) {
    syncCurrentPlayItem();
    netClientHandler.addToSendQueue(
        new Packet15Place(par4, par5, par6, par7, par1EntityPlayer.inventory.getCurrentItem()));
    int i = par2World.getBlockId(par4, par5, par6);

    if (i > 0
        && Block.blocksList[i].blockActivated(par2World, par4, par5, par6, par1EntityPlayer)) {
      return true;
    }

    if (par3ItemStack == null) {
      return false;
    }

    if (creativeMode) {
      int j = par3ItemStack.getItemDamage();
      int k = par3ItemStack.stackSize;
      boolean flag = par3ItemStack.useItem(par1EntityPlayer, par2World, par4, par5, par6, par7);
      par3ItemStack.setItemDamage(j);
      par3ItemStack.stackSize = k;
      return flag;
    } else {
      return par3ItemStack.useItem(par1EntityPlayer, par2World, par4, par5, par6, par7);
    }
  }
 private int func_21083_d(ItemStack itemstack) {
   int i = itemstack.itemID;
   int j = itemstack.stackSize;
   int k = func_21082_c(itemstack);
   if (k < 0) {
     k = getFirstEmptyStack();
   }
   if (k < 0) {
     return j;
   }
   if (mainInventory[k] == null) {
     mainInventory[k] = new ItemStack(i, 0, itemstack.getItemDamage());
   }
   int l = j;
   if (l > mainInventory[k].getMaxStackSize() - mainInventory[k].stackSize) {
     l = mainInventory[k].getMaxStackSize() - mainInventory[k].stackSize;
   }
   if (l > getInventoryStackLimit() - mainInventory[k].stackSize) {
     l = getInventoryStackLimit() - mainInventory[k].stackSize;
   }
   if (l == 0) {
     return j;
   } else {
     j -= l;
     mainInventory[k].stackSize += l;
     mainInventory[k].animationsToGo = 5;
     return j;
   }
 }
Пример #13
0
  /**
   * This function stores as many items of an ItemStack as possible in a matching slot and returns
   * the quantity of left over items.
   */
  private int storePartialItemStack(ItemStack par1ItemStack) {
    int var2 = par1ItemStack.itemID;
    int var3 = par1ItemStack.stackSize;
    int var4;

    if (par1ItemStack.getMaxStackSize() == 1) {
      var4 = this.getFirstEmptyStack();

      if (var4 < 0) {
        return var3;
      } else {
        if (this.mainInventory[var4] == null) {
          this.mainInventory[var4] = ItemStack.copyItemStack(par1ItemStack);
        }

        return 0;
      }
    } else {
      var4 = this.storeItemStack(par1ItemStack);

      if (var4 < 0) {
        var4 = this.getFirstEmptyStack();
      }

      if (var4 < 0) {
        return var3;
      } else {
        if (this.mainInventory[var4] == null) {
          this.mainInventory[var4] = new ItemStack(var2, 0, par1ItemStack.getItemDamage());

          if (par1ItemStack.hasTagCompound()) {
            this.mainInventory[var4].setTagCompound(
                (NBTTagCompound) par1ItemStack.getTagCompound().copy());
          }
        }

        int var5 = var3;

        if (var3
            > this.mainInventory[var4].getMaxStackSize() - this.mainInventory[var4].stackSize) {
          var5 = this.mainInventory[var4].getMaxStackSize() - this.mainInventory[var4].stackSize;
        }

        if (var5 > this.getInventoryStackLimit() - this.mainInventory[var4].stackSize) {
          var5 = this.getInventoryStackLimit() - this.mainInventory[var4].stackSize;
        }

        if (var5 == 0) {
          return var3;
        } else {
          var3 -= var5;
          this.mainInventory[var4].stackSize += var5;
          this.mainInventory[var4].animationsToGo = 5;
          return var3;
        }
      }
    }
  }
Пример #14
0
  public String getItemNameIS(ItemStack par1ItemStack) {
    int var2 = par1ItemStack.getItemDamage();

    if (var2 < 0 || var2 >= BlockWood.woodType.length) {
      var2 = 0;
    }

    return super.getItemName() + "." + BlockWood.woodType[var2];
  }
Пример #15
0
  /**
   * Returns the unlocalized name of this item. This version accepts an ItemStack so different
   * stacks can have different names based on their damage or NBT.
   */
  public String getUnlocalizedName(ItemStack par1ItemStack) {
    int var2 = par1ItemStack.getItemDamage();

    if (var2 < 0 || var2 >= this.field_82804_b.length) {
      var2 = 0;
    }

    return super.getUnlocalizedName() + "." + this.field_82804_b[var2];
  }
Пример #16
0
  public String getItemDisplayName(ItemStack par1ItemStack) {
    String var2 = ("" + StatCollector.translateToLocal(this.getItemName() + ".name")).trim();
    String var3 = EntityList.getStringFromID(par1ItemStack.getItemDamage());
    if (var3 != null) {
      var2 = var2 + " " + StatCollector.translateToLocal("entity." + var3 + ".name");
    }

    return var2;
  }
Пример #17
0
 public boolean onBlockDestroyed(
     ItemStack itemstack, int i, int j, int k, int l, EntityLiving entityliving) {
   int i1 = itemstack.getItemDamage();
   if (i1 >= dur) {
     itemstack.stackSize = 0;
   }
   itemstack.damageItem(2, entityliving);
   return true;
 }
Пример #18
0
  public String getItemNameIS(ItemStack par1ItemStack) {
    int var2 = par1ItemStack.getItemDamage();

    if (var2 < 0 || var2 >= BlockStoneBrick.STONE_BRICK_TYPES.length) {
      var2 = 0;
    }

    return super.getItemName() + "." + BlockStoneBrick.STONE_BRICK_TYPES[var2];
  }
Пример #19
0
 public boolean onItemUse(
     ItemStack itemstack, EntityPlayer entityplayer, World world, int i, int j, int k, int l) {
   int i1 = world.getBlockId(i, j, k);
   if (i1 == Block.snow.blockID) {
     l = 0;
   } else if (i1 != Block.vine.blockID) {
     if (l == 0) {
       j--;
     }
     if (l == 1) {
       j++;
     }
     if (l == 2) {
       k--;
     }
     if (l == 3) {
       k++;
     }
     if (l == 4) {
       i--;
     }
     if (l == 5) {
       i++;
     }
   }
   if (itemstack.stackSize == 0) {
     return false;
   }
   if (!entityplayer.canPlayerEdit(i, j, k)) {
     return false;
   }
   if (j == world.worldYMax - 1 && Block.blocksList[blockID].blockMaterial.isSolid()) {
     return false;
   }
   if (world.canBlockBePlacedAt(blockID, i, j, k, false, l)) {
     Block block = Block.blocksList[blockID];
     if (world.setBlockAndMetadataWithNotify(
         i, j, k, blockID, getMetadata(itemstack.getItemDamage()))) {
       if (world.getBlockId(i, j, k) == blockID) {
         Block.blocksList[blockID].onBlockPlaced(world, i, j, k, l);
         Block.blocksList[blockID].onBlockPlacedBy(world, i, j, k, entityplayer);
       }
       world.playSoundEffect(
           (float) i + 0.5F,
           (float) j + 0.5F,
           (float) k + 0.5F,
           block.stepSound.stepSoundDir(),
           (block.stepSound.getVolume() + 1.0F) / 2.0F,
           block.stepSound.getPitch() * 0.8F);
       itemstack.stackSize--;
     }
     return true;
   } else {
     return false;
   }
 }
Пример #20
0
 public boolean onBlockDestroyed(
     ItemStack itemstack, int bID, int x, int y, int z, EntityLiving player) {
   int unbreaking = headUnbreaking;
   if (handleUnbreaking > unbreaking) unbreaking = handleUnbreaking;
   if (random.nextInt(100) + 1 <= 100 - (unbreaking * 10)) {
     if (itemstack.getItemDamage() + 1 >= itemstack.getMaxDamage())
       ((EntityPlayer) player).destroyCurrentEquippedItem();
     else itemstack.damageItem(1, player);
   }
   return true;
 }
Пример #21
0
  public void updateEquippedItem() {
    prevEquippedProgress = equippedProgress;
    EntityPlayerSP entityplayersp = mc.thePlayer;
    ItemStack itemstack = ((EntityPlayer) (entityplayersp)).inventory.getCurrentItem();
    ItemStack itemstack1 = itemstack;
    boolean flag =
        equippedItemSlot == ((EntityPlayer) (entityplayersp)).inventory.currentItem
            && itemstack1 == itemToRender;

    if (itemToRender == null && itemstack1 == null) {
      flag = true;
    }

    if (itemstack1 != null
        && itemToRender != null
        && itemstack1 != itemToRender
        && itemstack1.itemID == itemToRender.itemID
        && itemstack1.getItemDamage() == itemToRender.getItemDamage()) {
      itemToRender = itemstack1;
      flag = true;
    }

    float f = 0.4F;
    float f1 = flag ? 1.0F : 0.0F;
    float f2 = f1 - equippedProgress;

    if (f2 < -f) {
      f2 = -f;
    }

    if (f2 > f) {
      f2 = f;
    }

    equippedProgress += f2;

    if (equippedProgress < 0.1F) {
      itemToRender = itemstack1;
      equippedItemSlot = ((EntityPlayer) (entityplayersp)).inventory.currentItem;
    }
  }
Пример #22
0
 protected void onFoodEaten(
     ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) {
   if (par1ItemStack.getItemDamage() > 0) {
     if (!par2World.isRemote) {
       par3EntityPlayer.addPotionEffect(new PotionEffect(Potion.regeneration.id, 600, 3));
       par3EntityPlayer.addPotionEffect(new PotionEffect(Potion.resistance.id, 6000, 0));
       par3EntityPlayer.addPotionEffect(new PotionEffect(Potion.fireResistance.id, 6000, 0));
     }
   } else {
     super.onFoodEaten(par1ItemStack, par2World, par3EntityPlayer);
   }
 }
Пример #23
0
 public ItemStack onItemRightClick(ItemStack itemstack, World world, EntityPlayer entityplayer) {
   if (itemstack.getItemDamage() == 0) {
     entityplayer.openGui(
         ObsidianIngots.instance,
         20,
         world,
         (int) entityplayer.posX,
         (int) entityplayer.posY,
         (int) entityplayer.posZ);
   }
   return itemstack;
 }
Пример #24
0
  public String getItemNameIS(ItemStack par1ItemStack) {
    int i = par1ItemStack.getItemDamage();

    if (i < 0 || i >= BlockStoneBrick.field_72188_a.length) {
      i = 0;
    }

    return (new StringBuilder())
        .append(super.getItemName())
        .append(".")
        .append(BlockStoneBrick.field_72188_a[i])
        .toString();
  }
Пример #25
0
  /** Handle a creative slot packet. */
  public void handleCreativeSetSlot(Packet107CreativeSetSlot par1Packet107CreativeSetSlot) {
    if (this.playerEntity.theItemInWorldManager.isCreative()) {
      boolean var2 = par1Packet107CreativeSetSlot.slot < 0;
      ItemStack var3 = par1Packet107CreativeSetSlot.itemStack;
      boolean var4 =
          par1Packet107CreativeSetSlot.slot >= 1
              && par1Packet107CreativeSetSlot.slot < 36 + InventoryPlayer.func_70451_h();
      boolean var5 =
          var3 == null
              || var3.itemID < Item.itemsList.length
                  && var3.itemID >= 0
                  && Item.itemsList[var3.itemID] != null;
      boolean var6 =
          var3 == null
              || var3.getItemDamage() >= 0
                  && var3.getItemDamage() >= 0
                  && var3.stackSize <= 64
                  && var3.stackSize > 0;

      if (var4 && var5 && var6) {
        if (var3 == null) {
          this.playerEntity.inventorySlots.putStackInSlot(
              par1Packet107CreativeSetSlot.slot, (ItemStack) null);
        } else {
          this.playerEntity.inventorySlots.putStackInSlot(par1Packet107CreativeSetSlot.slot, var3);
        }

        this.playerEntity.inventorySlots.setCanCraft(this.playerEntity, true);
      } else if (var2 && var5 && var6 && this.field_72578_n < 200) {
        this.field_72578_n += 20;
        EntityItem var7 = this.playerEntity.dropPlayerItem(var3);

        if (var7 != null) {
          var7.func_70288_d();
        }
      }
    }
  }
Пример #26
0
  /** Handle a creative slot packet. */
  public void handleCreativeSetSlot(Packet107CreativeSetSlot par1Packet107CreativeSetSlot) {
    if (playerEntity.theItemInWorldManager.isCreative()) {
      boolean flag = par1Packet107CreativeSetSlot.slot < 0;
      ItemStack itemstack = par1Packet107CreativeSetSlot.itemStack;
      boolean flag1 =
          par1Packet107CreativeSetSlot.slot >= 1
              && par1Packet107CreativeSetSlot.slot < 36 + InventoryPlayer.func_70451_h();
      boolean flag2 =
          itemstack == null
              || itemstack.itemID < Item.itemsList.length
                  && itemstack.itemID >= 0
                  && Item.itemsList[itemstack.itemID] != null;
      boolean flag3 =
          itemstack == null
              || itemstack.getItemDamage() >= 0
                  && itemstack.getItemDamage() >= 0
                  && itemstack.stackSize <= 64
                  && itemstack.stackSize > 0;

      if (flag1 && flag2 && flag3) {
        if (itemstack == null) {
          playerEntity.inventorySlots.putStackInSlot(par1Packet107CreativeSetSlot.slot, null);
        } else {
          playerEntity.inventorySlots.putStackInSlot(par1Packet107CreativeSetSlot.slot, itemstack);
        }

        playerEntity.inventorySlots.setPlayerIsPresent(playerEntity, true);
      } else if (flag && flag2 && flag3 && creativeItemCreationSpamThresholdTally < 200) {
        creativeItemCreationSpamThresholdTally += 20;
        EntityItem entityitem = playerEntity.dropPlayerItem(itemstack);

        if (entityitem != null) {
          entityitem.func_70288_d();
        }
      }
    }
  }
  private int func_21082_c(ItemStack itemstack) {
    for (int i = 0; i < mainInventory.length; i++) {
      if (mainInventory[i] != null
          && mainInventory[i].itemID == itemstack.itemID
          && mainInventory[i].func_21132_c()
          && mainInventory[i].stackSize < mainInventory[i].getMaxStackSize()
          && mainInventory[i].stackSize < getInventoryStackLimit()
          && (!mainInventory[i].getHasSubtypes()
              || mainInventory[i].getItemDamage() == itemstack.getItemDamage())) {
        return i;
      }
    }

    return -1;
  }
Пример #28
0
  /** stores an itemstack in the users inventory */
  private int storeItemStack(ItemStack par1ItemStack) {
    for (int var2 = 0; var2 < this.mainInventory.length; ++var2) {
      if (this.mainInventory[var2] != null
          && this.mainInventory[var2].itemID == par1ItemStack.itemID
          && this.mainInventory[var2].isStackable()
          && this.mainInventory[var2].stackSize < this.mainInventory[var2].getMaxStackSize()
          && this.mainInventory[var2].stackSize < this.getInventoryStackLimit()
          && (!this.mainInventory[var2].getHasSubtypes()
              || this.mainInventory[var2].getItemDamage() == par1ItemStack.getItemDamage())
          && ItemStack.areItemStackTagsEqual(this.mainInventory[var2], par1ItemStack)) {
        return var2;
      }
    }

    return -1;
  }
 public static void preRender(ItemStack itemStack) {
   if (renderingEnchantment) {
     // rendering custom enchantment -- keep current state
   } else if (itemStack == null) {
     clear();
   } else if (itemStack.getItem() instanceof ItemBlock) {
     clear();
     ctm = CTMUtils18.getInstance();
     ctm.preRenderHeld(
         null, ((ItemBlock) itemStack.getItem()).getBlock(), itemStack.getItemDamage());
   } else {
     ctm = null;
     currentItem = itemStack;
     itemOverride = CITUtils.findItemOverride(itemStack);
   }
 }
Пример #30
0
  /** Dispense the specified stack, play the dispense sound and spawn particles. */
  public ItemStack dispenseStack(IBlockSource par1IBlockSource, ItemStack par2ItemStack) {
    EnumFacing var3 = BlockDispenser.getFacing(par1IBlockSource.getBlockMetadata());
    double var4 = par1IBlockSource.getX() + (double) var3.getFrontOffsetX();
    double var6 = (double) ((float) par1IBlockSource.getYInt() + 0.2F);
    double var8 = par1IBlockSource.getZ() + (double) var3.getFrontOffsetZ();
    Entity var10 =
        ItemMonsterPlacer.spawnCreature(
            par1IBlockSource.getWorld(), par2ItemStack.getItemDamage(), var4, var6, var8);

    if (var10 instanceof EntityLiving && par2ItemStack.hasDisplayName()) {
      ((EntityLiving) var10).func_94058_c(par2ItemStack.getDisplayName());
    }

    par2ItemStack.splitStack(1);
    return par2ItemStack;
  }