public static TurretUpgrades getUpgradeFromItem( ItemStack stack, Class<? extends EntityTurret_Base> turretCls) { if (stack == null) return null; for (int i = 0; i < upgradeListINT.size(); i++) { TurretUpgrades upg = getUpgradeFromID(i); if (CUS.areStacksEqualWithWCV(upg.getItem(), stack) && (turretCls == null || isUpgradeForTurret(upg, turretCls))) return getUpgradeFromID(i); } return null; }
public static boolean isUpgradeForTurret( TurretUpgrades upg, Class<? extends EntityTurret_Base> turretCls) { if (turretCls == null) return false; for (Class<? extends EntityTurret_Base> upgCls : upg.getTurrets()) { if (upgCls.isAssignableFrom(turretCls)) return true; } return false; }
public static boolean hasUpgrade(Class<? extends TurretUpgrades> tUpg, List<ItemStack> upgMap) { if (upgMap == null || tUpg == null) return false; TurretUpgrades chkUpg = upgradeListCLT.get(tUpg); for (ItemStack is : upgMap) { if (CUS.areStacksEqualWithWCV(chkUpg.getItem(), is)) { if (is.isItemEnchanted() && chkUpg.getEnchantment() != null) { NBTTagList ench = is.getEnchantmentTagList(); for (int j = 0; j < ench.tagCount(); ++j) { NBTTagCompound var4 = (NBTTagCompound) ench.tagAt(j); if (var4.getShort("id") == chkUpg.getEnchantment().effectId) { return true; } } } else if (chkUpg.getEnchantment() == null) { return true; } } } return false; }
public static void addUpgrade(TurretUpgrades upg) { upg.id = upgradeListINT.size(); upgradeListINT.put(upg.id, upg); upgradeListCLT.put(upg.getClass(), upg); }