@Override protected boolean installAugmentToSlot(int slot) { String id = AugmentHelper.getAugmentIdentifier(augments[slot]); if (TEProps.MACHINE_BREWER_REAGENT.equals(id)) { reuseChance += 15; energyMod += 15; } return super.installAugmentToSlot(slot); }
@Override public boolean isValidAugment(ItemStack augment) { if (!AugmentHelper.isAugmentItem(augment)) { return false; } return isValidAugment(AugmentHelper.getAugmentType(augment), AugmentHelper.getAugmentIdentifier(augment)); }
} else if (Block.getBlockFromItem(stack.getItem()) instanceof INBTCopyIngredient) { inputStack = stack; } else if (AugmentHelper.isUpgradeItem(stack)) { upgradeStack = stack; return ItemStack.EMPTY; int curLevel = AugmentHelper.getLevel(inputStack); int upgradeLevel = AugmentHelper.getUpgradeLevel(upgradeStack); UpgradeType upgradeType = AugmentHelper.getUpgradeType(upgradeStack); return AugmentHelper.setCreative(outputStack); return AugmentHelper.setLevel(outputStack, upgradeLevel);
@Override public boolean canUpgrade(ItemStack upgrade) { if (!AugmentHelper.isUpgradeItem(upgrade)) { return false; } UpgradeType uType = ((IUpgradeItem) upgrade.getItem()).getUpgradeType(upgrade); int uLevel = ((IUpgradeItem) upgrade.getItem()).getUpgradeLevel(upgrade); switch (uType) { case INCREMENTAL: if (uLevel == level + 1) { return !BlockCell.enableClassicRecipes; } break; case FULL: if (uLevel > level) { return !BlockCell.enableClassicRecipes; } break; case CREATIVE: return !isCreative && BlockCell.enableCreative; } return false; }
@Override @Nonnull public ItemStack getCraftingResult(@Nonnull InventoryCrafting inv) { ItemStack inputStack = ItemStack.EMPTY; ItemStack outputStack = output.copy(); for (int i = 0; i < inv.getSizeInventory(); ++i) { ItemStack stack = inv.getStackInSlot(i); if (!stack.isEmpty()) { if (stack.getItem() instanceof INBTCopyIngredient) { inputStack = stack; } } } if (inputStack.isEmpty()) { return ItemStack.EMPTY; } int outputLevel = AugmentHelper.getLevel(outputStack); outputStack = ItemHelper.copyTag(outputStack, inputStack); if (outputLevel != -1) { AugmentHelper.setLevel(outputStack, outputLevel); } return outputStack; }
public void updateAugmentStatus() { preAugmentInstall(); for (int i = 0; i < augments.length; i++) { augmentStatus[i] = false; if (AugmentHelper.isAugmentItem(augments[i])) { augmentStatus[i] = installAugmentToSlot(i); } } postAugmentInstall(); }
public NBTTagCompound getItemStackTag(IBlockAccess world, BlockPos pos) { TileEntity tile = world.getTileEntity(pos); NBTTagCompound retTag = new NBTTagCompound(); if (tile instanceof TileNameable && (!((TileNameable) tile).customName.isEmpty())) { retTag = ItemHelper.setItemStackTagName(retTag, ((TileNameable) tile).customName); } if (tile instanceof TileAugmentableSecure) { retTag.setBoolean(CoreProps.CREATIVE, ((TileAugmentableSecure) tile).isCreative); retTag.setByte(CoreProps.LEVEL, (byte) ((TileAugmentableSecure) tile).getLevel()); if (((TileAugmentableSecure) tile).isSecured()) { retTag = SecurityHelper.setItemStackTagSecure(retTag, (ISecurable) tile); } } if (tile instanceof IAugmentable) { retTag = AugmentHelper.setItemStackTagAugments(retTag, (IAugmentable) tile); } if (tile instanceof IRedstoneControl) { retTag = RedstoneControlHelper.setItemStackTagRS(retTag, (IRedstoneControl) tile); } if (tile instanceof TileReconfigurable) { retTag = ReconfigurableHelper.setItemStackTagReconfig(retTag, (TileReconfigurable) tile); } if (tile instanceof IEnergyHandler) { retTag.setInteger(CoreProps.ENERGY, ((IEnergyHandler) tile).getEnergyStored(null)); } return retTag; }
@Override public boolean canUpgrade(ItemStack upgrade) { if (!AugmentHelper.isUpgradeItem(upgrade)) { return false; } UpgradeType uType = ((IUpgradeItem) upgrade.getItem()).getUpgradeType(upgrade); int uLevel = ((IUpgradeItem) upgrade.getItem()).getUpgradeLevel(upgrade); switch (uType) { case INCREMENTAL: if (uLevel == level + 1) { return !BlockCache.enableClassicRecipes; } break; case FULL: if (uLevel > level) { return !BlockCache.enableClassicRecipes; } break; case CREATIVE: return !isCreative && BlockCache.enableCreative; } return false; }
@Override protected boolean performMerge(int slotIndex, ItemStack stack) { int invAugment = augmentSlots.length; int invPlayer = invAugment + 27; int invFull = invPlayer + 9; int invTile = invFull + (baseTile == null ? 0 : baseTile.getInvSlotCount()); if (slotIndex < invAugment) { return mergeItemStack(stack, invAugment, invFull, true); } else if (slotIndex < invFull) { if (!augmentLock && invAugment > 0 && AugmentHelper.isAugmentItem(stack)) { return mergeItemStack(stack, 0, invAugment, false); } return mergeItemStack(stack, invFull, invTile, false); } return mergeItemStack(stack, invAugment, invFull, true); }
@Override protected boolean installAugmentToSlot(int slot) { String id = AugmentHelper.getAugmentIdentifier(augments[slot]); if (!augmentTapper && TEProps.MACHINE_SAWMILL_TAPPER.equals(id)) { augmentTapper = true; hasModeAugment = true; energyMod += TAPPER_ENERGY_MOD; return true; } return super.installAugmentToSlot(slot); }
@Override public boolean canUpgrade(ItemStack upgrade) { if (!AugmentHelper.isUpgradeItem(upgrade) || !enableUpgrades) { return false; } UpgradeType uType = ((IUpgradeItem) upgrade.getItem()).getUpgradeType(upgrade); int uLevel = ((IUpgradeItem) upgrade.getItem()).getUpgradeLevel(upgrade); switch (uType) { case INCREMENTAL: if (uLevel == level + 1) { return !BlockMachine.enableClassicRecipes; } break; case FULL: if (uLevel > level) { return !BlockMachine.enableClassicRecipes; } break; case CREATIVE: return !isCreative && enableCreative; } return false; }
@Override protected boolean installAugmentToSlot(int slot) { String id = AugmentHelper.getAugmentIdentifier(augments[slot]); if (!augmentLava && TEProps.MACHINE_CRUCIBLE_LAVA.equals(id)) { augmentLava = true; hasModeAugment = true; energyMod += LAVA_ENERGY_MOD; return true; } return super.installAugmentToSlot(slot); }
@Override public boolean canUpgrade(ItemStack upgrade) { if (!AugmentHelper.isUpgradeItem(upgrade)) { return false; } UpgradeType uType = ((IUpgradeItem) upgrade.getItem()).getUpgradeType(upgrade); int uLevel = ((IUpgradeItem) upgrade.getItem()).getUpgradeLevel(upgrade); switch (uType) { case INCREMENTAL: if (uLevel == level + 1) { return true; } break; case FULL: if (uLevel > level) { return true; } break; case CREATIVE: return !isCreative; } return false; }
@Override protected boolean installAugmentToSlot(int slot) { String id = AugmentHelper.getAugmentIdentifier(augments[slot]); if (!augmentEmpowered && TEProps.MACHINE_ENCHANTER_EMPOWERED.equals(id)) { augmentEmpowered = true; return true; } return super.installAugmentToSlot(slot); }
@Override public boolean canUpgrade(ItemStack upgrade) { if (!AugmentHelper.isUpgradeItem(upgrade)) { return false; } UpgradeType uType = ((IUpgradeItem) upgrade.getItem()).getUpgradeType(upgrade); int uLevel = ((IUpgradeItem) upgrade.getItem()).getUpgradeLevel(upgrade); switch (uType) { case INCREMENTAL: if (uLevel == level + 1) { return !BlockStrongbox.enableClassicRecipes; } break; case FULL: if (uLevel > level) { return !BlockStrongbox.enableClassicRecipes; } break; case CREATIVE: return !isCreative && BlockStrongbox.enableCreative; } return false; }
@Override protected boolean installAugmentToSlot(int slot) { String id = AugmentHelper.getAugmentIdentifier(augments[slot]); if (!augmentMobs && TEProps.MACHINE_CENTRIFUGE_MOBS.equals(id)) { augmentMobs = true; hasModeAugment = true; return true; } return super.installAugmentToSlot(slot); }
@Override public boolean canUpgrade(ItemStack upgrade) { if (!AugmentHelper.isUpgradeItem(upgrade)) { return false; } UpgradeType uType = ((IUpgradeItem) upgrade.getItem()).getUpgradeType(upgrade); int uLevel = ((IUpgradeItem) upgrade.getItem()).getUpgradeLevel(upgrade); switch (uType) { case INCREMENTAL: if (uLevel == level + 1) { return !BlockTank.enableClassicRecipes; } break; case FULL: if (uLevel > level) { return !BlockTank.enableClassicRecipes; } break; case CREATIVE: return !isCreative && BlockTank.enableCreative; } return false; }
@Override protected boolean installAugmentToSlot(int slot) { String id = AugmentHelper.getAugmentIdentifier(augments[slot]); if (TEProps.APPARATUS_DEPTH.equals(id)) { depth++; return true; } if (TEProps.APPARATUS_RADIUS.equals(id)) { radius++; return true; } return super.installAugmentToSlot(slot); }
@Override public boolean canUpgrade(ItemStack upgrade) { if (!AugmentHelper.isUpgradeItem(upgrade) || !enableUpgrades) { return false; } UpgradeType uType = ((IUpgradeItem) upgrade.getItem()).getUpgradeType(upgrade); int uLevel = ((IUpgradeItem) upgrade.getItem()).getUpgradeLevel(upgrade); switch (uType) { case INCREMENTAL: if (uLevel == level + 1) { return !enableClassicRecipes; } break; case FULL: if (uLevel > level) { return !enableClassicRecipes; } break; case CREATIVE: return !isCreative && enableCreative; } return false; }
@Override protected boolean installAugmentToSlot(int slot) { String id = AugmentHelper.getAugmentIdentifier(augments[slot]); if (!augmentInput && TEProps.MACHINE_CRAFTER_INPUT.equals(id)) { augmentInput = true; return true; } if (!augmentTank && TEProps.MACHINE_CRAFTER_TANK.equals(id)) { augmentTank = true; return true; } return super.installAugmentToSlot(slot); }