mirror of
https://github.com/GTNewHorizons/ForbiddenMagic.git
synced 2026-11-12 16:27:30 +00:00
Bloody Scrivener's Tools
This commit is contained in:
1 parent
89483b28e4
commit
320bdfd234
5 files changed
+153
-17
No files matched your search
Binary file not shown.
|
After Width: | Height: | Size: 319 B |
@@ -150,10 +150,10 @@ public class Compat {
|
||||
try
|
||||
{
|
||||
InfusionRecipe soul_recipe = ThaumcraftApi.addInfusionCraftingRecipe("ROD_soul", new ItemStack(ForbiddenItems.wandCore, 1, 2), 5, (new AspectList()).add(Aspect.ELDRITCH, 32).add(Aspect.MAGIC, 12).add(Aspect.SOUL, 16), new ItemStack(PlayerBeacons.defiledSoulPylonBlock), new ItemStack[]{ItemApi.getItem("itemResource", 14), new ItemStack(PlayerBeacons.defiledSoulConductorBlock), new ItemStack(PlayerBeacons.defiledSoulConductorBlock), new ItemStack(PlayerBeacons.defiledSoulConductorBlock), new ItemStack(PlayerBeacons.defiledSoulConductorBlock), new ItemStack(Item.eyeOfEnder), new ItemStack(Item.eyeOfEnder)});
|
||||
(new DarkResearchItem("ROD_soul", "FORBIDDEN", (new AspectList()).add(Aspect.ELDRITCH, 2).add(Aspect.SOUL, 1).add(Aspect.TOOL, 1), -3, -3, 5, new ItemStack(ForbiddenItems.wandCore, 1, 2))).setPages(new ResearchPage[]{new ResearchPage("forbidden.research_page.ROD_soul.1"), new ResearchPage(soul_recipe)}).setParents(new String[]{"ROD_silverwood", "PB_CRYSTAL"}).setConcealed().registerResearchItem();
|
||||
(new DarkResearchItem("ROD_soul", "FORBIDDEN", "[PB]", (new AspectList()).add(Aspect.ELDRITCH, 4).add(Aspect.SOUL, 3).add(Aspect.TOOL, 2), -3, -3, 5, new ItemStack(ForbiddenItems.wandCore, 1, 2))).setPages(new ResearchPage[]{new ResearchPage("forbidden.research_page.ROD_soul.1"), new ResearchPage(soul_recipe)}).setParents(new String[]{"ROD_silverwood", "PB_CRYSTAL"}).setConcealed().registerResearchItem();
|
||||
|
||||
IArcaneRecipe soul_cap = ThaumcraftApi.addArcaneCraftingRecipe("CAP_soul", new ItemStack(ForbiddenItems.wandCap, 1, 2), (new AspectList()).add(Aspect.ENTROPY, 20).add(Aspect.FIRE, 5).add(Aspect.WATER, 5).add(Aspect.AIR, 5).add(Aspect.EARTH, 5), new Object[]{"NXN", "N N", Character.valueOf('N'), Item.enderPearl, Character.valueOf('X'), PlayerBeacons.crystalItem});
|
||||
(new DarkResearchItem("CAP_soul", "FORBIDDEN", (new AspectList()).add(Aspect.ELDRITCH, 1).add(Aspect.MAGIC, 1).add(Aspect.ENTROPY, 2), -3, -5, 3, new ItemStack(ForbiddenItems.wandCap, 1, 2))).setPages(new ResearchPage[]{new ResearchPage("forbidden.research_page.CAP_soul.1"), new ResearchPage(soul_cap)}).setParents(new String[]{"ROD_soul"}).setConcealed().registerResearchItem();
|
||||
(new DarkResearchItem("CAP_soul", "FORBIDDEN", "[PB]", (new AspectList()).add(Aspect.ELDRITCH, 3).add(Aspect.MAGIC, 2).add(Aspect.ENTROPY, 4), -3, -5, 3, new ItemStack(ForbiddenItems.wandCap, 1, 2))).setPages(new ResearchPage[]{new ResearchPage("forbidden.research_page.CAP_soul.1"), new ResearchPage(soul_cap)}).setParents(new String[]{"ROD_soul"}).setSecondary().setConcealed().registerResearchItem();
|
||||
|
||||
}
|
||||
catch(LinkageError e)
|
||||
@@ -185,12 +185,17 @@ public class Compat {
|
||||
Item incendium = (Item)(bloodItems.getField("incendium").get(null));
|
||||
Item sanctus = (Item)(bloodItems.getField("sanctus").get(null));
|
||||
Item tennebrae = (Item)(bloodItems.getField("tennebrae").get(null));
|
||||
Item bloodBucket = (Item)(bloodItems.getField("bucketLife").get(null));
|
||||
Item crapOrb = (Item)(bloodItems.getField("weakBloodOrb").get(null));
|
||||
|
||||
InfusionRecipe blood_recipe = ThaumcraftApi.addInfusionCraftingRecipe("ROD_blood", new ItemStack(ForbiddenItems.wandCore, 1, 3), 2, (new AspectList()).add(Aspect.LIFE, 32).add(Aspect.MAGIC, 12).add(Aspect.WATER, 16), new ItemStack(masterOrb), new ItemStack[]{new ItemStack(magicales), new ItemStack(imbuedSlate), new ItemStack(imbuedSlate), new ItemStack(tennebrae), new ItemStack(sanctus), new ItemStack(aquasalus), new ItemStack(incendium), new ItemStack(terrae), new ItemStack(aether)});
|
||||
(new DarkResearchItem("ROD_blood", "FORBIDDEN", (new AspectList()).add(Aspect.LIFE, 2).add(Aspect.WATER, 1).add(Aspect.WEAPON, 1), -5, -3, 4, new ItemStack(ForbiddenItems.wandCore, 1, 3))).setPages(new ResearchPage[]{new ResearchPage("forbidden.research_page.ROD_blood.1"), new ResearchPage(blood_recipe)}).setParents(new String[]{"ROD_silverwood"}).setConcealed().registerResearchItem();
|
||||
(new DarkResearchItem("ROD_blood", "FORBIDDEN", "[BM]", (new AspectList()).add(Aspect.LIFE, 5).add(Aspect.WATER, 4).add(Aspect.WEAPON, 3), -5, -3, 4, new ItemStack(ForbiddenItems.wandCore, 1, 3))).setPages(new ResearchPage[]{new ResearchPage("forbidden.research_page.ROD_blood.1"), new ResearchPage(blood_recipe)}).setParents(new String[]{"ROD_silverwood"}).setConcealed().registerResearchItem();
|
||||
|
||||
InfusionRecipe alchemical_recipe = ThaumcraftApi.addInfusionCraftingRecipe("CAP_alchemical", new ItemStack(ForbiddenItems.wandCap, 1, 0), 3, (new AspectList()).add(Aspect.LIFE, 12).add(Aspect.WATER, 6), ItemApi.getItem("itemWandCap", 1), new ItemStack[]{new ItemStack(magicales), new ItemStack(magicales), new ItemStack(magicales)});
|
||||
(new DarkResearchItem("CAP_alchemical", "FORBIDDEN", (new AspectList()).add(Aspect.METAL, 1).add(Aspect.LIFE, 2).add(Aspect.TOOL, 1).add(Aspect.WATER, 1), -5, -5, 5, new ItemStack(ForbiddenItems.wandCap, 1, 0))).setPages(new ResearchPage[]{new ResearchPage("forbidden.research_page.CAP_alchemical.1"), new ResearchPage(alchemical_recipe)}).setParents(new String[]{"ROD_blood"}).setConcealed().registerResearchItem();
|
||||
(new DarkResearchItem("CAP_alchemical", "FORBIDDEN", "[BM]", (new AspectList()).add(Aspect.LIFE, 4).add(Aspect.TOOL, 1).add(Aspect.WATER, 3), -5, -5, 5, new ItemStack(ForbiddenItems.wandCap, 1, 0))).setPages(new ResearchPage[]{new ResearchPage("forbidden.research_page.CAP_alchemical.1"), new ResearchPage(alchemical_recipe)}).setParents(new String[]{"ROD_blood"}).setSecondary().setConcealed().registerResearchItem();
|
||||
|
||||
IArcaneRecipe bloodwell_recipe = ThaumcraftApi.addShapelessArcaneCraftingRecipe("BLOODWELL", new ItemStack(ForbiddenItems.bloodwell, 1, 0), (new AspectList()).add(Aspect.WATER, 10).add(Aspect.EARTH, 10), new Object[]{new ItemStack(Item.feather, 1, 0), new ItemStack(bloodBucket, 1, 0), new ItemStack(Item.glassBottle, 1, 0), new ItemStack(crapOrb, 1, 0)});
|
||||
(new DarkResearchItem("BLOODWELL", "FORBIDDEN", "[BM]", (new AspectList()).add(Aspect.LIFE, 5).add(Aspect.MIND, 4).add(Aspect.SENSES, 3), -10, 4, 3, new ItemStack(ForbiddenItems.bloodwell, 1, 0))).setPages(new ResearchPage[]{new ResearchPage("forbidden.research_page.BLOODWELL.1"), new ResearchPage(bloodwell_recipe)}).setParents(new String[]{"RESEARCH"}).setAspectTriggers(new Aspect[]{Aspect.LIFE}).setConcealed().registerResearchItem();
|
||||
|
||||
}
|
||||
catch(Exception e)
|
||||
@@ -212,10 +217,10 @@ public class Compat {
|
||||
Block witchwood = (Block)(amBlocks.getField("witchwoodLog").get(null));
|
||||
|
||||
InfusionRecipe witchwood_recipe = ThaumcraftApi.addInfusionCraftingRecipe("ROD_witchwood", new ItemStack(ForbiddenItems.wandCore, 1, 4), 5, (new AspectList()).add(Aspect.MAGIC, 16).add(Aspect.EARTH, 9).add(Aspect.WATER, 9).add(Aspect.FIRE, 9).add(Aspect.AIR, 9), new ItemStack(witchwood), new ItemStack[]{new ItemStack(amOre.itemID, 1, 3), new ItemStack(essence.itemID, 1, 1), new ItemStack(essence.itemID, 1, 2), new ItemStack(essence.itemID, 1, 3), new ItemStack(essence.itemID, 1, 4), new ItemStack(rune.itemID, 1, 7), new ItemStack(rune.itemID, 1, 8), new ItemStack(amOre.itemID, 1, 2)});
|
||||
(new DarkResearchItem("ROD_witchwood", "FORBIDDEN", (new AspectList()).add(Aspect.MAGIC, 2).add(Aspect.TREE, 1).add(Aspect.TOOL, 1), -4, -3, 4, new ItemStack(ForbiddenItems.wandCore, 1, 4))).setPages(new ResearchPage[]{new ResearchPage("forbidden.research_page.ROD_witchwood.1"), new ResearchPage(witchwood_recipe)}).setParents(new String[]{"ROD_silverwood"}).setConcealed().registerResearchItem();
|
||||
(new DarkResearchItem("ROD_witchwood", "FORBIDDEN", "[AM2]", (new AspectList()).add(Aspect.MAGIC, 4).add(Aspect.TREE, 5).add(Aspect.MIND, 2), -4, -3, 4, new ItemStack(ForbiddenItems.wandCore, 1, 4))).setPages(new ResearchPage[]{new ResearchPage("forbidden.research_page.ROD_witchwood.1"), new ResearchPage(witchwood_recipe)}).setParents(new String[]{"ROD_silverwood"}).setConcealed().registerResearchItem();
|
||||
|
||||
InfusionRecipe vinteum_recipe = ThaumcraftApi.addInfusionCraftingRecipe("CAP_vinteum", new ItemStack(ForbiddenItems.wandCap, 1, 1), 5, (new AspectList()).add(Aspect.ENERGY, 12).add(Aspect.MAGIC, 6), ItemApi.getItem("itemWandCap", 6), new ItemStack[]{new ItemStack(amOre.itemID, 1, 0), new ItemStack(amOre.itemID, 1, 0), new ItemStack(amOre.itemID, 1, 0)});
|
||||
(new DarkResearchItem("CAP_vinteum", "FORBIDDEN", (new AspectList()).add(Aspect.METAL, 1).add(Aspect.MAGIC, 2).add(Aspect.TOOL, 1).add(Aspect.ENERGY, 1), -4, -5, 5, new ItemStack(ForbiddenItems.wandCap, 1, 1))).setPages(new ResearchPage[]{new ResearchPage("forbidden.research_page.CAP_vinteum.1"), new ResearchPage(vinteum_recipe)}).setParents(new String[]{"ROD_witchwood"}).setConcealed().registerResearchItem();
|
||||
(new DarkResearchItem("CAP_vinteum", "FORBIDDEN", "[AM2]", (new AspectList()).add(Aspect.MAGIC, 4).add(Aspect.TOOL, 1).add(Aspect.ENERGY, 2), -4, -5, 5, new ItemStack(ForbiddenItems.wandCap, 1, 1))).setPages(new ResearchPage[]{new ResearchPage("forbidden.research_page.CAP_vinteum.1"), new ResearchPage(vinteum_recipe)}).setParents(new String[]{"ROD_witchwood"}).setSecondary().setConcealed().registerResearchItem();
|
||||
}
|
||||
catch(Exception e)
|
||||
{
|
||||
|
||||
@@ -41,6 +41,7 @@ public class Config
|
||||
public static int morphAxeID;
|
||||
public static int wandCapID;
|
||||
public static int gluttonyShardID;
|
||||
public static int bloodwellID;
|
||||
|
||||
public static int arcaneCakeBlockID;
|
||||
public static int blackFlowerBlockID;
|
||||
@@ -68,6 +69,7 @@ public class Config
|
||||
public static boolean spork = false;
|
||||
public static boolean greedyEnch = true;
|
||||
public static boolean emeraldTrans = true;
|
||||
public static boolean wrathCrazy = false;
|
||||
|
||||
public static int wrathCost = 5;
|
||||
public static int wrathEff = 4;
|
||||
@@ -97,6 +99,7 @@ public class Config
|
||||
morphAxeID = conf.getItem("Chameleon Axe", idCount++).getInt();
|
||||
wandCapID = conf.getItem("Wand Caps", idCount++).getInt();
|
||||
gluttonyShardID = conf.getItem("Gluttony Shard", idCount++).getInt();
|
||||
bloodwellID = conf.getItem("Bloody Scrivener's Tools", idCount++).getInt();
|
||||
|
||||
int blockCount = 3000;
|
||||
arcaneCakeBlockID = conf.getBlock("Thaumic Cake", blockCount++).getInt();
|
||||
@@ -140,6 +143,10 @@ public class Config
|
||||
wrathEff = we.getInt(4);
|
||||
if(wrathEff < 0)
|
||||
wrathEff = 4;
|
||||
Property cw = conf.get("general", "Wrath Cage Cries Havoc", wrathCrazy);
|
||||
cw.comment = "Enable to let the Wrath Cage imprint on ANY non-boss mob. May break your game or make your game Awesome.";
|
||||
wrathCrazy = cw.getBoolean(false);
|
||||
|
||||
Property sd = conf.get("general", "Spork of Doom", spork);
|
||||
sd.comment = "What is this? I don't even...";
|
||||
spork = sd.getBoolean(false);
|
||||
@@ -201,17 +208,17 @@ public class Config
|
||||
spawnerMobs.put("Blaze", Aspect.FIRE);
|
||||
spawnerMobs.put("LavaSlime", Aspect.FIRE);
|
||||
spawnerMobs.put("Witch", Aspect.MAGIC);
|
||||
spawnerMobs.put("Firebat", Aspect.FIRE);
|
||||
spawnerMobs.put("Wisp", Aspect.AURA);
|
||||
spawnerMobs.put("ThaumSlime", Aspect.TAINT);
|
||||
spawnerMobs.put("BrainyZombie", Aspect.MIND);
|
||||
spawnerMobs.put("TaintSpider", Aspect.TAINT);
|
||||
spawnerMobs.put("TaintSwarm", Aspect.TAINT);
|
||||
spawnerMobs.put("TaintedPig", Aspect.TAINT);
|
||||
//spawnerMobs.put("TaintedSheep", Aspect.TAINT);
|
||||
spawnerMobs.put("TaintedCow", Aspect.TAINT);
|
||||
spawnerMobs.put("TaintedChicken", Aspect.TAINT);
|
||||
spawnerMobs.put("TaintedVillager", Aspect.TAINT);
|
||||
spawnerMobs.put("Thaumcraft.Firebat", Aspect.FIRE);
|
||||
spawnerMobs.put("Thaumcraft.Wisp", Aspect.AURA);
|
||||
spawnerMobs.put("Thaumcraft.ThaumSlime", Aspect.TAINT);
|
||||
spawnerMobs.put("Thaumcraft.BrainyZombie", Aspect.MIND);
|
||||
spawnerMobs.put("Thaumcraft.TaintSpider", Aspect.TAINT);
|
||||
spawnerMobs.put("Thaumcraft.TaintSwarm", Aspect.TAINT);
|
||||
spawnerMobs.put("Thaumcraft.TaintedPig", Aspect.TAINT);
|
||||
spawnerMobs.put("Thaumcraft.TaintedSheep", Aspect.TAINT);
|
||||
spawnerMobs.put("Thaumcraft.TaintedCow", Aspect.TAINT);
|
||||
spawnerMobs.put("Thaumcraft.TaintedChicken", Aspect.TAINT);
|
||||
spawnerMobs.put("Thaumcraft.TaintedVillager", Aspect.TAINT);
|
||||
//spawnerMobs.put("Taintacle", DarkAspects.LUST);
|
||||
|
||||
}
|
||||
|
||||
@@ -32,6 +32,7 @@ public class ForbiddenItems
|
||||
public static Item morphSword;
|
||||
public static Item morphShovel;
|
||||
public static Item morphAxe;
|
||||
public static Item bloodwell;
|
||||
|
||||
public static WandRod WAND_ROD_TAINTED;
|
||||
public static WandRod WAND_ROD_INFERNAL;
|
||||
@@ -124,5 +125,11 @@ public class ForbiddenItems
|
||||
OreDictionary.registerOre("nuggetEmerald", new ItemStack(resource, 1, 0));
|
||||
OreDictionary.registerOre("dyeBlack", new ItemStack(resource, 1, 1));
|
||||
|
||||
if(Compat.bm)
|
||||
{
|
||||
bloodwell = new ItemBloodwell(Config.bloodwellID).setUnlocalizedName("Bloodwell");
|
||||
GameRegistry.registerItem(bloodwell, "Bloodwell");
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,117 @@
|
||||
package com.spiteful.forbidden.items;
|
||||
|
||||
import com.spiteful.forbidden.*;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
import java.lang.reflect.Method;
|
||||
import java.util.List;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import net.minecraft.client.renderer.texture.IconRegister;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.Icon;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.ForgeDirection;
|
||||
import thaumcraft.api.IScribeTools;
|
||||
|
||||
public class ItemBloodwell extends Item implements IScribeTools {
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
public Icon icon;
|
||||
|
||||
Method checkOwner;
|
||||
Method syphon;
|
||||
|
||||
public ItemBloodwell(int id) {
|
||||
super(id);
|
||||
maxStackSize = 1;
|
||||
canRepair = false;
|
||||
setMaxDamage(100);
|
||||
setCreativeTab(Forbidden.tab);
|
||||
setHasSubtypes(false);
|
||||
|
||||
try
|
||||
{
|
||||
Class energyItems;
|
||||
try
|
||||
{
|
||||
energyItems = Class.forName("WayofTime.alchemicalWizardry.EnergyItems");
|
||||
}
|
||||
catch(Exception e)
|
||||
{
|
||||
energyItems = Class.forName("WayofTime.alchemicalWizardry.common.itemsEnergyItems");
|
||||
}
|
||||
if(energyItems == null)
|
||||
return;
|
||||
checkOwner = energyItems.getDeclaredMethod("checkAndSetItemOwner", new Class[] {ItemStack.class, EntityPlayer.class});
|
||||
syphon = energyItems.getDeclaredMethod("syphonWhileInContainer", new Class[] {ItemStack.class, Integer.TYPE});
|
||||
}
|
||||
catch(Exception e){}
|
||||
}
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
public void registerIcons(IconRegister ir) {
|
||||
this.icon = ir.registerIcon("forbidden:bloodwell");
|
||||
}
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
public Icon getIconFromDamage(int par1) {
|
||||
return this.icon;
|
||||
}
|
||||
|
||||
/**
|
||||
* Called each tick as long the item is on a player inventory. Uses by maps to check if is on a player hand and
|
||||
* update it's contents.
|
||||
*/
|
||||
public void onUpdate(ItemStack stack, World world, Entity fauxplayer, int par4, boolean par5)
|
||||
{
|
||||
if(stack.getItemDamage() > 0 && stack.hasTagCompound())
|
||||
{
|
||||
EntityPlayer player = null;
|
||||
if(fauxplayer instanceof EntityPlayer)
|
||||
player = (EntityPlayer)fauxplayer;
|
||||
else
|
||||
return;
|
||||
|
||||
try
|
||||
{
|
||||
if(player instanceof EntityPlayer && ((EntityPlayer)player).capabilities.isCreativeMode)
|
||||
stack.setItemDamage(0);
|
||||
else if(((Boolean)(syphon.invoke(null, stack, 25))).booleanValue())
|
||||
stack.setItemDamage(stack.getItemDamage() - 1);
|
||||
else if(player.getHealth() > 6)
|
||||
{
|
||||
player.setHealth(player.getHealth() - 2);
|
||||
stack.setItemDamage(stack.getItemDamage() - 1);
|
||||
}
|
||||
}
|
||||
catch(Exception e){}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer)
|
||||
{
|
||||
try
|
||||
{
|
||||
checkOwner.invoke(null, par1ItemStack, par3EntityPlayer);
|
||||
}
|
||||
catch (Exception e){}
|
||||
return par1ItemStack;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4)
|
||||
{
|
||||
if (par1ItemStack.hasTagCompound())
|
||||
{
|
||||
par3List.add("");
|
||||
par3List.add("Current owner: " + par1ItemStack.stackTagCompound.getString("ownerName"));
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Reference in new issue
Block a user