diff --git a/build.gradle b/build.gradle index e4519ef5..4d9d74fa 100644 --- a/build.gradle +++ b/build.gradle @@ -12,13 +12,20 @@ maven { url 'https://oss.sonatype.org/content/groups/public' } - + maven { url 'https://plugins.gradle.org/m2/' } mavenLocal() } dependencies { classpath 'net.minecraftforge.gradle:ForgeGradle:1.2-SNAPSHOT' + classpath 'com.gradle:build-scan-plugin:1.3' } } +apply plugin: 'com.gradle.build-scan' + +buildScan { + licenseAgreementUrl = 'https://gradle.com/terms-of-service' + licenseAgree = 'yes' +} repositories { ivy { @@ -64,7 +71,7 @@ group = "thaumic.tinkerer" // http://maven.apache.org/guides/mini/guide-naming-c archivesBaseName = "ThaumicTinkerer" minecraft { - version = "1.7.10-10.13.4.1566-1.7.10" + version = "1.7.10-10.13.4.1614-1.7.10" //minecraftVersion="1.7.2" runDir = "eclipse" replace '${version}', project.version diff --git a/src/main/java/thaumic/tinkerer/common/block/BlockInfusedGrain.java b/src/main/java/thaumic/tinkerer/common/block/BlockInfusedGrain.java index 7b2b4443..52640bfa 100644 --- a/src/main/java/thaumic/tinkerer/common/block/BlockInfusedGrain.java +++ b/src/main/java/thaumic/tinkerer/common/block/BlockInfusedGrain.java @@ -123,7 +123,8 @@ public class BlockInfusedGrain extends BlockCrops implements ITTinkererBlock { @Override public ArrayList getDrops(World world, int x, int y, int z, int metadata, int fortune) { ArrayList ret = new ArrayList(); - + if(world==null) + return ret; Random rand = new Random(); int count = 1; for (int i = 0; i < count; i++) { diff --git a/src/main/java/thaumic/tinkerer/common/block/kami/BlockWarpGate.java b/src/main/java/thaumic/tinkerer/common/block/kami/BlockWarpGate.java index 15f83663..cfce7224 100644 --- a/src/main/java/thaumic/tinkerer/common/block/kami/BlockWarpGate.java +++ b/src/main/java/thaumic/tinkerer/common/block/kami/BlockWarpGate.java @@ -183,6 +183,8 @@ public class BlockWarpGate extends BlockModContainer { if (!Config.allowMirrors) { return null; } + if(!ConfigHandler.enableKami) + return null; return (IRegisterableResearch) new KamiResearchItem(LibResearch.KEY_WARP_GATE, new AspectList().add(Aspect.TRAVEL, 2).add(Aspect.ELDRITCH, 1).add(Aspect.FLIGHT, 1).add(Aspect.MECHANISM, 1), 19, 6, 5, new ItemStack(this)).setParents(LibResearch.KEY_ICHORCLOTH_CHEST_GEM).setParentsHidden(LibResearch.KEY_ICHORCLOTH_BOOTS_GEM) .setPages(new ResearchPage("0"), ResearchHelper.infusionPage(LibResearch.KEY_WARP_GATE), new ResearchPage("1"), ResearchHelper.infusionPage(LibResearch.KEY_SKY_PEARL)); diff --git a/src/main/java/thaumic/tinkerer/common/block/tile/TileEnchanter.java b/src/main/java/thaumic/tinkerer/common/block/tile/TileEnchanter.java index b4dda7f6..d09284ea 100644 --- a/src/main/java/thaumic/tinkerer/common/block/tile/TileEnchanter.java +++ b/src/main/java/thaumic/tinkerer/common/block/tile/TileEnchanter.java @@ -78,7 +78,7 @@ public class TileEnchanter extends TileEntity implements ISidedInventory, IMovab } public void removeLevel(int index) { - levels.remove(index); + levels.remove(index); } public void setEnchant(int index, int enchant) { diff --git a/src/main/java/thaumic/tinkerer/common/block/tile/tablet/TileAnimationTablet.java b/src/main/java/thaumic/tinkerer/common/block/tile/tablet/TileAnimationTablet.java index 23f9983e..ce632d0c 100644 --- a/src/main/java/thaumic/tinkerer/common/block/tile/tablet/TileAnimationTablet.java +++ b/src/main/java/thaumic/tinkerer/common/block/tile/tablet/TileAnimationTablet.java @@ -46,6 +46,7 @@ import net.minecraft.util.ChatComponentText; import net.minecraft.util.ChunkCoordinates; import net.minecraft.util.EnumChatFormatting; import net.minecraftforge.common.util.Constants; +import net.minecraftforge.common.util.FakePlayer; import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.event.ForgeEventFactory; import net.minecraftforge.event.entity.player.PlayerInteractEvent; @@ -93,7 +94,7 @@ public class TileAnimationTablet extends TileEntity implements IInventory, IMova List detectedEntities = new ArrayList(); ItemStack[] inventorySlots = new ItemStack[1]; //public String Owner; - FakeThaumcraftPlayer player; + TabletFakePlayer player; private int swingMod = 0; private boolean isBreaking = false; private int initialDamage = 0; diff --git a/src/main/java/thaumic/tinkerer/common/block/tile/transvector/TileTransvectorInterface.java b/src/main/java/thaumic/tinkerer/common/block/tile/transvector/TileTransvectorInterface.java index ae47b79a..90414324 100644 --- a/src/main/java/thaumic/tinkerer/common/block/tile/transvector/TileTransvectorInterface.java +++ b/src/main/java/thaumic/tinkerer/common/block/tile/transvector/TileTransvectorInterface.java @@ -24,8 +24,7 @@ import dan200.computercraft.api.lua.ILuaContext; import dan200.computercraft.api.lua.LuaException; import dan200.computercraft.api.peripheral.IComputerAccess; import dan200.computercraft.api.peripheral.IPeripheral; -import ic2.api.energy.tile.IEnergyAcceptor; -import ic2.api.energy.tile.IEnergySink; +import ic2.api.energy.tile.*; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; import net.minecraft.inventory.ISidedInventory; @@ -48,9 +47,12 @@ import thaumic.tinkerer.common.lib.LibFeatures; @Optional.Interface(iface = "cofh.api.energy.IEnergyHandler", modid = "CoFHCore"), @Optional.Interface(iface = "cofh.api.energy.IEnergyReceiver", modid = "CoFHCore"), @Optional.Interface(iface = "cofh.api.energy.IEnergyProvider", modid = "CoFHCore"), - @Optional.Interface(iface = "ic2.api.energy.tile.IEnergySink", modid = "IC2")}) + @Optional.Interface(iface = "ic2.api.energy.tile.IEnergySink", modid = "IC2"), + @Optional.Interface(iface = "ic2.api.energy.tile.IEnergyEmitter", modid = "IC2"), + @Optional.Interface(iface = "ic2.api.energy.tile.IEnergySource", modid = "IC2"), + @Optional.Interface(iface = "ic2.api.energy.tile.IEnergyConductor", modid = "IC2")}) -public class TileTransvectorInterface extends TileTransvector implements ISidedInventory, IEnergySink, IFluidHandler, IEnergyHandler, IEnergyReceiver, IAspectContainer, IEssentiaTransport, IPeripheral,IEnergyProvider { +public class TileTransvectorInterface extends TileTransvector implements ISidedInventory, IEnergyEmitter,IEnergySink,IEnergyConductor,IEnergySource, IFluidHandler, IEnergyHandler, IEnergyReceiver, IAspectContainer, IEssentiaTransport, IPeripheral,IEnergyProvider { public boolean addedToICEnergyNet = false; @@ -476,4 +478,79 @@ public class TileTransvectorInterface extends TileTransvector implements ISidedI TileEntity tile = getTile(); return tile instanceof IEnergyAcceptor ? ((IEnergySink) tile).acceptsEnergyFrom(emitter, direction) : false; } + + @Override + @Optional.Method(modid = "IC2") + public double getConductionLoss() { + TileEntity tile = getTile(); + return tile instanceof IEnergyConductor ? ((IEnergyConductor)tile).getConductionLoss():0; + } + + @Override + @Optional.Method(modid = "IC2") + public double getInsulationEnergyAbsorption() { + TileEntity tile = getTile(); + return tile instanceof IEnergyConductor ? ((IEnergyConductor)tile).getInsulationEnergyAbsorption():0; + } + + @Override + @Optional.Method(modid = "IC2") + public double getInsulationBreakdownEnergy() { + TileEntity tile = getTile(); + return tile instanceof IEnergyConductor ? ((IEnergyConductor)tile).getInsulationBreakdownEnergy():0; + } + + @Override + @Optional.Method(modid = "IC2") + public double getConductorBreakdownEnergy() { + TileEntity tile = getTile(); + return tile instanceof IEnergyConductor ? ((IEnergyConductor)tile).getConductorBreakdownEnergy():0; + } + + @Override + @Optional.Method(modid = "IC2") + public void removeInsulation() { + TileEntity tile = getTile(); + if(tile instanceof IEnergyConductor ) + ((IEnergyConductor)tile).removeInsulation(); + } + + + @Override + @Optional.Method(modid = "IC2") + public void removeConductor() { + + TileEntity tile = getTile(); + if(tile instanceof IEnergyConductor ) + ((IEnergyConductor)tile).removeConductor(); + } + + @Override + @Optional.Method(modid = "IC2") + public boolean emitsEnergyTo(TileEntity receiver, ForgeDirection direction) { + TileEntity tile = getTile(); + return tile instanceof IEnergyEmitter ? ((IEnergyEmitter)tile).emitsEnergyTo(receiver,direction):false; + } + + @Override + @Optional.Method(modid = "IC2") + public double getOfferedEnergy() { + TileEntity tile = getTile(); + return tile instanceof IEnergySource ? ((IEnergySource)tile).getOfferedEnergy():0; + } + + @Override + @Optional.Method(modid = "IC2") + public void drawEnergy(double amount) { + TileEntity tile = getTile(); + if(tile instanceof IEnergySource ) + ((IEnergySource)tile).drawEnergy(amount); + } + + @Override + @Optional.Method(modid = "IC2") + public int getSourceTier() { + TileEntity tile = getTile(); + return tile instanceof IEnergySource ? ((IEnergySource)tile).getSourceTier():0; + } } \ No newline at end of file diff --git a/src/main/java/thaumic/tinkerer/common/core/helper/AspectCropLootManager.java b/src/main/java/thaumic/tinkerer/common/core/helper/AspectCropLootManager.java index a44abe17..33c5ffdc 100644 --- a/src/main/java/thaumic/tinkerer/common/core/helper/AspectCropLootManager.java +++ b/src/main/java/thaumic/tinkerer/common/core/helper/AspectCropLootManager.java @@ -38,13 +38,15 @@ public class AspectCropLootManager { for (Integer i : aspectHashmap.values()) { sum += i; } - - Random rand = new Random(); - int randInt = rand.nextInt(sum); - for (Map.Entry pair : aspectHashmap.entrySet()) { - randInt -= pair.getValue(); - if (randInt <= 0) { - return pair.getKey().copy(); + if(sum>0) + { + Random rand = new Random(); + int randInt = rand.nextInt(sum); + for (Map.Entry pair : aspectHashmap.entrySet()) { + randInt -= pair.getValue(); + if (randInt <= 0) { + return pair.getKey().copy(); + } } } return null; diff --git a/src/main/java/thaumic/tinkerer/common/core/helper/BonemealEventHandler.java b/src/main/java/thaumic/tinkerer/common/core/helper/BonemealEventHandler.java index 539b8c59..a647d684 100644 --- a/src/main/java/thaumic/tinkerer/common/core/helper/BonemealEventHandler.java +++ b/src/main/java/thaumic/tinkerer/common/core/helper/BonemealEventHandler.java @@ -29,20 +29,24 @@ public class BonemealEventHandler { } @SubscribeEvent public void onPlayerInteract(PlayerInteractEvent event) { - if (event.world.getBlock(event.x, event.y, event.z) instanceof BlockInfusedGrain) { - if (event.entityPlayer.getCurrentEquippedItem().getItem() == ConfigItems.itemHoeElemental) { - IGrowable igrowable = (IGrowable) event.world.getBlock(event.x, event.y, event.z); + if (!event.world.isRemote) { + if (event.world.getBlock(event.x, event.y, event.z) instanceof BlockInfusedGrain) { + if (event.entityPlayer != null && event.entityPlayer.getCurrentEquippedItem() != null) { + if (event.entityPlayer.getCurrentEquippedItem().getItem() == ConfigItems.itemHoeElemental) { + IGrowable igrowable = (IGrowable) event.world.getBlock(event.x, event.y, event.z); + + if (igrowable.func_149851_a(event.world, event.x, event.y, event.z, event.world.isRemote)) { + if (!event.world.isRemote) { + if (igrowable.func_149852_a(event.world, event.world.rand, event.x, event.y, event.z)) { + igrowable.func_149853_b(event.world, event.world.rand, event.x, event.y, event.z); + } + } - if (igrowable.func_149851_a(event.world, event.x, event.y, event.z, event.world.isRemote)) { - if (!event.world.isRemote) { - if (igrowable.func_149852_a(event.world, event.world.rand, event.x, event.y, event.z)) { - igrowable.func_149853_b(event.world, event.world.rand, event.x, event.y, event.z); } + event.entityPlayer.getCurrentEquippedItem().damageItem(25, event.entityPlayer); + Thaumcraft.proxy.blockSparkle(event.world, event.x, event.y, event.z, 0, 2); } - } - event.entityPlayer.getCurrentEquippedItem().damageItem(25, event.entityPlayer); - Thaumcraft.proxy.blockSparkle(event.world, event.x, event.y, event.z, 0, 2); } } } diff --git a/src/main/java/thaumic/tinkerer/common/enchantment/ModEnchantmentHandler.java b/src/main/java/thaumic/tinkerer/common/enchantment/ModEnchantmentHandler.java index e5f775bb..4de430ef 100644 --- a/src/main/java/thaumic/tinkerer/common/enchantment/ModEnchantmentHandler.java +++ b/src/main/java/thaumic/tinkerer/common/enchantment/ModEnchantmentHandler.java @@ -31,6 +31,7 @@ import net.minecraftforge.event.entity.living.LivingFallEvent; import net.minecraftforge.event.entity.living.LivingHurtEvent; import net.minecraftforge.event.entity.player.PlayerEvent; import net.minecraftforge.event.world.BlockEvent; +import thaumic.tinkerer.common.ThaumicTinkerer; import thaumic.tinkerer.common.lib.LibEnchantIDs; import java.util.List; diff --git a/src/main/java/thaumic/tinkerer/common/item/ItemBloodSword.java b/src/main/java/thaumic/tinkerer/common/item/ItemBloodSword.java index eaf4b254..4cd632f3 100644 --- a/src/main/java/thaumic/tinkerer/common/item/ItemBloodSword.java +++ b/src/main/java/thaumic/tinkerer/common/item/ItemBloodSword.java @@ -127,6 +127,9 @@ public class ItemBloodSword extends ItemSword implements IRepairable, ITTinkerer @SubscribeEvent public void onDamageTaken(LivingAttackEvent event) { + if(event.entity==null) + return; + if (event.entity.worldObj.isRemote) return; diff --git a/src/main/java/thaumic/tinkerer/common/item/foci/ItemFocusDeflect.java b/src/main/java/thaumic/tinkerer/common/item/foci/ItemFocusDeflect.java index a48b8f16..ef4529b1 100644 --- a/src/main/java/thaumic/tinkerer/common/item/foci/ItemFocusDeflect.java +++ b/src/main/java/thaumic/tinkerer/common/item/foci/ItemFocusDeflect.java @@ -24,6 +24,7 @@ import net.minecraft.util.AxisAlignedBB; import thaumcraft.api.aspects.Aspect; import thaumcraft.api.aspects.AspectList; import thaumcraft.api.research.ResearchPage; +import thaumcraft.api.wands.FocusUpgradeType; import thaumcraft.codechicken.lib.vec.Vector3; import thaumcraft.common.config.Config; import thaumcraft.common.config.ConfigBlocks; @@ -77,6 +78,11 @@ public class ItemFocusDeflect extends ItemModFocus { } } + @Override + public FocusUpgradeType[] getPossibleUpgradesByRank(ItemStack focusstack, int rank) { + return new FocusUpgradeType[]{FocusUpgradeType.frugal}; + } + private static boolean CheckBlackList(Entity entity) { Class aClass=entity.getClass(); if(DeflectBlacklist.contains(aClass)) @@ -120,7 +126,13 @@ public class ItemFocusDeflect extends ItemModFocus { @Override public AspectList getVisCost(ItemStack stack) { - return visUsage; + float modifier=this.getUpgradeLevel(stack,FocusUpgradeType.frugal)*0.10f; + AspectList cost=visUsage.copy(); + for(Aspect a:visUsage.getAspects()) + { + cost.remove(a, (int) Math.round(cost.getAmount(a)*modifier)); + } + return cost; } diff --git a/src/main/java/thaumic/tinkerer/common/item/foci/ItemModFocus.java b/src/main/java/thaumic/tinkerer/common/item/foci/ItemModFocus.java index e6240cbb..ab4270ae 100644 --- a/src/main/java/thaumic/tinkerer/common/item/foci/ItemModFocus.java +++ b/src/main/java/thaumic/tinkerer/common/item/foci/ItemModFocus.java @@ -40,6 +40,8 @@ public abstract class ItemModFocus extends ItemFocusBasic implements ITTinkererI private IIcon ornament, depth; + + public ItemModFocus() { super(); setMaxDamage(1); @@ -173,10 +175,7 @@ public abstract class ItemModFocus extends ItemFocusBasic implements ITTinkererI return false; } - @Override - public FocusUpgradeType[] getPossibleUpgradesByRank(ItemStack itemStack, int i) { - return new FocusUpgradeType[]{FocusUpgradeType.treasure}; - } + } diff --git a/src/main/java/thaumic/tinkerer/common/item/kami/ItemBlockTalisman.java b/src/main/java/thaumic/tinkerer/common/item/kami/ItemBlockTalisman.java index abc80846..9bb82451 100644 --- a/src/main/java/thaumic/tinkerer/common/item/kami/ItemBlockTalisman.java +++ b/src/main/java/thaumic/tinkerer/common/item/kami/ItemBlockTalisman.java @@ -41,6 +41,7 @@ import thaumcraft.common.config.ConfigItems; import thaumic.tinkerer.client.core.helper.IconHelper; import thaumic.tinkerer.common.ThaumicTinkerer; import thaumic.tinkerer.common.block.tile.transvector.TileTransvectorInterface; +import thaumic.tinkerer.common.core.handler.ConfigHandler; import thaumic.tinkerer.common.core.helper.ItemNBTHelper; import thaumic.tinkerer.common.core.proxy.TTCommonProxy; import thaumic.tinkerer.common.lib.LibItemNames; @@ -301,6 +302,8 @@ public class ItemBlockTalisman extends ItemKamiBase implements IBauble { @Override public IRegisterableResearch getResearchItem() { + if(!ConfigHandler.enableKami) + return null; return (IRegisterableResearch) new KamiResearchItem(LibResearch.KEY_BLOCK_TALISMAN, new AspectList().add(Aspect.VOID, 2).add(Aspect.DARKNESS, 1).add(Aspect.ELDRITCH, 1).add(Aspect.MAGIC, 1), 14, 17, 5, new ItemStack(this)).setParents(LibResearch.KEY_ICHOR_PICK_GEM, LibResearch.KEY_ICHOR_SHOVEL_GEM) .setPages(new ResearchPage("0"), ResearchHelper.infusionPage(LibResearch.KEY_BLOCK_TALISMAN)); diff --git a/src/main/java/thaumic/tinkerer/common/item/kami/ItemCatAmulet.java b/src/main/java/thaumic/tinkerer/common/item/kami/ItemCatAmulet.java index fcfb56b0..80d3894f 100644 --- a/src/main/java/thaumic/tinkerer/common/item/kami/ItemCatAmulet.java +++ b/src/main/java/thaumic/tinkerer/common/item/kami/ItemCatAmulet.java @@ -36,6 +36,7 @@ import thaumcraft.api.aspects.Aspect; import thaumcraft.api.aspects.AspectList; import thaumcraft.api.research.ResearchPage; import thaumic.tinkerer.common.ThaumicTinkerer; +import thaumic.tinkerer.common.core.handler.ConfigHandler; import thaumic.tinkerer.common.core.proxy.TTCommonProxy; import thaumic.tinkerer.common.lib.LibItemNames; import thaumic.tinkerer.common.lib.LibResearch; @@ -137,6 +138,8 @@ public class ItemCatAmulet extends ItemKamiBase implements IBauble { @Override public IRegisterableResearch getResearchItem() { + if(!ConfigHandler.enableKami) + return null; return (IRegisterableResearch) new KamiResearchItem(LibResearch.KEY_CAT_AMULET, new AspectList().add(Aspect.MIND, 2).add(Aspect.ORDER, 1).add(Aspect.DARKNESS, 1).add(Aspect.DEATH, 1), 13, 10, 5, new ItemStack(this)).setParents(LibResearch.KEY_ICHORIUM) .setPages(new ResearchPage("0"), ResearchHelper.infusionPage(LibResearch.KEY_CAT_AMULET)); diff --git a/src/main/java/thaumic/tinkerer/common/item/kami/ItemIchorPouch.java b/src/main/java/thaumic/tinkerer/common/item/kami/ItemIchorPouch.java index e1e31f87..dfa42705 100644 --- a/src/main/java/thaumic/tinkerer/common/item/kami/ItemIchorPouch.java +++ b/src/main/java/thaumic/tinkerer/common/item/kami/ItemIchorPouch.java @@ -149,6 +149,8 @@ public class ItemIchorPouch extends ItemFocusPouch implements IBauble, ITTinkere @Override public IRegisterableResearch getResearchItem() { + if(!ConfigHandler.enableKami) + return null; return (IRegisterableResearch) new KamiResearchItem(LibResearch.KEY_ICHOR_POUCH, new AspectList().add(Aspect.VOID, 2).add(Aspect.CLOTH, 1).add(Aspect.ELDRITCH, 1).add(Aspect.MAN, 1), 13, 6, 5, new ItemStack(this)).setParents(LibResearch.KEY_ICHOR_CLOTH) .setPages(new ResearchPage("0"), ResearchHelper.infusionPage(LibResearch.KEY_ICHOR_POUCH)); diff --git a/src/main/java/thaumic/tinkerer/common/item/kami/ItemKamiResource.java b/src/main/java/thaumic/tinkerer/common/item/kami/ItemKamiResource.java index 9260551b..f56a940d 100644 --- a/src/main/java/thaumic/tinkerer/common/item/kami/ItemKamiResource.java +++ b/src/main/java/thaumic/tinkerer/common/item/kami/ItemKamiResource.java @@ -28,6 +28,7 @@ import thaumcraft.api.research.ResearchPage; import thaumcraft.common.config.ConfigItems; import thaumic.tinkerer.client.core.helper.IconHelper; import thaumic.tinkerer.common.ThaumicTinkerer; +import thaumic.tinkerer.common.core.handler.ConfigHandler; import thaumic.tinkerer.common.core.proxy.TTCommonProxy; import thaumic.tinkerer.common.lib.LibItemNames; import thaumic.tinkerer.common.lib.LibResearch; @@ -82,7 +83,8 @@ public class ItemKamiResource extends ItemKamiBase { @Override public IRegisterableResearch getResearchItem() { - + if(!ConfigHandler.enableKami) + return null; TTResearchItem research; TTResearchItemMulti researchItemMulti = new TTResearchItemMulti(); diff --git a/src/main/java/thaumic/tinkerer/common/item/kami/ItemPlacementMirror.java b/src/main/java/thaumic/tinkerer/common/item/kami/ItemPlacementMirror.java index 7a6ba95e..34d554fa 100644 --- a/src/main/java/thaumic/tinkerer/common/item/kami/ItemPlacementMirror.java +++ b/src/main/java/thaumic/tinkerer/common/item/kami/ItemPlacementMirror.java @@ -19,6 +19,7 @@ import thaumcraft.api.research.ResearchPage; import thaumic.tinkerer.client.core.handler.kami.ToolModeHUDHandler; import thaumic.tinkerer.client.core.helper.IconHelper; import thaumic.tinkerer.common.ThaumicTinkerer; +import thaumic.tinkerer.common.core.handler.ConfigHandler; import thaumic.tinkerer.common.core.helper.ItemNBTHelper; import thaumic.tinkerer.common.core.proxy.TTCommonProxy; import thaumic.tinkerer.common.item.kami.tool.ToolHandler; @@ -264,6 +265,8 @@ public class ItemPlacementMirror extends ItemKamiBase { @Override public IRegisterableResearch getResearchItem() { + if(!ConfigHandler.enableKami) + return null; return (IRegisterableResearch) new KamiResearchItem(LibResearch.KEY_PLACEMENT_MIRROR, new AspectList().add(Aspect.CRAFT, 2).add(Aspect.CRYSTAL, 1).add(Aspect.ELDRITCH, 1).add(Aspect.MIND, 1), 17, 16, 5, new ItemStack(this)).setParents(LibResearch.KEY_BLOCK_TALISMAN) .setPages(new ResearchPage("0"), ResearchHelper.infusionPage(LibResearch.KEY_PLACEMENT_MIRROR)); diff --git a/src/main/java/thaumic/tinkerer/common/item/kami/ItemProtoclay.java b/src/main/java/thaumic/tinkerer/common/item/kami/ItemProtoclay.java index d39a2185..49acaccb 100644 --- a/src/main/java/thaumic/tinkerer/common/item/kami/ItemProtoclay.java +++ b/src/main/java/thaumic/tinkerer/common/item/kami/ItemProtoclay.java @@ -31,6 +31,7 @@ import thaumcraft.api.aspects.Aspect; import thaumcraft.api.aspects.AspectList; import thaumcraft.api.research.ResearchPage; import thaumic.tinkerer.common.ThaumicTinkerer; +import thaumic.tinkerer.common.core.handler.ConfigHandler; import thaumic.tinkerer.common.core.proxy.TTCommonProxy; import thaumic.tinkerer.common.item.kami.tool.IAdvancedTool; import thaumic.tinkerer.common.item.kami.tool.ToolHandler; @@ -160,6 +161,8 @@ public class ItemProtoclay extends ItemKamiBase { @Override public IRegisterableResearch getResearchItem() { + if(!ConfigHandler.enableKami) + return null; return (IRegisterableResearch) new KamiResearchItem(LibResearch.KEY_PROTOCLAY, new AspectList().add(Aspect.TOOL, 2).add(Aspect.MINE, 1).add(Aspect.MAN, 1).add(Aspect.MECHANISM, 1), 12, 17, 5, new ItemStack(this)).setParents(LibResearch.KEY_ICHOR_PICK_GEM).setParentsHidden(LibResearch.KEY_ICHOR_SHOVEL_GEM) .setPages(new ResearchPage("0"), ResearchHelper.infusionPage(LibResearch.KEY_PROTOCLAY)); diff --git a/src/main/java/thaumic/tinkerer/common/item/kami/armor/ItemGemBoots.java b/src/main/java/thaumic/tinkerer/common/item/kami/armor/ItemGemBoots.java index 69ae6e4e..666ec8c4 100644 --- a/src/main/java/thaumic/tinkerer/common/item/kami/armor/ItemGemBoots.java +++ b/src/main/java/thaumic/tinkerer/common/item/kami/armor/ItemGemBoots.java @@ -31,6 +31,7 @@ import thaumcraft.api.research.ResearchPage; import thaumcraft.common.config.ConfigBlocks; import thaumcraft.common.config.ConfigItems; import thaumic.tinkerer.common.ThaumicTinkerer; +import thaumic.tinkerer.common.core.handler.ConfigHandler; import thaumic.tinkerer.common.item.kami.ItemKamiResource; import thaumic.tinkerer.common.lib.LibItemNames; import thaumic.tinkerer.common.lib.LibResearch; @@ -84,6 +85,8 @@ public class ItemGemBoots extends ItemIchorclothArmorAdv { @Override public IRegisterableResearch getResearchItem() { + if(!ConfigHandler.enableKami) + return null; return (IRegisterableResearch) new KamiResearchItem(LibResearch.KEY_ICHORCLOTH_BOOTS_GEM, new AspectList().add(Aspect.EARTH, 2).add(Aspect.TRAVEL, 1).add(Aspect.MINE, 1).add(Aspect.PLANT, 1), 15, 10, 5, new ItemStack(this)).setParents(LibResearch.KEY_ICHORCLOTH_ARMOR) .setPages(new ResearchPage("0"), ResearchHelper.infusionPage(LibResearch.KEY_ICHORCLOTH_BOOTS_GEM)); diff --git a/src/main/java/thaumic/tinkerer/common/item/kami/armor/ItemGemChest.java b/src/main/java/thaumic/tinkerer/common/item/kami/armor/ItemGemChest.java index 017cdb94..a3662a58 100644 --- a/src/main/java/thaumic/tinkerer/common/item/kami/armor/ItemGemChest.java +++ b/src/main/java/thaumic/tinkerer/common/item/kami/armor/ItemGemChest.java @@ -88,6 +88,8 @@ public class ItemGemChest extends ItemIchorclothArmorAdv { @Override public IRegisterableResearch getResearchItem() { + if(!ConfigHandler.enableKami) + return null; return (IRegisterableResearch) new KamiResearchItem(LibResearch.KEY_ICHORCLOTH_CHEST_GEM, new AspectList().add(Aspect.AIR, 2).add(Aspect.MOTION, 1).add(Aspect.FLIGHT, 1).add(Aspect.ELDRITCH, 1), 17, 7, 5, new ItemStack(this)).setParents(LibResearch.KEY_ICHORCLOTH_ARMOR) .setPages(new ResearchPage("0"), ResearchHelper.infusionPage(LibResearch.KEY_ICHORCLOTH_CHEST_GEM)); diff --git a/src/main/java/thaumic/tinkerer/common/item/kami/armor/ItemGemHelm.java b/src/main/java/thaumic/tinkerer/common/item/kami/armor/ItemGemHelm.java index bcdf74c4..98152c74 100644 --- a/src/main/java/thaumic/tinkerer/common/item/kami/armor/ItemGemHelm.java +++ b/src/main/java/thaumic/tinkerer/common/item/kami/armor/ItemGemHelm.java @@ -28,6 +28,7 @@ import thaumcraft.api.nodes.IRevealer; import thaumcraft.api.research.ResearchPage; import thaumcraft.common.config.ConfigItems; import thaumic.tinkerer.common.ThaumicTinkerer; +import thaumic.tinkerer.common.core.handler.ConfigHandler; import thaumic.tinkerer.common.item.kami.ItemKamiResource; import thaumic.tinkerer.common.lib.LibItemNames; import thaumic.tinkerer.common.lib.LibResearch; @@ -103,6 +104,8 @@ public class ItemGemHelm extends ItemIchorclothArmorAdv implements IGoggles, @Override public IRegisterableResearch getResearchItem() { + if(!ConfigHandler.enableKami) + return null; return (IRegisterableResearch) new KamiResearchItem( LibResearch.KEY_ICHORCLOTH_HELM_GEM, new AspectList() .add(Aspect.WATER, 2).add(Aspect.HEAL, 1) diff --git a/src/main/java/thaumic/tinkerer/common/item/kami/armor/ItemGemLegs.java b/src/main/java/thaumic/tinkerer/common/item/kami/armor/ItemGemLegs.java index faa30794..3004aad2 100644 --- a/src/main/java/thaumic/tinkerer/common/item/kami/armor/ItemGemLegs.java +++ b/src/main/java/thaumic/tinkerer/common/item/kami/armor/ItemGemLegs.java @@ -29,6 +29,7 @@ import thaumcraft.api.research.ResearchPage; import thaumcraft.codechicken.lib.vec.Vector3; import thaumcraft.common.config.ConfigItems; import thaumic.tinkerer.common.ThaumicTinkerer; +import thaumic.tinkerer.common.core.handler.ConfigHandler; import thaumic.tinkerer.common.item.ItemBrightNitor; import thaumic.tinkerer.common.item.foci.ItemFocusSmelt; import thaumic.tinkerer.common.item.kami.ItemKamiResource; @@ -91,6 +92,8 @@ public class ItemGemLegs extends ItemIchorclothArmorAdv { @Override public IRegisterableResearch getResearchItem() { + if(!ConfigHandler.enableKami) + return null; return (IRegisterableResearch) new KamiResearchItem(LibResearch.KEY_ICHORCLOTH_LEGS_GEM, new AspectList().add(Aspect.FIRE, 2).add(Aspect.HEAL, 1).add(Aspect.GREED, 1).add(Aspect.ENERGY, 1), 17, 9, 5, new ItemStack(this)).setParents(LibResearch.KEY_ICHORCLOTH_ARMOR) .setPages(new ResearchPage("0"), ResearchHelper.infusionPage(LibResearch.KEY_ICHORCLOTH_LEGS_GEM), new ResearchPage("1")); diff --git a/src/main/java/thaumic/tinkerer/common/item/kami/armor/ItemIchorclothArmor.java b/src/main/java/thaumic/tinkerer/common/item/kami/armor/ItemIchorclothArmor.java index ac1f8a8f..e8dae15b 100644 --- a/src/main/java/thaumic/tinkerer/common/item/kami/armor/ItemIchorclothArmor.java +++ b/src/main/java/thaumic/tinkerer/common/item/kami/armor/ItemIchorclothArmor.java @@ -159,6 +159,8 @@ public class ItemIchorclothArmor extends ItemArmor implements IVisDiscountGear, @Override public IRegisterableResearch getResearchItem() { + if(!ConfigHandler.enableKami) + return null; return armorType != 0 ? null : (IRegisterableResearch) new KamiResearchItem( LibResearch.KEY_ICHORCLOTH_ARMOR, new AspectList() diff --git a/src/main/java/thaumic/tinkerer/common/item/kami/foci/ItemFocusRecall.java b/src/main/java/thaumic/tinkerer/common/item/kami/foci/ItemFocusRecall.java index 4cb3b4b9..98721fad 100644 --- a/src/main/java/thaumic/tinkerer/common/item/kami/foci/ItemFocusRecall.java +++ b/src/main/java/thaumic/tinkerer/common/item/kami/foci/ItemFocusRecall.java @@ -28,6 +28,7 @@ import thaumcraft.common.config.ConfigItems; import thaumcraft.common.items.wands.ItemWandCasting; import thaumic.tinkerer.common.ThaumicTinkerer; import thaumic.tinkerer.common.block.tile.kami.TileWarpGate; +import thaumic.tinkerer.common.core.handler.ConfigHandler; import thaumic.tinkerer.common.item.kami.ItemKamiResource; import thaumic.tinkerer.common.item.kami.ItemSkyPearl; import thaumic.tinkerer.common.lib.LibItemNames; @@ -93,12 +94,8 @@ public class ItemFocusRecall extends ItemModKamiFocus { @Override public AspectList getVisCost(ItemStack stack) { - return cost; - } - @Override - public FocusUpgradeType[] getPossibleUpgradesByRank(ItemStack itemStack, int i) { - return new FocusUpgradeType[0]; + return cost; } @Override @@ -116,6 +113,8 @@ public class ItemFocusRecall extends ItemModKamiFocus { if (!Config.allowMirrors) { return null; } + if(!ConfigHandler.enableKami) + return null; return (IRegisterableResearch) new KamiResearchItem(LibResearch.KEY_FOCUS_RECALL, new AspectList().add(Aspect.TRAVEL, 2).add(Aspect.ELDRITCH, 1).add(Aspect.FLIGHT, 1).add(Aspect.MAGIC, 1), 20, 8, 5, new ItemStack(this)).setParents(LibResearch.KEY_WARP_GATE).setParentsHidden(LibResearch.KEY_ICHORCLOTH_ROD) .setPages(new ResearchPage("0"), ResearchHelper.infusionPage(LibResearch.KEY_FOCUS_RECALL)); } diff --git a/src/main/java/thaumic/tinkerer/common/item/kami/foci/ItemFocusShadowbeam.java b/src/main/java/thaumic/tinkerer/common/item/kami/foci/ItemFocusShadowbeam.java index 30b8a384..6e7aa2ee 100644 --- a/src/main/java/thaumic/tinkerer/common/item/kami/foci/ItemFocusShadowbeam.java +++ b/src/main/java/thaumic/tinkerer/common/item/kami/foci/ItemFocusShadowbeam.java @@ -22,6 +22,7 @@ import thaumcraft.codechicken.lib.vec.Vector3; import thaumcraft.common.config.ConfigItems; import thaumcraft.common.items.wands.ItemWandCasting; import thaumic.tinkerer.common.ThaumicTinkerer; +import thaumic.tinkerer.common.core.handler.ConfigHandler; import thaumic.tinkerer.common.core.proxy.TTCommonProxy; import thaumic.tinkerer.common.item.foci.ItemFocusDeflect; import thaumic.tinkerer.common.item.kami.ItemKamiResource; @@ -78,10 +79,7 @@ public class ItemFocusShadowbeam extends ItemModKamiFocus { return cost; } - @Override - public FocusUpgradeType[] getPossibleUpgradesByRank(ItemStack itemStack, int rank) { - return new FocusUpgradeType[0]; - } + @Override public EnumRarity getRarity(ItemStack par1ItemStack) { @@ -95,6 +93,8 @@ public class ItemFocusShadowbeam extends ItemModKamiFocus { @Override public IRegisterableResearch getResearchItem() { + if(!ConfigHandler.enableKami) + return null; return (IRegisterableResearch) new KamiResearchItem(LibResearch.KEY_FOCUS_SHADOWBEAM, new AspectList().add(Aspect.DARKNESS, 2).add(Aspect.MAGIC, 1).add(Aspect.ELDRITCH, 1).add(Aspect.TAINT, 1), 14, 4, 5, new ItemStack(this)).setParents(LibResearch.KEY_ICHORCLOTH_ROD) .setPages(new ResearchPage("0"), ResearchHelper.infusionPage(LibResearch.KEY_FOCUS_SHADOWBEAM)); diff --git a/src/main/java/thaumic/tinkerer/common/item/kami/foci/ItemFocusXPDrain.java b/src/main/java/thaumic/tinkerer/common/item/kami/foci/ItemFocusXPDrain.java index 9ee004d4..eabdaabe 100644 --- a/src/main/java/thaumic/tinkerer/common/item/kami/foci/ItemFocusXPDrain.java +++ b/src/main/java/thaumic/tinkerer/common/item/kami/foci/ItemFocusXPDrain.java @@ -13,6 +13,7 @@ import thaumcraft.api.research.ResearchPage; import thaumcraft.api.wands.FocusUpgradeType; import thaumcraft.common.items.wands.ItemWandCasting; import thaumic.tinkerer.common.ThaumicTinkerer; +import thaumic.tinkerer.common.core.handler.ConfigHandler; import thaumic.tinkerer.common.core.helper.ExperienceHelper; import thaumic.tinkerer.common.core.proxy.TTCommonProxy; import thaumic.tinkerer.common.item.ItemXPTalisman; @@ -96,10 +97,7 @@ public class ItemFocusXPDrain extends ItemModKamiFocus { return cost; } - @Override - public FocusUpgradeType[] getPossibleUpgradesByRank(ItemStack itemStack, int i) { - return new FocusUpgradeType[0]; - } + @Override public EnumRarity getRarity(ItemStack par1ItemStack) { @@ -119,6 +117,8 @@ public class ItemFocusXPDrain extends ItemModKamiFocus { @Override public IRegisterableResearch getResearchItem() { + if(!ConfigHandler.enableKami) + return null; return (IRegisterableResearch) new KamiResearchItem(LibResearch.KEY_FOCUS_XP_DRAIN, new AspectList().add(Aspect.MIND, 2).add(Aspect.MAGIC, 1).add(Aspect.AURA, 1).add(Aspect.MAN, 1), 12, 3, 5, new ItemStack(this)).setParents(LibResearch.KEY_ICHORCLOTH_ROD) .setPages(new ResearchPage("0"), ResearchHelper.infusionPage(LibResearch.KEY_FOCUS_XP_DRAIN)); diff --git a/src/main/java/thaumic/tinkerer/common/item/kami/foci/ItemModKamiFocus.java b/src/main/java/thaumic/tinkerer/common/item/kami/foci/ItemModKamiFocus.java index 982467ed..7233c25d 100644 --- a/src/main/java/thaumic/tinkerer/common/item/kami/foci/ItemModKamiFocus.java +++ b/src/main/java/thaumic/tinkerer/common/item/kami/foci/ItemModKamiFocus.java @@ -176,7 +176,7 @@ public abstract class ItemModKamiFocus extends ItemFocusBasic implements ITTinke @Override public FocusUpgradeType[] getPossibleUpgradesByRank(ItemStack itemStack, int i) { - return new FocusUpgradeType[]{FocusUpgradeType.treasure}; + return new FocusUpgradeType[]{FocusUpgradeType.frugal}; } } diff --git a/src/main/java/thaumic/tinkerer/common/item/kami/tool/ItemIchorAxeAdv.java b/src/main/java/thaumic/tinkerer/common/item/kami/tool/ItemIchorAxeAdv.java index b88c82b0..b13f5fb1 100644 --- a/src/main/java/thaumic/tinkerer/common/item/kami/tool/ItemIchorAxeAdv.java +++ b/src/main/java/thaumic/tinkerer/common/item/kami/tool/ItemIchorAxeAdv.java @@ -37,6 +37,7 @@ import thaumcraft.common.lib.utils.Utils; import thaumic.tinkerer.client.core.handler.kami.ToolModeHUDHandler; import thaumic.tinkerer.client.core.helper.IconHelper; import thaumic.tinkerer.common.ThaumicTinkerer; +import thaumic.tinkerer.common.core.handler.ConfigHandler; import thaumic.tinkerer.common.item.kami.ItemKamiResource; import thaumic.tinkerer.common.lib.LibItemNames; import thaumic.tinkerer.common.lib.LibResearch; @@ -149,6 +150,8 @@ public class ItemIchorAxeAdv extends ItemIchorAxe implements IAdvancedTool { @Override public IRegisterableResearch getResearchItem() { + if(!ConfigHandler.enableKami) + return null; return (IRegisterableResearch) new KamiResearchItem(LibResearch.KEY_ICHOR_AXE_GEM, new AspectList().add(Aspect.WATER, 2).add(Aspect.TOOL, 1).add(Aspect.TREE, 1).add(Aspect.CROP, 1), 16, 14, 5, new ItemStack(this)).setParents(LibResearch.KEY_ICHOR_TOOLS) .setPages(new ResearchPage("0"), ResearchHelper.infusionPage(LibResearch.KEY_ICHOR_AXE_GEM)); } diff --git a/src/main/java/thaumic/tinkerer/common/item/kami/tool/ItemIchorPick.java b/src/main/java/thaumic/tinkerer/common/item/kami/tool/ItemIchorPick.java index 3385cd4c..a3281522 100644 --- a/src/main/java/thaumic/tinkerer/common/item/kami/tool/ItemIchorPick.java +++ b/src/main/java/thaumic/tinkerer/common/item/kami/tool/ItemIchorPick.java @@ -88,6 +88,8 @@ public class ItemIchorPick extends ItemPickaxe implements ITTinkererItem { @Override public IRegisterableResearch getResearchItem() { + if(!ConfigHandler.enableKami) + return null; return (IRegisterableResearch) new KamiResearchItem(LibResearch.KEY_ICHOR_TOOLS, new AspectList().add(Aspect.TOOL, 2).add(Aspect.WEAPON, 1).add(Aspect.METAL, 1).add(Aspect.CRAFT, 1), 13, 12, 5, new ItemStack(this)).setWarp(2).setConcealed().setParents(LibResearch.KEY_ICHORIUM).setParentsHidden(LibResearch.KEY_ICHORCLOTH_ROD) .setPages(new ResearchPage("0"), ResearchHelper.arcaneRecipePage(LibResearch.KEY_ICHOR_PICK), ResearchHelper.arcaneRecipePage(LibResearch.KEY_ICHOR_SHOVEL), ResearchHelper.arcaneRecipePage(LibResearch.KEY_ICHOR_AXE), ResearchHelper.arcaneRecipePage(LibResearch.KEY_ICHOR_SWORD)); diff --git a/src/main/java/thaumic/tinkerer/common/item/kami/tool/ItemIchorPickAdv.java b/src/main/java/thaumic/tinkerer/common/item/kami/tool/ItemIchorPickAdv.java index 0cf80896..fca859f6 100644 --- a/src/main/java/thaumic/tinkerer/common/item/kami/tool/ItemIchorPickAdv.java +++ b/src/main/java/thaumic/tinkerer/common/item/kami/tool/ItemIchorPickAdv.java @@ -156,6 +156,8 @@ public class ItemIchorPickAdv extends ItemIchorPick implements IAdvancedTool { @Override public IRegisterableResearch getResearchItem() { + if(!ConfigHandler.enableKami) + return null; return (IRegisterableResearch) new KamiResearchItem(LibResearch.KEY_ICHOR_PICK_GEM, new AspectList().add(Aspect.FIRE, 2).add(Aspect.TOOL, 1).add(Aspect.MINE, 1).add(Aspect.EARTH, 1), 13, 15, 5, new ItemStack(this)).setParents(LibResearch.KEY_ICHOR_TOOLS) .setPages(new ResearchPage("0"), ResearchHelper.infusionPage(LibResearch.KEY_ICHOR_PICK_GEM), new ResearchPage("1")); diff --git a/src/main/java/thaumic/tinkerer/common/item/kami/tool/ItemIchorShovelAdv.java b/src/main/java/thaumic/tinkerer/common/item/kami/tool/ItemIchorShovelAdv.java index ba9a3a00..a582b5df 100644 --- a/src/main/java/thaumic/tinkerer/common/item/kami/tool/ItemIchorShovelAdv.java +++ b/src/main/java/thaumic/tinkerer/common/item/kami/tool/ItemIchorShovelAdv.java @@ -33,6 +33,7 @@ import thaumcraft.common.config.ConfigItems; import thaumic.tinkerer.client.core.handler.kami.ToolModeHUDHandler; import thaumic.tinkerer.client.core.helper.IconHelper; import thaumic.tinkerer.common.ThaumicTinkerer; +import thaumic.tinkerer.common.core.handler.ConfigHandler; import thaumic.tinkerer.common.item.kami.ItemKamiResource; import thaumic.tinkerer.common.lib.LibItemNames; import thaumic.tinkerer.common.lib.LibResearch; @@ -126,6 +127,8 @@ public class ItemIchorShovelAdv extends ItemIchorShovel implements IAdvancedTool @Override public IRegisterableResearch getResearchItem() { + if(!ConfigHandler.enableKami) + return null; return (IRegisterableResearch) new KamiResearchItem(LibResearch.KEY_ICHOR_SHOVEL_GEM, new AspectList().add(Aspect.EARTH, 2).add(Aspect.TOOL, 1).add(Aspect.MINE, 1).add(Aspect.EARTH, 1), 15, 15, 5, new ItemStack(this)).setParents(LibResearch.KEY_ICHOR_TOOLS) .setPages(new ResearchPage("0"), ResearchHelper.infusionPage(LibResearch.KEY_ICHOR_SHOVEL_GEM)); diff --git a/src/main/java/thaumic/tinkerer/common/item/kami/tool/ItemIchorSwordAdv.java b/src/main/java/thaumic/tinkerer/common/item/kami/tool/ItemIchorSwordAdv.java index dcf3ce00..e005bac5 100644 --- a/src/main/java/thaumic/tinkerer/common/item/kami/tool/ItemIchorSwordAdv.java +++ b/src/main/java/thaumic/tinkerer/common/item/kami/tool/ItemIchorSwordAdv.java @@ -33,6 +33,7 @@ import thaumcraft.common.config.ConfigItems; import thaumic.tinkerer.client.core.handler.kami.ToolModeHUDHandler; import thaumic.tinkerer.client.core.helper.IconHelper; import thaumic.tinkerer.common.ThaumicTinkerer; +import thaumic.tinkerer.common.core.handler.ConfigHandler; import thaumic.tinkerer.common.core.handler.kami.SoulHeartHandler; import thaumic.tinkerer.common.item.kami.ItemKamiResource; import thaumic.tinkerer.common.lib.LibItemNames; @@ -124,6 +125,8 @@ public class ItemIchorSwordAdv extends ItemIchorSword implements IAdvancedTool { @Override public IRegisterableResearch getResearchItem() { + if(!ConfigHandler.enableKami) + return null; return (IRegisterableResearch) new KamiResearchItem(LibResearch.KEY_ICHOR_SWORD_GEM, new AspectList().add(Aspect.AIR, 2).add(Aspect.WEAPON, 1).add(Aspect.SOUL, 1).add(Aspect.HUNGER, 1), 16, 12, 5, new ItemStack(this)).setParents(LibResearch.KEY_ICHOR_TOOLS) .setPages(new ResearchPage("0"), ResearchHelper.infusionPage(LibResearch.KEY_ICHOR_SWORD_GEM), new ResearchPage("1")); diff --git a/src/main/java/thaumic/tinkerer/common/network/packet/PacketEnchanterAddEnchant.java b/src/main/java/thaumic/tinkerer/common/network/packet/PacketEnchanterAddEnchant.java index 0d6ec69a..f04406dd 100644 --- a/src/main/java/thaumic/tinkerer/common/network/packet/PacketEnchanterAddEnchant.java +++ b/src/main/java/thaumic/tinkerer/common/network/packet/PacketEnchanterAddEnchant.java @@ -62,8 +62,10 @@ public class PacketEnchanterAddEnchant extends PacketTile impleme if (message.level == -1) { int index = message.tile.enchantments.indexOf(message.enchant); - message.tile.removeLevel(index); - message.tile.removeEnchant(index); + if(index!=-1) { + message.tile.removeLevel(index); + message.tile.removeEnchant(index); + } } else { if (!message.tile.enchantments.contains(message.enchant)) { if (message.player != null && EnchantmentManager.canApply(message.tile.getStackInSlot(0), Enchantment.enchantmentsList[message.enchant], message.tile.enchantments) && EnchantmentManager.canEnchantmentBeUsed(((EntityPlayer) message.player).getGameProfile().getName(), Enchantment.enchantmentsList[message.enchant])) { diff --git a/src/main/java/thaumic/tinkerer/common/peripheral/OpenComputers/DriverEssentiaTransport.java b/src/main/java/thaumic/tinkerer/common/peripheral/OpenComputers/DriverEssentiaTransport.java index b336f129..638bd7dd 100644 --- a/src/main/java/thaumic/tinkerer/common/peripheral/OpenComputers/DriverEssentiaTransport.java +++ b/src/main/java/thaumic/tinkerer/common/peripheral/OpenComputers/DriverEssentiaTransport.java @@ -8,6 +8,7 @@ import li.cil.oc.api.network.ManagedEnvironment; import li.cil.oc.api.prefab.DriverTileEntity; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; +import thaumcraft.api.aspects.Aspect; import thaumcraft.api.aspects.IEssentiaTransport; /** @@ -57,7 +58,10 @@ public class DriverEssentiaTransport extends DriverTileEntity { @Callback(doc = "function(direction:number):string -- returns which essentia in pipe") public Object[] getEssentiaType(final Context context, final Arguments arguments) { - return new Object[]{this.tileEntity.getEssentiaType(ForgeDirection.getOrientation(arguments.checkInteger(0))).getTag()}; + Aspect aspect=this.tileEntity.getEssentiaType(ForgeDirection.getOrientation(arguments.checkInteger(0))); + if(aspect==null) + return new Object[]{}; + return new Object[]{aspect.getTag()}; } @Callback(doc = "function(direction:number):number -- returnd amount of essentia")