diff --git a/assets/forbidden/lang/en_US.lang b/assets/forbidden/lang/en_US.lang index 00eae48..5c39578 100644 --- a/assets/forbidden/lang/en_US.lang +++ b/assets/forbidden/lang/en_US.lang @@ -26,18 +26,6 @@ item.MorphPickaxe.name=Chameleon Pickaxe item.MorphSword.name=Chameleon Sword item.MorphShovel.name=Chameleon Shovel item.MorphAxe.name=Chameleon Axe -item.WandCores.tainted.name=Tainted Rod -item.WandCores.infernal.name=Infernal Rod -item.WandCores.soul.name=Eldritch Rod -item.WandCores.blood.name=Bloody Rod -item.WandCaps.alchemical.name=Alchemical Cap -item.Wand.tainted.rod=Tainted -item.Wand.infernal.rod=Infernal -item.Wand.neutronium.rod=Cosmic Neutronium -item.Wand.soul.rod=Eldritch -item.Wand.blood.rod=Blood -item.Wand.orichalcum.cap=Orichalcum Studded -item.Wand.alchemical.cap=Alchemically Crowned item.FMResource.0.name=Emerald Fragment item.FMResource.1.name=Shadow Ink item.MobCrystalEmpty.name=Blank Imprinting Crystal @@ -45,6 +33,24 @@ item.MobCrystal.name=Imprinted Crystal item.DiabolistFork.name=Diabolist Fork item.DiabolistSpork.name=Spork of Doom # +# Wand components +item.Wand.tainted.rod=Tainted +item.Wand.infernal.rod=Infernal +item.Wand.neutronium.rod=Cosmic Neutronium +item.Wand.soul.rod=Eldritch +item.Wand.blood.rod=Blood +item.Wand.witchwood.rod=Witchwood +item.Wand.orichalcum.cap=Orichalcum Studded +item.Wand.alchemical.cap=Alchemically Crowned +item.Wand.vinteum.cap=Vinteum Infused +item.WandCores.tainted.name=Tainted Rod +item.WandCores.infernal.name=Infernal Rod +item.WandCores.soul.name=Eldritch Rod +item.WandCores.blood.name=Bloody Rod +item.WandCores.witchwood.name=Witchwood Rod +item.WandCaps.alchemical.name=Alchemical Cap +item.WandCaps.vinteum.name=Vinteum Cap +# # Blocks tile.ArcaneCake.name=Thaumic Cake tile.InkFlower.name=Umbral Rose diff --git a/assets/forbidden/textures/items/wand_cap_vinteum.png b/assets/forbidden/textures/items/wand_cap_vinteum.png new file mode 100644 index 0000000..a1cb0bc Binary files /dev/null and b/assets/forbidden/textures/items/wand_cap_vinteum.png differ diff --git a/assets/forbidden/textures/items/wand_cap_vinteum.png.mcmeta b/assets/forbidden/textures/items/wand_cap_vinteum.png.mcmeta new file mode 100644 index 0000000..ce40017 --- /dev/null +++ b/assets/forbidden/textures/items/wand_cap_vinteum.png.mcmeta @@ -0,0 +1,11 @@ +{ + "animation": { + "frametime": 3, + "frames": [ + 0, + 1, + 2, + 1 + ] + } +} diff --git a/assets/forbidden/textures/items/wand_rod_witchwood.png b/assets/forbidden/textures/items/wand_rod_witchwood.png new file mode 100644 index 0000000..0c629c6 Binary files /dev/null and b/assets/forbidden/textures/items/wand_rod_witchwood.png differ diff --git a/assets/forbidden/textures/models/wand_cap_vinteum.png b/assets/forbidden/textures/models/wand_cap_vinteum.png new file mode 100644 index 0000000..e1dda42 Binary files /dev/null and b/assets/forbidden/textures/models/wand_cap_vinteum.png differ diff --git a/assets/forbidden/textures/models/wand_rod_witchwood.png b/assets/forbidden/textures/models/wand_rod_witchwood.png new file mode 100644 index 0000000..fd0c545 Binary files /dev/null and b/assets/forbidden/textures/models/wand_rod_witchwood.png differ diff --git a/assets/forbidden/textures/models/wand_rod_witchwoodhd.png b/assets/forbidden/textures/models/wand_rod_witchwoodhd.png new file mode 100644 index 0000000..eb346a8 Binary files /dev/null and b/assets/forbidden/textures/models/wand_rod_witchwoodhd.png differ diff --git a/src/com/spiteful/forbidden/Compat.java b/src/com/spiteful/forbidden/Compat.java index e2077bd..1c77d82 100644 --- a/src/com/spiteful/forbidden/Compat.java +++ b/src/com/spiteful/forbidden/Compat.java @@ -38,6 +38,7 @@ public class Compat { public static boolean natura = false; public static boolean pb = false; public static boolean bm = false; + public static boolean am2 = false; public static int tabletID = -1; @@ -55,6 +56,8 @@ public class Compat { pb = true; if(Loader.isModLoaded("AWWayofTime")) bm = true; + if(Loader.isModLoaded("arsmagica2")) + am2 = true; } public static void compatify() diff --git a/src/com/spiteful/forbidden/ForbiddenRecipes.java b/src/com/spiteful/forbidden/ForbiddenRecipes.java index 8baf01f..c20e119 100644 --- a/src/com/spiteful/forbidden/ForbiddenRecipes.java +++ b/src/com/spiteful/forbidden/ForbiddenRecipes.java @@ -73,7 +73,9 @@ public class ForbiddenRecipes while(i$1.hasNext()) { String rodtag = (String)i$1.next(); - if((rodtag.equals("tainted") || rodtag.equals("infernal") || rodtag.equals("soul")) && !rodtag.equals("mercurial") && !rodtag.equals("neutronium") && !captag.equals("orichalcum")){ + if((rodtag.equals("tainted") || rodtag.equals("infernal") || rodtag.equals("soul") || rodtag.equals("blood") || rodtag.equals("witchwood") || captag.equals("alchemical") || captag.equals("vinteum")) + && !rodtag.equals("mercurial") && !rodtag.equals("neutronium") && !captag.equals("orichalcum")) + { int cost = ((WandCap)WandCap.caps.get(captag)).getCraftCost() * ((WandRod)WandRod.rods.get(rodtag)).getCraftCost(); ItemStack wand = ItemApi.getItem("itemWandCasting", cost); ((ItemWandCasting)wand.getItem()).setCap(wand, (WandCap)WandCap.caps.get(captag)); @@ -86,6 +88,14 @@ public class ForbiddenRecipes res = "ROD_infernal"; else if(rodtag.equals("soul")) res = "ROD_soul"; + else if(rodtag.equals("blood")) + res = "ROD_blood"; + else if(rodtag.equals("witchwood")) + res = "ROD_witchwood"; + else if(captag.equals("alchemical")) + res = "CAP_alchemical"; + else if(captag.equals("vinteum")) + res = "CAP_vinteum"; ForbiddenResearch.recipes.put(key, ThaumcraftApi.addArcaneCraftingRecipe(res, wand, (new AspectList()).add(Aspect.AIR, cost).add(Aspect.ORDER, cost).add(Aspect.EARTH, cost).add(Aspect.FIRE, cost).add(Aspect.WATER, cost).add(Aspect.ENTROPY, cost), new Object[]{" C", " R ", "C ", Character.valueOf('C'), ((WandCap)WandCap.caps.get(captag)).getItem(), Character.valueOf('R'), ((WandRod)WandRod.rods.get(rodtag)).getItem()})); } } diff --git a/src/com/spiteful/forbidden/items/ForbiddenItems.java b/src/com/spiteful/forbidden/items/ForbiddenItems.java index 06833d3..0e3a6b4 100644 --- a/src/com/spiteful/forbidden/items/ForbiddenItems.java +++ b/src/com/spiteful/forbidden/items/ForbiddenItems.java @@ -37,8 +37,10 @@ public class ForbiddenItems public static WandRod WAND_ROD_NEUTRONIUM; public static WandRod WAND_ROD_SOUL; public static WandRod WAND_ROD_BLOOD; + public static WandRod WAND_ROD_WITCHWOOD; public static WandCap WAND_CAP_ORICHALCUM; public static WandCap WAND_CAP_ALCHEMICAL; + public static WandCap WAND_CAP_VINTEUM; public static void addItems() { @@ -85,8 +87,10 @@ public class ForbiddenItems WAND_ROD_SOUL = new WandRod("soul", 100, new ItemStack(wandCore, 1, 2), 12, new SoulWandUpdate(), new ResourceLocation("forbidden", "textures/models/wand_rod_soul.png")); WAND_ROD_SOUL.setGlowing(true); WAND_ROD_BLOOD = new WandRod("blood", 100, new ItemStack(wandCore, 1, 3), 12, new BloodWandUpdate(), new ResourceLocation("forbidden", "textures/models/wand_rod_blood.png")); + WAND_ROD_WITCHWOOD = new WandRod("witchwood", 100, new ItemStack(wandCore, 1, 4), 12, new ManaWandUpdate(), new ResourceLocation("forbidden", "textures/models/wand_rod_witchwood.png")); WAND_CAP_ORICHALCUM = new DarkWandCap("orichalcum", 0.0F, new ItemStack(Block.commandBlock, 1), 1000, new ResourceLocation("forbidden", "textures/models/wand_cap_orichalcum.png")); WAND_CAP_ALCHEMICAL = new DarkWandCap("alchemical", 0.95F, Arrays.asList(new Aspect[]{Aspect.WATER}), 0.8F, new ItemStack(wandCap, 1, 0), 7, new ResourceLocation("forbidden", "textures/models/wand_cap_alchemical.png")); + WAND_CAP_VINTEUM = new DarkWandCap("vinteum", 0.9F, new ItemStack(wandCap, 1, 1), 7, new ResourceLocation("forbidden", "textures/models/wand_cap_vinteum.png")); resource = new ItemResource(Config.resourceID).setUnlocalizedName("FMResource"); GameRegistry.registerItem(resource, "FMResource"); diff --git a/src/com/spiteful/forbidden/items/ItemWandCaps.java b/src/com/spiteful/forbidden/items/ItemWandCaps.java index 4da6a85..1c0888c 100644 --- a/src/com/spiteful/forbidden/items/ItemWandCaps.java +++ b/src/com/spiteful/forbidden/items/ItemWandCaps.java @@ -18,7 +18,7 @@ import thaumcraft.common.items.wands.ItemWandCasting; public class ItemWandCaps extends Item { - public final String[] types = {"alchemical"}; + public final String[] types = {"alchemical", "vinteum"}; public Icon[] icon; diff --git a/src/com/spiteful/forbidden/items/ItemWandCores.java b/src/com/spiteful/forbidden/items/ItemWandCores.java index aef9896..dd7e103 100644 --- a/src/com/spiteful/forbidden/items/ItemWandCores.java +++ b/src/com/spiteful/forbidden/items/ItemWandCores.java @@ -18,8 +18,8 @@ import thaumcraft.common.items.wands.ItemWandCasting; public class ItemWandCores extends Item { - public final String[] types = {"tainted", "infernal", "soul", "blood"}; - public Icon[] icon = new Icon[4]; + public final String[] types = {"tainted", "infernal", "soul", "blood", "witchwood"}; + public Icon[] icon; public ItemWandCores(int par1) { @@ -32,6 +32,7 @@ public class ItemWandCores extends Item { @SideOnly(Side.CLIENT) public void registerIcons(IconRegister ir) { + icon = new Icon[types.length]; for(int x = 0; x < types.length; x++) this.icon[x] = ir.registerIcon("forbidden:wand_rod_" + types[x]); } @@ -73,6 +74,13 @@ public class ItemWandCores extends Item { ((ItemWandCasting)creative.getItem()).setRod(blood, (WandRod)WandRod.rods.get("blood")); par3List.add(blood); } + if(Compat.am2) + { + ItemStack mana = ItemApi.getItem("itemWandCasting", 72); + ((ItemWandCasting)creative.getItem()).setCap(mana, (WandCap)WandCap.caps.get("vinteum")); + ((ItemWandCasting)creative.getItem()).setRod(mana, (WandRod)WandRod.rods.get("witchwood")); + par3List.add(mana); + } } public String getUnlocalizedName(ItemStack par1ItemStack) { diff --git a/src/com/spiteful/forbidden/items/ManaWandUpdate.java b/src/com/spiteful/forbidden/items/ManaWandUpdate.java new file mode 100644 index 0000000..46b4fba --- /dev/null +++ b/src/com/spiteful/forbidden/items/ManaWandUpdate.java @@ -0,0 +1,49 @@ +package com.spiteful.forbidden.items; + +import com.spiteful.forbidden.Config; +import com.spiteful.forbidden.Compat; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import thaumcraft.api.aspects.Aspect; +import thaumcraft.api.wands.IWandRodOnUpdate; +import thaumcraft.common.items.wands.ItemWandCasting; +import am2.api.ArsMagicaApi; +import am2.api.IExtendedProperties; + +public class ManaWandUpdate implements IWandRodOnUpdate { + + Aspect primals[] = Aspect.getPrimalAspects().toArray(new Aspect[0]); + + public void onUpdate(ItemStack itemstack, EntityPlayer player) { + if(Compat.am2) + { + if(player.ticksExisted % 100 == 0){ + + IExtendedProperties prop = ArsMagicaApi.instance.getExtendedProperties(player); + + float cost; + if(((ItemWandCasting)itemstack.getItem()).getCap(itemstack).getTag().equals("vinteum")) + cost = 90.0F; + else + cost = 150.0F; + + if(prop == null || prop.getCurrentMana() <= 0) + return; + + + for(int x = 0;x < primals.length;x++){ + if(((ItemWandCasting)itemstack.getItem()).getVis(itemstack, primals[x]) < ((ItemWandCasting)itemstack.getItem()).getMaxVis(itemstack)) { + if(prop.getCurrentMana() > cost) + { + prop.setCurrentMana(prop.getCurrentMana() - cost); + ((ItemWandCasting)itemstack.getItem()).addVis(itemstack, primals[x], 1, true); + } + } + } + } + + } + + } +}