Recipes commit

Fix
This commit is contained in:
Arcaratus 2015-12-30 17:24:40 -05:00
parent e48eedb874
commit 07097c00a9
16 changed files with 213 additions and 112 deletions

View file

@ -1,6 +1,5 @@
package WayofTime.bloodmagic.block;
import WayofTime.bloodmagic.BloodMagic;
import WayofTime.bloodmagic.api.Constants;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
@ -19,13 +18,11 @@ import java.util.Random;
public class BlockBloodLight extends Block
{
public BlockBloodLight()
{
super(Material.cloth);
setUnlocalizedName(Constants.Mod.MODID + ".bloodLight");
setCreativeTab(BloodMagic.tabBloodMagic);
}
@Override

View file

@ -7,7 +7,6 @@ import net.minecraft.block.material.Material;
public class BlockBloodRune extends BlockString
{
public static final String[] names = { "blank", "speed", "efficiency", "sacrifice", "selfSacrifice", "displacement", "capacity", "augCapacity", "orb", "acceleration" };
public BlockBloodRune()

View file

@ -25,7 +25,6 @@ import java.util.List;
public class ItemBindable extends Item implements IBindable
{
private int lpUsed;
public ItemBindable()
@ -36,48 +35,58 @@ public class ItemBindable extends Item implements IBindable
setMaxStackSize(1);
}
public static boolean syphonBatteries(ItemStack stack, EntityPlayer player, int damageToBeDone)
public static boolean syphonNetwork(ItemStack stack, EntityPlayer player, int lpUsed)
{
if (player == null) return false;
if (!player.worldObj.isRemote)
{
return NetworkHelper.syphonAndDamage(NetworkHelper.getSoulNetwork(player, player.worldObj), damageToBeDone);
} else
return NetworkHelper.syphonAndDamage(NetworkHelper.getSoulNetwork(player, player.worldObj), lpUsed);
}
else
{
double posX = player.posX;
double posY = player.posY;
double posZ = player.posZ;
// SpellHelper.sendIndexedParticleToAllAround(player.worldObj, posX,
// posY, posZ, 20, player.worldObj.provider.getDimensionId(), 4,
// posX, posY, posZ);
// SpellHelper.sendIndexedParticleToAllAround(player.worldObj, posX,posY, posZ, 20, player.worldObj.provider.getDimensionId(), 4, posX, posY, posZ);
player.worldObj.playSoundEffect((double) ((float) player.posX + 0.5F), (double) ((float) player.posY + 0.5F), (double) ((float) player.posZ + 0.5F), "random.fizz", 0.5F, 2.6F + (player.worldObj.rand.nextFloat() - player.worldObj.rand.nextFloat()) * 0.8F);
}
return true;
}
public static void hurtPlayer(EntityPlayer user, int energySyphoned)
public static boolean syphonNetwork(ItemStack itemStack, int lpUsed)
{
if (energySyphoned < 100 && energySyphoned > 0)
if (itemStack.getItem() instanceof ItemBindable)
{
ItemBindable itemBindable = (ItemBindable) itemStack.getItem();
return !Strings.isNullOrEmpty(itemBindable.getBindableOwner(itemStack)) && syphonNetwork(itemStack, PlayerHelper.getPlayerFromUUID(itemBindable.getBindableOwner(itemStack)), lpUsed);
}
return false;
}
public static void hurtPlayer(EntityPlayer user, int lpSyphoned)
{
if (user != null)
{
if (lpSyphoned < 100 && lpSyphoned > 0)
{
if (!user.capabilities.isCreativeMode)
{
user.attackEntityFrom(BloodMagicAPI.getDamageSource(), 0F); // Emulate
// an
// attack
user.attackEntityFrom(BloodMagicAPI.getDamageSource(), 0F); // Emulate an attack
user.setHealth(user.getHealth() - 1);
if (user.getHealth() <= 0.0005f)
user.onDeath(BloodMagicAPI.getDamageSource());
if (user.getHealth() <= 0.0005f) user.onDeath(BloodMagicAPI.getDamageSource());
}
} else if (energySyphoned >= 100)
}
else if (lpSyphoned >= 100)
{
if (!user.capabilities.isCreativeMode)
{
for (int i = 0; i < ((energySyphoned + 99) / 100); i++)
for (int i = 0; i < ((lpSyphoned + 99) / 100); i++)
{
user.attackEntityFrom(BloodMagicAPI.getDamageSource(), 0F); // Emulate
// an
// attack
user.attackEntityFrom(BloodMagicAPI.getDamageSource(), 0F); // Emulate an attack
user.setHealth(user.getHealth() - 1);
if (user.getHealth() <= 0.0005f)
@ -89,6 +98,7 @@ public class ItemBindable extends Item implements IBindable
}
}
}
}
@Override
@SideOnly(Side.CLIENT)

View file

@ -27,7 +27,6 @@ import java.util.List;
public class ItemBoundSword extends ItemSword
{
private int lpUsed;
public ItemBoundSword()
@ -73,7 +72,7 @@ public class ItemBoundSword extends ItemSword
{
if (player.isSneaking())
setActivated(stack, !getActivated(stack));
if (getActivated(stack) && ItemBindable.syphonBatteries(stack, player, lpUsed))
if (getActivated(stack) && ItemBindable.syphonNetwork(stack, player, lpUsed))
return stack;
if (!player.isSneaking() && getActivated(stack))

View file

@ -27,7 +27,6 @@ import java.util.Set;
@Getter
public class ItemBoundTool extends ItemBindable
{
private Set<Block> effectiveBlocks;
protected final String tooltipBase;
private final String name;
@ -79,17 +78,17 @@ public class ItemBoundTool extends ItemBindable
// if (!world.isRemote)
{
if (player.isSneaking())
setActivated(stack, !getActivated(stack));
if (player.isSneaking()) setActivated(stack, !getActivated(stack));
// if (getActivated(stack) && ItemBindable.syphonBatteries(stack,
// player, getLPUsed()))
// return stack;
// if (getActivated(stack) && ItemBindable.syphonNetwork(stack, player, getLPUsed()))
// return stack;
if (!player.isSneaking() && getActivated(stack))
{
BoundToolEvent.Charge event = new BoundToolEvent.Charge(player, stack);
if (MinecraftForge.EVENT_BUS.post(event))
return event.result;
if (MinecraftForge.EVENT_BUS.post(event)) return event.result;
player.setItemInUse(stack, this.getMaxItemUseDuration(stack));
beingHeldDown = true;
@ -102,7 +101,7 @@ public class ItemBoundTool extends ItemBindable
@Override
public boolean onItemUseFirst(ItemStack stack, EntityPlayer player, World world, BlockPos blockPos, EnumFacing side, float hitX, float hitY, float hitZ)
{
if (BindableHelper.checkAndSetItemOwner(stack, player) && ItemBindable.syphonBatteries(stack, player, getLPUsed()))
if (BindableHelper.checkAndSetItemOwner(stack, player) && ItemBindable.syphonNetwork(stack, player, getLPUsed()))
return false;
return false;
@ -123,8 +122,7 @@ public class ItemBoundTool extends ItemBindable
{
int i = this.getMaxItemUseDuration(stack) - timeLeft;
BoundToolEvent.Release event = new BoundToolEvent.Release(playerIn, stack, i);
if (MinecraftForge.EVENT_BUS.post(event))
return;
if (MinecraftForge.EVENT_BUS.post(event)) return;
i = event.charge;
@ -169,10 +167,8 @@ public class ItemBoundTool extends ItemBindable
if (StatCollector.canTranslate(tooltipBase + "desc"))
tooltip.add(TextHelper.localizeEffect(tooltipBase + "desc"));
if (getActivated(stack))
tooltip.add(TextHelper.localize("tooltip.BloodMagic.activated"));
else
tooltip.add(TextHelper.localize("tooltip.BloodMagic.deactivated"));
if (getActivated(stack)) tooltip.add(TextHelper.localize("tooltip.BloodMagic.activated"));
else tooltip.add(TextHelper.localize("tooltip.BloodMagic.deactivated"));
super.addInformation(stack, player, tooltip, advanced);
}

View file

@ -0,0 +1,69 @@
package WayofTime.bloodmagic.item;
import WayofTime.bloodmagic.api.Constants;
import WayofTime.bloodmagic.api.util.helper.PlayerHelper;
import com.google.common.base.Strings;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.server.MinecraftServer;
import net.minecraftforge.fml.common.IFuelHandler;
public class ItemLavaCrystal extends ItemBindable implements IFuelHandler
{
public ItemLavaCrystal()
{
super();
setUnlocalizedName(Constants.Mod.MODID + ".lavaCrystal");
setLPUsed(1);
}
@Override
public ItemStack getContainerItem(ItemStack itemStack)
{
syphonNetwork(itemStack, getLPUsed());
ItemStack copiedStack = itemStack.copy();
copiedStack.setItemDamage(copiedStack.getItemDamage());
copiedStack.stackSize = 1;
return copiedStack;
}
@Override
public boolean hasContainerItem(ItemStack itemStack)
{
return true;
}
@Override
public int getBurnTime(ItemStack fuel)
{
if (fuel == null)
{
return 0;
}
Item fuelItem = fuel.getItem();
if (fuelItem instanceof ItemLavaCrystal)
{
if (syphonNetwork(fuel, getLPUsed()))
{
return 1;
}
else
{
NBTTagCompound tag = fuel.getTagCompound();
if (tag == null || MinecraftServer.getServer() == null || MinecraftServer.getServer().getConfigurationManager() == null)
return 0;
if (Strings.isNullOrEmpty(((ItemLavaCrystal) fuelItem).getBindableOwner(fuel))) return 0;
else hurtPlayer(PlayerHelper.getPlayerFromUUID(getBindableOwner(fuel)), getLPUsed());
return 0;
}
}
return 0;
}
}

View file

@ -18,7 +18,6 @@ import java.util.List;
public class ItemPackSacrifice extends ItemArmor implements IAltarManipulator
{
public final int CONVERSION = 100; // How much LP per heart
public final int CAPACITY = 10000; // Max LP storage

View file

@ -36,7 +36,7 @@ public class ItemSigilAir extends ItemSigilBase
player.fallDistance = 0;
if (!player.capabilities.isCreativeMode)
this.setUnusable(stack, !syphonBatteries(stack, player, getLPUsed()));
this.setUnusable(stack, !syphonNetwork(stack, player, getLPUsed()));
}
return super.onItemRightClick(stack, world, player);

View file

@ -21,7 +21,7 @@ public class ItemSigilBloodLight extends ItemSigilBase
@Override
public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player)
{
if (BindableHelper.checkAndSetItemOwner(stack, player) && ItemBindable.syphonBatteries(stack, player, getLPUsed() * 5) && !world.isRemote)
if (BindableHelper.checkAndSetItemOwner(stack, player) && ItemBindable.syphonNetwork(stack, player, getLPUsed() * 5) && !world.isRemote)
world.spawnEntityInWorld(new EntityBloodLight(world, player));
return stack;
@ -30,10 +30,9 @@ public class ItemSigilBloodLight extends ItemSigilBase
@Override
public boolean onItemUseFirst(ItemStack stack, EntityPlayer player, World world, BlockPos blockPos, EnumFacing side, float hitX, float hitY, float hitZ)
{
if (world.isRemote)
return false;
if (world.isRemote) return false;
if (BindableHelper.checkAndSetItemOwner(stack, player) && ItemBindable.syphonBatteries(stack, player, getLPUsed()))
if (BindableHelper.checkAndSetItemOwner(stack, player) && ItemBindable.syphonNetwork(stack, player, getLPUsed()))
{
BlockPos newPos = blockPos.offset(side);

View file

@ -32,8 +32,7 @@ public class ItemSigilLava extends ItemSigilBase
if (movingobjectposition != null)
{
ItemStack ret = net.minecraftforge.event.ForgeEventFactory.onBucketUse(player, world, stack, movingobjectposition);
if (ret != null)
return ret;
if (ret != null) return ret;
if (movingobjectposition.typeOfHit == MovingObjectPosition.MovingObjectType.BLOCK)
{
@ -56,7 +55,7 @@ public class ItemSigilLava extends ItemSigilBase
return stack;
}
if (this.canPlaceLava(world, blockpos1) && syphonBatteries(stack, player, getLPUsed()) && this.tryPlaceLava(world, blockpos1))
if (this.canPlaceLava(world, blockpos1) && syphonNetwork(stack, player, getLPUsed()) && this.tryPlaceLava(world, blockpos1))
{
return stack;
}
@ -64,7 +63,7 @@ public class ItemSigilLava extends ItemSigilBase
}
if (!player.capabilities.isCreativeMode)
this.setUnusable(stack, !syphonBatteries(stack, player, getLPUsed()));
this.setUnusable(stack, !syphonNetwork(stack, player, getLPUsed()));
}
return stack;
@ -88,7 +87,7 @@ public class ItemSigilLava extends ItemSigilBase
FluidStack fluid = new FluidStack(FluidRegistry.LAVA, 1000);
int amount = ((IFluidHandler) tile).fill(side, fluid, false);
if (amount > 0 && syphonBatteries(stack, player, getLPUsed()))
if (amount > 0 && syphonNetwork(stack, player, getLPUsed()))
{
((IFluidHandler) tile).fill(side, fluid, true);
}
@ -106,7 +105,7 @@ public class ItemSigilLava extends ItemSigilBase
return false;
}
if (this.canPlaceLava(world, newPos) && syphonBatteries(stack, player, getLPUsed()))
if (this.canPlaceLava(world, newPos) && syphonNetwork(stack, player, getLPUsed()))
{
return this.tryPlaceLava(world, newPos);
}
@ -119,10 +118,12 @@ public class ItemSigilLava extends ItemSigilBase
if (!world.isAirBlock(blockPos) && world.getBlockState(blockPos).getBlock().getMaterial().isSolid())
{
return false;
} else if ((world.getBlockState(blockPos).getBlock() == Blocks.lava || world.getBlockState(blockPos).getBlock() == Blocks.flowing_lava) && world.getBlockState(blockPos).getBlock().getMetaFromState(world.getBlockState(blockPos)) == 0)
}
else if ((world.getBlockState(blockPos).getBlock() == Blocks.lava || world.getBlockState(blockPos).getBlock() == Blocks.flowing_lava) && world.getBlockState(blockPos).getBlock().getMetaFromState(world.getBlockState(blockPos)) == 0)
{
return false;
} else
}
else
{
world.setBlockState(blockPos, Blocks.lava.getBlockState().getBaseState(), 3);
return true;

View file

@ -29,10 +29,8 @@ public class ItemSigilToggleable extends ItemSigilBase
public void addInformation(ItemStack stack, EntityPlayer player, List<String> tooltip, boolean advanced)
{
super.addInformation(stack, player, tooltip, advanced);
if (getActivated(stack))
tooltip.add(TextHelper.localize("tooltip.BloodMagic.activated"));
else
tooltip.add(TextHelper.localize("tooltip.BloodMagic.deactivated"));
if (getActivated(stack)) tooltip.add(TextHelper.localize("tooltip.BloodMagic.activated"));
else tooltip.add(TextHelper.localize("tooltip.BloodMagic.deactivated"));
}
@Override
@ -40,10 +38,8 @@ public class ItemSigilToggleable extends ItemSigilBase
{
if (!world.isRemote && !isUnusable(stack))
{
if (player.isSneaking())
setActivated(stack, !getActivated(stack));
if (getActivated(stack) && ItemBindable.syphonBatteries(stack, player, getLPUsed()))
return stack;
if (player.isSneaking()) setActivated(stack, !getActivated(stack));
if (getActivated(stack) && ItemBindable.syphonNetwork(stack, player, getLPUsed())) return stack;
}
return stack;
@ -52,7 +48,7 @@ public class ItemSigilToggleable extends ItemSigilBase
@Override
public boolean onItemUseFirst(ItemStack stack, EntityPlayer player, World world, BlockPos blockPos, EnumFacing side, float hitX, float hitY, float hitZ)
{
if (BindableHelper.checkAndSetItemOwner(stack, player) && ItemBindable.syphonBatteries(stack, player, getLPUsed()))
if (BindableHelper.checkAndSetItemOwner(stack, player) && ItemBindable.syphonNetwork(stack, player, getLPUsed()))
return onSigilUseFirst(stack, player, world, blockPos, side, hitX, hitY, hitZ);
return false;
@ -70,7 +66,7 @@ public class ItemSigilToggleable extends ItemSigilBase
{
if (worldIn.getWorldTime() % 100 == 0)
{
if (!ItemBindable.syphonBatteries(stack, (EntityPlayer) entityIn, getLPUsed()))
if (!ItemBindable.syphonNetwork(stack, (EntityPlayer) entityIn, getLPUsed()))
{
setActivated(stack, false);
}

View file

@ -14,7 +14,6 @@ import net.minecraftforge.fluids.IFluidHandler;
public class ItemSigilVoid extends ItemSigilBase
{
public ItemSigilVoid()
{
super("void", 50);
@ -30,8 +29,7 @@ public class ItemSigilVoid extends ItemSigilBase
if (movingobjectposition != null)
{
ItemStack ret = net.minecraftforge.event.ForgeEventFactory.onBucketUse(player, world, stack, movingobjectposition);
if (ret != null)
return ret;
if (ret != null) return ret;
if (movingobjectposition.typeOfHit == MovingObjectPosition.MovingObjectType.BLOCK)
{
@ -52,19 +50,20 @@ public class ItemSigilVoid extends ItemSigilBase
return stack;
}
if (world.getBlockState(blockpos).getBlock().getMaterial().isLiquid() && syphonBatteries(stack, player, getLPUsed()))
if (world.getBlockState(blockpos).getBlock().getMaterial().isLiquid() && syphonNetwork(stack, player, getLPUsed()))
{
world.setBlockToAir(blockpos);
return stack;
}
}
} else
}
else
{
return stack;
}
if (!player.capabilities.isCreativeMode)
this.setUnusable(stack, !syphonBatteries(stack, player, getLPUsed()));
this.setUnusable(stack, !syphonNetwork(stack, player, getLPUsed()));
}
return stack;
@ -88,7 +87,7 @@ public class ItemSigilVoid extends ItemSigilBase
{
FluidStack amount = ((IFluidHandler) tile).drain(side, 1000, false);
if (amount != null && amount.amount > 0 && syphonBatteries(stack, player, getLPUsed()))
if (amount != null && amount.amount > 0 && syphonNetwork(stack, player, getLPUsed()))
{
((IFluidHandler) tile).drain(side, 1000, true);
return true;
@ -104,7 +103,7 @@ public class ItemSigilVoid extends ItemSigilBase
return false;
}
if (world.getBlockState(newPos).getBlock() instanceof IFluidBlock && syphonBatteries(stack, player, getLPUsed()))
if (world.getBlockState(newPos).getBlock() instanceof IFluidBlock && syphonNetwork(stack, player, getLPUsed()))
{
world.setBlockToAir(newPos);
return true;

View file

@ -17,7 +17,6 @@ import net.minecraftforge.fluids.IFluidHandler;
public class ItemSigilWater extends ItemSigilBase
{
public ItemSigilWater()
{
super("water", 100);
@ -33,8 +32,7 @@ public class ItemSigilWater extends ItemSigilBase
if (movingobjectposition != null)
{
ItemStack ret = net.minecraftforge.event.ForgeEventFactory.onBucketUse(player, world, stack, movingobjectposition);
if (ret != null)
return ret;
if (ret != null) return ret;
if (movingobjectposition.typeOfHit == MovingObjectPosition.MovingObjectType.BLOCK)
{
@ -57,7 +55,7 @@ public class ItemSigilWater extends ItemSigilBase
return stack;
}
if (this.canPlaceWater(world, blockpos1) && syphonBatteries(stack, player, getLPUsed()) && this.tryPlaceWater(world, blockpos1))
if (this.canPlaceWater(world, blockpos1) && syphonNetwork(stack, player, getLPUsed()) && this.tryPlaceWater(world, blockpos1))
{
return stack;
}
@ -65,7 +63,7 @@ public class ItemSigilWater extends ItemSigilBase
}
if (!player.capabilities.isCreativeMode)
this.setUnusable(stack, !syphonBatteries(stack, player, getLPUsed()));
this.setUnusable(stack, !syphonNetwork(stack, player, getLPUsed()));
}
return stack;
@ -90,7 +88,7 @@ public class ItemSigilWater extends ItemSigilBase
FluidStack fluid = new FluidStack(FluidRegistry.WATER, 1000);
int amount = ((IFluidHandler) tile).fill(side, fluid, false);
if (amount > 0 && syphonBatteries(stack, player, getLPUsed()))
if (amount > 0 && syphonNetwork(stack, player, getLPUsed()))
{
((IFluidHandler) tile).fill(side, fluid, true);
}
@ -108,7 +106,7 @@ public class ItemSigilWater extends ItemSigilBase
return false;
}
if (this.canPlaceWater(world, newPos) && syphonBatteries(stack, player, getLPUsed()))
if (this.canPlaceWater(world, newPos) && syphonNetwork(stack, player, getLPUsed()))
{
return this.tryPlaceWater(world, newPos);
}
@ -121,10 +119,12 @@ public class ItemSigilWater extends ItemSigilBase
if (!world.isAirBlock(blockPos) && world.getBlockState(blockPos).getBlock().getMaterial().isSolid())
{
return false;
} else if ((world.getBlockState(blockPos).getBlock() == Blocks.water || world.getBlockState(blockPos).getBlock() == Blocks.flowing_water) && world.getBlockState(blockPos).getBlock().getMetaFromState(world.getBlockState(blockPos)) == 0)
}
else if ((world.getBlockState(blockPos).getBlock() == Blocks.water || world.getBlockState(blockPos).getBlock() == Blocks.flowing_water) && world.getBlockState(blockPos).getBlock().getMetaFromState(world.getBlockState(blockPos)) == 0)
{
return false;
} else
}
else
{
return true;
}
@ -139,7 +139,8 @@ public class ItemSigilWater extends ItemSigilBase
if (!worldIn.isAirBlock(pos) && !flag)
{
return false;
} else
}
else
{
if (worldIn.provider.doesWaterVaporize())
{
@ -152,7 +153,8 @@ public class ItemSigilWater extends ItemSigilBase
{
worldIn.spawnParticle(EnumParticleTypes.SMOKE_LARGE, (double) i + Math.random(), (double) j + Math.random(), (double) k + Math.random(), 0.0D, 0.0D, 0.0D, 0);
}
} else
}
else
{
if (!worldIn.isRemote && flag && !material.isLiquid())
{

View file

@ -17,7 +17,6 @@ import WayofTime.bloodmagic.util.helper.InventoryRenderHelper;
public class ModItems
{
public static Item bloodOrb;
public static BloodOrb orbWeak;
public static BloodOrb orbApprentice;
@ -38,6 +37,8 @@ public class ModItems
public static Item daggerOfSacrifice;
public static Item ritualDiviner;
public static Item lavaCrystal;
public static Item boundSword;
public static Item boundPickaxe;
public static Item boundAxe;
@ -103,6 +104,9 @@ public class ModItems
ritualDiviner = registerItem(new ItemRitualDiviner());
lavaCrystal = registerItem(new ItemLavaCrystal());
GameRegistry.registerFuelHandler(new ItemLavaCrystal());
boundSword = registerItem(new ItemBoundSword());
boundPickaxe = registerItem(new ItemBoundPickaxe());
boundAxe = registerItem(new ItemBoundAxe());
@ -177,6 +181,8 @@ public class ModItems
renderHelper.itemRender(ritualDiviner, 0);
renderHelper.itemRender(lavaCrystal);
renderHelper.itemRender(boundSword, 0);
renderHelper.itemRender(boundSword, 1);
renderHelper.itemRender(boundPickaxe, 0);

View file

@ -24,7 +24,6 @@ import net.minecraftforge.oredict.RecipeSorter;
public class ModRecipes
{
public static void init()
{
RecipeSorter.register(Constants.Mod.DOMAIN + "shapedorb", ShapedBloodOrbRecipe.class, RecipeSorter.Category.SHAPED, "before:minecraft:shapeless");
@ -37,43 +36,69 @@ public class ModRecipes
public static void addCraftingRecipes()
{
GameRegistry.addRecipe(new ShapedBloodOrbRecipe(ItemComponent.getStack(ItemComponent.REAGENT_BINDING), "xox", "oSo", "xox", 'S', OrbRegistry.getOrbStack(ModItems.orbMagician), 'o', new ItemStack(Items.redstone), 'x', new ItemStack(Items.glowstone_dust)));
// Added for testing
GameRegistry.addRecipe(new ShapelessBloodOrbRecipe(new ItemStack(Items.gold_ingot), new ItemStack(ModItems.slate, 1, 1), OrbRegistry.getOrbStack(ModItems.orbApprentice)));
GameRegistry.addRecipe(new ShapedBloodOrbRecipe(new ItemStack(Items.diamond), " ", " s ", " o ", 's', new ItemStack(ModItems.slate), 'o', OrbRegistry.getOrbStack(ModItems.orbWeak)));
GameRegistry.addRecipe(new ItemStack(ModItems.sacrificialDagger), "aaa", " ba", "c a", 'a', Blocks.glass, 'b', Items.gold_ingot, 'c', Items.iron_ingot);
GameRegistry.addRecipe(new ItemStack(ModBlocks.altar), "a a", "aba", "cdc", 'a', Blocks.stone, 'b', Blocks.furnace, 'c', Items.gold_ingot, 'd', Items.diamond);
GameRegistry.addRecipe(new ItemStack(ModItems.packSelfSacrifice), "aba", "cdc", "aea", 'a', Blocks.glass, 'b', Items.bucket, 'c', Items.flint, 'd', Items.leather_chestplate, 'e', ModItems.slate);
GameRegistry.addRecipe(new ItemStack(ModItems.packSacrifice), "aba", "cdc", "aea", 'a', Blocks.glass, 'b', Items.bucket, 'c', Items.iron_ingot, 'd', Items.leather_chestplate, 'e', ModItems.slate);
GameRegistry.addRecipe(new ItemStack(ModItems.ritualDiviner), "dfd", "ase", "dwd", 'f', EnumRuneType.FIRE.getScribeStack(), 'a', EnumRuneType.AIR.getScribeStack(), 'w', EnumRuneType.WATER.getScribeStack(), 'e', EnumRuneType.EARTH.getScribeStack(), 'd', new ItemStack(Items.diamond), 's', new ItemStack(Items.stick));
GameRegistry.addRecipe(new ItemStack(ModBlocks.bloodStoneBrick), "aa", "aa", 'a', new ItemStack(ModBlocks.bloodStoneBrick, 1, 1));
GameRegistry.addShapelessRecipe(new ItemStack(ModBlocks.bloodStoneBrick, 1, 1), Blocks.stone, ModItems.bloodShard);
GameRegistry.addRecipe(new ShapedBloodOrbRecipe(new ItemStack(ModItems.lavaCrystal), "aba", "bcb", "ded", 'a', Blocks.glass, 'b', Items.lava_bucket, 'c', OrbRegistry.getOrbStack(ModItems.orbWeak), 'd', Blocks.obsidian, 'e', Items.diamond));
GameRegistry.addRecipe(new ShapedBloodOrbRecipe(ItemComponent.getStack(ItemComponent.REAGENT_BINDING), "xox", "oSo", "xox", 'S', OrbRegistry.getOrbStack(ModItems.orbMagician), 'o', new ItemStack(Items.redstone), 'x', new ItemStack(Items.glowstone_dust)));
GameRegistry.addRecipe(new ShapedBloodOrbRecipe(ItemComponent.getStack(ItemComponent.REAGENT_WATER), "aaa", "aba", "aca", 'a', Items.water_bucket, 'b', Items.sugar, 'c', OrbRegistry.getOrbStack(ModItems.orbWeak)));
GameRegistry.addRecipe(new ShapedBloodOrbRecipe(ItemComponent.getStack(ItemComponent.REAGENT_LAVA), "aba", "aca", "ada", 'a', Items.lava_bucket, 'b', Items.blaze_powder, 'c', Items.redstone, 'd', ModItems.lavaCrystal));
GameRegistry.addRecipe(new ShapedBloodOrbRecipe(ItemComponent.getStack(ItemComponent.REAGENT_VOID), "aba", "aca", "ada", 'a', Items.bucket, 'b', Items.string, 'c', Items.gunpowder, 'd', OrbRegistry.getOrbStack(ModItems.orbApprentice)));
GameRegistry.addRecipe(new ShapedBloodOrbRecipe(ItemComponent.getStack(ItemComponent.REAGENT_GROWTH), "aba", "bcb", "ada", 'a', Blocks.sapling, 'b', Items.reeds, 'c', Items.sugar, 'd', OrbRegistry.getOrbStack(ModItems.orbApprentice)));
GameRegistry.addRecipe(new ShapedBloodOrbRecipe(ItemComponent.getStack(ItemComponent.REAGENT_FASTMINER), "aba", "cde", "afa", 'a', Blocks.stone, 'b', Items.iron_pickaxe, 'c', Items.iron_shovel, 'd', Items.gunpowder, 'e', Items.iron_axe, 'f', OrbRegistry.getOrbStack(ModItems.orbApprentice)));
GameRegistry.addRecipe(new ShapedBloodOrbRecipe(ItemComponent.getStack(ItemComponent.REAGENT_AFFINITY), "aba", "cde", "afa", 'a', Blocks.obsidian, 'b', ModItems.sigilAir, 'c', ModItems.sigilWater, 'd', Items.glowstone_dust, 'e', ModItems.sigilLava, 'f', OrbRegistry.getOrbStack(ModItems.orbMagician)));
GameRegistry.addRecipe(new ShapedBloodOrbRecipe(ItemComponent.getStack(ItemComponent.REAGENT_SIGHT), "aba", "aca", "ded", 'a', Blocks.glass, 'b', ModItems.sigilDivination, 'c', Items.glowstone_dust, 'd', ModItems.bucketEssence, 'e', OrbRegistry.getOrbStack(ModItems.orbApprentice)));
GameRegistry.addRecipe(new ShapedBloodOrbRecipe(new ItemStack(ModBlocks.bloodRune), "aaa", "bcb", "aaa", 'a', Blocks.stone, 'b', ModItems.slate, 'c', OrbRegistry.getOrbStack(ModItems.orbWeak)));
GameRegistry.addRecipe(new ShapedBloodOrbRecipe(new ItemStack(ModBlocks.bloodRune, 1, 1), "aba", "cdc", "aba", 'a', Blocks.stone, 'b', ModItems.slate, 'c', Items.sugar, 'd', ModBlocks.bloodRune)); //Speed
// GameRegistry.addRecipe(new ShapedBloodOrbRecipe(new ItemStack(ModBlocks.bloodRune, 1, 2), "aba", "cdc", "aba", 'a', Blocks.stone, 'b', ModItems.slate, 'c', Items.sugar, 'd', ModBlocks.bloodRune)); //Efficiency
GameRegistry.addRecipe(new ShapedBloodOrbRecipe(new ItemStack(ModBlocks.bloodRune, 1, 3), "aba", "cdc", "aea", 'a', Blocks.stone, 'b', new ItemStack(ModItems.slate, 1, 1), 'c', Items.gold_ingot, 'd', ModBlocks.bloodRune, 'e', OrbRegistry.getOrbStack(ModItems.orbApprentice))); //Sacrifice
GameRegistry.addRecipe(new ShapedBloodOrbRecipe(new ItemStack(ModBlocks.bloodRune, 1, 4), "aba", "cdc", "aea", 'a', Blocks.stone, 'b', new ItemStack(ModItems.slate, 1, 1), 'c', Items.glowstone_dust, 'd', ModBlocks.bloodRune, 'e', OrbRegistry.getOrbStack(ModItems.orbApprentice))); //Self-Sacrifice
GameRegistry.addRecipe(new ShapedBloodOrbRecipe(new ItemStack(ModBlocks.bloodRune, 1, 5), "aba", "bcb", "ada", 'a', Blocks.stone, 'b', Items.water_bucket, 'c', ModBlocks.bloodRune, 'd', new ItemStack(ModItems.slate, 1, 2))); //Displacement
GameRegistry.addRecipe(new ShapedBloodOrbRecipe(new ItemStack(ModBlocks.bloodRune, 1, 6), "aba", "bcb", "ada", 'a', Blocks.stone, 'b', Items.bucket, 'c', ModBlocks.bloodRune, 'd', new ItemStack(ModItems.slate, 1, 2))); //Capacity
GameRegistry.addRecipe(new ShapedBloodOrbRecipe(new ItemStack(ModBlocks.bloodRune, 1, 7), "aba", "cdc", "aea", 'a', Blocks.obsidian, 'b', new ItemStack(ModItems.slate, 1, 3), 'c', Items.bucket, 'd', new ItemStack(ModBlocks.bloodRune, 1, 6), 'e', OrbRegistry.getOrbStack(ModItems.orbMaster))); //Augmented Capacity
GameRegistry.addRecipe(new ShapedBloodOrbRecipe(new ItemStack(ModBlocks.bloodRune, 1, 8), "aba", "cdc", "aba", 'a', Blocks.stone, 'b', Items.diamond, 'c', ModBlocks.bloodRune, 'd', OrbRegistry.getOrbStack(ModItems.orbMaster))); //Orb
GameRegistry.addRecipe(new ShapedBloodOrbRecipe(new ItemStack(ModBlocks.bloodRune, 1, 9), "aba", "cdc", "aea", 'a', Items.bucket, 'b', new ItemStack(ModItems.slate, 1, 4), 'c', Items.gold_ingot, 'd', new ItemStack(ModBlocks.bloodRune, 1, 1), 'e', OrbRegistry.getOrbStack(ModItems.orbArchmage))); //Acceleration
GameRegistry.addRecipe(new ShapedBloodOrbRecipe(new ItemStack(ModBlocks.ritualStone), "aba", "bcb", "aba", 'a', Blocks.obsidian, 'b', new ItemStack(ModItems.slate, 1, 1), 'c', OrbRegistry.getOrbStack(ModItems.orbApprentice)));
GameRegistry.addRecipe(new ShapedBloodOrbRecipe(new ItemStack(ModBlocks.ritualController), "aba", "bcb", "aba", 'a', Blocks.obsidian, 'b', ModBlocks.ritualStone, 'c', OrbRegistry.getOrbStack(ModItems.orbMagician)));
GameRegistry.addRecipe(new ShapedBloodOrbRecipe(new ItemStack(ModBlocks.ritualController, 1, 1), "aba", "bcb", "aba", 'a', Blocks.obsidian, 'b', Blocks.stone, 'c', OrbRegistry.getOrbStack(ModItems.orbWeak)));
}
public static void addAltarRecipes()
{
// ONE
AltarRecipeRegistry.registerRecipe(new AltarRecipeRegistry.AltarRecipe(OrbRegistry.getOrbStack(ModItems.orbWeak), OrbRegistry.getOrbStack(ModItems.orbWeak), EnumAltarTier.ONE, 5000, 2, 1, true));
AltarRecipeRegistry.registerRecipe(new AltarRecipeRegistry.AltarRecipe(new ItemStack(Items.diamond), OrbRegistry.getOrbStack(ModItems.orbWeak), EnumAltarTier.ONE, 2000, 2, 1, false));
AltarRecipeRegistry.registerRecipe(new AltarRecipeRegistry.AltarRecipe(new ItemStack(Blocks.stone), new ItemStack(ModItems.slate), EnumAltarTier.ONE, 1000, 5, 5, false));
AltarRecipeRegistry.registerRecipe(new AltarRecipeRegistry.AltarRecipe(new ItemStack(Items.diamond), OrbRegistry.getOrbStack(ModItems.orbWeak), EnumAltarTier.ONE, 2000, 2, 1));
AltarRecipeRegistry.registerRecipe(new AltarRecipeRegistry.AltarRecipe(new ItemStack(Blocks.stone), new ItemStack(ModItems.slate), EnumAltarTier.ONE, 1000, 5, 5));
// TWO
AltarRecipeRegistry.registerRecipe(new AltarRecipeRegistry.AltarRecipe(new ItemStack(Items.emerald), OrbRegistry.getOrbStack(ModItems.orbApprentice), EnumAltarTier.TWO, 5000, 2, 1, false));
AltarRecipeRegistry.registerRecipe(new AltarRecipeRegistry.AltarRecipe(new ItemStack(ModItems.slate), new ItemStack(ModItems.slate, 1, 1), EnumAltarTier.TWO, 2000, 5, 5, false));
AltarRecipeRegistry.registerRecipe(new AltarRecipeRegistry.AltarRecipe(new ItemStack(Items.emerald), OrbRegistry.getOrbStack(ModItems.orbApprentice), EnumAltarTier.TWO, 5000, 2, 1));
AltarRecipeRegistry.registerRecipe(new AltarRecipeRegistry.AltarRecipe(new ItemStack(ModItems.slate), new ItemStack(ModItems.slate, 1, 1), EnumAltarTier.TWO, 2000, 5, 5));
AltarRecipeRegistry.registerRecipe(new AltarRecipeRegistry.AltarRecipe(new ItemStack(Items.iron_sword), new ItemStack(ModItems.daggerOfSacrifice), EnumAltarTier.TWO, 3000, 5, 5));
// THREE
AltarRecipeRegistry.registerRecipe(new AltarRecipeRegistry.AltarRecipe(new ItemStack(Blocks.gold_block), OrbRegistry.getOrbStack(ModItems.orbMagician), EnumAltarTier.THREE, 25000, 2, 1, false));
AltarRecipeRegistry.registerRecipe(new AltarRecipeRegistry.AltarRecipe(new ItemStack(ModItems.slate, 1, 1), new ItemStack(ModItems.slate, 1, 2), EnumAltarTier.THREE, 5000, 15, 10, false));
AltarRecipeRegistry.registerRecipe(new AltarRecipeRegistry.AltarRecipe(new ItemStack(Blocks.obsidian), EnumRuneType.EARTH.getScribeStack(), EnumAltarTier.THREE, 1000, 5, 5, false));
AltarRecipeRegistry.registerRecipe(new AltarRecipeRegistry.AltarRecipe(new ItemStack(Blocks.lapis_block), EnumRuneType.WATER.getScribeStack(), EnumAltarTier.THREE, 1000, 5, 5, false));
AltarRecipeRegistry.registerRecipe(new AltarRecipeRegistry.AltarRecipe(new ItemStack(Items.magma_cream), EnumRuneType.FIRE.getScribeStack(), EnumAltarTier.THREE, 1000, 5, 5, false));
AltarRecipeRegistry.registerRecipe(new AltarRecipeRegistry.AltarRecipe(new ItemStack(Items.ghast_tear), EnumRuneType.AIR.getScribeStack(), EnumAltarTier.THREE, 1000, 5, 5, false));
AltarRecipeRegistry.registerRecipe(new AltarRecipeRegistry.AltarRecipe(new ItemStack(Blocks.gold_block), OrbRegistry.getOrbStack(ModItems.orbMagician), EnumAltarTier.THREE, 25000, 2, 1));
AltarRecipeRegistry.registerRecipe(new AltarRecipeRegistry.AltarRecipe(new ItemStack(ModItems.slate, 1, 1), new ItemStack(ModItems.slate, 1, 2), EnumAltarTier.THREE, 5000, 15, 10));
AltarRecipeRegistry.registerRecipe(new AltarRecipeRegistry.AltarRecipe(new ItemStack(Blocks.obsidian), EnumRuneType.EARTH.getScribeStack(), EnumAltarTier.THREE, 1000, 5, 5));
AltarRecipeRegistry.registerRecipe(new AltarRecipeRegistry.AltarRecipe(new ItemStack(Blocks.lapis_block), EnumRuneType.WATER.getScribeStack(), EnumAltarTier.THREE, 1000, 5, 5));
AltarRecipeRegistry.registerRecipe(new AltarRecipeRegistry.AltarRecipe(new ItemStack(Items.magma_cream), EnumRuneType.FIRE.getScribeStack(), EnumAltarTier.THREE, 1000, 5, 5));
AltarRecipeRegistry.registerRecipe(new AltarRecipeRegistry.AltarRecipe(new ItemStack(Items.ghast_tear), EnumRuneType.AIR.getScribeStack(), EnumAltarTier.THREE, 1000, 5, 5));
AltarRecipeRegistry.registerRecipe(new AltarRecipeRegistry.AltarRecipe(new ItemStack(ModItems.lavaCrystal), new ItemStack(ModItems.activationCrystal), EnumAltarTier.THREE, 10000, 20, 10));
// FOUR
AltarRecipeRegistry.registerRecipe(new AltarRecipeRegistry.AltarRecipe(new ItemStack(ModItems.slate, 1, 2), new ItemStack(ModItems.slate, 1, 3), EnumAltarTier.FOUR, 15000, 20, 20, false));
AltarRecipeRegistry.registerRecipe(new AltarRecipeRegistry.AltarRecipe(new ItemStack(Blocks.coal_block), EnumRuneType.DUSK.getScribeStack(), EnumAltarTier.FOUR, 2000, 20, 10, false));
AltarRecipeRegistry.registerRecipe(new AltarRecipeRegistry.AltarRecipe(new ItemStack(ModItems.slate, 1, 2), new ItemStack(ModItems.slate, 1, 3), EnumAltarTier.FOUR, 15000, 20, 20));
AltarRecipeRegistry.registerRecipe(new AltarRecipeRegistry.AltarRecipe(new ItemStack(Blocks.coal_block), EnumRuneType.DUSK.getScribeStack(), EnumAltarTier.FOUR, 2000, 20, 10));
// FIVE
AltarRecipeRegistry.registerRecipe(new AltarRecipeRegistry.AltarRecipe(new ItemStack(ModItems.slate, 1, 3), new ItemStack(ModItems.slate, 1, 4), EnumAltarTier.FIVE, 30000, 40, 100, false));
AltarRecipeRegistry.registerRecipe(new AltarRecipeRegistry.AltarRecipe(new ItemStack(ModItems.slate, 1, 3), new ItemStack(ModItems.slate, 1, 4), EnumAltarTier.FIVE, 30000, 40, 100));
// SIX
AltarRecipeRegistry.registerRecipe(new AltarRecipeRegistry.AltarRecipe(new ItemStack(ModBlocks.crystal), OrbRegistry.getOrbStack(ModItems.orbTranscendent), EnumAltarTier.SIX, 200000, 100, 200, false));
AltarRecipeRegistry.registerRecipe(new AltarRecipeRegistry.AltarRecipe(new ItemStack(Blocks.glowstone), EnumRuneType.DAWN.getScribeStack(), EnumAltarTier.SIX, 200000, 100, 200, false));
AltarRecipeRegistry.registerRecipe(new AltarRecipeRegistry.AltarRecipe(new ItemStack(ModBlocks.crystal), OrbRegistry.getOrbStack(ModItems.orbTranscendent), EnumAltarTier.SIX, 200000, 100, 200));
AltarRecipeRegistry.registerRecipe(new AltarRecipeRegistry.AltarRecipe(new ItemStack(Blocks.glowstone), EnumRuneType.DAWN.getScribeStack(), EnumAltarTier.SIX, 200000, 100, 200));
}
public static void addAlchemyArrayRecipes()

View file

@ -12,6 +12,8 @@ item.BloodMagic.pack.selfSacrifice.name=Blood Letter's Pack
item.BloodMagic.pack.sacrifice.name=Coat of Arms
item.BloodMagic.daggerOfSacrifice.name=Dagger of Sacrifice
item.BloodMagic.lavaCrystal.name=Lava Crystal
item.BloodMagic.bound.sword.name=Bound Sword
item.BloodMagic.bound.pickaxe.name=Bound Pickaxe
item.BloodMagic.bound.axe.name=Bound Axe
@ -131,6 +133,8 @@ tile.BloodMagic.bloodstonebrick.large.name=Large Bloodstone Brick
tile.BloodMagic.crystal.normal.name=Crystal Cluster
tile.BloodMagic.crystal.brick.name=Crystal Cluster Brick
tile.BloodMagic.bloodLight.name=Blood Light
tile.BloodMagic.spectralBlock.name=Spectral Block
tile.BloodMagic.phantomBlock.name=Phantom Block
# Tooltips
tooltip.BloodMagic.orb.desc=Stores raw Life Essence