From a92efa364d835be24c4f9dfffab795c24b12d64a Mon Sep 17 00:00:00 2001 From: WayofTime Date: Tue, 15 Jul 2014 19:23:57 -0400 Subject: [PATCH] 1.7.10 moving forward to v1.1.0! --- .../Blood Magic API - v1.0.1g+ (1.7.10).zip | Bin 22027 -> 0 bytes .../AlchemicalWizardry.java | 23 ++- .../BloodMagicConfiguration.java | 1 + .../api/harvest/HarvestRegistry.java | 34 ++++ .../api/harvest/IHarvestHandler.java | 21 ++ .../common/AlchemicalWizardryEventHooks.java | 14 +- .../common/block/BloodRune.java | 9 + .../AltarUpgradeComponent.java | 12 ++ .../bloodAltarUpgrade/UpgradedAltars.java | 4 + .../common/demonVillage/BlockSet.java | 6 +- .../common/demonVillage/DemonBuilding.java | 5 + .../common/demonVillage/GridSpaceHolder.java | 17 ++ .../common/demonVillage/TileBlockSet.java | 8 + .../common/entity/mob/EntityBileDemon.java | 6 - .../common/entity/mob/EntityBoulderFist.java | 6 - .../common/entity/mob/EntityElemental.java | 6 - .../common/entity/mob/EntityFallenAngel.java | 6 - .../common/entity/mob/EntityIceDemon.java | 6 - .../entity/mob/EntityLowerGuardian.java | 6 - .../common/entity/mob/EntityShade.java | 6 - .../entity/mob/EntitySmallEarthGolem.java | 6 - .../entity/mob/EntityWingedFireDemon.java | 6 - .../harvest/BloodMagicHarvestHandler.java | 127 ++++++++++++ .../common/harvest/GourdHarvestHandler.java | 45 +++++ .../common/items/ItemBloodRuneBlock.java | 8 +- .../items/spell/ItemSpellMultiTool.java | 4 +- .../common/rituals/RitualEffectHarvest.java | 123 ++++++++++++ .../rituals/RitualEffectLifeConduit.java | 180 ++++++++++++++++++ .../spell/complex/SpellParadigmTool.java | 21 +- .../complex/effect/SpellEffectEarth.java | 6 +- .../spell/complex/effect/SpellEffectFire.java | 27 ++- .../fire/ToolEnvironmentalFire.java | 47 +++++ .../common/tileEntity/TEAltar.java | 6 +- .../common/tileEntity/TEDemonPortal.java | 150 ++++++++++----- .../assets/alchemicalwizardry/lang/en_US.lang | 9 +- .../textures/blocks/BetterCapacityRune.png | Bin 0 -> 771 bytes .../textures/items/AlchemyFlask.png | Bin 361 -> 0 bytes .../textures/items/ElementalInkAir.png | Bin 439 -> 0 bytes .../textures/items/ElementalInkEarth.png | Bin 442 -> 0 bytes .../textures/items/ElementalInkFire.png | Bin 430 -> 0 bytes .../textures/items/ElementalInkWater.png | Bin 429 -> 0 bytes .../textures/items/baseItemToolCore.png | Bin 0 -> 453 bytes .../textures/models/SpellParadigmTool.png | Bin 594 -> 1180 bytes .../textures/models/baseItemToolCore.png | Bin 0 -> 453 bytes .../AlchemicalWizardry.java | 7 +- .../BloodMagicConfiguration.java | 5 +- .../api/harvest/HarvestRegistry.java | 2 +- .../api/harvest/IHarvestHandler.java | 17 +- .../common/AlchemicalWizardryEventHooks.java | 14 +- .../harvest/BloodMagicHarvestHandler.java | 3 - .../common/harvest/GourdHarvestHandler.java | 15 +- 51 files changed, 849 insertions(+), 175 deletions(-) delete mode 100644 1.7.10/main/java/Blood Magic API - v1.0.1g+ (1.7.10).zip create mode 100644 1.7.10/main/java/WayofTime/alchemicalWizardry/api/harvest/HarvestRegistry.java create mode 100644 1.7.10/main/java/WayofTime/alchemicalWizardry/api/harvest/IHarvestHandler.java create mode 100644 1.7.10/main/java/WayofTime/alchemicalWizardry/common/demonVillage/TileBlockSet.java create mode 100644 1.7.10/main/java/WayofTime/alchemicalWizardry/common/harvest/BloodMagicHarvestHandler.java create mode 100644 1.7.10/main/java/WayofTime/alchemicalWizardry/common/harvest/GourdHarvestHandler.java create mode 100644 1.7.10/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectHarvest.java create mode 100644 1.7.10/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectLifeConduit.java create mode 100644 1.7.10/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/ToolEnvironmentalFire.java create mode 100644 1.7.10/main/resources/assets/alchemicalwizardry/textures/blocks/BetterCapacityRune.png delete mode 100644 1.7.10/main/resources/assets/alchemicalwizardry/textures/items/AlchemyFlask.png delete mode 100644 1.7.10/main/resources/assets/alchemicalwizardry/textures/items/ElementalInkAir.png delete mode 100644 1.7.10/main/resources/assets/alchemicalwizardry/textures/items/ElementalInkEarth.png delete mode 100644 1.7.10/main/resources/assets/alchemicalwizardry/textures/items/ElementalInkFire.png delete mode 100644 1.7.10/main/resources/assets/alchemicalwizardry/textures/items/ElementalInkWater.png create mode 100644 1.7.10/main/resources/assets/alchemicalwizardry/textures/items/baseItemToolCore.png create mode 100644 1.7.10/main/resources/assets/alchemicalwizardry/textures/models/baseItemToolCore.png diff --git a/1.7.10/main/java/Blood Magic API - v1.0.1g+ (1.7.10).zip b/1.7.10/main/java/Blood Magic API - v1.0.1g+ (1.7.10).zip deleted file mode 100644 index 0f6c3d9d017e12d5ba6ac88363d2f4b045170cae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22027 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 handlerList = new ArrayList(); + + public static void registerHarvestHandler(IHarvestHandler handler) + { + System.out.println("Heeeeelllooooo"); + handlerList.add(handler); + } + + public static boolean harvestBlock(World world, int xCoord, int yCoord, int zCoord) + { + Block block = world.getBlock(xCoord, yCoord, zCoord); + int meta = world.getBlockMetadata(xCoord, yCoord, zCoord); + + for(IHarvestHandler handler : handlerList) + { + if(handler.harvestAndPlant(world, xCoord, yCoord, zCoord, block, meta)) + { + return true; + } + } + + return false; + } +} diff --git a/1.7.10/main/java/WayofTime/alchemicalWizardry/api/harvest/IHarvestHandler.java b/1.7.10/main/java/WayofTime/alchemicalWizardry/api/harvest/IHarvestHandler.java new file mode 100644 index 00000000..888dff58 --- /dev/null +++ b/1.7.10/main/java/WayofTime/alchemicalWizardry/api/harvest/IHarvestHandler.java @@ -0,0 +1,21 @@ +package WayofTime.alchemicalWizardry.api.harvest; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraftforge.common.IPlantable; + +public interface IHarvestHandler +{ + /** + * A handler that is used to harvest and replant the block at the specified location + * + * @param world + * @param xCoord + * @param yCoord + * @param zCoord + * @param block block at this given location + * @param meta meta at this given location + * @return true if successfully harvested, false if not + */ + public boolean harvestAndPlant(World world, int xCoord, int yCoord, int zCoord, Block block, int meta); +} diff --git a/1.7.10/main/java/WayofTime/alchemicalWizardry/common/AlchemicalWizardryEventHooks.java b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/AlchemicalWizardryEventHooks.java index 34575633..1bbbd284 100644 --- a/1.7.10/main/java/WayofTime/alchemicalWizardry/common/AlchemicalWizardryEventHooks.java +++ b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/AlchemicalWizardryEventHooks.java @@ -25,10 +25,7 @@ import WayofTime.alchemicalWizardry.common.entity.projectile.EnergyBlastProjecti import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper; import cpw.mods.fml.common.ObfuscationReflectionHelper; import cpw.mods.fml.common.eventhandler.SubscribeEvent; -import cpw.mods.fml.common.gameevent.TickEvent; -import cpw.mods.fml.common.gameevent.TickEvent.PlayerTickEvent; -import cpw.mods.fml.common.gameevent.TickEvent.Type; -import cpw.mods.fml.relauncher.ReflectionHelper; +import cpw.mods.fml.common.gameevent.PlayerEvent.PlayerRespawnEvent; public class AlchemicalWizardryEventHooks { @@ -36,6 +33,15 @@ public class AlchemicalWizardryEventHooks public static Map playerBoostStepHeight = new HashMap(); public static List playersWith1Step = new ArrayList(); + @SubscribeEvent + public void onPlayerRespawnEvent(PlayerRespawnEvent event) + { + if(AlchemicalWizardry.respawnWithLowerHealth) + { + event.player.setHealth(6); + } + } + @SubscribeEvent public void onLivingJumpEvent(LivingJumpEvent event) { diff --git a/1.7.10/main/java/WayofTime/alchemicalWizardry/common/block/BloodRune.java b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/block/BloodRune.java index 00f0a83f..b5df0d22 100644 --- a/1.7.10/main/java/WayofTime/alchemicalWizardry/common/block/BloodRune.java +++ b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/block/BloodRune.java @@ -22,6 +22,7 @@ public class BloodRune extends Block private IIcon altarCapacityRuneIcon; private IIcon dislocationRuneIcon; private IIcon orbCapacityRuneIcon; + private IIcon betterCapacityRuneIcon; public BloodRune() { @@ -40,6 +41,7 @@ public class BloodRune extends Block this.altarCapacityRuneIcon = iconRegister.registerIcon("AlchemicalWizardry:AltarCapacityRune"); this.dislocationRuneIcon = iconRegister.registerIcon("AlchemicalWizardry:DislocationRune"); this.orbCapacityRuneIcon = iconRegister.registerIcon("AlchemicalWizardry:OrbCapacityRune"); + this.betterCapacityRuneIcon = iconRegister.registerIcon("AlchemicalWizardry:BetterCapacityRune"); } public int getRuneEffect(int metaData) @@ -57,6 +59,9 @@ public class BloodRune extends Block case 3: //Orb Capacity rune return 7; + + case 4: //Better Capacity rune + return 8; } return 0; @@ -75,6 +80,7 @@ public class BloodRune extends Block par3List.add(new ItemStack(par1, 1, 1)); par3List.add(new ItemStack(par1, 1, 2)); par3List.add(new ItemStack(par1, 1, 3)); + par3List.add(new ItemStack(par1, 1, 4)); } else { super.getSubBlocks(par1, par2CreativeTabs, par3List); @@ -98,6 +104,9 @@ public class BloodRune extends Block case 3: return this.orbCapacityRuneIcon; + + case 4: + return this.betterCapacityRuneIcon; default: return blockIcon; diff --git a/1.7.10/main/java/WayofTime/alchemicalWizardry/common/bloodAltarUpgrade/AltarUpgradeComponent.java b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/bloodAltarUpgrade/AltarUpgradeComponent.java index acdede16..f6e231c2 100644 --- a/1.7.10/main/java/WayofTime/alchemicalWizardry/common/bloodAltarUpgrade/AltarUpgradeComponent.java +++ b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/bloodAltarUpgrade/AltarUpgradeComponent.java @@ -9,6 +9,7 @@ public class AltarUpgradeComponent private int displacementUpgrades; private int altarCapacitiveUpgrades; private int orbCapacitiveUpgrades; + private int betterCapacitiveUpgrades; public AltarUpgradeComponent() { @@ -19,6 +20,7 @@ public class AltarUpgradeComponent displacementUpgrades = 0; altarCapacitiveUpgrades = 0; orbCapacitiveUpgrades = 0; + betterCapacitiveUpgrades = 0; } public void addSpeedUpgrade() @@ -55,6 +57,11 @@ public class AltarUpgradeComponent { orbCapacitiveUpgrades++; } + + public void addBetterCapacitiveUpgrade() + { + betterCapacitiveUpgrades++; + } public int getSpeedUpgrades() { @@ -90,4 +97,9 @@ public class AltarUpgradeComponent { return this.orbCapacitiveUpgrades; } + + public int getBetterCapacitiveUpgrades() + { + return this.betterCapacitiveUpgrades; + } } diff --git a/1.7.10/main/java/WayofTime/alchemicalWizardry/common/bloodAltarUpgrade/UpgradedAltars.java b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/bloodAltarUpgrade/UpgradedAltars.java index d5db3638..4c5ea30d 100644 --- a/1.7.10/main/java/WayofTime/alchemicalWizardry/common/bloodAltarUpgrade/UpgradedAltars.java +++ b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/bloodAltarUpgrade/UpgradedAltars.java @@ -189,6 +189,10 @@ public class UpgradedAltars case 7: upgrades.addorbCapacitiveUpgrade(); break; + + case 8: + upgrades.addBetterCapacitiveUpgrade(); + break; } } } diff --git a/1.7.10/main/java/WayofTime/alchemicalWizardry/common/demonVillage/BlockSet.java b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/demonVillage/BlockSet.java index 008ef748..25398812 100644 --- a/1.7.10/main/java/WayofTime/alchemicalWizardry/common/demonVillage/BlockSet.java +++ b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/demonVillage/BlockSet.java @@ -14,9 +14,9 @@ import cpw.mods.fml.common.registry.GameRegistry.UniqueIdentifier; public class BlockSet { - private String blockid; - private int[] metadata; - private List positions; + protected String blockid; + protected int[] metadata; + protected List positions; public BlockSet() { diff --git a/1.7.10/main/java/WayofTime/alchemicalWizardry/common/demonVillage/DemonBuilding.java b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/demonVillage/DemonBuilding.java index f6f97f03..b0777a46 100644 --- a/1.7.10/main/java/WayofTime/alchemicalWizardry/common/demonVillage/DemonBuilding.java +++ b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/demonVillage/DemonBuilding.java @@ -112,4 +112,9 @@ public class DemonBuilding { schematic.destroyAllInField(world, xCoord, yCoord, zCoord, dir); } + + public int getNumberOfGridSpaces() + { + return area.getNumberOfGridSpaces(); + } } diff --git a/1.7.10/main/java/WayofTime/alchemicalWizardry/common/demonVillage/GridSpaceHolder.java b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/demonVillage/GridSpaceHolder.java index 5ce845c1..95438be0 100644 --- a/1.7.10/main/java/WayofTime/alchemicalWizardry/common/demonVillage/GridSpaceHolder.java +++ b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/demonVillage/GridSpaceHolder.java @@ -289,4 +289,21 @@ public class GridSpaceHolder } } } + + public int getNumberOfGridSpaces() + { + int num = 0; + for(int i=-this.negXRadius; i<=this.posXRadius; i++) + { + for(int j=-this.negZRadius; j<=this.posZRadius; j++) + { + if(!this.getGridSpace(i, j).isEmpty()) + { + num++; + } + } + } + + return num; + } } diff --git a/1.7.10/main/java/WayofTime/alchemicalWizardry/common/demonVillage/TileBlockSet.java b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/demonVillage/TileBlockSet.java new file mode 100644 index 00000000..2209f58c --- /dev/null +++ b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/demonVillage/TileBlockSet.java @@ -0,0 +1,8 @@ +package WayofTime.alchemicalWizardry.common.demonVillage; + +import net.minecraft.nbt.NBTTagCompound; + +public class TileBlockSet extends BlockSet +{ + public NBTTagCompound tag; +} diff --git a/1.7.10/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityBileDemon.java b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityBileDemon.java index 5a766314..884b37f2 100644 --- a/1.7.10/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityBileDemon.java +++ b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityBileDemon.java @@ -138,7 +138,6 @@ public class EntityBileDemon extends EntityDemon { super.writeEntityToNBT(par1NBTTagCompound); par1NBTTagCompound.setBoolean("Angry", this.isAngry()); - par1NBTTagCompound.setByte("CollarColor", (byte) this.getCollarColor()); par1NBTTagCompound.setByte("attackTimer", (byte) attackTimer); } @@ -150,11 +149,6 @@ public class EntityBileDemon extends EntityDemon super.readEntityFromNBT(par1NBTTagCompound); this.setAngry(par1NBTTagCompound.getBoolean("Angry")); - if (par1NBTTagCompound.hasKey("CollarColor")) - { - this.setCollarColor(par1NBTTagCompound.getByte("CollarColor")); - } - attackTimer = par1NBTTagCompound.getByte("attackTimer"); } diff --git a/1.7.10/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityBoulderFist.java b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityBoulderFist.java index edea165f..fa4106de 100644 --- a/1.7.10/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityBoulderFist.java +++ b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityBoulderFist.java @@ -138,7 +138,6 @@ public class EntityBoulderFist extends EntityDemon public void writeEntityToNBT(NBTTagCompound par1NBTTagCompound) { super.writeEntityToNBT(par1NBTTagCompound); - par1NBTTagCompound.setBoolean("Angry", this.isAngry()); par1NBTTagCompound.setByte("CollarColor", (byte) this.getCollarColor()); } @@ -150,11 +149,6 @@ public class EntityBoulderFist extends EntityDemon super.readEntityFromNBT(par1NBTTagCompound); this.setAngry(par1NBTTagCompound.getBoolean("Angry")); - if (par1NBTTagCompound.hasKey("CollarColor")) - { - this.setCollarColor(par1NBTTagCompound.getByte("CollarColor")); - } - this.setCombatTask(); } diff --git a/1.7.10/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityElemental.java b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityElemental.java index f07dc92c..765f851c 100644 --- a/1.7.10/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityElemental.java +++ b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityElemental.java @@ -341,7 +341,6 @@ public class EntityElemental extends EntityDemon public void writeEntityToNBT(NBTTagCompound par1NBTTagCompound) { super.writeEntityToNBT(par1NBTTagCompound); - par1NBTTagCompound.setBoolean("Angry", this.isAngry()); par1NBTTagCompound.setByte("CollarColor", (byte) this.getCollarColor()); } @@ -353,11 +352,6 @@ public class EntityElemental extends EntityDemon super.readEntityFromNBT(par1NBTTagCompound); this.setAngry(par1NBTTagCompound.getBoolean("Angry")); - if (par1NBTTagCompound.hasKey("CollarColor")) - { - this.setCollarColor(par1NBTTagCompound.getByte("CollarColor")); - } - this.setCombatTask(); } diff --git a/1.7.10/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityFallenAngel.java b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityFallenAngel.java index ff62e2d1..6bd801a9 100644 --- a/1.7.10/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityFallenAngel.java +++ b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityFallenAngel.java @@ -148,7 +148,6 @@ public class EntityFallenAngel extends EntityDemon implements IRangedAttackMob { super.writeEntityToNBT(par1NBTTagCompound); par1NBTTagCompound.setBoolean("Angry", this.isAngry()); - par1NBTTagCompound.setByte("CollarColor", (byte) this.getCollarColor()); } /** @@ -159,11 +158,6 @@ public class EntityFallenAngel extends EntityDemon implements IRangedAttackMob super.readEntityFromNBT(par1NBTTagCompound); this.setAngry(par1NBTTagCompound.getBoolean("Angry")); - if (par1NBTTagCompound.hasKey("CollarColor")) - { - this.setCollarColor(par1NBTTagCompound.getByte("CollarColor")); - } - this.setCombatTask(); } diff --git a/1.7.10/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityIceDemon.java b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityIceDemon.java index 1e809dc8..fafe24b7 100644 --- a/1.7.10/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityIceDemon.java +++ b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityIceDemon.java @@ -149,7 +149,6 @@ public class EntityIceDemon extends EntityDemon implements IRangedAttackMob { super.writeEntityToNBT(par1NBTTagCompound); par1NBTTagCompound.setBoolean("Angry", this.isAngry()); - par1NBTTagCompound.setByte("CollarColor", (byte) this.getCollarColor()); } /** @@ -160,11 +159,6 @@ public class EntityIceDemon extends EntityDemon implements IRangedAttackMob super.readEntityFromNBT(par1NBTTagCompound); this.setAngry(par1NBTTagCompound.getBoolean("Angry")); - if (par1NBTTagCompound.hasKey("CollarColor")) - { - this.setCollarColor(par1NBTTagCompound.getByte("CollarColor")); - } - this.setCombatTask(); } diff --git a/1.7.10/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityLowerGuardian.java b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityLowerGuardian.java index 366f136a..5d20a4e2 100644 --- a/1.7.10/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityLowerGuardian.java +++ b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityLowerGuardian.java @@ -134,7 +134,6 @@ public class EntityLowerGuardian extends EntityDemon { super.writeEntityToNBT(par1NBTTagCompound); par1NBTTagCompound.setBoolean("Angry", this.isAngry()); - par1NBTTagCompound.setByte("CollarColor", (byte) this.getCollarColor()); par1NBTTagCompound.setByte("attackTimer", (byte) attackTimer); par1NBTTagCompound.setBoolean("isAggro", this.isAggro()); } @@ -147,11 +146,6 @@ public class EntityLowerGuardian extends EntityDemon super.readEntityFromNBT(par1NBTTagCompound); this.setAngry(par1NBTTagCompound.getBoolean("Angry")); - if (par1NBTTagCompound.hasKey("CollarColor")) - { - this.setCollarColor(par1NBTTagCompound.getByte("CollarColor")); - } - attackTimer = par1NBTTagCompound.getByte("attackTimer"); isAggro = par1NBTTagCompound.getBoolean("isAggro"); } diff --git a/1.7.10/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityShade.java b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityShade.java index b51bee98..068095a2 100644 --- a/1.7.10/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityShade.java +++ b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityShade.java @@ -139,7 +139,6 @@ public class EntityShade extends EntityDemon { super.writeEntityToNBT(par1NBTTagCompound); par1NBTTagCompound.setBoolean("Angry", this.isAngry()); - par1NBTTagCompound.setByte("CollarColor", (byte) this.getCollarColor()); } /** @@ -150,11 +149,6 @@ public class EntityShade extends EntityDemon super.readEntityFromNBT(par1NBTTagCompound); this.setAngry(par1NBTTagCompound.getBoolean("Angry")); - if (par1NBTTagCompound.hasKey("CollarColor")) - { - this.setCollarColor(par1NBTTagCompound.getByte("CollarColor")); - } - this.setCombatTask(); } diff --git a/1.7.10/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntitySmallEarthGolem.java b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntitySmallEarthGolem.java index e0f45f6d..73e4e076 100644 --- a/1.7.10/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntitySmallEarthGolem.java +++ b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntitySmallEarthGolem.java @@ -147,7 +147,6 @@ public class EntitySmallEarthGolem extends EntityDemon implements IRangedAttackM { super.writeEntityToNBT(par1NBTTagCompound); par1NBTTagCompound.setBoolean("Angry", this.isAngry()); - par1NBTTagCompound.setByte("CollarColor", (byte) this.getCollarColor()); } /** @@ -158,11 +157,6 @@ public class EntitySmallEarthGolem extends EntityDemon implements IRangedAttackM super.readEntityFromNBT(par1NBTTagCompound); this.setAngry(par1NBTTagCompound.getBoolean("Angry")); - if (par1NBTTagCompound.hasKey("CollarColor")) - { - this.setCollarColor(par1NBTTagCompound.getByte("CollarColor")); - } - this.setCombatTask(); } diff --git a/1.7.10/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityWingedFireDemon.java b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityWingedFireDemon.java index bf1d220e..804cdb65 100644 --- a/1.7.10/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityWingedFireDemon.java +++ b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityWingedFireDemon.java @@ -149,7 +149,6 @@ public class EntityWingedFireDemon extends EntityDemon implements IRangedAttackM { super.writeEntityToNBT(par1NBTTagCompound); par1NBTTagCompound.setBoolean("Angry", this.isAngry()); - par1NBTTagCompound.setByte("CollarColor", (byte) this.getCollarColor()); } /** @@ -160,11 +159,6 @@ public class EntityWingedFireDemon extends EntityDemon implements IRangedAttackM super.readEntityFromNBT(par1NBTTagCompound); this.setAngry(par1NBTTagCompound.getBoolean("Angry")); - if (par1NBTTagCompound.hasKey("CollarColor")) - { - this.setCollarColor(par1NBTTagCompound.getByte("CollarColor")); - } - this.setCombatTask(); } diff --git a/1.7.10/main/java/WayofTime/alchemicalWizardry/common/harvest/BloodMagicHarvestHandler.java b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/harvest/BloodMagicHarvestHandler.java new file mode 100644 index 00000000..3d02140b --- /dev/null +++ b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/harvest/BloodMagicHarvestHandler.java @@ -0,0 +1,127 @@ +package WayofTime.alchemicalWizardry.common.harvest; + +import java.util.List; + +import net.minecraft.block.Block; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; +import net.minecraftforge.common.IPlantable; +import WayofTime.alchemicalWizardry.api.harvest.IHarvestHandler; + +public class BloodMagicHarvestHandler implements IHarvestHandler +{ + public boolean canHandleBlock(Block block) + { + return block == Blocks.wheat || block == Blocks.carrots || block == Blocks.potatoes || block == Blocks.nether_wart; + } + + public int getHarvestMeta(Block block) + { + if(block == Blocks.wheat) + { + return 7; + } + if(block == Blocks.carrots) + { + return 7; + } + if(block == Blocks.potatoes) + { + return 7; + } + if(block == Blocks.nether_wart) + { + return 3; + } + return 7; + } + + @Override + public boolean harvestAndPlant(World world, int xCoord, int yCoord, int zCoord, Block block, int meta) + { + if(!this.canHandleBlock(block) || meta != this.getHarvestMeta(block)) + { + return false; + } + + IPlantable seed = this.getSeedItem(block); + + if(seed == null) + { + return false; + } + + int fortune = 0; + + List list = block.getDrops(world, xCoord, yCoord, zCoord, meta, fortune); + boolean foundAndRemovedSeed = false; + + for(ItemStack stack : list) + { + if(stack == null) + { + continue; + } + + Item item = stack.getItem(); + if(item == seed) + { + int itemSize = stack.stackSize; + if(itemSize > 1) + { + stack.stackSize--; + foundAndRemovedSeed = true; + break; + }else if(itemSize == 1) + { + list.remove(stack); + foundAndRemovedSeed = true; + break; + } + } + } + + if(foundAndRemovedSeed) + { + int plantMeta = seed.getPlantMetadata(world, xCoord, yCoord, zCoord); + Block plantBlock = seed.getPlant(world, xCoord, yCoord, zCoord); + + world.setBlock(xCoord, yCoord, zCoord, plantBlock, plantMeta, 3); + + for(ItemStack stack : list) + { + EntityItem itemEnt = new EntityItem(world, xCoord, yCoord, zCoord, stack); + + world.spawnEntityInWorld(itemEnt); + } + } + + return false; + } + + public IPlantable getSeedItem(Block block) + { + if(block == Blocks.wheat) + { + return (IPlantable) Items.wheat_seeds; + } + if(block == Blocks.carrots) + { + return (IPlantable) Items.carrot; + } + if(block == Blocks.potatoes) + { + return (IPlantable) Items.potato; + } + if(block == Blocks.nether_wart) + { + return (IPlantable) Items.nether_wart; + } + + return null; + } +} \ No newline at end of file diff --git a/1.7.10/main/java/WayofTime/alchemicalWizardry/common/harvest/GourdHarvestHandler.java b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/harvest/GourdHarvestHandler.java new file mode 100644 index 00000000..74624427 --- /dev/null +++ b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/harvest/GourdHarvestHandler.java @@ -0,0 +1,45 @@ +package WayofTime.alchemicalWizardry.common.harvest; + +import java.util.List; + +import net.minecraft.block.Block; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; +import net.minecraftforge.common.IPlantable; +import WayofTime.alchemicalWizardry.api.harvest.IHarvestHandler; + +public class GourdHarvestHandler implements IHarvestHandler +{ + public boolean canHandleBlock(Block block) + { + return block == Blocks.melon_block || block == Blocks.pumpkin; + } + + @Override + public boolean harvestAndPlant(World world, int xCoord, int yCoord, int zCoord, Block block, int meta) + { + if(!this.canHandleBlock(block)) + { + return false; + } + + int fortune = 0; + + List list = block.getDrops(world, xCoord, yCoord, zCoord, meta, fortune); + + world.setBlockToAir(xCoord, yCoord, zCoord); + + for(ItemStack stack : list) + { + EntityItem itemEnt = new EntityItem(world, xCoord, yCoord, zCoord, stack); + + world.spawnEntityInWorld(itemEnt); + } + + return true; + } +} \ No newline at end of file diff --git a/1.7.10/main/java/WayofTime/alchemicalWizardry/common/items/ItemBloodRuneBlock.java b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/items/ItemBloodRuneBlock.java index 420cc8c5..ba92cbae 100644 --- a/1.7.10/main/java/WayofTime/alchemicalWizardry/common/items/ItemBloodRuneBlock.java +++ b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/items/ItemBloodRuneBlock.java @@ -41,11 +41,15 @@ public class ItemBloodRuneBlock extends ItemBlock break; case 3: - name = "test"; + name = "orb"; break; + case 4: + name = "betterCapacity"; + break; + default: - name = "broken"; + name = "broken"; } return getUnlocalizedName() + "." + name; diff --git a/1.7.10/main/java/WayofTime/alchemicalWizardry/common/items/spell/ItemSpellMultiTool.java b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/items/spell/ItemSpellMultiTool.java index f770c9dd..6f1806a1 100644 --- a/1.7.10/main/java/WayofTime/alchemicalWizardry/common/items/spell/ItemSpellMultiTool.java +++ b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/items/spell/ItemSpellMultiTool.java @@ -417,7 +417,7 @@ public class ItemSpellMultiTool extends Item @Override public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) { - par3List.add("Here's a 'Tool Tip' :D"); + par3List.add("A mace filled with ancient alchemy"); if (!(par1ItemStack.stackTagCompound == null)) { @@ -434,7 +434,7 @@ public class ItemSpellMultiTool extends Item par3List.add(""); float damage = this.getCustomItemAttack(par1ItemStack); par3List.add("\u00A79+" + ((int)(damage*10))/10.0f + " " + "Attack Damage"); - float critChance = ((int)(this.getCritChance(par1ItemStack)*1000))/10; + float critChance = ((int)(this.getCritChance(par1ItemStack)*1000))/10.0f; par3List.add("\u00A79+" + critChance + "% " + "Crit Chance"); } } diff --git a/1.7.10/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectHarvest.java b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectHarvest.java new file mode 100644 index 00000000..e971c137 --- /dev/null +++ b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectHarvest.java @@ -0,0 +1,123 @@ +package WayofTime.alchemicalWizardry.common.rituals; + +import java.util.ArrayList; +import java.util.List; + +import net.minecraft.block.Block; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; +import net.minecraft.server.MinecraftServer; +import net.minecraft.world.World; +import net.minecraftforge.common.IPlantable; +import WayofTime.alchemicalWizardry.api.harvest.HarvestRegistry; +import WayofTime.alchemicalWizardry.api.rituals.IMasterRitualStone; +import WayofTime.alchemicalWizardry.api.rituals.RitualComponent; +import WayofTime.alchemicalWizardry.api.rituals.RitualEffect; +import WayofTime.alchemicalWizardry.api.soulNetwork.LifeEssenceNetwork; +import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper; + +public class RitualEffectHarvest extends RitualEffect +{ + @Override + public void performEffect(IMasterRitualStone ritualStone) + { + String owner = ritualStone.getOwner(); + World worldSave = MinecraftServer.getServer().worldServers[0]; + LifeEssenceNetwork data = (LifeEssenceNetwork) worldSave.loadItemData(LifeEssenceNetwork.class, owner); + + if (data == null) + { + data = new LifeEssenceNetwork(owner); + worldSave.setItemData(owner, data); + } + + int currentEssence = data.currentEssence; + World world = ritualStone.getWorld(); + int x = ritualStone.getXCoord(); + int y = ritualStone.getYCoord(); + int z = ritualStone.getZCoord(); + int maxCount = 9; + + if (currentEssence < this.getCostPerRefresh() * maxCount) + { + EntityPlayer entityOwner = SpellHelper.getPlayerForUsername(owner); + + if (entityOwner == null) + { + return; + } + + entityOwner.addPotionEffect(new PotionEffect(Potion.confusion.id, 80)); + } else + { + if (world.getWorldTime() % 20 != 0) + { + return; + } + + int flag = 0; + int range = 4; + + for (int i = -range; i <= range; i++) + { + for (int j = -range; j <= range; j++) + { + for(int k = -range; k<=range; k++) + { + if(HarvestRegistry.harvestBlock(world, x + i, y + j, z + k)) + { + flag++; + } + } + } + } + + if (flag > 0) + { + data.currentEssence = currentEssence - this.getCostPerRefresh() * Math.min(maxCount, flag); + data.markDirty(); + } + } + } + + @Override + public int getCostPerRefresh() + { + return 20; + } + + @Override + public List getRitualComponentList() + { + ArrayList harvestRitual = new ArrayList(); + + harvestRitual.add(new RitualComponent(1,0,1,RitualComponent.DUSK)); + harvestRitual.add(new RitualComponent(1,0,-1,RitualComponent.DUSK)); + harvestRitual.add(new RitualComponent(-1,0,-1,RitualComponent.DUSK)); + harvestRitual.add(new RitualComponent(-1,0,1,RitualComponent.DUSK)); + harvestRitual.add(new RitualComponent(2,0,0,RitualComponent.EARTH)); + harvestRitual.add(new RitualComponent(-2,0,0,RitualComponent.EARTH)); + harvestRitual.add(new RitualComponent(0,0,2,RitualComponent.EARTH)); + harvestRitual.add(new RitualComponent(0,0,-2,RitualComponent.EARTH)); + harvestRitual.add(new RitualComponent(3,0,1,RitualComponent.EARTH)); + harvestRitual.add(new RitualComponent(3,0,-1,RitualComponent.EARTH)); + harvestRitual.add(new RitualComponent(-3,0,1,RitualComponent.EARTH)); + harvestRitual.add(new RitualComponent(-3,0,-1,RitualComponent.EARTH)); + harvestRitual.add(new RitualComponent(1,0,3,RitualComponent.EARTH)); + harvestRitual.add(new RitualComponent(-1,0,3,RitualComponent.EARTH)); + harvestRitual.add(new RitualComponent(1,0,-3,RitualComponent.EARTH)); + harvestRitual.add(new RitualComponent(-1,0,-3,RitualComponent.EARTH)); + harvestRitual.add(new RitualComponent(2,0,3,RitualComponent.WATER)); + harvestRitual.add(new RitualComponent(3,0,2,RitualComponent.WATER)); + harvestRitual.add(new RitualComponent(2,0,-3,RitualComponent.WATER)); + harvestRitual.add(new RitualComponent(-3,0,2,RitualComponent.WATER)); + harvestRitual.add(new RitualComponent(-2,0,3,RitualComponent.WATER)); + harvestRitual.add(new RitualComponent(3,0,-2,RitualComponent.WATER)); + harvestRitual.add(new RitualComponent(-2,0,-3,RitualComponent.WATER)); + harvestRitual.add(new RitualComponent(-3,0,-2,RitualComponent.WATER)); + + + return harvestRitual; + } +} diff --git a/1.7.10/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectLifeConduit.java b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectLifeConduit.java new file mode 100644 index 00000000..b7b93f4d --- /dev/null +++ b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectLifeConduit.java @@ -0,0 +1,180 @@ +package WayofTime.alchemicalWizardry.common.rituals; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.server.MinecraftServer; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; +import net.minecraftforge.fluids.FluidStack; +import WayofTime.alchemicalWizardry.AlchemicalWizardry; +import WayofTime.alchemicalWizardry.api.rituals.IMasterRitualStone; +import WayofTime.alchemicalWizardry.api.rituals.RitualComponent; +import WayofTime.alchemicalWizardry.api.rituals.RitualEffect; +import WayofTime.alchemicalWizardry.api.soulNetwork.LifeEssenceNetwork; +import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper; +import WayofTime.alchemicalWizardry.common.tileEntity.TEAltar; + +public class RitualEffectLifeConduit extends RitualEffect +{ + @Override + public void performEffect(IMasterRitualStone ritualStone) + { + String owner = ritualStone.getOwner(); + World worldSave = MinecraftServer.getServer().worldServers[0]; + LifeEssenceNetwork data = (LifeEssenceNetwork) worldSave.loadItemData(LifeEssenceNetwork.class, owner); + + if (data == null) + { + data = new LifeEssenceNetwork(owner); + worldSave.setItemData(owner, data); + } + + int currentEssence = data.currentEssence; + World world = ritualStone.getWorld(); + int x = ritualStone.getXCoord(); + int y = ritualStone.getYCoord(); + int z = ritualStone.getZCoord(); + + TEAltar tileAltar = null; + boolean testFlag = false; + + for (int i = -5; i <= 5; i++) + { + for (int j = -5; j <= 5; j++) + { + for (int k = -10; k <= 10; k++) + { + if (world.getTileEntity(x + i, y + k, z + j) instanceof TEAltar) + { + tileAltar = (TEAltar) world.getTileEntity(x + i, y + k, z + j); + testFlag = true; + } + } + } + } + + if (!testFlag) + { + return; + } + + //tileAltar = (TEAltar)world.getBlockTileEntity(x,y-1,z); + int d0 = 15; + int vertRange = 20; + + EntityPlayer entityOwner = null; + List list = SpellHelper.getPlayersInRange(world, x, y, z, d0, vertRange); + + for(EntityPlayer player : list) + { + if(SpellHelper.getUsername(player).equals(owner)) + { + entityOwner = player; + } + } + + if (entityOwner == null) + { + return; + } + + int fillAmount = Math.min(currentEssence/2,tileAltar.fill(ForgeDirection.UP, new FluidStack(AlchemicalWizardry.lifeEssenceFluid,10000), false)); + + { + tileAltar.fill(ForgeDirection.UP, new FluidStack(AlchemicalWizardry.lifeEssenceFluid,fillAmount), true); + if(entityOwner.getHealth() > 2.0f && fillAmount != 0) + { + entityOwner.setHealth(2.0f); + } + data.currentEssence = currentEssence - fillAmount*2; + } + } + + @Override + public int getCostPerRefresh() + { + return 0; + } + + @Override + public List getRitualComponentList() + { + ArrayList conduitRitual = new ArrayList(); + + conduitRitual.add(new RitualComponent(-1,0,-1,RitualComponent.FIRE)); + conduitRitual.add(new RitualComponent(-1,0,1,RitualComponent.FIRE)); + conduitRitual.add(new RitualComponent(1,0,1,RitualComponent.FIRE)); + conduitRitual.add(new RitualComponent(1,0,-1,RitualComponent.FIRE)); + + for(int i=0; i<4; i++) + { + conduitRitual.add(new RitualComponent(-2,i,-2,RitualComponent.AIR)); + conduitRitual.add(new RitualComponent(-2,i,2,RitualComponent.AIR)); + conduitRitual.add(new RitualComponent(2,i,2,RitualComponent.AIR)); + conduitRitual.add(new RitualComponent(2,i,-2,RitualComponent.AIR)); + } + + conduitRitual.add(new RitualComponent(4,1,4,RitualComponent.EARTH)); + conduitRitual.add(new RitualComponent(4,1,-4,RitualComponent.EARTH)); + conduitRitual.add(new RitualComponent(-4,1,-4,RitualComponent.EARTH)); + conduitRitual.add(new RitualComponent(-4,1,4,RitualComponent.EARTH)); + conduitRitual.add(new RitualComponent(3,1,4,RitualComponent.EARTH)); + conduitRitual.add(new RitualComponent(4,1,3,RitualComponent.EARTH)); + conduitRitual.add(new RitualComponent(-3,1,4,RitualComponent.EARTH)); + conduitRitual.add(new RitualComponent(-4,1,3,RitualComponent.EARTH)); + conduitRitual.add(new RitualComponent(3,1,-4,RitualComponent.EARTH)); + conduitRitual.add(new RitualComponent(4,1,-3,RitualComponent.EARTH)); + conduitRitual.add(new RitualComponent(-3,1,-4,RitualComponent.EARTH)); + conduitRitual.add(new RitualComponent(-4,1,-3,RitualComponent.EARTH)); + + + for(int i=0; i<2; i++) + { + conduitRitual.add(new RitualComponent(4,i+2,4,RitualComponent.WATER)); + conduitRitual.add(new RitualComponent(4,i+2,-4,RitualComponent.WATER)); + conduitRitual.add(new RitualComponent(-4,i+2,-4,RitualComponent.WATER)); + conduitRitual.add(new RitualComponent(-4,i+2,4,RitualComponent.WATER)); + } + + conduitRitual.add(new RitualComponent(4,4,4,RitualComponent.DUSK)); + conduitRitual.add(new RitualComponent(4,4,-4,RitualComponent.DUSK)); + conduitRitual.add(new RitualComponent(-4,4,-4,RitualComponent.DUSK)); + conduitRitual.add(new RitualComponent(-4,4,4,RitualComponent.DUSK)); + + conduitRitual.add(new RitualComponent(6,0,5,RitualComponent.FIRE)); + conduitRitual.add(new RitualComponent(5,0,6,RitualComponent.FIRE)); + conduitRitual.add(new RitualComponent(-6,0,5,RitualComponent.FIRE)); + conduitRitual.add(new RitualComponent(-5,0,6,RitualComponent.FIRE)); + conduitRitual.add(new RitualComponent(6,0,-5,RitualComponent.FIRE)); + conduitRitual.add(new RitualComponent(5,0,-6,RitualComponent.FIRE)); + conduitRitual.add(new RitualComponent(-6,0,-5,RitualComponent.FIRE)); + conduitRitual.add(new RitualComponent(-5,0,-6,RitualComponent.FIRE)); + + for(int i=0; i<2; i++) + { + conduitRitual.add(new RitualComponent(6,i,6,RitualComponent.FIRE)); + conduitRitual.add(new RitualComponent(6,i,-6,RitualComponent.FIRE)); + conduitRitual.add(new RitualComponent(-6,i,6,RitualComponent.FIRE)); + conduitRitual.add(new RitualComponent(-6,i,-6,RitualComponent.FIRE)); + } + + for(int i=0; i<3; i++) + { + conduitRitual.add(new RitualComponent(6,i+2,6,RitualComponent.BLANK)); + conduitRitual.add(new RitualComponent(6,i+2,-6,RitualComponent.BLANK)); + conduitRitual.add(new RitualComponent(-6,i+2,6,RitualComponent.BLANK)); + conduitRitual.add(new RitualComponent(-6,i+2,-6,RitualComponent.BLANK)); + } + + conduitRitual.add(new RitualComponent(6,5,6,RitualComponent.DUSK)); + conduitRitual.add(new RitualComponent(6,5,-6,RitualComponent.DUSK)); + conduitRitual.add(new RitualComponent(-6,5,6,RitualComponent.DUSK)); + conduitRitual.add(new RitualComponent(-6,5,-6,RitualComponent.DUSK)); + + return conduitRitual; + } +} diff --git a/1.7.10/main/java/WayofTime/alchemicalWizardry/common/spell/complex/SpellParadigmTool.java b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/spell/complex/SpellParadigmTool.java index a9390285..16b1498f 100644 --- a/1.7.10/main/java/WayofTime/alchemicalWizardry/common/spell/complex/SpellParadigmTool.java +++ b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/spell/complex/SpellParadigmTool.java @@ -48,6 +48,7 @@ public class SpellParadigmTool extends SpellParadigm private HashMap digSpeed; private HashMap maxDamageHash; private HashMap critChanceHash; + private HashMap durationHash; //ticks private HashMap toolInfoString; @@ -66,6 +67,8 @@ public class SpellParadigmTool extends SpellParadigm this.breakBlockEffectList = new LinkedList(); this.itemManipulatorEffectList = new LinkedList(); this.digAreaEffectList = new LinkedList(); + this.specialDamageEffectList = new LinkedList(); + this.durationHash = new HashMap(); this.toolInfoString = new HashMap(); this.critChanceHash = new HashMap(); @@ -73,12 +76,12 @@ public class SpellParadigmTool extends SpellParadigm this.maxDamage = 5; this.harvestLevel = new HashMap(); - this.harvestLevel.put("pickaxe", 2); + this.harvestLevel.put("pickaxe", -1); this.harvestLevel.put("shovel", -1); this.harvestLevel.put("axe", -1); this.digSpeed = new HashMap(); - this.digSpeed.put("pickaxe", 6.0f); + this.digSpeed.put("pickaxe", 1.0f); this.digSpeed.put("shovel", 1.0f); this.digSpeed.put("axe", 1.0f); @@ -88,7 +91,9 @@ public class SpellParadigmTool extends SpellParadigm this.fortuneLevel = 0; this.silkTouch = false; - this.duration = 2400; + this.duration = 0; + + this.durationHash.put("default", 2400); //this.addRightClickEffect(new RightClickTunnel(0,0,0)); @@ -178,6 +183,11 @@ public class SpellParadigmTool extends SpellParadigm itemTool.setToolListString(toolStack, toolStringList); + for(Integer integ : this.durationHash.values()) + { + this.duration += integ; + } + itemTool.setDuration(toolStack, world, this.duration); itemTool.loadParadigmIntoStack(toolStack, this.bufferedEffectList); @@ -453,6 +463,11 @@ public class SpellParadigmTool extends SpellParadigm this.critChanceHash.put(key, chance); } + public void addDuration(String key, int dur) + { + this.durationHash.put(key, dur); + } + public float getCritChance() { float chance = 0.0f; diff --git a/1.7.10/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellEffectEarth.java b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellEffectEarth.java index 96e284b2..094d3fb4 100644 --- a/1.7.10/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellEffectEarth.java +++ b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellEffectEarth.java @@ -263,22 +263,18 @@ public class SpellEffectEarth extends SpellEffect @Override protected int getCostForOffenseTool() { - // TODO Auto-generated method stub - return 0; + return 1000; } - @Override protected int getCostForDefenseTool() { return (int)(1000 * (1 + this.potencyEnhancement*0.1f) * (1 + this.powerEnhancement*0.2f) * Math.pow(0.85, costEnhancement)); } - @Override protected int getCostForEnvironmentTool() { return (int)(10 * (1+this.potencyEnhancement*0.8) * Math.pow(1.5*this.powerEnhancement + 3, 2) * Math.pow(0.85, this.costEnhancement)); } - } diff --git a/1.7.10/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellEffectFire.java b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellEffectFire.java index 48595b37..a4027390 100644 --- a/1.7.10/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellEffectFire.java +++ b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellEffectFire.java @@ -17,6 +17,7 @@ import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.fi import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.fire.SelfEnvironmentalFire; import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.fire.SelfOffensiveFire; import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.fire.ToolDefaultFire; +import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.fire.ToolEnvironmentalFire; import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.fire.ToolOffensiveFire; public class SpellEffectFire extends SpellEffect @@ -181,15 +182,21 @@ public class SpellEffectFire extends SpellEffect } @Override - public void defensiveModificationTool(SpellParadigmTool parad) { - // TODO Auto-generated method stub + public void defensiveModificationTool(SpellParadigmTool parad) + { + parad.addCritChance("defFire", this.potencyEnhancement); + parad.addDuration("defFire", 1200 * this.powerEnhancement); + + parad.addToolString("defFire", "Unbreaking" + " " + SpellHelper.getNumeralForInt(this.powerEnhancement + 1)); } @Override - public void environmentalModificationTool(SpellParadigmTool parad) { - // TODO Auto-generated method stub + public void environmentalModificationTool(SpellParadigmTool parad) + { + parad.addBlockBreakEffect(new ToolEnvironmentalFire(this.powerEnhancement,this.potencyEnhancement,this.costEnhancement)); + parad.addToolString("envFire", "Magma Plume" + " " + SpellHelper.getNumeralForInt(this.powerEnhancement + 1)); } @Override @@ -201,18 +208,18 @@ public class SpellEffectFire extends SpellEffect @Override protected int getCostForOffenseTool() { - return (int)(0); //TODO + return (int)(1000 * (1 + this.powerEnhancement*0.3f) * (1 + this.potencyEnhancement*0.2f) * Math.pow(0.85, costEnhancement)); } @Override - protected int getCostForDefenseTool() { - // TODO Auto-generated method stub - return 0; + protected int getCostForDefenseTool() + { + return (int)(500 * (1 + this.powerEnhancement*0.5f) * (1 + this.potencyEnhancement) * Math.pow(0.85, costEnhancement)); } @Override - protected int getCostForEnvironmentTool() { - // TODO Auto-generated method stub + protected int getCostForEnvironmentTool() + { return 0; } } diff --git a/1.7.10/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/ToolEnvironmentalFire.java b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/ToolEnvironmentalFire.java new file mode 100644 index 00000000..cfa1aa8b --- /dev/null +++ b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/ToolEnvironmentalFire.java @@ -0,0 +1,47 @@ +package WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.fire; + +import java.util.Random; + +import net.minecraft.block.Block; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; +import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.tool.OnBreakBlockEffect; + +public class ToolEnvironmentalFire extends OnBreakBlockEffect +{ + public ToolEnvironmentalFire(int power, int potency, int cost) + { + super(power, potency, cost); + } + + @Override + public int onBlockBroken(ItemStack container, World world, EntityPlayer player, Block block, int meta, int x, int y, int z, ForgeDirection sideBroken) + { + int amount = 0; + int cost = (int)(250 * (1 - 0.1f*powerUpgrades) * Math.pow(0.85, costUpgrades)); + int radius = this.powerUpgrades; + float chance = 0.35f + 0.15f*this.potencyUpgrades; + + for(int i=-radius; i<=radius; i++) + { + for(int j=-radius; j<=radius; j++) + { + for(int k=-radius; k<=radius; k++) + { + Block blockAffected = world.getBlock(x + i -sideBroken.offsetX, y + j, z + k - sideBroken.offsetZ); + + if((new Random().nextFloat() <= chance) && (blockAffected == Blocks.gravel || blockAffected == Blocks.stone || blockAffected == Blocks.cobblestone)) + { + world.setBlock(x + i -sideBroken.offsetX, y + j, z + k - sideBroken.offsetZ, Blocks.lava); + amount += cost; + } + } + } + } + + return amount; + } +} diff --git a/1.7.10/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TEAltar.java b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TEAltar.java index b5c96375..5e7f1d3d 100644 --- a/1.7.10/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TEAltar.java +++ b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TEAltar.java @@ -1,6 +1,5 @@ package WayofTime.alchemicalWizardry.common.tileEntity; -import WayofTime.alchemicalWizardry.api.tile.IBloodAltar; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; import net.minecraft.item.Item; @@ -27,6 +26,7 @@ import WayofTime.alchemicalWizardry.api.altarRecipeRegistry.AltarRecipe; import WayofTime.alchemicalWizardry.api.altarRecipeRegistry.AltarRecipeRegistry; import WayofTime.alchemicalWizardry.api.items.interfaces.IBloodOrb; import WayofTime.alchemicalWizardry.api.soulNetwork.LifeEssenceNetwork; +import WayofTime.alchemicalWizardry.api.tile.IBloodAltar; import WayofTime.alchemicalWizardry.common.NewPacketHandler; import WayofTime.alchemicalWizardry.common.bloodAltarUpgrade.AltarUpgradeComponent; import WayofTime.alchemicalWizardry.common.bloodAltarUpgrade.UpgradedAltars; @@ -867,11 +867,11 @@ public class TEAltar extends TileEntity implements IInventory, IFluidTank, IFlui this.isUpgraded = checkUpgrade; this.upgradeLevel = upgradeState; - this.consumptionMultiplier = (float) (0.15 * upgrades.getSpeedUpgrades()); + this.consumptionMultiplier = (float) (0.20 * upgrades.getSpeedUpgrades()); this.efficiencyMultiplier = (float) Math.pow(0.85, upgrades.getSpeedUpgrades()); this.sacrificeEfficiencyMultiplier = (float) (0.10 * upgrades.getSacrificeUpgrades()); this.selfSacrificeEfficiencyMultiplier = (float) (0.10 * upgrades.getSelfSacrificeUpgrades()); - this.capacityMultiplier = (float) (1 + 0.15 * upgrades.getAltarCapacitiveUpgrades()); + this.capacityMultiplier = (float) ((1*Math.pow(1.10,upgrades.getBetterCapacitiveUpgrades()) + 0.20 * upgrades.getAltarCapacitiveUpgrades())); //TODO finalize values this.dislocationMultiplier = (float) (Math.pow(1.2, upgrades.getDisplacementUpgrades())); this.orbCapacityMultiplier = (float) (1 + 0.02 * upgrades.getOrbCapacitiveUpgrades()); diff --git a/1.7.10/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TEDemonPortal.java b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TEDemonPortal.java index 457f05a5..9b6f08d6 100644 --- a/1.7.10/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TEDemonPortal.java +++ b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TEDemonPortal.java @@ -36,6 +36,9 @@ import com.google.gson.GsonBuilder; public class TEDemonPortal extends TileEntity { + public static int buildingGridDelay = 25; + public static int roadGridDelay = 10; + public static List buildingList = new ArrayList(); public Random rand = new Random(); private GridSpace[][] area; @@ -47,6 +50,11 @@ public class TEDemonPortal extends TileEntity private boolean isInitialized; + public int houseCooldown; + public int roadCooldown; + public int tier; //Tier of the demon portal - Should select buildings 2 below to this + public int totalPoints; + public TEDemonPortal() { super(); @@ -71,6 +79,9 @@ public class TEDemonPortal extends TileEntity isInitialized = false; this.setGridSpace(0, 0, new GridSpace(GridSpace.MAIN_PORTAL, yCoord)); + + this.houseCooldown = 0; + this.roadCooldown = 0; } public void initialize() @@ -87,6 +98,9 @@ public class TEDemonPortal extends TileEntity if(Math.abs(xIndex) == 1 || Math.abs(zIndex) == 1) { this.setGridSpace(xIndex, zIndex, new GridSpace(GridSpace.ROAD,yCoord)); + }else if(xIndex == 0 && zIndex == 0) + { + this.setGridSpace(0, 0, new GridSpace(GridSpace.MAIN_PORTAL, yCoord)); }else { this.setGridSpace(xIndex, zIndex, new GridSpace()); @@ -94,9 +108,41 @@ public class TEDemonPortal extends TileEntity } } + this.houseCooldown = TEDemonPortal.buildingGridDelay; + this.roadCooldown = TEDemonPortal.roadGridDelay; + isInitialized = true; } + @Override + public void updateEntity() + { + if(!isInitialized) + { + return; + } + + if(this.roadCooldown <= 0) + { + int roadsMade = this.createRandomRoad(); + if(roadsMade > 0) + { + this.roadCooldown = TEDemonPortal.roadGridDelay * roadsMade; + } + } + else if(this.houseCooldown <= 0) + { + int gridsUsed = this.createRandomBuilding(0, 0); + if(gridsUsed > 0) + { + this.houseCooldown = TEDemonPortal.buildingGridDelay * gridsUsed; + } + } + + this.houseCooldown = Math.max(0, this.houseCooldown - 1); + this.roadCooldown = Math.max(0, this.roadCooldown - 1); + } + @Override public void readFromNBT(NBTTagCompound par1NBTTagCompound) { @@ -105,6 +151,8 @@ public class TEDemonPortal extends TileEntity this.negZRadius = par1NBTTagCompound.getInteger("negZRadius"); this.posXRadius = par1NBTTagCompound.getInteger("posXRadius"); this.posZRadius = par1NBTTagCompound.getInteger("posZRadius"); + this.houseCooldown = par1NBTTagCompound.getInteger("houseCooldown"); + this.roadCooldown = par1NBTTagCompound.getInteger("roadCooldown"); area = new GridSpace[negXRadius + posXRadius + 1][negZRadius + posZRadius + 1]; @@ -124,6 +172,9 @@ public class TEDemonPortal extends TileEntity } this.isInitialized = par1NBTTagCompound.getBoolean("init"); + + this.tier = par1NBTTagCompound.getInteger("tier"); + this.totalPoints = par1NBTTagCompound.getInteger("totalPoints"); } @Override @@ -134,6 +185,8 @@ public class TEDemonPortal extends TileEntity par1NBTTagCompound.setInteger("negZRadius", negZRadius); par1NBTTagCompound.setInteger("posXRadius", posXRadius); par1NBTTagCompound.setInteger("posZRadius", posZRadius); + par1NBTTagCompound.setInteger("houseCooldown", houseCooldown); + par1NBTTagCompound.setInteger("roadCooldown", roadCooldown); NBTTagList gridList = new NBTTagList(); @@ -161,9 +214,11 @@ public class TEDemonPortal extends TileEntity par1NBTTagCompound.setTag("Grid", gridList); par1NBTTagCompound.setBoolean("init", isInitialized); + par1NBTTagCompound.setInteger("tier", this.tier); + par1NBTTagCompound.setInteger("totalPoints", this.totalPoints); } - public void createRandomRoad() + public int createRandomRoad() //Return the number of road spaces { int next = rand.nextInt(4); ForgeDirection dir; @@ -200,7 +255,7 @@ public class TEDemonPortal extends TileEntity if(directions.size() <= 0) { - return; + return 0; } int maxDistance = 5; @@ -223,12 +278,14 @@ public class TEDemonPortal extends TileEntity if(dominantDirection == null) { - return; + return 0; } System.out.println("I got here!"); System.out.println("Distance: " + distance + " Direction: " + dominantDirection.toString() + " yLevel: " + yLevel); this.createGriddedRoad(x, yLevel, z, dominantDirection, distance+1, true); + + return distance; } public List findValidExtentionDirection(int x, int z) @@ -725,33 +782,35 @@ public class TEDemonPortal extends TileEntity { return; } - Int3 roadMarker = this.getNextRoadMarker(); this.initialize(); if(ForgeDirection.getOrientation(side) == ForgeDirection.UP) { this.createRandomBuilding(DemonBuilding.BUILDING_HOUSE, 0); + }else if(ForgeDirection.getOrientation(side) == ForgeDirection.DOWN) + { + this.createRandomBuilding(DemonBuilding.BUILDING_PORTAL, 0); }else { this.createRandomRoad(); } } - public void createRandomBuilding(int type, int tier) + public int createRandomBuilding(int type, int tier) { switch(type) { case DemonBuilding.BUILDING_HOUSE: - this.createRandomHouse(tier); - break; + return this.createRandomHouse(tier); case DemonBuilding.BUILDING_PORTAL: - this.createPortalBuilding(tier); - break; + return this.createPortalBuilding(tier); } + + return 0; } - public void createPortalBuilding(int buildingTier) + public int createPortalBuilding(int buildingTier) { int x = 0; int z = 0; @@ -766,7 +825,7 @@ public class TEDemonPortal extends TileEntity for(int i=2; i<6; i++) { ForgeDirection testDir = ForgeDirection.getOrientation(i); - if(this.getGridSpace(x + testDir.offsetX, z + testDir.offsetZ).isEmpty()) + //if(this.getGridSpace(x + testDir.offsetX, z + testDir.offsetZ).isEmpty()) { directions.add(testDir); } @@ -774,7 +833,7 @@ public class TEDemonPortal extends TileEntity if(directions.isEmpty()) { - return; + return 0; } HashMap> schemMap = new HashMap(); @@ -783,6 +842,10 @@ public class TEDemonPortal extends TileEntity { for(DemonBuilding build : TEDemonPortal.buildingList) { + if(build.buildingType != DemonBuilding.BUILDING_PORTAL) + { + continue; + } if(schemMap.containsKey(nextDir)) { schemMap.get(nextDir).add(build); @@ -796,7 +859,7 @@ public class TEDemonPortal extends TileEntity if(schemMap.keySet().isEmpty()) { - return; + return 0; } ForgeDirection chosenDirection = (ForgeDirection) schemMap.keySet().toArray()[new Random().nextInt(schemMap.keySet().size())]; @@ -820,9 +883,11 @@ public class TEDemonPortal extends TileEntity build.buildAll(worldObj, xCoord + (x)*5, yLevel, zCoord + (z)*5, chosenDirection.getOpposite()); build.setAllGridSpaces(x, z, yLevel, chosenDirection.getOpposite(), GridSpace.MAIN_PORTAL, grid); this.loadGSH(grid); + + return build.getNumberOfGridSpaces(); } - public void createRandomHouse(int buildingTier) + public int createRandomHouse(int buildingTier) { int next = rand.nextInt(4); ForgeDirection dir; @@ -845,8 +910,6 @@ public class TEDemonPortal extends TileEntity dir = ForgeDirection.NORTH; } - int length = 5; - boolean newProtocol = true; if(newProtocol) @@ -863,7 +926,7 @@ public class TEDemonPortal extends TileEntity if(!this.getGridSpace(x, z).isRoadSegment()) { - return; + return 0; } List directions = new ArrayList(); @@ -879,7 +942,7 @@ public class TEDemonPortal extends TileEntity if(directions.isEmpty()) { - return; + return 0; } HashMap> schemMap = new HashMap(); @@ -915,7 +978,7 @@ public class TEDemonPortal extends TileEntity if(schemMap.keySet().isEmpty()) { - return; + return 0; } ForgeDirection chosenDirection = (ForgeDirection) schemMap.keySet().toArray()[new Random().nextInt(schemMap.keySet().size())]; @@ -929,6 +992,8 @@ public class TEDemonPortal extends TileEntity build.buildAll(worldObj, xCoord + (x + xOff)*5, yLevel, zCoord + (z + zOff)*5, chosenDirection.getOpposite()); build.setAllGridSpaces(x + xOff, z + zOff, yLevel, chosenDirection.getOpposite(), GridSpace.HOUSE, grid); this.loadGSH(grid); + + return build.getNumberOfGridSpaces(); }else { Int3 space = findEmptySpaceNearRoad(dir, 3*(rand.nextInt(negXRadius + negZRadius + posXRadius + posZRadius))+1, 2); @@ -940,12 +1005,12 @@ public class TEDemonPortal extends TileEntity GridSpace newSpace = this.getGridSpace(x, z); if(!newSpace.isEmpty()) { - return; + return 0; } if(yLevel == -1) { - return; + return 0; } GridSpaceHolder grid = this.createGSH(); @@ -985,7 +1050,7 @@ public class TEDemonPortal extends TileEntity build = buildingList.get(new Random().nextInt(buildingList.size())); }else { - return; + return 0; } //TODO: Finish the selection algorythm //TODO: Should favour those directions that have a road right next to them. @@ -994,7 +1059,8 @@ public class TEDemonPortal extends TileEntity build.setAllGridSpaces(x, z, yLevel, chosenDirection, GridSpace.HOUSE, grid); this.loadGSH(grid); - System.out.println("X: " + x + " Z: " + z + " Direction: " + chosenDirection.toString()); + return build.getNumberOfGridSpaces(); +// System.out.println("X: " + x + " Z: " + z + " Direction: " + chosenDirection.toString()); } } @@ -1064,34 +1130,6 @@ public class TEDemonPortal extends TileEntity return 10; } - public Block getRoadMarker() - { - return ModBlocks.ritualStone; - } - - public Int3 getNextRoadMarker() - { - int horizSearchMax = 25; - int vertSearchMax = 10; - - for(int xPos=xCoord-horizSearchMax; xPos<=xCoord+horizSearchMax; xPos++) - { - for(int zPos=zCoord-horizSearchMax; zPos<=zCoord+horizSearchMax; zPos++) - { - for(int yPos=yCoord-vertSearchMax; yPos<=yCoord+vertSearchMax; yPos++) - { - Block block = worldObj.getBlock(xPos, yPos, zPos); - if(block == this.getRoadMarker()) - { - return new Int3(xPos,yPos,zPos); - } - } - } - } - - return null; - } - public int getRoadSpacer() { return 1; @@ -1150,4 +1188,14 @@ public class TEDemonPortal extends TileEntity } + + public int getTotalPoints() + { + return this.totalPoints; + } + + public void addToPoints(int addition) + { + this.totalPoints += addition; + } } diff --git a/1.7.10/main/resources/assets/alchemicalwizardry/lang/en_US.lang b/1.7.10/main/resources/assets/alchemicalwizardry/lang/en_US.lang index feb12464..778353db 100644 --- a/1.7.10/main/resources/assets/alchemicalwizardry/lang/en_US.lang +++ b/1.7.10/main/resources/assets/alchemicalwizardry/lang/en_US.lang @@ -3,7 +3,8 @@ tile.bloodAltar.name=Blood Altar tile.bloodRune.blank.name=Blood Rune tile.bloodRune.fill.name=Rune of Augmented Capacity tile.bloodRune.empty.name=Rune of Dislocation -tile.bloodRune.test.name=Rune of the Orb +tile.bloodRune.orb.name=Rune of the Orb +tile.bloodRune.betterCapacity.name=Rune of Superior Capacity tile.speedRune.name=Speed Rune tile.efficiencyRune.name=Efficiency Rune tile.runeOfSacrifice.name=Rune of Sacrifice @@ -25,6 +26,7 @@ tile.blockConduit.name=Spell Conduit tile.blockSpellParadigm.projectile.name=Particle Generator tile.blockSpellParadigm.self.name=Self Augmentator tile.blockSpellParadigm.melee.name=Melee Aggregator +tile.blockSpellParadigm.tool.name=Tool Forger tile.blockSpellEnhancement.power1.name=Unstable Spell Empowerer tile.blockSpellEnhancement.power2.name=Standard Spell Empowerer tile.blockSpellEnhancement.power3.name=Reinforced Spell Empowerer @@ -129,7 +131,7 @@ item.bloodLightSigil.name=Sigil of the Blood Lamp item.itemComplexSpellCrystal.name=Complex Spell Crystal item.itemSigilOfSupression.name=Sigil of Supression item.itemSigilOfEnderSeverance.name=Sigil of Ender Severance -item.bucketLive.name=Bucket of Life +item.bucketLife.name=Bucket of Life item.bloodMagicBaseItem.QuartzRod.name=Quartz Rod item.bloodMagicBaseItem.EmptyCore.name=Empty Core item.bloodMagicBaseItem.MagicalesCable.name=Magicales Cable @@ -138,6 +140,7 @@ item.bloodMagicBaseItem.StoneBrace.name=Stone Brace item.bloodMagicBaseItem.ProjectileCore.name=Projectile Core item.bloodMagicBaseItem.SelfCore.name=Self Core item.bloodMagicBaseItem.MeleeCore.name=Melee Core +item.bloodMagicBaseItem.ToolCore.name=Tool Core item.bloodMagicBaseItem.ParadigmBackPlate.name=Paradigm Plate item.bloodMagicBaseItem.OutputCable.name=Output Spell Cable item.bloodMagicBaseItem.InputCable.name=Input Spell Cable @@ -168,7 +171,7 @@ item.bloodMagicAlchemyItem.Potentia.name=Potentia item.sanguineHelmet.name=Sanguine Helmet item.itemSeerSigil.name=Sigil of Sight item.itemFluidSigil.name= - +item.multiTool.name=Dynamic Mace #Creative Tab itemGroup.tabBloodMagic=Blood Magic diff --git a/1.7.10/main/resources/assets/alchemicalwizardry/textures/blocks/BetterCapacityRune.png b/1.7.10/main/resources/assets/alchemicalwizardry/textures/blocks/BetterCapacityRune.png new file mode 100644 index 0000000000000000000000000000000000000000..d28ef9bfc2b9e74d32a9b3a2bcd8fd4a094b38ca GIT binary patch literal 771 zcmV+e1N{7nP)SB74#A0Y3EmySH7})pgx84FD*mIOpDb zN+|#UfDj^tAcPpl(K$ys=gQcZO;fb{$XGJE$@^R?N2f_j)t1G9F`my5#`Nn{ ztk!Z0jMC9hA{DM}Cxl)Aj!Dw*+ne3kBHS+-x?-s#JjB-@A);ZxVWD$I5vlxHz7opU`Oi;v0kz08ne~d_Mon`|FoW5Xr;C zBX<6m&!0WO|G)h@4Ff{>!+L#Q6&N7^z>Kjx&#T$&^7a zW1k{~5JCj^l-|C6b<|pj6dBC{Nh!Vec)QzSj3odK@kNZ=?UqtHan3OAtu4!v5Mr&( zGBu7C05HK=8-tArjKr=JLL5hjoYM)7#>5Ec=Vy7IBaF2+06;nC#@NN>^OaGJ{3AO6|Z_0#na>#FoIOq`$Uy2&!m7zWUz zLseyp0wEkipnc!3fBvanURi7Xci-NHB_SlsGP7D~Df2w{-VehtON9#IbUM)_VaHP+ zpPr{XE z)7O>#E+?ay0gq%eYdla$HZvrm#5q4VH#M&W$Yo$~E=o--Nlj5G&n(GMaQE~LNYP7W z2a4bKba4!^IK6bTVbLK20oVInlbs~*JYkvQbQKFzb<6$IB@*nrl|O36Jk=YJH$3$FTT&V zjNiewXyUxLe9xn9N3y-YFE+K&_1F3IN!9y5^GlT#{+g_R5g29+44$rjF6*2UngDg_ BhnfHY diff --git a/1.7.10/main/resources/assets/alchemicalwizardry/textures/items/ElementalInkAir.png b/1.7.10/main/resources/assets/alchemicalwizardry/textures/items/ElementalInkAir.png deleted file mode 100644 index e7d3e1ffe103d915dada6610eba50e2d38d12f52..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 439 zcmV;o0Z9IdP)kWqna zrvfPm>r1*DVOEETNQ5E;KSQ^$>_x*|()~{dPm!{QK?8G{ndjk|;Ta_&OcMrEMr2&0 zdUhmTJye%86i%V2ex<-E6jdNXC(vWTf3gB1GBPhKuGF7e(s+K6>r+q0&5cyxmP=x< z=9sZ8-h3aG*~BZCWTF+kvMZ^~2F<%Feh?5dO%`mMbT-HFi7TN5mV(#D4J-K_+P7CM z+BTM9kc!17KjQNG77w)xX4mrEw>tndyItP34kyq+DjEeKVOgY;2>|BeaXz(#6U>_i ztzHj1>wK&CwPwkRgcCT0qUzLZm`d@{?_(JTy}^LTyDHne2R{s@#y!({#S>p^lp138 h_YOz8QT_WjegO^fkWe^7eER?Z002ovPDHLkV1lQ;s{XE z)7O>#F1rMu1*^uSWPhNLY-UJAiF1B#Zfaf$kjuc}T$GwvlA5AWo>`Ki;O^-gkfN8$ z&cMKE;OXKRVsZNDWNU9`M-jL4XYzz5TXn2R5ah0J>}^sq6B6l3(#n1F#+7;6G^L2B zj)PXSPbIu=`XO8+vQePMQDADvvAc7#1wE3@q&*(Cu6%ayaCw`xm&=Q#CbrXL%N~Zw z{9I)_!H1vGU}|houC%MlmpSvNJy}zsFt_TB-^W+|SMQ0uJI@#B^^h-3#mBLoH(ow} zyGXu&S%G$62`i9@kyt~CI&9tJ|Nn(4H?Uy+Onw?*~CuSAnX}%R^|Ts^B1|iqB}UkY&sQK;(!WnZ412B#r7gXreV7G za?=I6(vPc`TsnNQVdkAxQqi|_e;pM*@+*iTW!m-`bD~3H-yZzp6vz0ecHj1(GtaKy ge%JWx`~4r>XXh>GxVy3W0Vq&CUHx3vIVCg!0E!i?E&u=k diff --git a/1.7.10/main/resources/assets/alchemicalwizardry/textures/items/ElementalInkFire.png b/1.7.10/main/resources/assets/alchemicalwizardry/textures/items/ElementalInkFire.png deleted file mode 100644 index 6f69f5ba10567f911aac8b999bb43bedb5ed9e24..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 430 zcmV;f0a5;mP)1fyqK%{?2-2zD>=vDh z58x;r`-GB7@&H*a^bf5d?e1W)5iJ_jcsmrj)Ko?2UGKezbI&=UtaiOYX708q;%yEIZs1A*^J{ltN6mfpwkuoHrAM;fIn z>*0`9zfb+N{G-WEfWY^}%@w(OeMS`uD9d6KhBV6OTS0ySq^46I-(GMpYdkDMlx49V zjaUr^==pp%13jHlE0nl@>fu%|Km=`B=zM;^Ag#|F(v=Dl$He0?$}mudfp(nz0K_y= zw#}7YW;2-}QH085P^P)Rje+lpYudCN7^TA7@KZbtxg6ajF3bE^&t(!YJ< Y7kck>_4OTKZU6uP07*qoM6N<$f|^gSC;$Ke diff --git a/1.7.10/main/resources/assets/alchemicalwizardry/textures/items/ElementalInkWater.png b/1.7.10/main/resources/assets/alchemicalwizardry/textures/items/ElementalInkWater.png deleted file mode 100644 index 35f17a0a4b9adc518d856c9c2e181a81bf4141eb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 429 zcmV;e0aE^nP)FUQE+!3p2~8}9 zm61>As$~O5r4H^+T{OnTrP#CvX_cJxbt5tK1jFE)+;Z>Tli&O2VMK&&f@905=n}zb z@B^*W>$5)*bb5W3qzg>qLi_nw0ss&d4#QYe0}+*;@zAF*OehQ!8V`Naz2mz2_YOVG z=L^K~2b@-Sr6<}RTwVHPIj4BIzX1R=o4Zh|!2Z!$sYofoCEJxUyzgxLNHiWrrk#N?{54C XZ5xsAMC4Y-00000NkvXXu0mjf#ICN7 diff --git a/1.7.10/main/resources/assets/alchemicalwizardry/textures/items/baseItemToolCore.png b/1.7.10/main/resources/assets/alchemicalwizardry/textures/items/baseItemToolCore.png new file mode 100644 index 0000000000000000000000000000000000000000..f6dd600bddd489ba11303c56ec21889d40e9cbf6 GIT binary patch literal 453 zcmV;$0XqJPP)VGd000McNliru-Uk8~A{8blF^K0jVN zj=f&nyL%`O5Qo@^E>oQ|=bKmG%p4v%l5G#~PKEXRhcBD8$)>{joRcFC22>R{W6mx& zgOb0CUmjB~nB{ajlojRbR&#cF7t&Ys4ms#^lixb{0|FhI`#5P7L%@$>#T*krPYoSr6EJYftbuj-yL00000NkvXXu0mjfMd84b literal 0 HcmV?d00001 diff --git a/1.7.10/main/resources/assets/alchemicalwizardry/textures/models/SpellParadigmTool.png b/1.7.10/main/resources/assets/alchemicalwizardry/textures/models/SpellParadigmTool.png index 19b5ad2282bf15915138b6e9293b24f9543e5dca..4296e387633a467f65cc7a440a8205f56bc81556 100644 GIT binary patch delta 1113 zcmV-f1g87a1e^(wQhx^l6&(>_O+o(v00b#XL_t(|+U=UXZW~7wg}>P!@n?4_1rnUf zZy`qsf&{9ywR$5#kT(dBA~9SA@EZt53?fBbsGd|QlEQ^0SI#4-bt2Iumw&rEDK5z+ zDKVCWP~wt%0D?=*aG-nU+;i`YsF;Hvzr>^lTnBmsAO+V2&wqy~f;0g?$mV~iQREQL zyn(0#Q5QA?==C57AZp84JCb*0fl@+7USZ7}NDcT^39wd^cYtOKwzowYQ3S?hV=JYA ztxbpr;J6ZGng|ht0oXPq3B<8H=NWSeux&U$hrow+8M1 z-9KPi;8no@wtofv7`lB(Qz(_hBk~IMEW`k`TVi~UEj#S_BKJ6kY8Br74UPpPuWvME z-p4yosmi=K7J>k5N4(*O-hA}y)0;!Q2zr8K4?|CA5lLAJFND}ZW@_(GBuvrsTxGq?>ycA-ZK~2=8 z6tvno@PKkj{!n)S=M6~%+m^Zy;Cs;NKz|@a1RgZrivgC)GH1gTvKlQR$@ihr0B0iy z1X#8>eH=r%Bta=e)-Vh_1+OIOV2miFT!v;_QlJ(HIet~hXh$+9iE}_esRW&2XZPR% zG~Z`~L4Qpg-Wcfj!BVoT8}88Pl#tbG!sZr~QX$UwhWVBA9$_tTsYIRCney(3k5Q{k zz@q-ddl~%x|!%%gYzphiHz*?k$I;&%zzmN~#d^J7z?Qsae(V<>h zLY(I>;7uTbs=B7zfxmX-^CxXhnr1}oHdoINrhhWs^QO=DRZr^wST1UXQ^2y|>&NSt z0!1SF}^Jzz8fY+6f{bBvj>uv9?`hdy$*X?F^0xPY6gD@P&{ir3oZj2mc(gaFn zc;$xtru9lHVX6u^u3T#P!{cq5Laz(Bg;y*k4#Lok6ns|4%yzN2It#3A6*#M7Ms*+H z>3@@-0C@8B`>8J+9cr#K?z|&yHK!+UZ=3?oP4i}Q_a}FL zRtY!R)lsMUP_Jno-qyg@J_Y{QKHxr0aA_K$`$9(O-J8HtnBY?M0gLX~X73fQBJ)FY z7D48nrohW%#)qvx)#c##(Y!o{KajD{dViYTz8+uMEldH6Ho)2S0X`pSUb*4aj{owj zoIEG7+tlOB+C|((SvT>359R-4!2h+*Zc~EaZB5I46#S!>9$&~Ta`*4057;M@wByXz zWxI7pRUngSc4jNETZf@2m>U27eXyB2rC~ zWU}9jG?i**ii@ZMcVdFeTn5$1u&xu>Rk&*I(V@=G{}0ywFjSyGfdT~z6ev)jK!E}U f3KS?%VBPR9FR%5`M@=x+00000NkvXXu0mjf_HPjF delta 523 zcmV+m0`&cy3DN|RQhx>+3^@fcMYBRzR~c9%?fkr%9TIe~6IcZBW{_Zl zEHHCu02+V>m^VqN+J`ds>cAAB0cZdkfXuoK`ZwyLSr(Ts(|>qAcH{# z0br;BOo3-MKwZEd%FD$%Z$5l21pu(m&C?nr)tmf0jqT% z0JfVC0KjJZ-hcSRJ~!yIE<`ibi;vKmNk_m=V0Em2I-c$6cn(g1G&FBq@4KG&BO%1A z+G#G$O!M%s0>(0UkK^zdL~s-acqCVY4le?u5W!LO0kJzaf3DDG%v)<>7<14R(7}ry zuzWHYxFfm@#u?8?jDXkz=)Ye#S3w#cZ_Fp1bvmhvF@KF(glNF6{C79}+k15L{_)%Q zd{?AQx(|pQ(!m;V4J+e@aPJqit?g=QZ*5+myK7>P;s>h&eLU}ny?-683JlQ&`hwS{ zDY|Cuc)hJu-ZcVLu=;GQjkdM>+)U>C0cV1Q5JCtcgb+dqA!KHJ0ammJUgEJNL;wH) N07*qoLw^FQ diff --git a/1.7.10/main/resources/assets/alchemicalwizardry/textures/models/baseItemToolCore.png b/1.7.10/main/resources/assets/alchemicalwizardry/textures/models/baseItemToolCore.png new file mode 100644 index 0000000000000000000000000000000000000000..3c171d981d13689b2ae23f88dcd948eecd7c504c GIT binary patch literal 453 zcmV;$0XqJPP)VGd000McNliru-Uk5|0Uu(-kNf}t0a8gs zK~y-)#nQcQ6HyR`;b;Aq#72%|Q-mTS5=b-=4N^)jgc6C8E25*}3b+X>8blF^K0jVN zj=f&nyL%`O5Qo@^E>oQ|=bKmG%p4v%l5G#~PKEXRhcBD8$)>{joRcFC22>R{W6mx& zgOb0CUmjB~nB{ajlojRbR&#cF7t&Ys4ms#^lixb{0|FhI`#5P7L%@$>#T*krPYoSr6EJYftbuj-yL00000NkvXXu0mjfN;tm9 literal 0 HcmV?d00001 diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/AlchemicalWizardry.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/AlchemicalWizardry.java index cb6bd990..d84f732e 100644 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/AlchemicalWizardry.java +++ b/1.7.2/main/java/WayofTime/alchemicalWizardry/AlchemicalWizardry.java @@ -130,6 +130,7 @@ import WayofTime.alchemicalWizardry.common.tileEntity.TESpellParadigmBlock; import WayofTime.alchemicalWizardry.common.tileEntity.TETeleposer; import WayofTime.alchemicalWizardry.common.tileEntity.TEWritingTable; import WayofTime.alchemicalWizardry.common.tileEntity.gui.GuiHandler; +import cpw.mods.fml.common.FMLCommonHandler; import cpw.mods.fml.common.Loader; import cpw.mods.fml.common.Mod; import cpw.mods.fml.common.Mod.EventHandler; @@ -187,6 +188,7 @@ public class AlchemicalWizardry public static boolean isForestryLoaded; public static boolean wimpySettings; + public static boolean respawnWithLowerHealth; public static CreativeTabs tabBloodMagic = new CreativeTabs("tabBloodMagic") { @@ -335,8 +337,9 @@ public class AlchemicalWizardry RecipeSorter.INSTANCE.register("AWWayofTime:shapedorb", ShapedBloodOrbRecipe.class, Category.SHAPED, "before:minecraft:shapeless"); RecipeSorter.INSTANCE.register("AWWayofTime:shapelessorb", ShapelessBloodOrbRecipe.class, Category.SHAPELESS, "after:minecraft:shapeless"); - //FMLCommonHandler.instance().bus().register(new AlchemicalWizardryEventHooks()); - MinecraftForge.EVENT_BUS.register(new AlchemicalWizardryEventHooks()); + Object eventHook = new AlchemicalWizardryEventHooks(); + FMLCommonHandler.instance().bus().register(eventHook); + MinecraftForge.EVENT_BUS.register(eventHook); NewPacketHandler.INSTANCE.ordinal(); } diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/BloodMagicConfiguration.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/BloodMagicConfiguration.java index b13dcdd9..8048f16c 100644 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/BloodMagicConfiguration.java +++ b/1.7.2/main/java/WayofTime/alchemicalWizardry/BloodMagicConfiguration.java @@ -1,11 +1,9 @@ package WayofTime.alchemicalWizardry; import java.io.File; -import java.util.logging.Level; import net.minecraftforge.common.config.Configuration; import WayofTime.alchemicalWizardry.common.summoning.meteor.MeteorParadigm; -import cpw.mods.fml.common.FMLLog; /** * Created with IntelliJ IDEA. @@ -64,7 +62,8 @@ public class BloodMagicConfiguration AlchemicalWizardry.allowedCrushedOresArray = config.get("oreCrushing", "allowedOres", new String[]{"iron","gold","copper","tin","lead","silver","osmium"}).getStringList(); AlchemicalWizardry.wimpySettings = config.get("WimpySettings","IDontLikeFun",false).getBoolean(false); - + AlchemicalWizardry.respawnWithLowerHealth = config.get("WimpySettings", "RespawnWithLowerHealth", true).getBoolean(true); + } catch (Exception e) { diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/api/harvest/HarvestRegistry.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/api/harvest/HarvestRegistry.java index e9e44451..0d91715d 100644 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/api/harvest/HarvestRegistry.java +++ b/1.7.2/main/java/WayofTime/alchemicalWizardry/api/harvest/HarvestRegistry.java @@ -23,7 +23,7 @@ public class HarvestRegistry for(IHarvestHandler handler : handlerList) { - if(handler.canHandleBlock(block) && handler.harvestAndPlant(world, xCoord, yCoord, zCoord, block, meta)) + if(handler.harvestAndPlant(world, xCoord, yCoord, zCoord, block, meta)) { return true; } diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/api/harvest/IHarvestHandler.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/api/harvest/IHarvestHandler.java index 88e47835..8e8d6ae5 100644 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/api/harvest/IHarvestHandler.java +++ b/1.7.2/main/java/WayofTime/alchemicalWizardry/api/harvest/IHarvestHandler.java @@ -6,11 +6,16 @@ import net.minecraftforge.common.IPlantable; public interface IHarvestHandler { - public boolean canHandleBlock(Block block); - - public int getHarvestMeta(Block block); - + /** + * A handler that is used to harvest and replant the block at the specified location + * + * @param world + * @param xCoord + * @param yCoord + * @param zCoord + * @param block block at this given location + * @param meta meta at this given location + * @return true if successfully harvested, false if not + */ public boolean harvestAndPlant(World world, int xCoord, int yCoord, int zCoord, Block block, int meta); - - public IPlantable getSeedItem(Block block); } diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/AlchemicalWizardryEventHooks.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/AlchemicalWizardryEventHooks.java index 281792d0..2dc42974 100644 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/AlchemicalWizardryEventHooks.java +++ b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/AlchemicalWizardryEventHooks.java @@ -25,10 +25,7 @@ import WayofTime.alchemicalWizardry.common.entity.projectile.EnergyBlastProjecti import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper; import cpw.mods.fml.common.ObfuscationReflectionHelper; import cpw.mods.fml.common.eventhandler.SubscribeEvent; -import cpw.mods.fml.common.gameevent.TickEvent; -import cpw.mods.fml.common.gameevent.TickEvent.PlayerTickEvent; -import cpw.mods.fml.common.gameevent.TickEvent.Type; -import cpw.mods.fml.relauncher.ReflectionHelper; +import cpw.mods.fml.common.gameevent.PlayerEvent.PlayerRespawnEvent; public class AlchemicalWizardryEventHooks { @@ -36,6 +33,15 @@ public class AlchemicalWizardryEventHooks public static Map playerBoostStepHeight = new HashMap(); public static List playersWith1Step = new ArrayList(); + @SubscribeEvent + public void onPlayerRespawnEvent(PlayerRespawnEvent event) + { + if(AlchemicalWizardry.respawnWithLowerHealth) + { + event.player.setHealth(6); + } + } + @SubscribeEvent public void onLivingJumpEvent(LivingJumpEvent event) { diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/harvest/BloodMagicHarvestHandler.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/harvest/BloodMagicHarvestHandler.java index ea35d92c..3d02140b 100644 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/harvest/BloodMagicHarvestHandler.java +++ b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/harvest/BloodMagicHarvestHandler.java @@ -14,13 +14,11 @@ import WayofTime.alchemicalWizardry.api.harvest.IHarvestHandler; public class BloodMagicHarvestHandler implements IHarvestHandler { - @Override public boolean canHandleBlock(Block block) { return block == Blocks.wheat || block == Blocks.carrots || block == Blocks.potatoes || block == Blocks.nether_wart; } - @Override public int getHarvestMeta(Block block) { if(block == Blocks.wheat) @@ -105,7 +103,6 @@ public class BloodMagicHarvestHandler implements IHarvestHandler return false; } - @Override public IPlantable getSeedItem(Block block) { if(block == Blocks.wheat) diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/harvest/GourdHarvestHandler.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/harvest/GourdHarvestHandler.java index 7870cf09..74624427 100644 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/harvest/GourdHarvestHandler.java +++ b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/harvest/GourdHarvestHandler.java @@ -14,18 +14,11 @@ import WayofTime.alchemicalWizardry.api.harvest.IHarvestHandler; public class GourdHarvestHandler implements IHarvestHandler { - @Override public boolean canHandleBlock(Block block) { return block == Blocks.melon_block || block == Blocks.pumpkin; } - @Override - public int getHarvestMeta(Block block) - { - return 0; - } - @Override public boolean harvestAndPlant(World world, int xCoord, int yCoord, int zCoord, Block block, int meta) { @@ -47,12 +40,6 @@ public class GourdHarvestHandler implements IHarvestHandler world.spawnEntityInWorld(itemEnt); } - return false; - } - - @Override - public IPlantable getSeedItem(Block block) - { - return null; + return true; } } \ No newline at end of file