From b3199cfb195019ec52e96ea62d9ab4c0570b9a5a Mon Sep 17 00:00:00 2001 From: WayofTime Date: Tue, 18 Nov 2014 15:29:31 -0500 Subject: [PATCH] Added Harvest Goddess Sigil, fixed Water and Lava sigils so they actually place their fluids (derp) --- .../alchemicalWizardry/ModItems.java | 4 + .../common/items/ItemComponents.java | 2 +- .../common/items/sigil/ItemHarvestSigil.java | 215 ++++++++++++++++++ .../common/items/sigil/LavaSigil.java | 2 +- .../common/items/sigil/SigilOfGrowth.java | 4 +- .../common/items/sigil/WaterSigil.java | 2 +- .../assets/alchemicalwizardry/lang/en_US.lang | 2 + .../items/HarvestGoddessSigil_activated.png | Bin 0 -> 584 bytes .../items/HarvestGoddessSigil_deactivated.png | Bin 0 -> 616 bytes .../textures/items/baseItemEtherealSlate.png | Bin 0 -> 622 bytes 10 files changed, 226 insertions(+), 5 deletions(-) create mode 100644 src/main/java/WayofTime/alchemicalWizardry/common/items/sigil/ItemHarvestSigil.java create mode 100644 src/main/resources/assets/alchemicalwizardry/textures/items/HarvestGoddessSigil_activated.png create mode 100644 src/main/resources/assets/alchemicalwizardry/textures/items/HarvestGoddessSigil_deactivated.png create mode 100644 src/main/resources/assets/alchemicalwizardry/textures/items/baseItemEtherealSlate.png diff --git a/src/main/java/WayofTime/alchemicalWizardry/ModItems.java b/src/main/java/WayofTime/alchemicalWizardry/ModItems.java index 68b7f44c..bfe506fe 100644 --- a/src/main/java/WayofTime/alchemicalWizardry/ModItems.java +++ b/src/main/java/WayofTime/alchemicalWizardry/ModItems.java @@ -66,6 +66,7 @@ import WayofTime.alchemicalWizardry.common.items.sigil.AirSigil; import WayofTime.alchemicalWizardry.common.items.sigil.DivinationSigil; import WayofTime.alchemicalWizardry.common.items.sigil.ItemBloodLightSigil; import WayofTime.alchemicalWizardry.common.items.sigil.ItemFluidSigil; +import WayofTime.alchemicalWizardry.common.items.sigil.ItemHarvestSigil; import WayofTime.alchemicalWizardry.common.items.sigil.ItemSeerSigil; import WayofTime.alchemicalWizardry.common.items.sigil.ItemSigilOfEnderSeverance; import WayofTime.alchemicalWizardry.common.items.sigil.ItemSigilOfSupression; @@ -193,6 +194,7 @@ public class ModItems public static Item itemDestinationClearer; public static Item itemBloodMagicBook; + public static Item itemHarvestSigil; public static Item bucketLife; @@ -296,6 +298,7 @@ public class ModItems itemBloodMagicBook = new ItemBMBook().setUnlocalizedName("bmBook"); itemBloodPack = new ItemBloodLetterPack().setUnlocalizedName("itemBloodPack"); + itemHarvestSigil = new ItemHarvestSigil().setUnlocalizedName("itemHarvestSigil"); } public static void registerItems() @@ -400,6 +403,7 @@ public class ModItems GameRegistry.registerItem(ModItems.baseAlchemyItems, "bloodMagicBaseAlchemyItems"); GameRegistry.registerItem(ModItems.itemBloodPack, "itemBloodPack"); + GameRegistry.registerItem(ModItems.itemHarvestSigil, "itemHarvestSigil"); //GameRegistry.registerItem(ModItems.itemBloodFrame, "itemBloodFrame"); } } diff --git a/src/main/java/WayofTime/alchemicalWizardry/common/items/ItemComponents.java b/src/main/java/WayofTime/alchemicalWizardry/common/items/ItemComponents.java index a9802e3c..146f3502 100644 --- a/src/main/java/WayofTime/alchemicalWizardry/common/items/ItemComponents.java +++ b/src/main/java/WayofTime/alchemicalWizardry/common/items/ItemComponents.java @@ -16,7 +16,7 @@ import java.util.List; public class ItemComponents extends Item { - private static final String[] ITEM_NAMES = new String[]{"QuartzRod", "EmptyCore", "MagicalesCable", "WoodBrace", "StoneBrace", "ProjectileCore", "SelfCore", "MeleeCore", "ParadigmBackPlate", "OutputCable", "FlameCore", "IcyCore", "GustCore", "EarthenCore", "InputCable", "CrackedRunicPlate", "RunicPlate", "ScribedRunicPlate", "DefaultCore", "OffensiveCore", "DefensiveCore", "EnvironmentalCore", "PowerCore", "CostCore", "PotencyCore", "ObsidianBrace", "ToolCore"}; + private static final String[] ITEM_NAMES = new String[]{"QuartzRod", "EmptyCore", "MagicalesCable", "WoodBrace", "StoneBrace", "ProjectileCore", "SelfCore", "MeleeCore", "ParadigmBackPlate", "OutputCable", "FlameCore", "IcyCore", "GustCore", "EarthenCore", "InputCable", "CrackedRunicPlate", "RunicPlate", "ScribedRunicPlate", "DefaultCore", "OffensiveCore", "DefensiveCore", "EnvironmentalCore", "PowerCore", "CostCore", "PotencyCore", "ObsidianBrace", "ToolCore", "EtherealSlate"}; @SideOnly(Side.CLIENT) private IIcon[] icons; diff --git a/src/main/java/WayofTime/alchemicalWizardry/common/items/sigil/ItemHarvestSigil.java b/src/main/java/WayofTime/alchemicalWizardry/common/items/sigil/ItemHarvestSigil.java new file mode 100644 index 00000000..a177b8ac --- /dev/null +++ b/src/main/java/WayofTime/alchemicalWizardry/common/items/sigil/ItemHarvestSigil.java @@ -0,0 +1,215 @@ +package WayofTime.alchemicalWizardry.common.items.sigil; + +import java.util.List; + +import net.minecraft.client.renderer.texture.IIconRegister; +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.IIcon; +import net.minecraft.world.World; +import WayofTime.alchemicalWizardry.AlchemicalWizardry; +import WayofTime.alchemicalWizardry.api.harvest.HarvestRegistry; +import WayofTime.alchemicalWizardry.api.items.interfaces.ArmourUpgrade; +import WayofTime.alchemicalWizardry.api.items.interfaces.IHolding; +import WayofTime.alchemicalWizardry.common.items.EnergyItems; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + +public class ItemHarvestSigil extends EnergyItems implements IHolding, ArmourUpgrade +{ + @SideOnly(Side.CLIENT) + private static IIcon activeIcon; + @SideOnly(Side.CLIENT) + private static IIcon passiveIcon; + + public ItemHarvestSigil() + { + super(); + this.maxStackSize = 1; + setEnergyUsed(500); + setCreativeTab(AlchemicalWizardry.tabBloodMagic); + } + + @Override + public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) + { + par3List.add("You sow what you reap"); + + if (!(par1ItemStack.stackTagCompound == null)) + { + if (par1ItemStack.stackTagCompound.getBoolean("isActive")) + { + par3List.add("Activated"); + } else + { + par3List.add("Deactivated"); + } + + par3List.add("Current owner: " + par1ItemStack.stackTagCompound.getString("ownerName")); + } + } + + @Override + @SideOnly(Side.CLIENT) + public void registerIcons(IIconRegister iconRegister) + { + this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:HarvestGoddessSigil_deactivated"); + this.activeIcon = iconRegister.registerIcon("AlchemicalWizardry:HarvestGoddessSigil_activated"); + this.passiveIcon = iconRegister.registerIcon("AlchemicalWizardry:HarvestGoddessSigil_deactivated"); + } + + @Override + public IIcon getIcon(ItemStack stack, int renderPass, EntityPlayer player, ItemStack usingItem, int useRemaining) + { + if (stack.stackTagCompound == null) + { + stack.setTagCompound(new NBTTagCompound()); + } + + NBTTagCompound tag = stack.stackTagCompound; + + if (tag.getBoolean("isActive")) + { + return this.activeIcon; + } else + { + return this.passiveIcon; + } + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIconFromDamage(int par1) + { + if (par1 == 1) + { + return this.activeIcon; + } else + { + return this.passiveIcon; + } + } + + @Override + public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) + { + EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); + + if (par3EntityPlayer.isSneaking()) + { + return par1ItemStack; + } + + if (par1ItemStack.stackTagCompound == null) + { + par1ItemStack.setTagCompound(new NBTTagCompound()); + } + + NBTTagCompound tag = par1ItemStack.stackTagCompound; + tag.setBoolean("isActive", !(tag.getBoolean("isActive"))); + + if (tag.getBoolean("isActive")) + { + par1ItemStack.setItemDamage(1); + tag.setInteger("worldTimeDelay", (int) (par2World.getWorldTime() - 1) % 200); + + if (!par3EntityPlayer.capabilities.isCreativeMode) + { + if (!EnergyItems.syphonBatteries(par1ItemStack, par3EntityPlayer, getEnergyUsed())) + { + tag.setBoolean("isActive", false); + } + } + } else + { + par1ItemStack.setItemDamage(par1ItemStack.getMaxDamage()); + } + + return par1ItemStack; + } + + @Override + public void onUpdate(ItemStack par1ItemStack, World par2World, Entity par3Entity, int par4, boolean par5) + { + if (!(par3Entity instanceof EntityPlayer) || par2World.isRemote) + { + return; + } + + EntityPlayer par3EntityPlayer = (EntityPlayer) par3Entity; + + if (par1ItemStack.stackTagCompound == null) + { + par1ItemStack.setTagCompound(new NBTTagCompound()); + } + + if (par1ItemStack.stackTagCompound.getBoolean("isActive")) + { + int range = 3; + int verticalRange = 1; + int posX = (int) Math.round(par3Entity.posX - 0.5f); + int posY = (int) par3Entity.posY; + int posZ = (int) Math.round(par3Entity.posZ - 0.5f); + + for (int ix = posX - range; ix <= posX + range; ix++) + { + for (int iz = posZ - range; iz <= posZ + range; iz++) + { + for (int iy = posY - verticalRange; iy <= posY + verticalRange; iy++) + { + HarvestRegistry.harvestBlock(par2World, ix, iy, iz); + } + } + } + } + if (par2World.getWorldTime() % 200 == par1ItemStack.stackTagCompound.getInteger("worldTimeDelay") && par1ItemStack.stackTagCompound.getBoolean("isActive")) + { + if (!par3EntityPlayer.capabilities.isCreativeMode) + { + if(!EnergyItems.syphonBatteries(par1ItemStack, par3EntityPlayer, getEnergyUsed())) + { + par1ItemStack.stackTagCompound.setBoolean("isActive", false); + } + } + } + + return; + } + + @Override + public void onArmourUpdate(World world, EntityPlayer player, ItemStack thisItemStack) + { + int range = 3; + int verticalRange = 1; + int posX = (int) Math.round(player.posX - 0.5f); + int posY = (int) player.posY; + int posZ = (int) Math.round(player.posZ - 0.5f); + + for (int ix = posX - range; ix <= posX + range; ix++) + { + for (int iz = posZ - range; iz <= posZ + range; iz++) + { + for (int iy = posY - verticalRange; iy <= posY + verticalRange; iy++) + { + HarvestRegistry.harvestBlock(world, ix, iy, iz); + } + } + } + + } + + @Override + public boolean isUpgrade() { + // TODO Auto-generated method stub + return true; + } + + @Override + public int getEnergyForTenSeconds() + { + // TODO Auto-generated method stub + return 500; + } +} \ No newline at end of file diff --git a/src/main/java/WayofTime/alchemicalWizardry/common/items/sigil/LavaSigil.java b/src/main/java/WayofTime/alchemicalWizardry/common/items/sigil/LavaSigil.java index 78f381be..a2018dbe 100644 --- a/src/main/java/WayofTime/alchemicalWizardry/common/items/sigil/LavaSigil.java +++ b/src/main/java/WayofTime/alchemicalWizardry/common/items/sigil/LavaSigil.java @@ -152,7 +152,7 @@ public class LavaSigil extends ItemBucket implements ArmourUpgrade return par1ItemStack; } - if(this.canPlaceContainedLiquid(par2World, d0, d1, d2, i, j, k) && !EnergyItems.syphonBatteries(par1ItemStack, par3EntityPlayer, getEnergyUsed())) + if(this.canPlaceContainedLiquid(par2World, d0, d1, d2, i, j, k) && EnergyItems.syphonBatteries(par1ItemStack, par3EntityPlayer, getEnergyUsed())) { this.tryPlaceContainedLiquid(par2World, d0, d1, d2, i, j, k); } diff --git a/src/main/java/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfGrowth.java b/src/main/java/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfGrowth.java index 2313158c..1873bc31 100644 --- a/src/main/java/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfGrowth.java +++ b/src/main/java/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfGrowth.java @@ -155,7 +155,7 @@ public class SigilOfGrowth extends EnergyItems implements ArmourUpgrade @Override public void onUpdate(ItemStack par1ItemStack, World par2World, Entity par3Entity, int par4, boolean par5) { - if (!(par3Entity instanceof EntityPlayer)) + if (!(par3Entity instanceof EntityPlayer) || par2World.isRemote) { return; } @@ -175,7 +175,7 @@ public class SigilOfGrowth extends EnergyItems implements ArmourUpgrade par1ItemStack.stackTagCompound.setBoolean("isActive", false); } } - int range = 5; + int range = 3; int verticalRange = 2; int posX = (int) Math.round(par3Entity.posX - 0.5f); int posY = (int) par3Entity.posY; diff --git a/src/main/java/WayofTime/alchemicalWizardry/common/items/sigil/WaterSigil.java b/src/main/java/WayofTime/alchemicalWizardry/common/items/sigil/WaterSigil.java index 468b409d..f47ceb06 100644 --- a/src/main/java/WayofTime/alchemicalWizardry/common/items/sigil/WaterSigil.java +++ b/src/main/java/WayofTime/alchemicalWizardry/common/items/sigil/WaterSigil.java @@ -157,7 +157,7 @@ public class WaterSigil extends ItemBucket implements ArmourUpgrade return par1ItemStack; } - if(this.canPlaceContainedLiquid(par2World, d0, d1, d2, i, j, k) && !EnergyItems.syphonBatteries(par1ItemStack, par3EntityPlayer, getEnergyUsed())) + if(this.canPlaceContainedLiquid(par2World, d0, d1, d2, i, j, k) && EnergyItems.syphonBatteries(par1ItemStack, par3EntityPlayer, getEnergyUsed())) { this.tryPlaceContainedLiquid(par2World, d0, d1, d2, i, j, k); } diff --git a/src/main/resources/assets/alchemicalwizardry/lang/en_US.lang b/src/main/resources/assets/alchemicalwizardry/lang/en_US.lang index 1cfae642..d9dd708e 100644 --- a/src/main/resources/assets/alchemicalwizardry/lang/en_US.lang +++ b/src/main/resources/assets/alchemicalwizardry/lang/en_US.lang @@ -163,6 +163,7 @@ item.bloodMagicBaseItem.PowerCore.name=Power Core item.bloodMagicBaseItem.CostCore.name=Reduction Core item.bloodMagicBaseItem.PotencyCore.name=Potency Core item.bloodMagicBaseItem.ObsidianBrace.name=Obsidian Brace +item.bloodMagicBaseItem.EtherealSlate.name=Ethereal Slate item.bloodMagicAlchemyItem.Offensa.name=Offensa item.bloodMagicAlchemyItem.Praesidium.name=Praesidium item.bloodMagicAlchemyItem.OrbisTerrae.name=Orbis Terrae @@ -186,6 +187,7 @@ item.destinationClearer.name=Alchemic Cleanser item.demonPlacer.name=Demon Crystal item.creativeDagger.name=Creative Sacrificial Knife item.itemBloodPack.name=Blood Letter's Pack +item.itemHarvestSigil.name=Harvest Goddess Sigil #Creative Tab itemGroup.tabBloodMagic=Blood Magic diff --git a/src/main/resources/assets/alchemicalwizardry/textures/items/HarvestGoddessSigil_activated.png b/src/main/resources/assets/alchemicalwizardry/textures/items/HarvestGoddessSigil_activated.png new file mode 100644 index 0000000000000000000000000000000000000000..2dd8d1ff58c27013d44c7bfbea634e765adae6cb GIT binary patch literal 584 zcmV-O0=NB%P)WFU8GbZ8()Nlj2>E@cM*00FE?L_t(I%bk?CW<8YAvu-oUr;>eZ_nFQNx8iU*&-V+fdwpk9QWg5Wdw0A9p5NI>wA$*i-P zneHwRvtu%3BgBG+qUiqktNt!AGXQ?<{RZI9^J`osqzB|Lb5l{&IYQe41_(%Z@o?u* zmH~X9#F#J=h;+xmFciUn{6%h@L-auH3(hH`N^D!4Dt={!jXLtSJ|>?hR6r0&wp>9U zA45S3i~a-};Efi98Uio^9{CCD<1w?UI-5a12SHd1k<}(rdgZ;H@Jcpl%_zMiEZR8Q zJ(8sgVvM|t1-Qi=fgL;Pk^tLlw@4{o-hvuD&9+cgvS{o!zj!jbiBqL^iW3_pZ?p0huJ3APh0Ad=U&RV zAAfS-r+nrVONrHNXro^ES_Y-ShxVAS(#iOe=In=piO)Fi+5li?hzKzyJ~88&OqdHi z&bAQmcrd!b-6W(KFW-d)2}_2k{@nvrM+gBG;oIx)a(lXY5dg409s@9|s;h6~|HdD_ Wy}lbXRC(0^0000WFU8GbZ8()Nlj2>E@cM*00GQNL_t(I%bk-wYg9oL zhM#k0Zq{5kyPAM2Y*=FK`~|U;fQ7AKYoS=#XyvaE3oAh^`~@~PT8X_N5=bYDyD_Xn z+>g82d+*G#*sNyRM2H6lhGFL6yze_l%nX2?=OX~FJv`4@N@jrOKtWJ00s!i z^kU~}M@|Cx*(QXD5kX|S3=BgN3}`-T8pjYbpw14QQ$&?e6nN+GNkV-RxYPbcYaDSZ z2m;Yg?qDhi?zj5@96Dhlf&;Gih5)1?qQHw*jcS@Q%(A~8%zO}p*p9BjMXCW>gpOXhEpT}YVdZwj;c}# z#*NMa?=G+4RGB!%iOd0X?zKS>7{@?{;qx39jmo4T_YM)E$n&{K7fgK6?h}Er7nb4_ zdb5{N+nXBsabxozDF838Twvv}V6x=dWR)>$%u8PQS_T7w?fnrw zJD{H^yJe5N-v-ouh2yEs0n7{$A;ieN?uZX-DPw^*%{t;8uUj=5REZ&+J_|=AEE=Nv zXAV>yWm%#ke0uUlE;TML0syLM3cxVS&OVL*TfYGleanI|tam&B0000WFU8GbZ8()Nlj2>E@cM*00GiTL_t(I%bk2%-z2AZYj9`#3&>fs_ z7XUctFu=_4z~ScRw1SZ#p%UTq$_kY#!@+J7V7fDi(zN;wJ%0I@82cyvVP>WW61-mvUug=4qX;$Ur!`Nc&Lpi<4zq~|MXD89jFkr9M;`RDE!F!4rQ8Qj-85QuM*`$i`-?w0+ zwx}x3d(4a&BcWD9Rq@Vo`0