summaryrefslogtreecommitdiff
path: root/src/main
diff options
context:
space:
mode:
authorLance5057 <Lance5057@gmail.com>2016-04-15 05:42:59 -0500
committerLance5057 <Lance5057@gmail.com>2016-04-15 05:42:59 -0500
commitf0dbe7a46426355f9eab6eb3933277664baafc57 (patch)
tree3fff3330cdb53028d2db89c8ca2634a8c7ea58ce /src/main
parent03b859cf0b85c9ad5ce10d71164634091b0acb4b (diff)
Added Vis repair modifier, refactored modifiers, fixed optional integration
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/lance5057/tDefense/TDIntegration.java31
-rw-r--r--src/main/java/lance5057/tDefense/TD_Config.java6
-rw-r--r--src/main/java/lance5057/tDefense/TinkersDefense.java5
-rw-r--r--src/main/java/lance5057/tDefense/armor/ArmorCore.java35
-rw-r--r--src/main/java/lance5057/tDefense/armor/events/ArmorModEvents.java18
-rw-r--r--src/main/java/lance5057/tDefense/armor/items/cloth/TinkersHood.java7
-rw-r--r--src/main/java/lance5057/tDefense/armor/items/cloth/TinkersRobe.java3
-rw-r--r--src/main/java/lance5057/tDefense/armor/items/cloth/TinkersShawl.java3
-rw-r--r--src/main/java/lance5057/tDefense/armor/items/cloth/TinkersShoes.java3
-rw-r--r--src/main/java/lance5057/tDefense/armor/items/heavy/TinkersHelm.java6
-rw-r--r--src/main/java/lance5057/tDefense/armor/items/light/TinkersCoif.java8
-rw-r--r--src/main/java/lance5057/tDefense/armor/modifiers/ArmorMods.java44
-rw-r--r--src/main/java/lance5057/tDefense/core/tools/modifiers/ActiveToolMods/BotaniaToolMods.java50
-rw-r--r--src/main/java/lance5057/tDefense/core/tools/modifiers/ActiveToolMods/TDefenseActiveToolMod.java4
-rw-r--r--src/main/java/lance5057/tDefense/core/tools/modifiers/ActiveToolMods/TdefenseToolMods.java56
-rw-r--r--src/main/java/lance5057/tDefense/core/tools/modifiers/Botania/BotaniaMods.java (renamed from src/main/java/lance5057/tDefense/addons/TDAddonBotania.java)47
-rw-r--r--src/main/java/lance5057/tDefense/core/tools/modifiers/Modifiers.java98
-rw-r--r--src/main/java/lance5057/tDefense/core/tools/modifiers/Thaumcraft/ThaumcraftMods.java91
-rw-r--r--src/main/java/lance5057/tDefense/core/tools/modifiers/Thaumcraft/modifierRepairVis.java67
-rw-r--r--src/main/java/lance5057/tDefense/core/tools/modifiers/ToolMods.java132
20 files changed, 489 insertions, 225 deletions
diff --git a/src/main/java/lance5057/tDefense/TDIntegration.java b/src/main/java/lance5057/tDefense/TDIntegration.java
new file mode 100644
index 0000000..efadd04
--- /dev/null
+++ b/src/main/java/lance5057/tDefense/TDIntegration.java
@@ -0,0 +1,31 @@
+package lance5057.tDefense;
+
+import cpw.mods.fml.common.Loader;
+
+public final class TDIntegration
+{
+ public static boolean mineAndBlade = false;
+ public static boolean thaumcraft = false;
+ public static boolean botania = false;
+ public static boolean bloodMagic = false;
+
+ public static void Integrate()
+ {
+ if(Loader.isModLoaded("battlegear2"))
+ {
+ mineAndBlade = true;
+ }
+ if(Loader.isModLoaded("Thaumcraft"))
+ {
+ thaumcraft = true;
+ }
+ if(Loader.isModLoaded("Botania"))
+ {
+ botania = true;
+ }
+ if(Loader.isModLoaded("bloodmagic"))
+ {
+ bloodMagic = true;
+ }
+ }
+}
diff --git a/src/main/java/lance5057/tDefense/TD_Config.java b/src/main/java/lance5057/tDefense/TD_Config.java
index 4421675..36d8321 100644
--- a/src/main/java/lance5057/tDefense/TD_Config.java
+++ b/src/main/java/lance5057/tDefense/TD_Config.java
@@ -37,7 +37,9 @@ public class TD_Config
public boolean ThaumcraftAddon;
public int RevealingModID;
public int VisDiscountModID;
-
+ public int CapsModID;
+ public int SpellbindModID;
+
public TD_Config(FMLPreInitializationEvent e)
{
Configuration config = new Configuration(e.getSuggestedConfigurationFile());
@@ -76,6 +78,8 @@ public class TD_Config
ThaumcraftAddon = config.getBoolean("Enable Thaumcraft Addon", "Thaumcraft Addon", true, "Requires Thaumcraft to use");
RevealingModID = config.getInt("Revealing Modifier ID", "Thaumcraft Addon", 70, 0, Integer.MAX_VALUE, "");
VisDiscountModID = config.getInt("Vis Discount Modifier ID", "Thaumcraft Addon", 71, 0, Integer.MAX_VALUE, "");
+ CapsModID = config.getInt("Cap Repair Modifier ID", "Thaumcraft Addon", 72, 0, Integer.MAX_VALUE, "");
+ SpellbindModID = config.getInt("Spellbinding Modifier ID", "Thaumcraft Addon", 73, 0, Integer.MAX_VALUE, "");
config.save();
}
diff --git a/src/main/java/lance5057/tDefense/TinkersDefense.java b/src/main/java/lance5057/tDefense/TinkersDefense.java
index 43261aa..af99bcf 100644
--- a/src/main/java/lance5057/tDefense/TinkersDefense.java
+++ b/src/main/java/lance5057/tDefense/TinkersDefense.java
@@ -6,7 +6,6 @@ import static net.minecraft.util.EnumChatFormatting.LIGHT_PURPLE;
import java.util.Date;
-import lance5057.tDefense.addons.TDAddonBotania;
import lance5057.tDefense.armor.blocks.GlowstoneCrumbs;
import lance5057.tDefense.armor.blocks.UnstableBlock;
import lance5057.tDefense.armor.blocks.UnstableItemBlock;
@@ -46,6 +45,7 @@ import lance5057.tDefense.core.tools.Shears;
import lance5057.tDefense.core.tools.TinkerWrench;
import lance5057.tDefense.core.tools.TinkerZweihander;
import lance5057.tDefense.core.tools.modifiers.Modifiers;
+import lance5057.tDefense.core.tools.modifiers.Botania.BotaniaMods;
import lance5057.tDefense.finishingAnvil.blocks.finishingAnvil.FinishingAnvil;
import lance5057.tDefense.finishingAnvil.blocks.finishingAnvil.TileEntity_FinishingAnvil;
import lance5057.tDefense.finishingAnvil.utilities.Injector;
@@ -206,7 +206,7 @@ public class TinkersDefense
public static ToolCore tcInject;
- public static TDAddonBotania flowermod;
+ public static BotaniaMods flowermod;
@SidedProxy(clientSide = "lance5057.tDefense.proxy.ClientProxy", serverSide = "lance5057.tDefense.proxy.CommonProxy")
public static CommonProxy proxy;
@@ -216,6 +216,7 @@ public class TinkersDefense
public void preInit(FMLPreInitializationEvent e)
{
month = this.date.getMonth();
+ TDIntegration.Integrate();
PacketHandler.init();
diff --git a/src/main/java/lance5057/tDefense/armor/ArmorCore.java b/src/main/java/lance5057/tDefense/armor/ArmorCore.java
index b68210c..f92fffe 100644
--- a/src/main/java/lance5057/tDefense/armor/ArmorCore.java
+++ b/src/main/java/lance5057/tDefense/armor/ArmorCore.java
@@ -1,5 +1,6 @@
package lance5057.tDefense.armor;
+import lance5057.tDefense.TDIntegration;
import lance5057.tDefense.TinkersDefense;
import net.minecraft.client.model.ModelBiped;
import net.minecraft.entity.Entity;
@@ -14,18 +15,20 @@ import net.minecraftforge.common.ISpecialArmor;
import tconstruct.library.tools.AbilityHelper;
import tconstruct.library.tools.ToolCore;
import thaumcraft.api.IRunicArmor;
+import cpw.mods.fml.common.Optional;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
+@Optional.InterfaceList({@Optional.Interface(modid = "Thaumcraft", iface = "thaumcraft.api.IRunicArmor", striprefs = true)})
public class ArmorCore extends ToolCore implements ISpecialArmor, IRunicArmor
{
int slot;
public float reductionPercent = 0f;
protected int maxReduction = 100;
-
+
//Thaumcraft
- boolean Charge = false;
-
+ boolean Charge = false;
+
public ArmorCore(int baseProtection, int slot)
{
super(baseProtection);
@@ -134,25 +137,27 @@ public class ArmorCore extends ToolCore implements ISpecialArmor, IRunicArmor
{
return 0;
}
-
+
@Override
public void onUpdate(ItemStack stack, World world, Entity ent, int p_77663_4_, boolean p_77663_5_)
{
//Check if runic shielding level has changed
-
- NBTTagCompound tcTag = stack.getTagCompound();
- NBTTagCompound ticoTag = stack.getTagCompound().getCompoundTag("InfiTool");
-
- byte rs = tcTag.getByte("RS.HARDEN");
- if(!Charge && rs > 0)
+ if(TDIntegration.thaumcraft)
{
- if(ticoTag.getInteger("Modifiers") > 0)
+ NBTTagCompound tcTag = stack.getTagCompound();
+ NBTTagCompound ticoTag = stack.getTagCompound().getCompoundTag("InfiTool");
+
+ byte rs = tcTag.getByte("RS.HARDEN");
+ if(!Charge && rs > 0)
{
- ticoTag.setInteger("Modifiers", ticoTag.getInteger("Modifiers") - 1);
- Charge = true;
+ if(ticoTag.getInteger("Modifiers") > 0)
+ {
+ ticoTag.setInteger("Modifiers", ticoTag.getInteger("Modifiers") - 1);
+ Charge = true;
+ }
+ else
+ tcTag.setByte("RS.HARDEN", (byte) 0);
}
- else
- tcTag.setByte("RS.HARDEN", (byte) 0);
}
}
diff --git a/src/main/java/lance5057/tDefense/armor/events/ArmorModEvents.java b/src/main/java/lance5057/tDefense/armor/events/ArmorModEvents.java
index 2db5a65..5c76a5a 100644
--- a/src/main/java/lance5057/tDefense/armor/events/ArmorModEvents.java
+++ b/src/main/java/lance5057/tDefense/armor/events/ArmorModEvents.java
@@ -13,6 +13,7 @@ import net.minecraftforge.event.entity.living.LivingHurtEvent;
import tconstruct.library.tools.ToolCore;
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
import cpw.mods.fml.common.gameevent.TickEvent;
+import cpw.mods.fml.common.registry.EntityRegistry;
public class ArmorModEvents
{
@@ -61,23 +62,6 @@ public class ArmorModEvents
}
}
- // @SubscribeEvent
- // public void playerTick(TickEvent.PlayerTickEvent event)
- // {
- // for(int i = 0; i < 4; i++)
- // {
- // EntityPlayer entity = event.player;
- // World world = entity.worldObj;
- // ItemStack stack = entity.getCurrentArmor(i);
- //
- // if(stack.getItem() instanceof ToolCore)
- // {
- // ToolCore tool = (ToolCore) stack.getItem();
- // NBTTagCompound tags = stack.getTagCompound().getCompoundTag("InfiTool");
- // }
- // }
- // }
-
public int calcModifierDamage(int level, float typeMod, DamageSource source)
{
if(source.canHarmInCreative())
diff --git a/src/main/java/lance5057/tDefense/armor/items/cloth/TinkersHood.java b/src/main/java/lance5057/tDefense/armor/items/cloth/TinkersHood.java
index f723793..61e5224 100644
--- a/src/main/java/lance5057/tDefense/armor/items/cloth/TinkersHood.java
+++ b/src/main/java/lance5057/tDefense/armor/items/cloth/TinkersHood.java
@@ -17,9 +17,13 @@ import thaumcraft.api.IGoggles;
import thaumcraft.api.IVisDiscountGear;
import thaumcraft.api.aspects.Aspect;
import thaumcraft.api.nodes.IRevealer;
+import cpw.mods.fml.common.Optional;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
+@Optional.InterfaceList({@Optional.Interface(modid = "Thaumcraft", iface = "thaumcraft.api.IGoggles", striprefs = true),
+ @Optional.Interface(modid = "Thaumcraft", iface = "thaumcraft.api.nodes.IRevealer", striprefs = true),
+ @Optional.Interface(modid = "Thaumcraft", iface = "thaumcraft.api.IVisDiscountGear", striprefs = true)})
public class TinkersHood extends ArmorCore implements IRevealer, IGoggles, IVisDiscountGear
{
public TinkersHood()
@@ -155,18 +159,21 @@ public class TinkersHood extends ArmorCore implements IRevealer, IGoggles, IVisD
}
@Override
+ @Optional.Method(modid = "Thaumcraft")
public boolean showIngamePopups(ItemStack itemstack, EntityLivingBase player)
{
return itemstack.getTagCompound().getCompoundTag("InfiTool").getBoolean("Revealing");
}
@Override
+ @Optional.Method(modid = "Thaumcraft")
public boolean showNodes(ItemStack itemstack, EntityLivingBase player)
{
return itemstack.getTagCompound().getCompoundTag("InfiTool").getBoolean("Revealing");
}
@Override
+ @Optional.Method(modid = "Thaumcraft")
public int getVisDiscount(ItemStack stack, EntityPlayer player, Aspect aspect)
{
return stack.getTagCompound().getCompoundTag("InfiTool").getInteger("Vis Embroidery");
diff --git a/src/main/java/lance5057/tDefense/armor/items/cloth/TinkersRobe.java b/src/main/java/lance5057/tDefense/armor/items/cloth/TinkersRobe.java
index beaae18..741c554 100644
--- a/src/main/java/lance5057/tDefense/armor/items/cloth/TinkersRobe.java
+++ b/src/main/java/lance5057/tDefense/armor/items/cloth/TinkersRobe.java
@@ -1,5 +1,6 @@
package lance5057.tDefense.armor.items.cloth;
+import cpw.mods.fml.common.Optional;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import tconstruct.library.TConstructRegistry;
@@ -19,6 +20,7 @@ import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
+@Optional.InterfaceList({@Optional.Interface(modid = "Thaumcraft", iface = "thaumcraft.api.IVisDiscountGear", striprefs = true)})
public class TinkersRobe extends ArmorCore implements IVisDiscountGear
{
public TinkersRobe()
@@ -146,6 +148,7 @@ public class TinkersRobe extends ArmorCore implements IVisDiscountGear
}
@Override
+ @Optional.Method(modid = "Thaumcraft")
public int getVisDiscount(ItemStack stack, EntityPlayer player, Aspect aspect)
{
return stack.getTagCompound().getCompoundTag("InfiTool").getInteger("Vis Embroidery");
diff --git a/src/main/java/lance5057/tDefense/armor/items/cloth/TinkersShawl.java b/src/main/java/lance5057/tDefense/armor/items/cloth/TinkersShawl.java
index 64eebae..c483537 100644
--- a/src/main/java/lance5057/tDefense/armor/items/cloth/TinkersShawl.java
+++ b/src/main/java/lance5057/tDefense/armor/items/cloth/TinkersShawl.java
@@ -1,5 +1,6 @@
package lance5057.tDefense.armor.items.cloth;
+import cpw.mods.fml.common.Optional;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import lance5057.tDefense.TinkersDefense;
@@ -21,6 +22,7 @@ import tconstruct.tools.TinkerTools;
import thaumcraft.api.IVisDiscountGear;
import thaumcraft.api.aspects.Aspect;
+@Optional.InterfaceList({@Optional.Interface(modid = "Thaumcraft", iface = "thaumcraft.api.IVisDiscountGear", striprefs = true)})
public class TinkersShawl extends ArmorCore implements IVisDiscountGear
{
public TinkersShawl()
@@ -156,6 +158,7 @@ public class TinkersShawl extends ArmorCore implements IVisDiscountGear
}
@Override
+ @Optional.Method(modid = "Thaumcraft")
public int getVisDiscount(ItemStack stack, EntityPlayer player, Aspect aspect)
{
int test = stack.getTagCompound().getCompoundTag("InfiTool").getInteger("VisEmbroidery");
diff --git a/src/main/java/lance5057/tDefense/armor/items/cloth/TinkersShoes.java b/src/main/java/lance5057/tDefense/armor/items/cloth/TinkersShoes.java
index 2289c4e..3c2feb0 100644
--- a/src/main/java/lance5057/tDefense/armor/items/cloth/TinkersShoes.java
+++ b/src/main/java/lance5057/tDefense/armor/items/cloth/TinkersShoes.java
@@ -1,5 +1,6 @@
package lance5057.tDefense.armor.items.cloth;
+import cpw.mods.fml.common.Optional;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import lance5057.tDefense.TinkersDefense;
@@ -19,6 +20,7 @@ import tconstruct.library.tools.CustomMaterial;
import thaumcraft.api.IVisDiscountGear;
import thaumcraft.api.aspects.Aspect;
+@Optional.InterfaceList({@Optional.Interface(modid = "Thaumcraft", iface = "thaumcraft.api.IVisDiscountGear", striprefs = true)})
public class TinkersShoes extends ArmorCore implements IVisDiscountGear
{
public TinkersShoes()
@@ -150,6 +152,7 @@ public class TinkersShoes extends ArmorCore implements IVisDiscountGear
}
@Override
+ @Optional.Method(modid = "Thaumcraft")
public int getVisDiscount(ItemStack stack, EntityPlayer player, Aspect aspect)
{
return stack.getTagCompound().getCompoundTag("InfiTool").getInteger("Vis Embroidery");
diff --git a/src/main/java/lance5057/tDefense/armor/items/heavy/TinkersHelm.java b/src/main/java/lance5057/tDefense/armor/items/heavy/TinkersHelm.java
index e06009a..aa1998f 100644
--- a/src/main/java/lance5057/tDefense/armor/items/heavy/TinkersHelm.java
+++ b/src/main/java/lance5057/tDefense/armor/items/heavy/TinkersHelm.java
@@ -11,9 +11,11 @@ import net.minecraft.item.ItemStack;
import tconstruct.tools.TinkerTools;
import thaumcraft.api.IGoggles;
import thaumcraft.api.nodes.IRevealer;
+import cpw.mods.fml.common.Optional;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
+@Optional.InterfaceList({@Optional.Interface(modid = "Thaumcraft", iface = "thaumcraft.api.IGoggles", striprefs = true), @Optional.Interface(modid = "Thaumcraft", iface = "thaumcraft.api.nodes.IRevealer", striprefs = true)})
public class TinkersHelm extends ArmorCore implements IRevealer, IGoggles
{
public TinkersHelm()
@@ -134,14 +136,16 @@ public class TinkersHelm extends ArmorCore implements IRevealer, IGoggles
ClientProxy.helm.SetColors(color, this.getDefaultFolder(), textures);
return ClientProxy.helm;
}
-
+
@Override
+ @Optional.Method(modid = "Thaumcraft")
public boolean showIngamePopups(ItemStack itemstack, EntityLivingBase player)
{
return itemstack.getTagCompound().getCompoundTag("InfiTool").getBoolean("Revealing");
}
@Override
+ @Optional.Method(modid = "Thaumcraft")
public boolean showNodes(ItemStack itemstack, EntityLivingBase player)
{
return itemstack.getTagCompound().getCompoundTag("InfiTool").getBoolean("Revealing");
diff --git a/src/main/java/lance5057/tDefense/armor/items/light/TinkersCoif.java b/src/main/java/lance5057/tDefense/armor/items/light/TinkersCoif.java
index d83c9d3..2547a56 100644
--- a/src/main/java/lance5057/tDefense/armor/items/light/TinkersCoif.java
+++ b/src/main/java/lance5057/tDefense/armor/items/light/TinkersCoif.java
@@ -16,9 +16,11 @@ import tconstruct.library.tools.CustomMaterial;
import tconstruct.tools.TinkerTools;
import thaumcraft.api.IGoggles;
import thaumcraft.api.nodes.IRevealer;
+import cpw.mods.fml.common.Optional;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
+@Optional.InterfaceList({@Optional.Interface(modid = "Thaumcraft", iface = "thaumcraft.api.IGoggles", striprefs = true), @Optional.Interface(modid = "Thaumcraft", iface = "thaumcraft.api.nodes.IRevealer", striprefs = true)})
public class TinkersCoif extends ArmorCore implements IRevealer, IGoggles
{
public TinkersCoif()
@@ -134,7 +136,7 @@ public class TinkersCoif extends ArmorCore implements IRevealer, IGoggles
for(int j = 0; j < 10; j++)
color[j] = Integer.toHexString(itemStack.getItem().getColorFromItemStack(itemStack, j));
-
+
int AccessoryID = itemStack.getTagCompound().getCompoundTag("InfiTool").getInteger("RenderHandle");
CustomMaterial newColor = TConstructRegistry.getCustomMaterial(AccessoryID, ClothMaterial.class);
@@ -158,14 +160,16 @@ public class TinkersCoif extends ArmorCore implements IRevealer, IGoggles
//((EntityPlayer)player).addChatComponentMessage(new ChatComponentText(Double.toString(damage)));
return armorp;
}
-
+
@Override
+ @Optional.Method(modid = "Thaumcraft")
public boolean showIngamePopups(ItemStack itemstack, EntityLivingBase player)
{
return itemstack.getTagCompound().getCompoundTag("InfiTool").getBoolean("Revealing");
}
@Override
+ @Optional.Method(modid = "Thaumcraft")
public boolean showNodes(ItemStack itemstack, EntityLivingBase player)
{
return itemstack.getTagCompound().getCompoundTag("InfiTool").getBoolean("Revealing");
diff --git a/src/main/java/lance5057/tDefense/armor/modifiers/ArmorMods.java b/src/main/java/lance5057/tDefense/armor/modifiers/ArmorMods.java
index 183d746..4b5d006 100644
--- a/src/main/java/lance5057/tDefense/armor/modifiers/ArmorMods.java
+++ b/src/main/java/lance5057/tDefense/armor/modifiers/ArmorMods.java
@@ -1,6 +1,7 @@
package lance5057.tDefense.armor.modifiers;
import lance5057.tDefense.Reference;
+import lance5057.tDefense.TDIntegration;
import lance5057.tDefense.TinkersDefense;
import lance5057.tDefense.armor.modifiers.Thaumcraft.ThaumArmorMods;
import net.minecraft.block.Block;
@@ -25,21 +26,21 @@ public class ArmorMods
{
ThaumArmorMods tcmods;
+ Item item_Canister;
+ Item item_Emptycanister;
+ Item item_Rebreather;
+
+ Item item_Glowsole;
+ Item item_Firesole;
+ Item item_Icesole;
+ Item item_Feathersole;
+ Item item_Flippers;
+
public ArmorMods()
{
- tcmods = new ThaumArmorMods();
+ LoadItems();
}
- Item item_Canister;
- Item item_Emptycanister;
- Item item_Rebreather;
-
- Item item_Glowsole;
- Item item_Firesole;
- Item item_Icesole;
- Item item_Feathersole;
- Item item_Flippers;
-
public void LoadItems()
{
item_Canister = new Item().setCreativeTab(TinkersDefense.tabName).setMaxStackSize(10).setUnlocalizedName("FilledCart").setTextureName(Reference.MOD_ID + ":FilledCart");
@@ -62,7 +63,11 @@ public class ArmorMods
GameRegistry.registerItem(item_Glowsole, "GlowSole");
GameRegistry.registerItem(item_Flippers, "Flippers");
- tcmods.LoadItems();
+ if(TDIntegration.thaumcraft)
+ {
+ tcmods = new ThaumArmorMods();
+ tcmods.LoadItems();
+ }
}
@@ -79,7 +84,10 @@ public class ArmorMods
GameRegistry.addShapedRecipe(new ItemStack(item_Icesole), new Object[] {"ili", "lcl", "ili", 'l', new ItemStack(Blocks.lapis_block, 1, 0), 'i', new ItemStack(Blocks.ice, 1, 0), 'c', TConstructRegistry.getItemStack("ingotCobalt")});
GameRegistry.addShapedRecipe(new ItemStack(item_Flippers), new Object[] {"-b-", "rlr", "-s-", 'b', new ItemStack(Items.leather_boots, 1, 0), 'l', new ItemStack(Items.leather, 1, 0), 'r', new ItemStack(TinkerTools.toolRod, 1, 2), 's', new ItemStack(Items.slime_ball, 1, 0)});
- tcmods.RegisterRecipes();
+ if(TDIntegration.thaumcraft)
+ {
+ tcmods.RegisterRecipes();
+ }
}
public void RegisterModifiers()
@@ -117,7 +125,10 @@ public class ArmorMods
}
- tcmods.RegisterModifiers();
+ if(TDIntegration.thaumcraft)
+ {
+ tcmods.RegisterModifiers();
+ }
}
public void UpdateAll(ToolCore tool, ItemStack stack, World world, Entity entity, NBTTagCompound tags)
@@ -139,7 +150,10 @@ public class ArmorMods
UpdateFlippers(tool, stack, world, entity);
}
- tcmods.UpdateAll(tool, stack, world, entity, tags);
+ if(TDIntegration.thaumcraft)
+ {
+ tcmods.UpdateAll(tool, stack, world, entity, tags);
+ }
}
public void UpdateWalker(ToolCore tool, ItemStack stack, World world, Entity entity, Material mat, Block replacement, int meta)
diff --git a/src/main/java/lance5057/tDefense/core/tools/modifiers/ActiveToolMods/BotaniaToolMods.java b/src/main/java/lance5057/tDefense/core/tools/modifiers/ActiveToolMods/BotaniaToolMods.java
deleted file mode 100644
index 2f5df97..0000000
--- a/src/main/java/lance5057/tDefense/core/tools/modifiers/ActiveToolMods/BotaniaToolMods.java
+++ /dev/null
@@ -1,50 +0,0 @@
-package lance5057.tDefense.core.tools.modifiers.ActiveToolMods;
-
-import net.minecraft.entity.Entity;
-import net.minecraft.entity.player.EntityPlayer;
-import net.minecraft.item.ItemStack;
-import net.minecraft.nbt.NBTTagCompound;
-import net.minecraft.potion.Potion;
-import net.minecraft.potion.PotionEffect;
-import net.minecraft.world.World;
-import tconstruct.library.TConstructRegistry;
-import tconstruct.library.tools.ToolCore;
-//import vazkii.botania.common.entity.EntityManaBurst;
-//import vazkii.botania.common.item.ModItems;
-//import vazkii.botania.common.item.equipment.tool.ToolCommons;
-//import vazkii.botania.common.item.equipment.tool.terrasteel.ItemTerraSword;
-import cpw.mods.fml.common.Optional;
-
-@Optional.InterfaceList({@Optional.Interface(modid = "botania", iface = "vazkii.botania.common.entity.EntityManaBurst"), @Optional.Interface(modid = "botania", iface = "vazkii.botania.common.item.ModItems"), @Optional.Interface(modid = "botania", iface = "vazkii.botania.common.item.equipment.tool.ToolCommons"), @Optional.Interface(modid = "botania", iface = "vazkii.botania.common.item.equipment.tool.terrasteel.ItemTerraSword"),})
-public class BotaniaToolMods
-{
- public void UpdateAll(ToolCore tool, ItemStack stack, World world, Entity entity, NBTTagCompound tags)
- {
- UpdateTerraCore(tool, stack, world, entity, tags);
- }
-
- public void UpdateTerraCore(ToolCore tool, ItemStack stack, World world, Entity entity, NBTTagCompound tags)
- {
- if(entity instanceof EntityPlayer)
- {
- // EntityPlayer player = (EntityPlayer) entity;
- // PotionEffect haste = player.getActivePotionEffect(Potion.digSpeed);
- // float check = haste == null ? 0.16666667F : haste.getAmplifier() == 1 ? 0.5F : 0.4F;
-
- // if(player.getCurrentEquippedItem() == stack && player.swingProgress == check && !world.isRemote && world.rand.nextInt(2) == 0)
- // {
- // int color = TConstructRegistry.getMaterial(tags.getInteger("Head")).primaryColor();
- // EntityManaBurst burst = ((ItemTerraSword)ModItems.terraSword).getBurst(player, new ItemStack(ModItems.terraSword));
- // burst.setColor(color);
- // world.spawnEntityInWorld(burst);
- // ToolCommonSoundAtEntity(player, "botania:terraBlade", 0.4F, 1.4F);
- // }
- }
- }
-
- private void ToolCommonSoundAtEntity(EntityPlayer player, String string, float f, float g)
- {
- // TODO Auto-generated method stub
-
- }
-}
diff --git a/src/main/java/lance5057/tDefense/core/tools/modifiers/ActiveToolMods/TDefenseActiveToolMod.java b/src/main/java/lance5057/tDefense/core/tools/modifiers/ActiveToolMods/TDefenseActiveToolMod.java
index dfc69d1..ece08f3 100644
--- a/src/main/java/lance5057/tDefense/core/tools/modifiers/ActiveToolMods/TDefenseActiveToolMod.java
+++ b/src/main/java/lance5057/tDefense/core/tools/modifiers/ActiveToolMods/TDefenseActiveToolMod.java
@@ -2,6 +2,8 @@ package lance5057.tDefense.core.tools.modifiers.ActiveToolMods;
import java.util.Random;
+import lance5057.tDefense.core.tools.modifiers.Modifiers;
+import lance5057.tDefense.core.tools.modifiers.ToolMods;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.item.ItemStack;
@@ -13,7 +15,7 @@ import tconstruct.library.tools.ToolCore;
public class TDefenseActiveToolMod extends ActiveToolMod
{
- TdefenseToolMods TDMods = new TdefenseToolMods();
+ Modifiers TDMods = new Modifiers();
// BotaniaToolMods FlowerMods = new BotaniaToolMods();
diff --git a/src/main/java/lance5057/tDefense/core/tools/modifiers/ActiveToolMods/TdefenseToolMods.java b/src/main/java/lance5057/tDefense/core/tools/modifiers/ActiveToolMods/TdefenseToolMods.java
deleted file mode 100644
index fe89517..0000000
--- a/src/main/java/lance5057/tDefense/core/tools/modifiers/ActiveToolMods/TdefenseToolMods.java
+++ /dev/null
@@ -1,56 +0,0 @@
-package lance5057.tDefense.core.tools.modifiers.ActiveToolMods;
-
-import java.util.ArrayList;
-
-import mods.battlegear2.api.core.IBattlePlayer;
-import net.minecraft.entity.Entity;
-import net.minecraft.entity.EntityLivingBase;
-import net.minecraft.entity.projectile.EntityFireball;
-import net.minecraft.item.ItemStack;
-import net.minecraft.nbt.NBTTagCompound;
-import net.minecraft.util.AxisAlignedBB;
-import net.minecraft.util.Vec3;
-import net.minecraft.world.World;
-import tconstruct.library.tools.ToolCore;
-
-public class TdefenseToolMods
-{
- public void UpdateAll(ToolCore tool, ItemStack stack, World world, Entity entity, NBTTagCompound tags)
- {
- if(tags.hasKey("Crest of Mirrors"))
- UpdateMirrors(tool, stack, world, entity);
- }
-
- public void UpdateMirrors(ToolCore tool, ItemStack stack, World world, Entity entity)
- {
- if(((IBattlePlayer) entity).isBlockingWithShield())
- {
- AxisAlignedBB boundingBox = AxisAlignedBB.getBoundingBox(((EntityLivingBase) entity).posX - 3, ((EntityLivingBase) entity).posY - 3, ((EntityLivingBase) entity).posZ - 3, ((EntityLivingBase) entity).posX + 3, ((EntityLivingBase) entity).posY + 3, ((EntityLivingBase) entity).posZ + 3);
-
- ArrayList<EntityFireball> fireballs = (ArrayList<EntityFireball>) world.getEntitiesWithinAABB(EntityFireball.class, boundingBox);
- for(EntityFireball fireball : fireballs)
- {
- if(fireball.getDistanceSqToEntity(((EntityLivingBase) entity)) <= 25)
- {
- Vec3 playerlook = ((EntityLivingBase) entity).getLookVec();
-
- fireball.motionX = playerlook.xCoord;
- fireball.motionY = playerlook.yCoord;
- fireball.motionZ = playerlook.zCoord;
- fireball.accelerationX = fireball.motionX * 0.1D;
- fireball.accelerationY = fireball.motionY * 0.1D;
- fireball.accelerationZ = fireball.motionZ * 0.1D;
-
- fireball.shootingEntity = ((EntityLivingBase) entity);
-
- ((EntityLivingBase) entity).worldObj.playSoundAtEntity(((EntityLivingBase) entity), "battlegear2:shield", 1, 1);
- }
- }
- }
- }
-
- public void UpdateTorchArrow(ToolCore tool, ItemStack stack, World world, Entity entity)
- {
- //entity.worldObj.ent
- }
-}
diff --git a/src/main/java/lance5057/tDefense/addons/TDAddonBotania.java b/src/main/java/lance5057/tDefense/core/tools/modifiers/Botania/BotaniaMods.java
index 3911fe9..cf19f23 100644
--- a/src/main/java/lance5057/tDefense/addons/TDAddonBotania.java
+++ b/src/main/java/lance5057/tDefense/core/tools/modifiers/Botania/BotaniaMods.java
@@ -1,12 +1,16 @@
-package lance5057.tDefense.addons;
+package lance5057.tDefense.core.tools.modifiers.Botania;
import lance5057.tDefense.TinkersDefense;
-import lance5057.tDefense.core.tools.modifiers.Botania.modifierCorpseIvy;
+import net.minecraft.entity.Entity;
+import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.item.crafting.CraftingManager;
+import net.minecraft.nbt.NBTTagCompound;
+import net.minecraft.world.World;
import net.minecraftforge.oredict.ShapedOreRecipe;
import tconstruct.library.crafting.ModifyBuilder;
+import tconstruct.library.tools.ToolCore;
import tconstruct.tools.TinkerTools;
import vazkii.botania.api.BotaniaAPI;
import vazkii.botania.common.item.ModItems;
@@ -14,25 +18,18 @@ import vazkii.botania.common.item.block.ItemBlockSpecialFlower;
import vazkii.botania.common.lib.LibBlockNames;
import vazkii.botania.common.lib.LibOreDict;
import cpw.mods.fml.common.Loader;
+import cpw.mods.fml.common.Optional;
import cpw.mods.fml.common.registry.GameRegistry;
-public class TDAddonBotania
+@Optional.InterfaceList({@Optional.Interface(modid = "botania", iface = "vazkii.botania.common.entity.EntityManaBurst"), @Optional.Interface(modid = "botania", iface = "vazkii.botania.common.item.ModItems"), @Optional.Interface(modid = "botania", iface = "vazkii.botania.common.item.equipment.tool.ToolCommons"), @Optional.Interface(modid = "botania", iface = "vazkii.botania.common.item.equipment.tool.terrasteel.ItemTerraSword"),})
+public class BotaniaMods
{
- boolean active;
-
Item corpseIvyGraft;
Item corpseIvy;
- public TDAddonBotania()
+ public BotaniaMods()
{
- active = false;
-
- if(Loader.isModLoaded("Botania"))
- {
- active = true;
-
LoadItems();
- }
}
public void LoadItems()
@@ -56,4 +53,28 @@ public class TDAddonBotania
{
ModifyBuilder.registerModifier(new modifierCorpseIvy("Corpse Ivy", TinkersDefense.config.CorpseIvyModID, new ItemStack[] {new ItemStack(corpseIvy)}, new int[] {1}));
}
+
+ public void UpdateAll(ToolCore tool, ItemStack stack, World world, Entity entity, NBTTagCompound tags)
+ {
+ UpdateTerraCore(tool, stack, world, entity, tags);
+ }
+
+ public void UpdateTerraCore(ToolCore tool, ItemStack stack, World world, Entity entity, NBTTagCompound tags)
+ {
+ if(entity instanceof EntityPlayer)
+ {
+ // EntityPlayer player = (EntityPlayer) entity;
+ // PotionEffect haste = player.getActivePotionEffect(Potion.digSpeed);
+ // float check = haste == null ? 0.16666667F : haste.getAmplifier() == 1 ? 0.5F : 0.4F;
+
+ // if(player.getCurrentEquippedItem() == stack && player.swingProgress == check && !world.isRemote && world.rand.nextInt(2) == 0)
+ // {
+ // int color = TConstructRegistry.getMaterial(tags.getInteger("Head")).primaryColor();
+ // EntityManaBurst burst = ((ItemTerraSword)ModItems.terraSword).getBurst(player, new ItemStack(ModItems.terraSword));
+ // burst.setColor(color);
+ // world.spawnEntityInWorld(burst);
+ // ToolCommonSoundAtEntity(player, "botania:terraBlade", 0.4F, 1.4F);
+ // }
+ }
+ }
}
diff --git a/src/main/java/lance5057/tDefense/core/tools/modifiers/Modifiers.java b/src/main/java/lance5057/tDefense/core/tools/modifiers/Modifiers.java
index 10ac1d0..fe3d4ca 100644
--- a/src/main/java/lance5057/tDefense/core/tools/modifiers/Modifiers.java
+++ b/src/main/java/lance5057/tDefense/core/tools/modifiers/Modifiers.java
@@ -1,73 +1,67 @@
package lance5057.tDefense.core.tools.modifiers;
-import lance5057.tDefense.Reference;
-import lance5057.tDefense.TinkersDefense;
-import lance5057.tDefense.armor.modifiers.ArmorMods;
-import lance5057.tDefense.core.tools.modifiers.ActiveToolMods.TDefenseActiveToolMod;
-import lance5057.tDefense.core.tools.modifiers.TDefense.modifierSoulBound;
-import lance5057.tDefense.core.tools.modifiers.TDefense.shields.modifierCrestofBlades;
-import lance5057.tDefense.core.tools.modifiers.TDefense.shields.modifierCrestofFeathers;
-import lance5057.tDefense.core.tools.modifiers.TDefense.shields.modifierCrestofLegends;
-import lance5057.tDefense.core.tools.modifiers.TDefense.shields.modifierCrestofMirrors;
-import lance5057.tDefense.core.tools.modifiers.TDefense.weapons.modifierDaze;
-import net.minecraft.init.Blocks;
-import net.minecraft.init.Items;
-import net.minecraft.item.Item;
+import net.minecraft.entity.Entity;
import net.minecraft.item.ItemStack;
-import tconstruct.library.TConstructRegistry;
-import tconstruct.library.client.TConstructClientRegistry;
-import tconstruct.library.crafting.ModifyBuilder;
+import net.minecraft.nbt.NBTTagCompound;
+import net.minecraft.world.World;
import tconstruct.library.tools.ToolCore;
-import tconstruct.modifiers.tools.ModBoolean;
-import cpw.mods.fml.common.registry.GameRegistry;
+import lance5057.tDefense.TDIntegration;
+import lance5057.tDefense.armor.modifiers.ArmorMods;
+import lance5057.tDefense.core.tools.modifiers.Botania.BotaniaMods;
+import lance5057.tDefense.core.tools.modifiers.Thaumcraft.ThaumcraftMods;
public class Modifiers
{
- public static Item item_relic;
- public static Item itemSoulChain;
- public static ArmorMods AMod = new ArmorMods();
+ public static ToolMods TMod;
+ public static ArmorMods AMod;
+ public static BotaniaMods BotMod;
+ public static ThaumcraftMods ThaumMod;
public void preInit()
{
- AMod.LoadItems();
+ TMod = new ToolMods();
+ AMod = new ArmorMods();
- item_relic = new Item().setCreativeTab(TinkersDefense.tabName).setMaxStackSize(1).setUnlocalizedName("AncientRelic").setTextureName(Reference.MOD_ID + ":AncientRelic");
-
- itemSoulChain = new Item().setCreativeTab(TinkersDefense.tabName).setMaxStackSize(1).setUnlocalizedName("SoulChain").setTextureName(Reference.MOD_ID + ":SoulChain");
-
- GameRegistry.registerItem(item_relic, "Ancient Relic");
- GameRegistry.registerItem(itemSoulChain, "Soul Chain");
+ if(TDIntegration.botania)
+ {
+ BotMod = new BotaniaMods();
+ }
+
+ if(TDIntegration.thaumcraft)
+ {
+ ThaumMod = new ThaumcraftMods();
+ }
}
-
+
public void Init()
{
+ TMod.RegisterRecipes();
+ TMod.RegisterModifiers();
+
AMod.RegisterRecipes();
AMod.RegisterModifiers();
- ModifyBuilder.registerModifier(new modifierDaze("Daze", TinkersDefense.config.DazeID, new ItemStack[] {new ItemStack(Blocks.light_weighted_pressure_plate), new ItemStack(Items.potionitem, 1, 8202)}, new int[] {1, 0}));
-
- //ModifyBuilder.registerModifier(new modifierTorchArrow(new ItemStack[] {new ItemStack(Blocks.glowstone)}, 12));
-
- ModifyBuilder.registerModifier(new modifierCrestofFeathers("Crest of Feathers", TinkersDefense.config.CrestFeathersID, new ItemStack[] {new ItemStack(Items.feather)}, new int[] {1}));
-
- ModifyBuilder.registerModifier(new modifierCrestofMirrors("Crest of Mirrors", TinkersDefense.config.CrestMirrorsID, new ItemStack[] {new ItemStack(Blocks.glass_pane)}, new int[] {1}));
-
- ModifyBuilder.registerModifier(new modifierCrestofLegends("Crest of Legends", TinkersDefense.config.CrestLegendsID, new ItemStack[] {new ItemStack(item_relic)}, new int[] {1}));
-
- ModifyBuilder.registerModifier(new modifierCrestofBlades("Crest of Blades", TinkersDefense.config.CrestBladesID, new ItemStack[] {new ItemStack(Items.iron_sword)}, new int[] {1}));
-
- ModifyBuilder.registerModifier(new modifierSoulBound(new ItemStack[] {new ItemStack(itemSoulChain)}, TinkersDefense.config.SoulBoundID, "Soulbound", "\u00A7b", "Soulbound"));
-
- TConstructRegistry.registerActiveToolMod(new TDefenseActiveToolMod());
-
- for(ToolCore tool : TConstructRegistry.getToolMapping())
+ if(BotMod != null)
{
- TConstructClientRegistry.addEffectRenderMapping(tool, TinkersDefense.config.DazeID, "tinker", "daze", true);
- TConstructClientRegistry.addEffectRenderMapping(tool, TinkersDefense.config.CrestFeathersID, "tinker", "feathers", true);
- TConstructClientRegistry.addEffectRenderMapping(tool, TinkersDefense.config.CrestMirrorsID, "tinker", "mirrors", true);
- TConstructClientRegistry.addEffectRenderMapping(tool, TinkersDefense.config.CrestLegendsID, "tinker", "legends", true);
- TConstructClientRegistry.addEffectRenderMapping(tool, TinkersDefense.config.CrestBladesID, "tinker", "blades", true);
- TConstructClientRegistry.addEffectRenderMapping(tool, TinkersDefense.config.SoulBoundID, "tinker", "soulbound", true);
+ BotMod.RegisterRecipes();
+ BotMod.RegisterModifiers();
}
+
+ if(ThaumMod != null)
+ {
+ ThaumMod.RegisterRecipes();
+ ThaumMod.RegisterModifiers();
+ }
+ }
+
+ public void UpdateAll(ToolCore tool, ItemStack stack, World world, Entity entity, NBTTagCompound tags)
+ {
+ TMod.UpdateAll(tool, stack, world, entity, tags);
+ AMod.UpdateAll(tool, stack, world, entity, tags);
+ if(BotMod != null)
+ BotMod.UpdateAll(tool, stack, world, entity, tags);
+ if(ThaumMod != null)
+ ThaumMod.UpdateAll(tool, stack, world, entity, tags);
+
}
}
diff --git a/src/main/java/lance5057/tDefense/core/tools/modifiers/Thaumcraft/ThaumcraftMods.java b/src/main/java/lance5057/tDefense/core/tools/modifiers/Thaumcraft/ThaumcraftMods.java
new file mode 100644
index 0000000..2a6e9eb
--- /dev/null
+++ b/src/main/java/lance5057/tDefense/core/tools/modifiers/Thaumcraft/ThaumcraftMods.java
@@ -0,0 +1,91 @@
+package lance5057.tDefense.core.tools.modifiers.Thaumcraft;
+
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+
+import cpw.mods.fml.common.FMLLog;
+import lance5057.tDefense.TinkersDefense;
+import net.minecraft.entity.Entity;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.ItemStack;
+import net.minecraft.nbt.NBTTagCompound;
+import net.minecraft.util.EnumChatFormatting;
+import net.minecraft.world.World;
+import tconstruct.library.crafting.ModifyBuilder;
+import tconstruct.library.tools.ToolCore;
+import thaumcraft.api.ItemApi;
+import thaumcraft.api.aspects.Aspect;
+import thaumcraft.api.aspects.AspectList;
+import thaumcraft.api.internal.DummyInternalMethodHandler;
+
+public class ThaumcraftMods
+{
+
+ public ThaumcraftMods()
+ {
+ LoadItems();
+ }
+
+ public void LoadItems()
+ {
+
+ }
+
+ public void RegisterRecipes()
+ {
+ }
+
+ public void RegisterModifiers()
+ {
+ ModifyBuilder.registerModifier(new modifierRepairVis(new ItemStack[] {ItemApi.getItem("itemWandCap", 0)}, TinkersDefense.config.CapsModID, "Caps", EnumChatFormatting.GOLD.toString(), "Caps"));
+ }
+
+ public void UpdateAll(ToolCore tool, ItemStack stack, World world, Entity entity, NBTTagCompound tags)
+ {
+ if(!world.isRemote)
+ {
+ if(tags.hasKey("Caps"))
+ UpdateRepairVis(tool, stack, world, entity, tags);
+ }
+ }
+
+ static Method consumeVisFromInventory;
+
+ public void UpdateRepairVis(ToolCore tool, ItemStack stack, World world, Entity entity, NBTTagCompound tags)
+ {
+ if(tags.getInteger("Damage") > 0)
+ {
+ AspectList cost = new AspectList();
+ cost.add(Aspect.AIR, (int) (10 * tags.getFloat("Caps")));
+ cost.add(Aspect.WATER, (int) (30 * tags.getFloat("Caps")));
+ cost.add(Aspect.FIRE, (int) (10 * tags.getFloat("Caps")));
+ cost.add(Aspect.ORDER, (int) (20 * tags.getFloat("Caps")));
+ cost.add(Aspect.ENTROPY, (int) (10 * tags.getFloat("Caps")));
+ cost.add(Aspect.EARTH, (int) (30 * tags.getFloat("Caps")));
+
+ boolean success = false;
+ try
+ {
+ if(consumeVisFromInventory == null)
+ {
+ consumeVisFromInventory = Class.forName("thaumcraft.common.items.wands.WandManager").getMethod("consumeVisFromInventory", EntityPlayer.class, AspectList.class);
+ }
+ success = (boolean) consumeVisFromInventory.invoke(null, (EntityPlayer) entity, cost);
+ }
+ catch(Exception ex)
+ {
+ FMLLog.warning("Thaumcraft is missing, you shouldn't see this, please report");
+ }
+ finally
+ {
+ if(success)
+ {
+ if(tags.getInteger("Damage") >= 4)
+ tags.setInteger("Damage", tags.getInteger("Damage") - 4);
+ else
+ tags.setInteger("Damage", 0);
+ }
+ }
+ }
+ }
+}
diff --git a/src/main/java/lance5057/tDefense/core/tools/modifiers/Thaumcraft/modifierRepairVis.java b/src/main/java/lance5057/tDefense/core/tools/modifiers/Thaumcraft/modifierRepairVis.java
new file mode 100644
index 0000000..ab921dc
--- /dev/null
+++ b/src/main/java/lance5057/tDefense/core/tools/modifiers/Thaumcraft/modifierRepairVis.java
@@ -0,0 +1,67 @@
+package lance5057.tDefense.core.tools.modifiers.Thaumcraft;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+
+import net.minecraft.item.ItemStack;
+import net.minecraft.nbt.NBTTagCompound;
+import tconstruct.modifiers.tools.ModBoolean;
+import thaumcraft.api.wands.WandCap;
+import thaumcraft.common.items.wands.ItemWandCap;
+
+public class modifierRepairVis extends ModBoolean
+{
+ WandCap cap;
+ String color;
+ String tooltipName;
+
+ public modifierRepairVis(ItemStack[] items, int effect, String tag, String c, String tip)
+ {
+ super(items, effect, tag, c, tip);
+ color = c;
+ tooltipName = tip;
+ }
+
+ @Override
+ public boolean matches (ItemStack[] recipe, ItemStack input)
+ {
+ cap = null;
+ for(WandCap cp: WandCap.caps.values())
+ {
+ ItemStack test = cp.getItem();
+ if(recipe[0].getItem() == test.getItem() && recipe[0].getItemDamage() == test.getItemDamage())
+ {
+ cap = cp;
+ break;
+ }
+ }
+
+ if (!canModify(input, recipe))
+ return false;
+ if (cap == null)
+ return false;
+ return true;
+ }
+
+ @Override
+ protected boolean canModify (ItemStack tool, ItemStack[] input)
+ {
+ NBTTagCompound tags = tool.getTagCompound().getCompoundTag("InfiTool");
+ return tags.getInteger("Modifiers") > 0 && !tags.getBoolean(key) && input[0].getItem() instanceof ItemWandCap; //Will fail if the modifier is false or the tag doesn't exist
+ }
+
+ @Override
+ public void modify (ItemStack[] input, ItemStack tool)
+ {
+ NBTTagCompound tags = tool.getTagCompound().getCompoundTag("InfiTool");
+
+ tags.setFloat(key, cap.getBaseCostModifier());
+
+ int modifiers = tags.getInteger("Modifiers");
+ modifiers -= 1;
+ tags.setInteger("Modifiers", modifiers);
+
+ String mat = cap.getTag().substring(0, 1).toUpperCase() + cap.getTag().substring(1) + " ";
+ addToolTip(tool, color + mat + tooltipName, color + mat + tooltipName + " ("+(int)(cap.getBaseCostModifier()*100)+"%)");
+ }
+}
diff --git a/src/main/java/lance5057/tDefense/core/tools/modifiers/ToolMods.java b/src/main/java/lance5057/tDefense/core/tools/modifiers/ToolMods.java
new file mode 100644
index 0000000..7280383
--- /dev/null
+++ b/src/main/java/lance5057/tDefense/core/tools/modifiers/ToolMods.java
@@ -0,0 +1,132 @@
+package lance5057.tDefense.core.tools.modifiers;
+
+import java.util.ArrayList;
+
+import cpw.mods.fml.common.registry.GameRegistry;
+import lance5057.tDefense.Reference;
+import lance5057.tDefense.TinkersDefense;
+import lance5057.tDefense.core.tools.modifiers.ActiveToolMods.TDefenseActiveToolMod;
+import lance5057.tDefense.core.tools.modifiers.Botania.modifierCorpseIvy;
+import lance5057.tDefense.core.tools.modifiers.TDefense.modifierSoulBound;
+import lance5057.tDefense.core.tools.modifiers.TDefense.shields.modifierCrestofBlades;
+import lance5057.tDefense.core.tools.modifiers.TDefense.shields.modifierCrestofFeathers;
+import lance5057.tDefense.core.tools.modifiers.TDefense.shields.modifierCrestofLegends;
+import lance5057.tDefense.core.tools.modifiers.TDefense.shields.modifierCrestofMirrors;
+import lance5057.tDefense.core.tools.modifiers.TDefense.weapons.modifierDaze;
+import mods.battlegear2.api.core.IBattlePlayer;
+import net.minecraft.entity.Entity;
+import net.minecraft.entity.EntityLivingBase;
+import net.minecraft.entity.projectile.EntityFireball;
+import net.minecraft.init.Blocks;
+import net.minecraft.init.Items;
+import net.minecraft.item.Item;
+import net.minecraft.item.ItemStack;
+import net.minecraft.item.crafting.CraftingManager;
+import net.minecraft.nbt.NBTTagCompound;
+import net.minecraft.util.AxisAlignedBB;
+import net.minecraft.util.Vec3;
+import net.minecraft.world.World;
+import net.minecraftforge.oredict.ShapedOreRecipe;
+import tconstruct.library.TConstructRegistry;
+import tconstruct.library.client.TConstructClientRegistry;
+import tconstruct.library.crafting.ModifyBuilder;
+import tconstruct.library.tools.ToolCore;
+import tconstruct.tools.TinkerTools;
+import vazkii.botania.api.BotaniaAPI;
+import vazkii.botania.common.item.ModItems;
+import vazkii.botania.common.item.block.ItemBlockSpecialFlower;
+import vazkii.botania.common.lib.LibBlockNames;
+import vazkii.botania.common.lib.LibOreDict;
+
+public class ToolMods
+{
+ public static Item item_relic;
+ public static Item itemSoulChain;
+
+ public ToolMods()
+ {
+ LoadItems();
+ }
+
+ public void LoadItems()
+ {
+ item_relic = new Item().setCreativeTab(TinkersDefense.tabName).setMaxStackSize(1).setUnlocalizedName("AncientRelic").setTextureName(Reference.MOD_ID + ":AncientRelic");
+
+ itemSoulChain = new Item().setCreativeTab(TinkersDefense.tabName).setMaxStackSize(1).setUnlocalizedName("SoulChain").setTextureName(Reference.MOD_ID + ":SoulChain");
+
+ GameRegistry.registerItem(item_relic, "Ancient Relic");
+ GameRegistry.registerItem(itemSoulChain, "Soul Chain");
+ }
+
+ public void RegisterRecipes()
+ {
+ }
+
+ public void RegisterModifiers()
+ {
+ ModifyBuilder.registerModifier(new modifierDaze("Daze", TinkersDefense.config.DazeID, new ItemStack[] {new ItemStack(Blocks.light_weighted_pressure_plate), new ItemStack(Items.potionitem, 1, 8202)}, new int[] {1, 0}));
+
+ //ModifyBuilder.registerModifier(new modifierTorchArrow(new ItemStack[] {new ItemStack(Blocks.glowstone)}, 12));
+
+ ModifyBuilder.registerModifier(new modifierCrestofFeathers("Crest of Feathers", TinkersDefense.config.CrestFeathersID, new ItemStack[] {new ItemStack(Items.feather)}, new int[] {1}));
+
+ ModifyBuilder.registerModifier(new modifierCrestofMirrors("Crest of Mirrors", TinkersDefense.config.CrestMirrorsID, new ItemStack[] {new ItemStack(Blocks.glass_pane)}, new int[] {1}));
+
+ ModifyBuilder.registerModifier(new modifierCrestofLegends("Crest of Legends", TinkersDefense.config.CrestLegendsID, new ItemStack[] {new ItemStack(item_relic)}, new int[] {1}));
+
+ ModifyBuilder.registerModifier(new modifierCrestofBlades("Crest of Blades", TinkersDefense.config.CrestBladesID, new ItemStack[] {new ItemStack(Items.iron_sword)}, new int[] {1}));
+
+ ModifyBuilder.registerModifier(new modifierSoulBound(new ItemStack[] {new ItemStack(itemSoulChain)}, TinkersDefense.config.SoulBoundID, "Soulbound", "\u00A7b", "Soulbound"));
+
+ TConstructRegistry.registerActiveToolMod(new TDefenseActiveToolMod());
+
+ for(ToolCore tool : TConstructRegistry.getToolMapping())
+ {
+ TConstructClientRegistry.addEffectRenderMapping(tool, TinkersDefense.config.DazeID, "tinker", "daze", true);
+ TConstructClientRegistry.addEffectRenderMapping(tool, TinkersDefense.config.CrestFeathersID, "tinker", "feathers", true);
+ TConstructClientRegistry.addEffectRenderMapping(tool, TinkersDefense.config.CrestMirrorsID, "tinker", "mirrors", true);
+ TConstructClientRegistry.addEffectRenderMapping(tool, TinkersDefense.config.CrestLegendsID, "tinker", "legends", true);
+ TConstructClientRegistry.addEffectRenderMapping(tool, TinkersDefense.config.CrestBladesID, "tinker", "blades", true);
+ TConstructClientRegistry.addEffectRenderMapping(tool, TinkersDefense.config.SoulBoundID, "tinker", "soulbound", true);
+ }
+ }
+
+ public void UpdateAll(ToolCore tool, ItemStack stack, World world, Entity entity, NBTTagCompound tags)
+ {
+ if(tags.hasKey("Crest of Mirrors"))
+ UpdateMirrors(tool, stack, world, entity);
+ }
+
+ public void UpdateMirrors(ToolCore tool, ItemStack stack, World world, Entity entity)
+ {
+ if(((IBattlePlayer) entity).isBlockingWithShield())
+ {
+ AxisAlignedBB boundingBox = AxisAlignedBB.getBoundingBox(((EntityLivingBase) entity).posX - 3, ((EntityLivingBase) entity).posY - 3, ((EntityLivingBase) entity).posZ - 3, ((EntityLivingBase) entity).posX + 3, ((EntityLivingBase) entity).posY + 3, ((EntityLivingBase) entity).posZ + 3);
+
+ ArrayList<EntityFireball> fireballs = (ArrayList<EntityFireball>) world.getEntitiesWithinAABB(EntityFireball.class, boundingBox);
+ for(EntityFireball fireball : fireballs)
+ {
+ if(fireball.getDistanceSqToEntity(((EntityLivingBase) entity)) <= 25)
+ {
+ Vec3 playerlook = ((EntityLivingBase) entity).getLookVec();
+
+ fireball.motionX = playerlook.xCoord;
+ fireball.motionY = playerlook.yCoord;
+ fireball.motionZ = playerlook.zCoord;
+ fireball.accelerationX = fireball.motionX * 0.1D;
+ fireball.accelerationY = fireball.motionY * 0.1D;
+ fireball.accelerationZ = fireball.motionZ * 0.1D;
+
+ fireball.shootingEntity = ((EntityLivingBase) entity);
+
+ ((EntityLivingBase) entity).worldObj.playSoundAtEntity(((EntityLivingBase) entity), "battlegear2:shield", 1, 1);
+ }
+ }
+ }
+ }
+
+ public void UpdateTorchArrow(ToolCore tool, ItemStack stack, World world, Entity entity)
+ {
+ //entity.worldObj.ent
+ }
+}