From 7b46758d87c70b72dd43a59d44839327da25af7f Mon Sep 17 00:00:00 2001 From: Arcaratus Date: Sun, 2 Nov 2014 09:49:20 -0500 Subject: [PATCH] Added a Creative Dagger --- .../common/items/CreativeDagger.java | 105 ++++++++++++++++++ 1 file changed, 105 insertions(+) create mode 100644 src/main/java/WayofTime/alchemicalWizardry/common/items/CreativeDagger.java diff --git a/src/main/java/WayofTime/alchemicalWizardry/common/items/CreativeDagger.java b/src/main/java/WayofTime/alchemicalWizardry/common/items/CreativeDagger.java new file mode 100644 index 00000000..6aa59dc1 --- /dev/null +++ b/src/main/java/WayofTime/alchemicalWizardry/common/items/CreativeDagger.java @@ -0,0 +1,105 @@ +package WayofTime.alchemicalWizardry.common.items; + +import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper; +import WayofTime.alchemicalWizardry.common.tileEntity.TEAltar; +import com.arc.bloodarsenal.BloodArsenal; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; +import net.minecraftforge.common.util.FakePlayer; + +public classCreativeDagger extends Item +{ + public CreativeDagger() + { + super(); + setTextureName("AlchemicalWizardry:SacrificialDagger"); + setMaxStackSize(1); + setCreativeTab(AlchemicalWizardry.tabBloodMagic); + setFull3D(); + } + + public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) + { + if (par3EntityPlayer instanceof FakePlayer) + { + return par1ItemStack; + } + + double posX = par3EntityPlayer.posX; + double posY = par3EntityPlayer.posY; + double posZ = par3EntityPlayer.posZ; + par2World.playSoundEffect((double) ((float) posX + 0.5F), (double) ((float) posY + 0.5F), (double) ((float) posZ + 0.5F), "random.fizz", 0.5F, 2.6F + (par2World.rand.nextFloat() - par2World.rand.nextFloat()) * 0.8F); + float f = (float) 1.0F; + float f1 = f * 0.6F + 0.4F; + float f2 = f * f * 0.7F - 0.5F; + float f3 = f * f * 0.6F - 0.7F; + + for (int l = 0; l < 8; ++l) + { + par2World.spawnParticle("reddust", posX + Math.random() - Math.random(), posY + Math.random() - Math.random(), posZ + Math.random() - Math.random(), f1, f2, f3); + } + + if (!par2World.isRemote && SpellHelper.isFakePlayer(par2World, par3EntityPlayer)) + { + return par1ItemStack; + } + findAndFillAltar(par2World, par3EntityPlayer, Integer.MAX_VALUE); + return par1ItemStack; + } + + public void findAndFillAltar(World world, EntityPlayer player, int amount) + { + int posX = (int) Math.round(player.posX - 0.5f); + int posY = (int) player.posY; + int posZ = (int) Math.round(player.posZ - 0.5f); + TEAltar altarEntity = getAltar(world, posX, posY, posZ); + + if (altarEntity == null) + { + return; + } + + altarEntity.sacrificialDaggerCall(amount, false); + altarEntity.startCycle(); + } + + public TEAltar getAltar(World world, int x, int y, int z) + { + TileEntity tileEntity = null; + + for (int i = -2; i <= 2; i++) + { + for (int j = -2; j <= 2; j++) + { + for (int k = -2; k <= 1; k++) + { + tileEntity = world.getTileEntity(i + x, k + y, j + z); + + if ((tileEntity instanceof TEAltar)) + { + return (TEAltar) tileEntity; + } + } + + if ((tileEntity instanceof TEAltar)) + { + return (TEAltar) tileEntity; + } + } + + if ((tileEntity instanceof TEAltar)) + { + return (TEAltar) tileEntity; + } + } + + if ((tileEntity instanceof TEAltar)) + { + return (TEAltar) tileEntity; + } + + return null; + }