From f0dbe7a46426355f9eab6eb3933277664baafc57 Mon Sep 17 00:00:00 2001 From: Lance5057 Date: Fri, 15 Apr 2016 05:42:59 -0500 Subject: Added Vis repair modifier, refactored modifiers, fixed optional integration --- .../java/lance5057/tDefense/TDIntegration.java | 31 +++++ src/main/java/lance5057/tDefense/TD_Config.java | 6 +- .../java/lance5057/tDefense/TinkersDefense.java | 5 +- .../lance5057/tDefense/addons/TDAddonBotania.java | 59 --------- .../java/lance5057/tDefense/armor/ArmorCore.java | 35 +++--- .../tDefense/armor/events/ArmorModEvents.java | 18 +-- .../tDefense/armor/items/cloth/TinkersHood.java | 7 ++ .../tDefense/armor/items/cloth/TinkersRobe.java | 3 + .../tDefense/armor/items/cloth/TinkersShawl.java | 3 + .../tDefense/armor/items/cloth/TinkersShoes.java | 3 + .../tDefense/armor/items/heavy/TinkersHelm.java | 6 +- .../tDefense/armor/items/light/TinkersCoif.java | 8 +- .../tDefense/armor/modifiers/ArmorMods.java | 44 ++++--- .../modifiers/ActiveToolMods/BotaniaToolMods.java | 50 -------- .../ActiveToolMods/TDefenseActiveToolMod.java | 4 +- .../modifiers/ActiveToolMods/TdefenseToolMods.java | 56 --------- .../core/tools/modifiers/Botania/BotaniaMods.java | 80 +++++++++++++ .../tDefense/core/tools/modifiers/Modifiers.java | 98 +++++++-------- .../tools/modifiers/Thaumcraft/ThaumcraftMods.java | 91 ++++++++++++++ .../modifiers/Thaumcraft/modifierRepairVis.java | 67 +++++++++++ .../tDefense/core/tools/modifiers/ToolMods.java | 132 +++++++++++++++++++++ 21 files changed, 535 insertions(+), 271 deletions(-) create mode 100644 src/main/java/lance5057/tDefense/TDIntegration.java delete mode 100644 src/main/java/lance5057/tDefense/addons/TDAddonBotania.java delete mode 100644 src/main/java/lance5057/tDefense/core/tools/modifiers/ActiveToolMods/BotaniaToolMods.java delete mode 100644 src/main/java/lance5057/tDefense/core/tools/modifiers/ActiveToolMods/TdefenseToolMods.java create mode 100644 src/main/java/lance5057/tDefense/core/tools/modifiers/Botania/BotaniaMods.java create mode 100644 src/main/java/lance5057/tDefense/core/tools/modifiers/Thaumcraft/ThaumcraftMods.java create mode 100644 src/main/java/lance5057/tDefense/core/tools/modifiers/Thaumcraft/modifierRepairVis.java create mode 100644 src/main/java/lance5057/tDefense/core/tools/modifiers/ToolMods.java (limited to 'src/main') 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/addons/TDAddonBotania.java b/src/main/java/lance5057/tDefense/addons/TDAddonBotania.java deleted file mode 100644 index 3911fe9..0000000 --- a/src/main/java/lance5057/tDefense/addons/TDAddonBotania.java +++ /dev/null @@ -1,59 +0,0 @@ -package lance5057.tDefense.addons; - -import lance5057.tDefense.TinkersDefense; -import lance5057.tDefense.core.tools.modifiers.Botania.modifierCorpseIvy; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.item.crafting.CraftingManager; -import net.minecraftforge.oredict.ShapedOreRecipe; -import tconstruct.library.crafting.ModifyBuilder; -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; -import cpw.mods.fml.common.Loader; -import cpw.mods.fml.common.registry.GameRegistry; - -public class TDAddonBotania -{ - boolean active; - - Item corpseIvyGraft; - Item corpseIvy; - - public TDAddonBotania() - { - active = false; - - if(Loader.isModLoaded("Botania")) - { - active = true; - - LoadItems(); - } - } - - public void LoadItems() - { - corpseIvyGraft = new Item().setUnlocalizedName("corpseivygraft").setCreativeTab(TinkersDefense.tabName).setTextureName("tinkersdefense:corpseIvyGraft"); - - corpseIvy = new Item().setUnlocalizedName("corpseivy").setCreativeTab(TinkersDefense.tabName).setTextureName("tinkersdefense:corpseIvy"); - - GameRegistry.registerItem(corpseIvyGraft, "corpseivygraft"); - GameRegistry.registerItem(corpseIvy, "corpseivy"); - } - - public void RegisterRecipes() - { - CraftingManager.getInstance().getRecipeList().add(new ShapedOreRecipe(new ItemStack(corpseIvyGraft), new Object[] {"fsf", "oio", "fgf", 'f', ItemBlockSpecialFlower.ofType(LibBlockNames.SUBTILE_BELLETHORN), 'i', new ItemStack(ModItems.keepIvy, 1, 0), 's', LibOreDict.MANA_STRING, 'g', new ItemStack(TinkerTools.craftedSoil, 1, 3), 'o', new ItemStack(ModItems.fertilizer, 1, 1)})); - - BotaniaAPI.registerManaAlchemyRecipe(new ItemStack(corpseIvy, 1, 0), new ItemStack(corpseIvyGraft, 1, 0), 100000); - } - - public void RegisterModifiers() - { - ModifyBuilder.registerModifier(new modifierCorpseIvy("Corpse Ivy", TinkersDefense.config.CorpseIvyModID, new ItemStack[] {new ItemStack(corpseIvy)}, new int[] {1})); - } -} 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 fireballs = (ArrayList) 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/core/tools/modifiers/Botania/BotaniaMods.java b/src/main/java/lance5057/tDefense/core/tools/modifiers/Botania/BotaniaMods.java new file mode 100644 index 0000000..cf19f23 --- /dev/null +++ b/src/main/java/lance5057/tDefense/core/tools/modifiers/Botania/BotaniaMods.java @@ -0,0 +1,80 @@ +package lance5057.tDefense.core.tools.modifiers.Botania; + +import lance5057.tDefense.TinkersDefense; +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; +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; + +@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 +{ + Item corpseIvyGraft; + Item corpseIvy; + + public BotaniaMods() + { + LoadItems(); + } + + public void LoadItems() + { + corpseIvyGraft = new Item().setUnlocalizedName("corpseivygraft").setCreativeTab(TinkersDefense.tabName).setTextureName("tinkersdefense:corpseIvyGraft"); + + corpseIvy = new Item().setUnlocalizedName("corpseivy").setCreativeTab(TinkersDefense.tabName).setTextureName("tinkersdefense:corpseIvy"); + + GameRegistry.registerItem(corpseIvyGraft, "corpseivygraft"); + GameRegistry.registerItem(corpseIvy, "corpseivy"); + } + + public void RegisterRecipes() + { + CraftingManager.getInstance().getRecipeList().add(new ShapedOreRecipe(new ItemStack(corpseIvyGraft), new Object[] {"fsf", "oio", "fgf", 'f', ItemBlockSpecialFlower.ofType(LibBlockNames.SUBTILE_BELLETHORN), 'i', new ItemStack(ModItems.keepIvy, 1, 0), 's', LibOreDict.MANA_STRING, 'g', new ItemStack(TinkerTools.craftedSoil, 1, 3), 'o', new ItemStack(ModItems.fertilizer, 1, 1)})); + + BotaniaAPI.registerManaAlchemyRecipe(new ItemStack(corpseIvy, 1, 0), new ItemStack(corpseIvyGraft, 1, 0), 100000); + } + + public void RegisterModifiers() + { + 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 fireballs = (ArrayList) 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 + } +} -- cgit v1.2.3