From ac943e9d38a7d01500e03ec93da15e6d057de3f1 Mon Sep 17 00:00:00 2001 From: WayofTime Date: Mon, 2 Jun 2014 15:16:36 -0400 Subject: [PATCH] Joshie comment! --- 1.7.2/api/java/thaumcraft/api/IGoggles.java | 22 + .../api/java/thaumcraft/api/IRepairable.java | 13 + .../thaumcraft/api/IRepairableExtended.java | 17 + .../api/java/thaumcraft/api/IRunicArmor.java | 23 + .../api/java/thaumcraft/api/IScribeTools.java | 14 + .../java/thaumcraft/api/IVisDiscountGear.java | 20 + 1.7.2/api/java/thaumcraft/api/ItemApi.java | 70 ++ 1.7.2/api/java/thaumcraft/api/ItemRunic.java | 21 + .../java/thaumcraft/api/ThaumcraftApi.java | 469 ++++++++++ .../thaumcraft/api/ThaumcraftApiHelper.java | 268 ++++++ .../java/thaumcraft/api/aspects/Aspect.java | 201 ++++ .../thaumcraft/api/aspects/AspectList.java | 256 ++++++ .../api/aspects/AspectSourceHelper.java | 36 + .../api/aspects/IAspectContainer.java | 80 ++ .../thaumcraft/api/aspects/IAspectSource.java | 16 + .../api/aspects/IEssentiaContainerItem.java | 37 + .../api/aspects/IEssentiaTransport.java | 100 ++ .../api/crafting/CrucibleRecipe.java | 74 ++ .../api/crafting/IArcaneRecipe.java | 35 + .../api/crafting/IInfusionStabiliser.java | 19 + .../crafting/InfusionEnchantmentRecipe.java | 156 ++++ .../api/crafting/InfusionRecipe.java | 128 +++ .../api/crafting/ShapedArcaneRecipe.java | 261 ++++++ .../api/crafting/ShapelessArcaneRecipe.java | 157 ++++ .../api/java/thaumcraft/api/nodes/INode.java | 53 ++ .../java/thaumcraft/api/nodes/IRevealer.java | 22 + .../thaumcraft/api/nodes/NodeModifier.java | 6 + .../java/thaumcraft/api/nodes/NodeType.java | 6 + .../api/research/IScanEventHandler.java | 9 + .../api/research/ResearchCategories.java | 101 ++ .../api/research/ResearchCategoryList.java | 37 + .../thaumcraft/api/research/ResearchItem.java | 367 ++++++++ .../thaumcraft/api/research/ResearchPage.java | 174 ++++ .../thaumcraft/api/research/ScanResult.java | 39 + .../java/thaumcraft/api/wands/IWandFocus.java | 64 ++ .../api/wands/IWandRodOnUpdate.java | 16 + .../api/wands/IWandTriggerManager.java | 12 + .../java/thaumcraft/api/wands/IWandable.java | 25 + .../thaumcraft/api/wands/ItemFocusBasic.java | 166 ++++ .../java/thaumcraft/api/wands/StaffRod.java | 48 + .../java/thaumcraft/api/wands/WandCap.java | 122 +++ .../java/thaumcraft/api/wands/WandRod.java | 151 +++ .../api/wands/WandTriggerRegistry.java | 72 ++ .../AlchemicalWizardry.java | 53 +- .../BloodMagicConfiguration.java | 0 .../alchemicalWizardry/ModBlocks.java | 0 .../alchemicalWizardry/ModItems.java | 14 + .../AlchemicalPotionCreationHandler.java | 0 .../AlchemyPotionHandlerComponent.java | 0 .../api/alchemy/AlchemyPotionHelper.java | 0 .../api/alchemy/AlchemyRecipe.java | 0 .../api/alchemy/AlchemyRecipeRegistry.java | 0 .../api/altarRecipeRegistry/AltarRecipe.java | 0 .../AltarRecipeRegistry.java | 0 .../api/bindingRegistry/BindingRecipe.java | 0 .../api/bindingRegistry/BindingRegistry.java | 0 .../api/items/interfaces/ArmourUpgrade.java | 0 .../api/items/interfaces/IBindable.java | 0 .../api/items/interfaces/IBloodOrb.java | 0 .../api/items/interfaces/IHolding.java | 0 .../api/rituals/IMasterRitualStone.java | 2 +- .../api/rituals/IRitualStone.java | 0 .../api/rituals/RitualComponent.java | 0 .../api/rituals/RitualEffect.java | 0 .../api/rituals/Rituals.java | 229 +++-- .../api/soulNetwork/LifeEssenceNetwork.java | 0 .../api/soulNetwork/SoulNetworkHandler.java | 0 .../summoningRegistry/SummoningHelper.java | 0 .../summoningRegistry/SummoningRegistry.java | 0 .../SummoningRegistryComponent.java | 0 .../client/ClientProxy.java | 0 .../common/AlchemicalWizardryEventHooks.java | 0 .../common/AlchemicalWizardryFuelHandler.java | 0 .../common/AlchemicalWizardryTickHandler.java | 0 .../common/ArmourComponent.java | 0 .../common/CommonProxy.java | 0 .../common/EntityAIFly.java | 0 .../common/EntityAITargetAggro.java | 0 .../common/EntityAirElemental.java | 0 .../common/IBindingAgent.java | 0 .../alchemicalWizardry/common/ICatalyst.java | 0 .../alchemicalWizardry/common/IDemon.java | 0 .../common/IFillingAgent.java | 0 .../common/LifeBucketHandler.java | 0 .../common/LifeEssence.java | 0 .../common/ModLivingDropsEvent.java | 0 .../common/NewPacketHandler.java | 0 .../common/PacketHandler.java | 0 .../common/PlinthComponent.java | 0 .../common/block/ArmourForge.java | 0 .../common/block/BlockAltar.java | 27 +- .../common/block/BlockBloodLightSource.java | 0 .../common/block/BlockConduit.java | 0 .../common/block/BlockHomHeart.java | 0 .../common/block/BlockMasterStone.java | 2 +- .../common/block/BlockOrientable.java | 0 .../common/block/BlockPedestal.java | 0 .../common/block/BlockPlinth.java | 0 .../common/block/BlockSocket.java | 0 .../common/block/BlockSpectralContainer.java | 0 .../common/block/BlockSpellEffect.java | 0 .../common/block/BlockSpellEnhancement.java | 0 .../common/block/BlockSpellModifier.java | 0 .../common/block/BlockSpellParadigm.java | 1 + .../common/block/BlockTeleposer.java | 0 .../common/block/BlockWritingTable.java | 0 .../common/block/BloodRune.java | 0 .../common/block/BloodStoneBrick.java | 0 .../common/block/EfficiencyRune.java | 0 .../common/block/EmptySocket.java | 0 .../common/block/IOrientable.java | 0 .../common/block/ImperfectRitualStone.java | 0 .../common/block/LargeBloodStoneBrick.java | 0 .../common/block/LifeEssenceBlock.java | 2 + .../common/block/RitualStone.java | 0 .../common/block/RuneOfSacrifice.java | 0 .../common/block/RuneOfSelfSacrifice.java | 0 .../common/block/SpectralBlock.java | 0 .../common/block/SpeedRune.java | 0 .../bloodAltarUpgrade/AltarComponent.java | 0 .../AltarUpgradeComponent.java | 0 .../bloodAltarUpgrade/UpgradedAltars.java | 0 .../common/entity/mob/EntityBileDemon.java | 0 .../common/entity/mob/EntityBoulderFist.java | 0 .../common/entity/mob/EntityDemon.java | 0 .../entity/mob/EntityEarthElemental.java | 0 .../common/entity/mob/EntityElemental.java | 0 .../common/entity/mob/EntityFallenAngel.java | 0 .../entity/mob/EntityFireElemental.java | 0 .../entity/mob/EntityHolyElemental.java | 0 .../common/entity/mob/EntityIceDemon.java | 0 .../entity/mob/EntityLowerGuardian.java | 0 .../common/entity/mob/EntityShade.java | 0 .../entity/mob/EntityShadeElemental.java | 0 .../entity/mob/EntitySmallEarthGolem.java | 0 .../entity/mob/EntityWaterElemental.java | 0 .../entity/mob/EntityWingedFireDemon.java | 0 .../projectile/EnergyBlastProjectile.java | 0 .../EntityBloodLightProjectile.java | 0 .../EntityEnergyBazookaMainProjectile.java | 0 ...ntityEnergyBazookaSecondaryProjectile.java | 0 .../entity/projectile/EntityMeteor.java | 0 .../projectile/ExplosionProjectile.java | 0 .../entity/projectile/FireProjectile.java | 0 .../entity/projectile/HolyProjectile.java | 0 .../entity/projectile/IceProjectile.java | 0 .../projectile/LightningBoltProjectile.java | 0 .../entity/projectile/MudProjectile.java | 0 .../entity/projectile/TeleportProjectile.java | 0 .../entity/projectile/WaterProjectile.java | 0 .../entity/projectile/WindGustProjectile.java | 0 .../common/items/AWBaseItems.java | 0 .../common/items/ActivationCrystal.java | 0 .../common/items/AirScribeTool.java | 0 .../common/items/ApprenticeBloodOrb.java | 0 .../common/items/ArchmageBloodOrb.java | 0 .../common/items/ArmourInhibitor.java | 0 .../common/items/BlankSpell.java | 0 .../common/items/BloodShard.java | 0 .../common/items/BloodboundSword.java | 0 .../common/items/BoundArmour.java | 0 .../common/items/BoundAxe.java | 0 .../common/items/BoundPickaxe.java | 0 .../common/items/BoundShovel.java | 0 .../common/items/CheatyItem.java | 0 .../common/items/DaggerOfSacrifice.java | 0 .../common/items/DemonPlacer.java | 0 .../items/DemonicTelepositionFocus.java | 0 .../common/items/DuskScribeTool.java | 0 .../common/items/EarthScribeTool.java | 0 .../common/items/EnergyBattery.java | 0 .../common/items/EnergyBazooka.java | 0 .../common/items/EnergyBlast.java | 0 .../common/items/EnergyItems.java | 2 +- .../common/items/EnergySword.java | 0 .../items/EnhancedTelepositionFocus.java | 0 .../common/items/FireScribeTool.java | 0 .../common/items/ItemAlchemyBase.java | 0 .../common/items/ItemBloodRuneBlock.java | 0 .../common/items/ItemComplexSpellCrystal.java | 4 +- .../common/items/ItemComponents.java | 0 .../common/items/ItemDiabloKey.java | 0 .../common/items/ItemRitualDiviner.java | 36 +- .../common/items/ItemSpellEffectBlock.java | 0 .../items/ItemSpellEnhancementBlock.java | 0 .../common/items/ItemSpellModifierBlock.java | 0 .../common/items/ItemSpellParadigmBlock.java | 4 + .../common/items/LavaCrystal.java | 0 .../common/items/LifeBucket.java | 0 .../common/items/MagicianBloodOrb.java | 0 .../common/items/MasterBloodOrb.java | 0 .../common/items/OrbOfTesting.java | 0 .../items/ReinforcedTelepositionFocus.java | 0 .../common/items/SacrificialDagger.java | 2 +- .../common/items/ScribeTool.java | 0 .../common/items/TelepositionFocus.java | 0 .../common/items/WaterScribeTool.java | 0 .../common/items/forestry/ItemBloodFrame.java | 0 .../common/items/potion/AlchemyFlask.java | 0 .../common/items/potion/AlchemyReagent.java | 0 .../potion/AverageLengtheningCatalyst.java | 0 .../items/potion/AveragePowerCatalyst.java | 0 .../items/potion/EnhancedFillingAgent.java | 0 .../potion/GreaterLengtheningCatalyst.java | 0 .../items/potion/GreaterPowerCatalyst.java | 0 .../items/potion/LengtheningCatalyst.java | 0 .../potion/MundaneLengtheningCatalyst.java | 0 .../items/potion/MundanePowerCatalyst.java | 0 .../common/items/potion/PowerCatalyst.java | 0 .../items/potion/StandardBindingAgent.java | 0 .../items/potion/StandardFillingAgent.java | 0 .../common/items/potion/WeakBindingAgent.java | 0 .../common/items/potion/WeakFillingAgent.java | 0 .../common/items/sigil/AirSigil.java | 0 .../common/items/sigil/DivinationSigil.java | 2 +- .../items/sigil/ItemBloodLightSigil.java | 0 .../common/items/sigil/ItemFluidSigil.java | 597 ++++++++++++ .../common/items/sigil/ItemSeerSigil.java | 67 ++ .../sigil/ItemSigilOfEnderSeverance.java | 0 .../items/sigil/ItemSigilOfSupression.java | 0 .../common/items/sigil/LavaSigil.java | 27 +- .../items/sigil/SigilOfElementalAffinity.java | 0 .../common/items/sigil/SigilOfGrowth.java | 0 .../common/items/sigil/SigilOfHaste.java | 2 +- .../common/items/sigil/SigilOfHolding.java | 1 + .../common/items/sigil/SigilOfMagnetism.java | 0 .../common/items/sigil/SigilOfTheBridge.java | 0 .../items/sigil/SigilOfTheFastMiner.java | 0 .../common/items/sigil/SigilOfWind.java | 0 .../common/items/sigil/VoidSigil.java | 92 +- .../common/items/sigil/WaterSigil.java | 28 +- .../items/spell/ItemSpellMultiTool.java | 861 ++++++++++++++++++ .../common/items/thaumcraft/FocusBase.java | 0 .../items/thaumcraft/FocusBloodBlast.java | 0 .../items/thaumcraft/FocusGravityWell.java | 0 .../items/thaumcraft/ItemSanguineArmour.java | 2 +- .../alchemicalWizardry/common/mcmod.info | 0 .../common/potion/PotionBoost.java | 0 .../common/potion/PotionDrowning.java | 0 .../common/potion/PotionFireFuse.java | 0 .../common/potion/PotionFlameCloak.java | 0 .../common/potion/PotionFlight.java | 0 .../common/potion/PotionHeavyHeart.java | 0 .../common/potion/PotionIceCloak.java | 0 .../common/potion/PotionInhibit.java | 0 .../common/potion/PotionPlanarBinding.java | 0 .../potion/PotionProjectileProtect.java | 0 .../common/potion/PotionReciprocation.java | 0 .../common/renderer/block/RenderConduit.java | 0 .../common/renderer/block/RenderPedestal.java | 0 .../common/renderer/block/RenderPlinth.java | 0 .../block/RenderSpellEffectBlock.java | 0 .../block/RenderSpellEnhancementBlock.java | 0 .../block/RenderSpellModifierBlock.java | 0 .../block/RenderSpellParadigmBlock.java | 0 .../renderer/block/RenderWritingTable.java | 0 .../renderer/block/TEAltarRenderer.java | 0 .../block/itemRender/TEAltarItemRenderer.java | 0 .../itemRender/TEConduitItemRenderer.java | 0 .../TESpellEffectBlockItemRenderer.java | 0 .../TESpellEnhancementBlockItemRenderer.java | 0 .../TESpellModifierBlockItemRenderer.java | 0 .../TESpellParadigmBlockItemRenderer.java | 0 .../TEWritingTableItemRenderer.java | 0 .../common/renderer/mob/RenderBileDemon.java | 0 .../renderer/mob/RenderBoulderFist.java | 0 .../common/renderer/mob/RenderElemental.java | 0 .../renderer/mob/RenderFallenAngel.java | 0 .../common/renderer/mob/RenderIceDemon.java | 0 .../renderer/mob/RenderLowerGuardian.java | 0 .../common/renderer/mob/RenderShade.java | 0 .../renderer/mob/RenderSmallEarthGolem.java | 0 .../renderer/mob/RenderWingedFireDemon.java | 0 .../common/renderer/model/ModelBileDemon.java | 0 .../renderer/model/ModelBloodAltar.java | 0 .../renderer/model/ModelBoulderFist.java | 0 .../common/renderer/model/ModelConduit.java | 0 .../common/renderer/model/ModelElemental.java | 0 .../ModelEnergyBazookaMainProjectile.java | 0 .../renderer/model/ModelFallenAngel.java | 0 .../common/renderer/model/ModelIceDemon.java | 0 .../renderer/model/ModelLowerGuardian.java | 0 .../common/renderer/model/ModelMeteor.java | 0 .../common/renderer/model/ModelPedestal.java | 0 .../common/renderer/model/ModelPlinth.java | 0 .../common/renderer/model/ModelShade.java | 0 .../renderer/model/ModelSmallEarthGolem.java | 0 .../renderer/model/ModelSpellEffectBlock.java | 0 .../model/ModelSpellEnhancementBlock.java | 0 .../model/ModelSpellModifierBlock.java | 0 .../model/ModelSpellParadigmBlock.java | 0 .../renderer/model/ModelWingedFireDemon.java | 0 .../renderer/model/ModelWritingTable.java | 0 .../RenderEnergyBazookaMainProjectile.java | 0 .../RenderEnergyBlastProjectile.java | 0 .../projectile/RenderFireProjectile.java | 0 .../renderer/projectile/RenderMeteor.java | 0 .../rituals/RitualEffectAnimalGrowth.java | 0 .../rituals/RitualEffectApiaryOverclock.java | 0 .../rituals/RitualEffectAutoAlchemy.java | 0 .../rituals/RitualEffectBiomeChanger.java | 0 .../rituals/RitualEffectContainment.java | 0 .../common/rituals/RitualEffectCrushing.java | 6 +- .../common/rituals/RitualEffectExpulsion.java | 0 .../rituals/RitualEffectFeatheredEarth.java | 0 .../rituals/RitualEffectFeatheredKnife.java | 0 .../common/rituals/RitualEffectFlight.java | 0 .../common/rituals/RitualEffectGrowth.java | 0 .../common/rituals/RitualEffectHealing.java | 0 .../rituals/RitualEffectInterdiction.java | 0 .../rituals/RitualEffectItemSuction.java | 167 ++++ .../common/rituals/RitualEffectJumping.java | 0 .../common/rituals/RitualEffectLava.java | 0 .../common/rituals/RitualEffectLeap.java | 0 .../common/rituals/RitualEffectMagnetic.java | 33 +- .../common/rituals/RitualEffectSoulBound.java | 0 .../rituals/RitualEffectSummonMeteor.java | 0 .../rituals/RitualEffectSummonPlayer.java | 0 .../rituals/RitualEffectSupression.java | 0 .../common/rituals/RitualEffectUnbinding.java | 0 .../common/rituals/RitualEffectWater.java | 0 .../rituals/RitualEffectWellOfSuffering.java | 0 .../spell/complex/EntitySpellProjectile.java | 0 .../common/spell/complex/SpellModifier.java | 0 .../spell/complex/SpellModifierDefault.java | 0 .../spell/complex/SpellModifierDefensive.java | 0 .../complex/SpellModifierEnvironmental.java | 0 .../spell/complex/SpellModifierOffensive.java | 0 .../common/spell/complex/SpellParadigm.java | 8 +- .../spell/complex/SpellParadigmMelee.java | 0 .../complex/SpellParadigmProjectile.java | 0 .../spell/complex/SpellParadigmSelf.java | 0 .../spell/complex/SpellParadigmTool.java | 486 ++++++++++ .../spell/complex/effect/SpellEffect.java | 38 + .../complex/effect/SpellEffectEarth.java | 102 +++ .../spell/complex/effect/SpellEffectFire.java | 53 ++ .../spell/complex/effect/SpellEffectIce.java | 54 ++ .../spell/complex/effect/SpellEffectWind.java | 79 ++ .../spell/complex/effect/SpellHelper.java | 80 ++ .../ExtrapolatedMeleeEntityEffect.java | 0 .../IMeleeSpellEntityEffect.java | 0 .../impactEffects/IMeleeSpellWorldEffect.java | 0 .../IProjectileImpactEffect.java | 0 .../IProjectileUpdateEffect.java | 0 .../impactEffects/ISelfSpellEffect.java | 0 .../MeleeSpellCenteredWorldEffect.java | 0 .../impactEffects/MeleeSpellWorldEffect.java | 0 .../impactEffects/ProjectileImpactEffect.java | 0 .../impactEffects/ProjectileUpdateEffect.java | 0 .../effect/impactEffects/SelfSpellEffect.java | 0 .../earth/MeleeDefaultEarth.java | 0 .../earth/MeleeDefensiveEarth.java | 0 .../earth/MeleeEnvironmentalEarth.java | 0 .../earth/MeleeOffensiveEarth.java | 0 .../earth/ProjectileDefaultEarth.java | 0 .../earth/ProjectileDefensiveEarth.java | 0 .../earth/ProjectileEnvironmentalEarth.java | 0 .../earth/ProjectileOffensiveEarth.java | 0 .../impactEffects/earth/SelfDefaultEarth.java | 0 .../earth/SelfDefensiveEarth.java | 0 .../earth/SelfEnvironmentalEarth.java | 0 .../earth/SelfOffensiveEarth.java | 0 .../earth/ToolEnvironmentalEarth.java | 86 ++ .../impactEffects/fire/MeleeDefaultFire.java | 0 .../fire/MeleeDefensiveFire.java | 0 .../fire/MeleeEnvironmentalFire.java | 0 .../fire/MeleeOffensiveFire.java | 0 .../fire/ProjectileDefaultFire.java | 0 .../fire/ProjectileDefensiveFire.java | 0 .../fire/ProjectileEnvironmentalFire.java | 0 .../fire/ProjectileOffensiveFire.java | 0 .../impactEffects/fire/SelfDefaultFire.java | 0 .../impactEffects/fire/SelfDefensiveFire.java | 0 .../fire/SelfEnvironmentalFire.java | 0 .../impactEffects/fire/SelfOffensiveFire.java | 0 .../impactEffects/fire/ToolDefaultFire.java | 38 + .../impactEffects/fire/ToolOffensiveFire.java | 21 + .../impactEffects/ice/MeleeDefaultIce.java | 0 .../impactEffects/ice/MeleeDefensiveIce.java | 0 .../ice/MeleeEnvironmentalIce.java | 0 .../impactEffects/ice/MeleeOffensiveIce.java | 0 .../ice/ProjectileDefaultIce.java | 0 .../ice/ProjectileDefensiveIce.java | 0 .../ice/ProjectileEnvironmentalIce.java | 0 .../ice/ProjectileOffensiveIce.java | 0 .../impactEffects/ice/SelfDefaultIce.java | 0 .../impactEffects/ice/SelfDefensiveIce.java | 0 .../ice/SelfEnvironmentalIce.java | 0 .../impactEffects/ice/SelfOffensiveIce.java | 0 .../impactEffects/ice/ToolDefensiveIce.java | 62 ++ .../impactEffects/tool/DigAreaEffect.java | 138 +++ .../impactEffects/tool/DigAreaTunnel.java | 171 ++++ .../impactEffects/tool/IDigAreaEffect.java | 12 + .../impactEffects/tool/IItemManipulator.java | 10 + .../impactEffects/tool/ILeftClickEffect.java | 11 + .../impactEffects/tool/IOnBanishTool.java | 10 + .../impactEffects/tool/IOnBreakBlock.java | 12 + .../impactEffects/tool/IOnSummonTool.java | 10 + .../impactEffects/tool/IRightClickEffect.java | 15 + .../tool/ISpecialDamageEffect.java | 10 + .../impactEffects/tool/IToolUpdateEffect.java | 10 + .../impactEffects/tool/ItemManipulator.java | 22 + .../impactEffects/tool/LeftClickEffect.java | 21 + .../tool/OnBreakBlockEffect.java | 21 + .../impactEffects/tool/RightClickEffect.java | 15 + .../impactEffects/tool/RightClickTunnel.java | 177 ++++ .../impactEffects/tool/SummonToolEffect.java | 15 + .../impactEffects/wind/MeleeDefaultWind.java | 0 .../wind/MeleeDefensiveWind.java | 0 .../wind/MeleeEnvironmentalWind.java | 0 .../wind/MeleeOffensiveWind.java | 0 .../wind/ProjectileDefaultWind.java | 0 .../wind/ProjectileEnvironmentalWind.java | 0 .../wind/ProjectileOffensiveWind.java | 0 .../impactEffects/wind/SelfDefaultWind.java | 0 .../impactEffects/wind/SelfDefensiveWind.java | 0 .../wind/SelfEnvironmentalWind.java | 0 .../impactEffects/wind/SelfOffensiveWind.java | 0 .../impactEffects/wind/ToolDefensiveWind.java | 32 + .../wind/ToolEnvironmentalWind.java | 41 + .../impactEffects/wind/ToolOffensiveWind.java | 24 + .../complex/enhancement/SpellEnhancement.java | 0 .../enhancement/SpellEnhancementCost.java | 0 .../enhancement/SpellEnhancementPotency.java | 0 .../enhancement/SpellEnhancementPower.java | 0 .../common/spell/simple/HomSpell.java | 0 .../spell/simple/HomSpellComponent.java | 0 .../common/spell/simple/HomSpellRegistry.java | 0 .../common/spell/simple/ISimpleSpell.java | 0 .../common/spell/simple/SpellEarthBender.java | 0 .../common/spell/simple/SpellExplosions.java | 0 .../common/spell/simple/SpellFireBurst.java | 0 .../common/spell/simple/SpellFrozenWater.java | 0 .../common/spell/simple/SpellHolyBlast.java | 0 .../spell/simple/SpellLightningBolt.java | 0 .../common/spell/simple/SpellTeleport.java | 0 .../common/spell/simple/SpellWateryGrave.java | 0 .../common/spell/simple/SpellWindGust.java | 0 .../summoning/SummoningFallenAngel.java | 0 .../common/summoning/SummoningHelperAW.java | 0 .../summoning/meteor/MeteorParadigm.java | 0 .../meteor/MeteorParadigmComponent.java | 0 .../summoning/meteor/MeteorRegistry.java | 0 .../common/tileEntity/TEAltar.java | 15 +- .../common/tileEntity/TEConduit.java | 0 .../common/tileEntity/TEHomHeart.java | 0 .../tileEntity/TEImperfectRitualStone.java | 0 .../common/tileEntity/TEMasterStone.java | 49 +- .../common/tileEntity/TEOrientable.java | 0 .../common/tileEntity/TEPedestal.java | 0 .../common/tileEntity/TEPlinth.java | 0 .../common/tileEntity/TESocket.java | 0 .../tileEntity/TESpectralContainer.java | 0 .../common/tileEntity/TESpellBlock.java | 0 .../common/tileEntity/TESpellEffectBlock.java | 0 .../tileEntity/TESpellEnhancementBlock.java | 0 .../tileEntity/TESpellModifierBlock.java | 0 .../tileEntity/TESpellParadigmBlock.java | 2 + .../common/tileEntity/TETeleposer.java | 0 .../common/tileEntity/TEWritingTable.java | 59 +- .../tileEntity/container/ContainerAltar.java | 0 .../container/ContainerTeleposer.java | 0 .../container/ContainerWritingTable.java | 0 .../common/tileEntity/gui/GuiHandler.java | 0 .../common/tileEntity/gui/GuiTeleposer.java | 0 .../tileEntity/gui/GuiWritingTable.java | 0 .../nei/NEIAlchemyRecipeHandler.java | 132 +++ .../nei/NEIAltarRecipeHandler.java | 182 ++++ .../alchemicalWizardy/nei/NEIConfig.java | 35 + .../assets/alchemicalwizardry/altar.png | Bin .../alchemicalwizardry/books/architect.xml | 0 .../alchemicalwizardry/gui/Teleposer.png | Bin .../alchemicalwizardry/gui/WritingTable.png | Bin .../alchemicalwizardry/gui/bookleft.png | Bin .../alchemicalwizardry/gui/nei/alchemy.png | Bin .../alchemicalwizardry/gui/nei/altar.png | Bin .../assets/alchemicalwizardry/lang/de_DE.lang | 0 .../assets/alchemicalwizardry/lang/en_US.lang | 4 +- .../models/armor/armor - Shortcut.lnk | Bin .../armor/boundArmour_invisible_layer_1.png | Bin .../armor/boundArmour_invisible_layer_2.png | Bin .../models/armor/boundArmour_layer_1.png | Bin .../models/armor/boundArmour_layer_2.png | Bin .../models/armor/sanguineArmour_layer_1.png | Bin .../textures/blocks/AirRitualStone.png | Bin .../textures/blocks/AlchemicChemistrySet.png | Bin .../textures/blocks/AltarCapacityRune.png | Bin .../textures/blocks/ArcanePedestal.png | Bin .../textures/blocks/ArcanePlinth.png | Bin .../textures/blocks/BlankRune.png | Bin .../textures/blocks/BlockBloodLight.png | Bin .../textures/blocks/BloodAltar_Bottom.png | Bin .../textures/blocks/BloodAltar_SideType1.png | Bin .../textures/blocks/BloodAltar_SideType2.png | Bin .../textures/blocks/BloodAltar_Top.png | Bin .../textures/blocks/BloodSocket.png | Bin .../textures/blocks/BloodStoneBrick.png | Bin .../textures/blocks/DislocationRune.png | Bin .../textures/blocks/DuskRitualStone.png | Bin .../textures/blocks/EarthRitualStone.png | Bin .../textures/blocks/EfficiencyRune.png | Bin .../textures/blocks/EmptySocket.png | Bin .../textures/blocks/FireRitualStone.png | Bin .../textures/blocks/HomHeart_bottom.png | Bin .../textures/blocks/HomHeart_side.png | Bin .../textures/blocks/HomHeart_top.png | Bin .../textures/blocks/HomHeart_top1.png | Bin .../textures/blocks/ImperfectRitualStone.png | Bin .../textures/blocks/LargeBloodStoneBrick.png | Bin .../textures/blocks/MasterStone.png | Bin .../textures/blocks/OrbCapacityRune.png | Bin .../textures/blocks/RitualStone.png | Bin .../textures/blocks/RuneOfSacrifice.png | Bin .../textures/blocks/RuneOfSelfSacrifice.png | Bin .../textures/blocks/SoulForge.png | Bin .../textures/blocks/SpectralBlock.png | Bin .../textures/blocks/SpeedRune.png | Bin .../textures/blocks/Teleposer_Side.png | Bin .../textures/blocks/Teleposer_Top.png | Bin .../textures/blocks/Testing.png | Bin .../textures/blocks/WaterRitualStone.png | Bin .../textures/blocks/fireEffectBlock_blank.png | Bin .../textures/blocks/fireEffectBlock_input.png | Bin .../blocks/fireEffectBlock_output.png | Bin .../blocks/fireEffectBlock_upArrow.png | Bin .../textures/blocks/lifeEssenceFlowing.png | Bin .../textures/blocks/lifeEssenceStill.png | Bin .../entities/energyBlastProjectile.png | Bin .../textures/entities/explosionProjectile.png | Bin .../textures/entities/fireProjectile.png | Bin .../textures/entities/holyProjectile.png | Bin .../textures/entities/iceProjectile.png | Bin .../textures/entities/lightningProjectile.png | Bin .../textures/entities/mudProjectile.png | Bin .../textures/entities/waterProjectile.png | Bin .../textures/entities/windGustProjectile.png | Bin .../textures/gui/GuiTrap.png | Bin .../textures/gui/bookcrafting.png | Bin .../textures/gui/bookfurnace.png | Bin .../textures/gui/bookleft.png | Bin .../textures/gui/bookright.png | Bin .../textures/items/8wWtY8d.png | Bin .../textures/items/Aether.png | Bin .../textures/items/AirScribeTool.png | Bin .../textures/items/AirSigil.png | Bin .../textures/items/AlchemyFlask.png | Bin .../textures/items/ApprenticeBloodOrb.png | Bin .../textures/items/Aquasalus.png | Bin .../textures/items/ArchmageBloodOrb.png | Bin .../items/ArmourInhibitor_activated.png | Bin .../items/ArmourInhibitor_deactivated.png | Bin .../items/AverageLengtheningCatalyst.png | Bin .../textures/items/AveragePowerCatalyst.png | Bin .../textures/items/BlankSlate.png | Bin .../textures/items/BlankSpell.png | Bin .../textures/items/BloodFrame.png | Bin .../textures/items/BloodLightSigil.png | Bin .../textures/items/BoundAxe_activated.png | Bin .../textures/items/BoundBoots.png | Bin .../textures/items/BoundHelmet.png | Bin .../textures/items/BoundLeggings.png | Bin .../textures/items/BoundPickaxe_activated.png | Bin .../items/BoundPickaxe_deactivated.png | Bin .../textures/items/BoundPlate.png | Bin .../textures/items/BoundShovel_activated.png | Bin .../textures/items/BoundSword_activated.png | Bin .../textures/items/BoundTool.png | Bin 0 -> 376 bytes .../textures/items/BridgeSigil_activated.png | Bin .../items/BridgeSigil_deactivated.png | Bin .../textures/items/CeremonialDagger.png | Bin .../textures/items/ComplexCrystal.png | Bin .../textures/items/Crepitous.png | Bin .../textures/items/Crystallos.png | Bin .../textures/items/DaggerOfSacrifice.png | Bin .../textures/items/DemonBloodShard.png | Bin .../textures/items/DemonPlacer.png | Bin .../textures/items/DemonSlate.png | Bin .../textures/items/DemonicTeleposerFocus.png | Bin .../textures/items/DiabloKey.png | Bin .../textures/items/DivinationSigil.png | Bin .../textures/items/DuskScribeTool.png | Bin .../textures/items/EarthScribeTool.png | Bin .../textures/items/ElementalInkAir.png | Bin .../textures/items/ElementalInkEarth.png | Bin .../textures/items/ElementalInkFire.png | Bin .../textures/items/ElementalInkWater.png | Bin .../items/ElementalSigil_activated.png | Bin .../items/ElementalSigil_deactivated.png | Bin .../textures/items/EnergyBattery.png | Bin .../items/EnergyBazooka_activated.png | Bin .../items/EnergyBlaster_activated.png | Bin .../textures/items/EnhancedFillingAgent.png | Bin .../textures/items/EnhancedTeleposerFocus.png | Bin .../textures/items/FireScribeTool.png | Bin .../items/GreaterLengtheningCatalyst.png | Bin .../textures/items/GreaterPowerCatalyst.png | Bin .../textures/items/GrowthSigil_activated.png | Bin .../items/GrowthSigil_deactivated.png | Bin .../textures/items/HasteSigil_activated.png | Bin .../textures/items/HasteSigil_deactivated.png | Bin .../textures/items/IceSigil_activated.png | Bin .../textures/items/IceSigil_deactivated.png | Bin .../textures/items/Incendium.png | Bin .../textures/items/InfusedSlate.png | Bin .../textures/items/LavaCrystal.png | Bin .../textures/items/LavaSigil.png | Bin .../textures/items/LifeBucket.png | Bin .../textures/items/Magicales.png | Bin .../textures/items/MagicianBloodOrb.png | Bin .../textures/items/MasterBloodOrb.png | Bin .../textures/items/MiningSigil_activated.png | Bin .../items/MiningSigil_deactivated.png | Bin .../items/MundaneLengtheningCatalyst.png | Bin .../textures/items/MundanePowerCatalyst.png | Bin .../textures/items/PotionFlask.png | Bin .../textures/items/ReinforcedSlate.png | Bin .../items/ReinforcedTeleposerFocus.png | Bin .../textures/items/RitualDiviner.png | Bin .../textures/items/SacrificialDagger.png | Bin .../textures/items/Sanctus.png | Bin .../textures/items/SanguineHelmet.png | Bin .../textures/items/SeerSigil.png | Bin 0 -> 593 bytes .../textures/items/SheathedItem.png | Bin .../textures/items/SigilOfHolding.png | Bin .../items/SigilOfMagnetism_activated.png | Bin .../items/SigilOfMagnetism_deactivated.png | Bin .../items/SigilOfSeverance_activated.png | Bin .../items/SigilOfSeverance_deactivated.png | Bin .../items/SigilOfSupression_activated.png | Bin .../items/SigilOfSupression_deactivated.png | Bin .../textures/items/SimpleCatalyst.png | Bin .../textures/items/StandardBindingAgent.png | Bin .../textures/items/StandardFillingAgent.png | Bin .../textures/items/TeleposerFocus.png | Bin .../textures/items/Tennebrae.png | Bin .../textures/items/Terrae.png | Bin .../textures/items/UntamedCrystal.png | Bin .../textures/items/VoidSigil.png | Bin .../textures/items/WarriorSigil_activated.png | Bin .../items/WarriorSigil_deactivated.png | Bin .../textures/items/WaterScribeTool.png | Bin .../textures/items/WaterSigil.png | Bin .../textures/items/WeakBindingAgent.png | Bin .../textures/items/WeakBloodShard.png | Bin .../textures/items/WeakFillingAgent.png | Bin .../textures/items/WindSigil_activated.png | Bin .../textures/items/WindSigil_deactivated.png | Bin .../items/activationCrystalAwakened.png | Bin .../textures/items/activationCrystalWeak.png | Bin .../baseAlchemyItemConcentratedCatalyst.png | Bin .../items/baseAlchemyItemFracturedBone.png | Bin .../textures/items/baseAlchemyItemOffensa.png | Bin .../items/baseAlchemyItemOrbisTerrae.png | Bin .../items/baseAlchemyItemPotentia.png | Bin .../items/baseAlchemyItemPraesidium.png | Bin .../items/baseAlchemyItemReductus.png | Bin .../baseAlchemyItemStrengthenedCatalyst.png | Bin .../textures/items/baseAlchemyItemVirtus.png | Bin .../textures/items/baseItemCostCore.png | Bin .../items/baseItemCrackedRunicPlate.png | Bin .../textures/items/baseItemDefaultCore.png | Bin .../textures/items/baseItemDefensiveCore.png | Bin .../textures/items/baseItemEarthenCore.png | Bin .../textures/items/baseItemEmptyCore.png | Bin .../items/baseItemEnvironmentalCore.png | Bin .../textures/items/baseItemFlameCore.png | Bin .../textures/items/baseItemGustCore.png | Bin .../textures/items/baseItemIcyCore.png | Bin .../textures/items/baseItemInputCable.png | Bin .../textures/items/baseItemMagicalesCable.png | Bin .../textures/items/baseItemMeleeCore.png | Bin .../textures/items/baseItemObsidianBrace.png | Bin .../textures/items/baseItemOffensiveCore.png | Bin .../textures/items/baseItemOutputCable.png | Bin .../items/baseItemParadigmBackPlate.png | Bin .../textures/items/baseItemPotencyCore.png | Bin .../textures/items/baseItemPowerCore.png | Bin .../textures/items/baseItemProjectileCore.png | Bin .../textures/items/baseItemQuartzRod.png | Bin .../textures/items/baseItemRunicPlate.png | Bin .../items/baseItemScribedRunicPlate.png | Bin .../textures/items/baseItemSelfCore.png | Bin .../textures/items/baseItemStoneBrace.png | Bin .../textures/items/baseItemWoodBrace.png | Bin .../textures/items/bloodBlastOrn.png | Bin .../textures/items/focusBloodBlastOrn.png | Bin .../textures/items/tYf5ft9.png | Bin .../textures/models/AirFloatingBeacon.png | Bin .../textures/models/BileDemon.png | Bin .../textures/models/Bird.png | Bin .../textures/models/BlockSpellEffect.png | Bin .../textures/models/BoulderFist.png | Bin .../textures/models/Conduit.png | Bin .../textures/models/DarkFloatingBeacon.png | Bin .../textures/models/EarthFloatingBeacon.png | Bin .../models/EnergyBazookaMainProjectile.png | Bin .../textures/models/FireFloatingBeacon.png | Bin .../textures/models/FloatingBeacon.png | Bin .../textures/models/HolyFloatingBeacon.png | Bin .../textures/models/IceDemon.png | Bin .../textures/models/LowerGuardian.png | Bin .../textures/models/Meteor.png | Bin .../textures/models/ParadigmBlock.png | Bin .../textures/models/Pedestal.png | Bin .../textures/models/Plinth.png | Bin .../textures/models/ShadeMob.png | Bin .../textures/models/SmallEarthGolem.png | Bin .../textures/models/SpellEffectEarth.png | Bin .../textures/models/SpellEffectFire.png | Bin .../textures/models/SpellEffectIce.png | Bin .../textures/models/SpellEffectWind.png | Bin .../textures/models/SpellEnhancementCost1.png | Bin .../textures/models/SpellEnhancementCost2.png | Bin .../textures/models/SpellEnhancementCost3.png | Bin .../models/SpellEnhancementPotency1.png | Bin .../models/SpellEnhancementPotency2.png | Bin .../models/SpellEnhancementPotency3.png | Bin .../models/SpellEnhancementPower1.png | Bin .../models/SpellEnhancementPower2.png | Bin .../models/SpellEnhancementPower3.png | Bin .../textures/models/SpellModifierDefault.png | Bin .../models/SpellModifierDefensive.png | Bin .../models/SpellModifierEnvironmental.png | Bin .../models/SpellModifierOffensive.png | Bin .../textures/models/SpellParadigmMelee.png | Bin .../models/SpellParadigmProjectile.png | Bin .../textures/models/SpellParadigmSelf.png | Bin .../textures/models/WaterFloatingBeacon.png | Bin .../textures/models/WingedAngel.png | Bin .../textures/models/WingedFireDemon.png | Bin .../textures/models/WritingTable.png | Bin .../textures/models/altar.png | Bin .../textures/models/blood.png | Bin .../resources/assets/forge/lang/en_US.lang | 0 .../resources/assets/forge/lang/es_ES.lang | 0 .../resources/assets/forge/lang/fr_FR.lang | 0 1.7.2/{ => main}/resources/mcmod.info | 0 .../assets/alchemicalwizardry/bloodaltar.obj | 262 ------ .../assets/alchemicalwizardry/bloodlevel.obj | 64 -- .../models/bloodaltar-fixeUV.obj | 262 ------ .../alchemicalwizardry/models/bloodaltar.obj | 262 ------ .../alchemicalwizardry/models/bloodlevel.obj | 64 -- .../AlchemicalWizardry.java | 4 +- .../common/items/sigil/DivinationSigil.java | 2 +- .../common/items/sigil/LavaSigil.java | 45 +- .../common/items/sigil/SigilOfHaste.java | 2 +- .../common/items/sigil/SigilOfHolding.java | 1 + .../common/items/sigil/VoidSigil.java | 49 +- .../common/items/sigil/WaterSigil.java | 43 +- .../common/rituals/RitualEffectCrushing.java | 2 +- .../rituals/RitualEffectItemSuction.java | 164 ++++ .../spell/complex/effect/SpellHelper.java | 6 + .../common/tileEntity/TEWritingTable.java | 59 +- 753 files changed, 8715 insertions(+), 1184 deletions(-) create mode 100644 1.7.2/api/java/thaumcraft/api/IGoggles.java create mode 100644 1.7.2/api/java/thaumcraft/api/IRepairable.java create mode 100644 1.7.2/api/java/thaumcraft/api/IRepairableExtended.java create mode 100644 1.7.2/api/java/thaumcraft/api/IRunicArmor.java create mode 100644 1.7.2/api/java/thaumcraft/api/IScribeTools.java create mode 100644 1.7.2/api/java/thaumcraft/api/IVisDiscountGear.java create mode 100644 1.7.2/api/java/thaumcraft/api/ItemApi.java create mode 100644 1.7.2/api/java/thaumcraft/api/ItemRunic.java create mode 100644 1.7.2/api/java/thaumcraft/api/ThaumcraftApi.java create mode 100644 1.7.2/api/java/thaumcraft/api/ThaumcraftApiHelper.java create mode 100644 1.7.2/api/java/thaumcraft/api/aspects/Aspect.java create mode 100644 1.7.2/api/java/thaumcraft/api/aspects/AspectList.java create mode 100644 1.7.2/api/java/thaumcraft/api/aspects/AspectSourceHelper.java create mode 100644 1.7.2/api/java/thaumcraft/api/aspects/IAspectContainer.java create mode 100644 1.7.2/api/java/thaumcraft/api/aspects/IAspectSource.java create mode 100644 1.7.2/api/java/thaumcraft/api/aspects/IEssentiaContainerItem.java create mode 100644 1.7.2/api/java/thaumcraft/api/aspects/IEssentiaTransport.java create mode 100644 1.7.2/api/java/thaumcraft/api/crafting/CrucibleRecipe.java create mode 100644 1.7.2/api/java/thaumcraft/api/crafting/IArcaneRecipe.java create mode 100644 1.7.2/api/java/thaumcraft/api/crafting/IInfusionStabiliser.java create mode 100644 1.7.2/api/java/thaumcraft/api/crafting/InfusionEnchantmentRecipe.java create mode 100644 1.7.2/api/java/thaumcraft/api/crafting/InfusionRecipe.java create mode 100644 1.7.2/api/java/thaumcraft/api/crafting/ShapedArcaneRecipe.java create mode 100644 1.7.2/api/java/thaumcraft/api/crafting/ShapelessArcaneRecipe.java create mode 100644 1.7.2/api/java/thaumcraft/api/nodes/INode.java create mode 100644 1.7.2/api/java/thaumcraft/api/nodes/IRevealer.java create mode 100644 1.7.2/api/java/thaumcraft/api/nodes/NodeModifier.java create mode 100644 1.7.2/api/java/thaumcraft/api/nodes/NodeType.java create mode 100644 1.7.2/api/java/thaumcraft/api/research/IScanEventHandler.java create mode 100644 1.7.2/api/java/thaumcraft/api/research/ResearchCategories.java create mode 100644 1.7.2/api/java/thaumcraft/api/research/ResearchCategoryList.java create mode 100644 1.7.2/api/java/thaumcraft/api/research/ResearchItem.java create mode 100644 1.7.2/api/java/thaumcraft/api/research/ResearchPage.java create mode 100644 1.7.2/api/java/thaumcraft/api/research/ScanResult.java create mode 100644 1.7.2/api/java/thaumcraft/api/wands/IWandFocus.java create mode 100644 1.7.2/api/java/thaumcraft/api/wands/IWandRodOnUpdate.java create mode 100644 1.7.2/api/java/thaumcraft/api/wands/IWandTriggerManager.java create mode 100644 1.7.2/api/java/thaumcraft/api/wands/IWandable.java create mode 100644 1.7.2/api/java/thaumcraft/api/wands/ItemFocusBasic.java create mode 100644 1.7.2/api/java/thaumcraft/api/wands/StaffRod.java create mode 100644 1.7.2/api/java/thaumcraft/api/wands/WandCap.java create mode 100644 1.7.2/api/java/thaumcraft/api/wands/WandRod.java create mode 100644 1.7.2/api/java/thaumcraft/api/wands/WandTriggerRegistry.java rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/AlchemicalWizardry.java (96%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/BloodMagicConfiguration.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/ModBlocks.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/ModItems.java (96%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/api/alchemy/AlchemicalPotionCreationHandler.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/api/alchemy/AlchemyPotionHandlerComponent.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/api/alchemy/AlchemyPotionHelper.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/api/alchemy/AlchemyRecipe.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/api/alchemy/AlchemyRecipeRegistry.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/api/altarRecipeRegistry/AltarRecipe.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/api/altarRecipeRegistry/AltarRecipeRegistry.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/api/bindingRegistry/BindingRecipe.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/api/bindingRegistry/BindingRegistry.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/api/items/interfaces/ArmourUpgrade.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/api/items/interfaces/IBindable.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/api/items/interfaces/IBloodOrb.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/api/items/interfaces/IHolding.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/api/rituals/IMasterRitualStone.java (86%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/api/rituals/IRitualStone.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/api/rituals/RitualComponent.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/api/rituals/RitualEffect.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/api/rituals/Rituals.java (51%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/api/soulNetwork/LifeEssenceNetwork.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/api/soulNetwork/SoulNetworkHandler.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/api/summoningRegistry/SummoningHelper.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/api/summoningRegistry/SummoningRegistry.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/api/summoningRegistry/SummoningRegistryComponent.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/client/ClientProxy.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/AlchemicalWizardryEventHooks.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/AlchemicalWizardryFuelHandler.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/AlchemicalWizardryTickHandler.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/ArmourComponent.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/CommonProxy.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/EntityAIFly.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/EntityAITargetAggro.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/EntityAirElemental.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/IBindingAgent.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/ICatalyst.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/IDemon.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/IFillingAgent.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/LifeBucketHandler.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/LifeEssence.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/ModLivingDropsEvent.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/NewPacketHandler.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/PacketHandler.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/PlinthComponent.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/block/ArmourForge.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/block/BlockAltar.java (90%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/block/BlockBloodLightSource.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/block/BlockConduit.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/block/BlockHomHeart.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/block/BlockMasterStone.java (99%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/block/BlockOrientable.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/block/BlockPedestal.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/block/BlockPlinth.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/block/BlockSocket.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/block/BlockSpectralContainer.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/block/BlockSpellEffect.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/block/BlockSpellEnhancement.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/block/BlockSpellModifier.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/block/BlockSpellParadigm.java (99%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/block/BlockTeleposer.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/block/BlockWritingTable.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/block/BloodRune.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/block/BloodStoneBrick.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/block/EfficiencyRune.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/block/EmptySocket.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/block/IOrientable.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/block/ImperfectRitualStone.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/block/LargeBloodStoneBrick.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/block/LifeEssenceBlock.java (92%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/block/RitualStone.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/block/RuneOfSacrifice.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/block/RuneOfSelfSacrifice.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/block/SpectralBlock.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/block/SpeedRune.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/bloodAltarUpgrade/AltarComponent.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/bloodAltarUpgrade/AltarUpgradeComponent.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/bloodAltarUpgrade/UpgradedAltars.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityBileDemon.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityBoulderFist.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityDemon.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityEarthElemental.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityElemental.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityFallenAngel.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityFireElemental.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityHolyElemental.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityIceDemon.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityLowerGuardian.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityShade.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityShadeElemental.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/entity/mob/EntitySmallEarthGolem.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityWaterElemental.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityWingedFireDemon.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/entity/projectile/EnergyBlastProjectile.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/entity/projectile/EntityBloodLightProjectile.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/entity/projectile/EntityEnergyBazookaMainProjectile.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/entity/projectile/EntityEnergyBazookaSecondaryProjectile.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/entity/projectile/EntityMeteor.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/entity/projectile/ExplosionProjectile.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/entity/projectile/FireProjectile.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/entity/projectile/HolyProjectile.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/entity/projectile/IceProjectile.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/entity/projectile/LightningBoltProjectile.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/entity/projectile/MudProjectile.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/entity/projectile/TeleportProjectile.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/entity/projectile/WaterProjectile.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/entity/projectile/WindGustProjectile.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/items/AWBaseItems.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/items/ActivationCrystal.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/items/AirScribeTool.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/items/ApprenticeBloodOrb.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/items/ArchmageBloodOrb.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/items/ArmourInhibitor.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/items/BlankSpell.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/items/BloodShard.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/items/BloodboundSword.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/items/BoundArmour.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/items/BoundAxe.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/items/BoundPickaxe.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/items/BoundShovel.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/items/CheatyItem.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/items/DaggerOfSacrifice.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/items/DemonPlacer.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/items/DemonicTelepositionFocus.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/items/DuskScribeTool.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/items/EarthScribeTool.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/items/EnergyBattery.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/items/EnergyBazooka.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/items/EnergyBlast.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/items/EnergyItems.java (99%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/items/EnergySword.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/items/EnhancedTelepositionFocus.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/items/FireScribeTool.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/items/ItemAlchemyBase.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/items/ItemBloodRuneBlock.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/items/ItemComplexSpellCrystal.java (97%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/items/ItemComponents.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/items/ItemDiabloKey.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/items/ItemRitualDiviner.java (92%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/items/ItemSpellEffectBlock.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/items/ItemSpellEnhancementBlock.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/items/ItemSpellModifierBlock.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/items/ItemSpellParadigmBlock.java (92%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/items/LavaCrystal.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/items/LifeBucket.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/items/MagicianBloodOrb.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/items/MasterBloodOrb.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/items/OrbOfTesting.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/items/ReinforcedTelepositionFocus.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/items/SacrificialDagger.java (98%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/items/ScribeTool.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/items/TelepositionFocus.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/items/WaterScribeTool.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/items/forestry/ItemBloodFrame.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/items/potion/AlchemyFlask.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/items/potion/AlchemyReagent.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/items/potion/AverageLengtheningCatalyst.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/items/potion/AveragePowerCatalyst.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/items/potion/EnhancedFillingAgent.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/items/potion/GreaterLengtheningCatalyst.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/items/potion/GreaterPowerCatalyst.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/items/potion/LengtheningCatalyst.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/items/potion/MundaneLengtheningCatalyst.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/items/potion/MundanePowerCatalyst.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/items/potion/PowerCatalyst.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/items/potion/StandardBindingAgent.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/items/potion/StandardFillingAgent.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/items/potion/WeakBindingAgent.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/items/potion/WeakFillingAgent.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/items/sigil/AirSigil.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/items/sigil/DivinationSigil.java (99%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/items/sigil/ItemBloodLightSigil.java (100%) create mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/sigil/ItemFluidSigil.java create mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/sigil/ItemSeerSigil.java rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/items/sigil/ItemSigilOfEnderSeverance.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/items/sigil/ItemSigilOfSupression.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/items/sigil/LavaSigil.java (88%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfElementalAffinity.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfGrowth.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfHaste.java (99%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfHolding.java (99%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfMagnetism.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfTheBridge.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfTheFastMiner.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfWind.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/items/sigil/VoidSigil.java (71%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/items/sigil/WaterSigil.java (88%) create mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/spell/ItemSpellMultiTool.java rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/items/thaumcraft/FocusBase.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/items/thaumcraft/FocusBloodBlast.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/items/thaumcraft/FocusGravityWell.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/items/thaumcraft/ItemSanguineArmour.java (99%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/mcmod.info (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/potion/PotionBoost.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/potion/PotionDrowning.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/potion/PotionFireFuse.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/potion/PotionFlameCloak.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/potion/PotionFlight.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/potion/PotionHeavyHeart.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/potion/PotionIceCloak.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/potion/PotionInhibit.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/potion/PotionPlanarBinding.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/potion/PotionProjectileProtect.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/potion/PotionReciprocation.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/renderer/block/RenderConduit.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/renderer/block/RenderPedestal.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/renderer/block/RenderPlinth.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/renderer/block/RenderSpellEffectBlock.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/renderer/block/RenderSpellEnhancementBlock.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/renderer/block/RenderSpellModifierBlock.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/renderer/block/RenderSpellParadigmBlock.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/renderer/block/RenderWritingTable.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/renderer/block/TEAltarRenderer.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/renderer/block/itemRender/TEAltarItemRenderer.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/renderer/block/itemRender/TEConduitItemRenderer.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/renderer/block/itemRender/TESpellEffectBlockItemRenderer.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/renderer/block/itemRender/TESpellEnhancementBlockItemRenderer.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/renderer/block/itemRender/TESpellModifierBlockItemRenderer.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/renderer/block/itemRender/TESpellParadigmBlockItemRenderer.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/renderer/block/itemRender/TEWritingTableItemRenderer.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/renderer/mob/RenderBileDemon.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/renderer/mob/RenderBoulderFist.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/renderer/mob/RenderElemental.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/renderer/mob/RenderFallenAngel.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/renderer/mob/RenderIceDemon.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/renderer/mob/RenderLowerGuardian.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/renderer/mob/RenderShade.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/renderer/mob/RenderSmallEarthGolem.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/renderer/mob/RenderWingedFireDemon.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelBileDemon.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelBloodAltar.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelBoulderFist.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelConduit.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelElemental.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelEnergyBazookaMainProjectile.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelFallenAngel.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelIceDemon.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelLowerGuardian.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelMeteor.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelPedestal.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelPlinth.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelShade.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelSmallEarthGolem.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelSpellEffectBlock.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelSpellEnhancementBlock.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelSpellModifierBlock.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelSpellParadigmBlock.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelWingedFireDemon.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelWritingTable.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/renderer/projectile/RenderEnergyBazookaMainProjectile.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/renderer/projectile/RenderEnergyBlastProjectile.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/renderer/projectile/RenderFireProjectile.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/renderer/projectile/RenderMeteor.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectAnimalGrowth.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectApiaryOverclock.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectAutoAlchemy.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectBiomeChanger.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectContainment.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectCrushing.java (97%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectExpulsion.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectFeatheredEarth.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectFeatheredKnife.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectFlight.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectGrowth.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectHealing.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectInterdiction.java (100%) create mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectItemSuction.java rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectJumping.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectLava.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectLeap.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectMagnetic.java (90%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectSoulBound.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectSummonMeteor.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectSummonPlayer.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectSupression.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectUnbinding.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectWater.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectWellOfSuffering.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/spell/complex/EntitySpellProjectile.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/spell/complex/SpellModifier.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/spell/complex/SpellModifierDefault.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/spell/complex/SpellModifierDefensive.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/spell/complex/SpellModifierEnvironmental.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/spell/complex/SpellModifierOffensive.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/spell/complex/SpellParadigm.java (93%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/spell/complex/SpellParadigmMelee.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/spell/complex/SpellParadigmProjectile.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/spell/complex/SpellParadigmSelf.java (100%) create mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/SpellParadigmTool.java rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellEffect.java (83%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellEffectEarth.java (74%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellEffectFire.java (81%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellEffectIce.java (81%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellEffectWind.java (72%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellHelper.java (74%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ExtrapolatedMeleeEntityEffect.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/IMeleeSpellEntityEffect.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/IMeleeSpellWorldEffect.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/IProjectileImpactEffect.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/IProjectileUpdateEffect.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ISelfSpellEffect.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/MeleeSpellCenteredWorldEffect.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/MeleeSpellWorldEffect.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ProjectileImpactEffect.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ProjectileUpdateEffect.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/SelfSpellEffect.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/MeleeDefaultEarth.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/MeleeDefensiveEarth.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/MeleeEnvironmentalEarth.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/MeleeOffensiveEarth.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/ProjectileDefaultEarth.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/ProjectileDefensiveEarth.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/ProjectileEnvironmentalEarth.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/ProjectileOffensiveEarth.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/SelfDefaultEarth.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/SelfDefensiveEarth.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/SelfEnvironmentalEarth.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/SelfOffensiveEarth.java (100%) create mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/ToolEnvironmentalEarth.java rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/MeleeDefaultFire.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/MeleeDefensiveFire.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/MeleeEnvironmentalFire.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/MeleeOffensiveFire.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/ProjectileDefaultFire.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/ProjectileDefensiveFire.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/ProjectileEnvironmentalFire.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/ProjectileOffensiveFire.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/SelfDefaultFire.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/SelfDefensiveFire.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/SelfEnvironmentalFire.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/SelfOffensiveFire.java (100%) create mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/ToolDefaultFire.java create mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/ToolOffensiveFire.java rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ice/MeleeDefaultIce.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ice/MeleeDefensiveIce.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ice/MeleeEnvironmentalIce.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ice/MeleeOffensiveIce.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ice/ProjectileDefaultIce.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ice/ProjectileDefensiveIce.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ice/ProjectileEnvironmentalIce.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ice/ProjectileOffensiveIce.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ice/SelfDefaultIce.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ice/SelfDefensiveIce.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ice/SelfEnvironmentalIce.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ice/SelfOffensiveIce.java (100%) create mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ice/ToolDefensiveIce.java create mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/DigAreaEffect.java create mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/DigAreaTunnel.java create mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/IDigAreaEffect.java create mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/IItemManipulator.java create mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/ILeftClickEffect.java create mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/IOnBanishTool.java create mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/IOnBreakBlock.java create mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/IOnSummonTool.java create mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/IRightClickEffect.java create mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/ISpecialDamageEffect.java create mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/IToolUpdateEffect.java create mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/ItemManipulator.java create mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/LeftClickEffect.java create mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/OnBreakBlockEffect.java create mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/RightClickEffect.java create mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/RightClickTunnel.java create mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/SummonToolEffect.java rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/MeleeDefaultWind.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/MeleeDefensiveWind.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/MeleeEnvironmentalWind.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/MeleeOffensiveWind.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/ProjectileDefaultWind.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/ProjectileEnvironmentalWind.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/ProjectileOffensiveWind.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/SelfDefaultWind.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/SelfDefensiveWind.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/SelfEnvironmentalWind.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/SelfOffensiveWind.java (100%) create mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/ToolDefensiveWind.java create mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/ToolEnvironmentalWind.java create mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/ToolOffensiveWind.java rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/spell/complex/enhancement/SpellEnhancement.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/spell/complex/enhancement/SpellEnhancementCost.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/spell/complex/enhancement/SpellEnhancementPotency.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/spell/complex/enhancement/SpellEnhancementPower.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/spell/simple/HomSpell.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/spell/simple/HomSpellComponent.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/spell/simple/HomSpellRegistry.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/spell/simple/ISimpleSpell.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/spell/simple/SpellEarthBender.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/spell/simple/SpellExplosions.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/spell/simple/SpellFireBurst.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/spell/simple/SpellFrozenWater.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/spell/simple/SpellHolyBlast.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/spell/simple/SpellLightningBolt.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/spell/simple/SpellTeleport.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/spell/simple/SpellWateryGrave.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/spell/simple/SpellWindGust.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/summoning/SummoningFallenAngel.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/summoning/SummoningHelperAW.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/summoning/meteor/MeteorParadigm.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/summoning/meteor/MeteorParadigmComponent.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/summoning/meteor/MeteorRegistry.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/tileEntity/TEAltar.java (97%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/tileEntity/TEConduit.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/tileEntity/TEHomHeart.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/tileEntity/TEImperfectRitualStone.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/tileEntity/TEMasterStone.java (78%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/tileEntity/TEOrientable.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/tileEntity/TEPedestal.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/tileEntity/TEPlinth.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/tileEntity/TESocket.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/tileEntity/TESpectralContainer.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/tileEntity/TESpellBlock.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/tileEntity/TESpellEffectBlock.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/tileEntity/TESpellEnhancementBlock.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/tileEntity/TESpellModifierBlock.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/tileEntity/TESpellParadigmBlock.java (95%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/tileEntity/TETeleposer.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/tileEntity/TEWritingTable.java (92%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/tileEntity/container/ContainerAltar.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/tileEntity/container/ContainerTeleposer.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/tileEntity/container/ContainerWritingTable.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/tileEntity/gui/GuiHandler.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/tileEntity/gui/GuiTeleposer.java (100%) rename 1.7.2/{ => main}/java/WayofTime/alchemicalWizardry/common/tileEntity/gui/GuiWritingTable.java (100%) create mode 100644 1.7.2/main/java/joshie/alchemicalWizardy/nei/NEIAlchemyRecipeHandler.java create mode 100644 1.7.2/main/java/joshie/alchemicalWizardy/nei/NEIAltarRecipeHandler.java create mode 100644 1.7.2/main/java/joshie/alchemicalWizardy/nei/NEIConfig.java rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/altar.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/books/architect.xml (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/gui/Teleposer.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/gui/WritingTable.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/gui/bookleft.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/gui/nei/alchemy.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/gui/nei/altar.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/lang/de_DE.lang (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/lang/en_US.lang (98%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/models/armor/armor - Shortcut.lnk (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/models/armor/boundArmour_invisible_layer_1.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/models/armor/boundArmour_invisible_layer_2.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/models/armor/boundArmour_layer_1.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/models/armor/boundArmour_layer_2.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/models/armor/sanguineArmour_layer_1.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/blocks/AirRitualStone.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/blocks/AlchemicChemistrySet.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/blocks/AltarCapacityRune.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/blocks/ArcanePedestal.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/blocks/ArcanePlinth.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/blocks/BlankRune.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/blocks/BlockBloodLight.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/blocks/BloodAltar_Bottom.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/blocks/BloodAltar_SideType1.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/blocks/BloodAltar_SideType2.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/blocks/BloodAltar_Top.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/blocks/BloodSocket.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/blocks/BloodStoneBrick.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/blocks/DislocationRune.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/blocks/DuskRitualStone.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/blocks/EarthRitualStone.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/blocks/EfficiencyRune.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/blocks/EmptySocket.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/blocks/FireRitualStone.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/blocks/HomHeart_bottom.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/blocks/HomHeart_side.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/blocks/HomHeart_top.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/blocks/HomHeart_top1.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/blocks/ImperfectRitualStone.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/blocks/LargeBloodStoneBrick.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/blocks/MasterStone.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/blocks/OrbCapacityRune.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/blocks/RitualStone.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/blocks/RuneOfSacrifice.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/blocks/RuneOfSelfSacrifice.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/blocks/SoulForge.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/blocks/SpectralBlock.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/blocks/SpeedRune.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/blocks/Teleposer_Side.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/blocks/Teleposer_Top.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/blocks/Testing.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/blocks/WaterRitualStone.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/blocks/fireEffectBlock_blank.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/blocks/fireEffectBlock_input.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/blocks/fireEffectBlock_output.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/blocks/fireEffectBlock_upArrow.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/blocks/lifeEssenceFlowing.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/blocks/lifeEssenceStill.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/entities/energyBlastProjectile.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/entities/explosionProjectile.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/entities/fireProjectile.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/entities/holyProjectile.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/entities/iceProjectile.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/entities/lightningProjectile.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/entities/mudProjectile.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/entities/waterProjectile.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/entities/windGustProjectile.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/gui/GuiTrap.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/gui/bookcrafting.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/gui/bookfurnace.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/gui/bookleft.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/gui/bookright.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/8wWtY8d.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/Aether.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/AirScribeTool.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/AirSigil.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/AlchemyFlask.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/ApprenticeBloodOrb.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/Aquasalus.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/ArchmageBloodOrb.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/ArmourInhibitor_activated.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/ArmourInhibitor_deactivated.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/AverageLengtheningCatalyst.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/AveragePowerCatalyst.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/BlankSlate.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/BlankSpell.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/BloodFrame.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/BloodLightSigil.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/BoundAxe_activated.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/BoundBoots.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/BoundHelmet.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/BoundLeggings.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/BoundPickaxe_activated.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/BoundPickaxe_deactivated.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/BoundPlate.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/BoundShovel_activated.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/BoundSword_activated.png (100%) create mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/BoundTool.png rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/BridgeSigil_activated.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/BridgeSigil_deactivated.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/CeremonialDagger.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/ComplexCrystal.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/Crepitous.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/Crystallos.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/DaggerOfSacrifice.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/DemonBloodShard.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/DemonPlacer.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/DemonSlate.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/DemonicTeleposerFocus.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/DiabloKey.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/DivinationSigil.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/DuskScribeTool.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/EarthScribeTool.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/ElementalInkAir.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/ElementalInkEarth.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/ElementalInkFire.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/ElementalInkWater.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/ElementalSigil_activated.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/ElementalSigil_deactivated.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/EnergyBattery.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/EnergyBazooka_activated.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/EnergyBlaster_activated.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/EnhancedFillingAgent.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/EnhancedTeleposerFocus.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/FireScribeTool.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/GreaterLengtheningCatalyst.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/GreaterPowerCatalyst.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/GrowthSigil_activated.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/GrowthSigil_deactivated.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/HasteSigil_activated.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/HasteSigil_deactivated.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/IceSigil_activated.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/IceSigil_deactivated.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/Incendium.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/InfusedSlate.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/LavaCrystal.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/LavaSigil.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/LifeBucket.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/Magicales.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/MagicianBloodOrb.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/MasterBloodOrb.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/MiningSigil_activated.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/MiningSigil_deactivated.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/MundaneLengtheningCatalyst.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/MundanePowerCatalyst.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/PotionFlask.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/ReinforcedSlate.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/ReinforcedTeleposerFocus.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/RitualDiviner.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/SacrificialDagger.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/Sanctus.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/SanguineHelmet.png (100%) create mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/SeerSigil.png rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/SheathedItem.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/SigilOfHolding.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/SigilOfMagnetism_activated.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/SigilOfMagnetism_deactivated.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/SigilOfSeverance_activated.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/SigilOfSeverance_deactivated.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/SigilOfSupression_activated.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/SigilOfSupression_deactivated.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/SimpleCatalyst.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/StandardBindingAgent.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/StandardFillingAgent.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/TeleposerFocus.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/Tennebrae.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/Terrae.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/UntamedCrystal.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/VoidSigil.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/WarriorSigil_activated.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/WarriorSigil_deactivated.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/WaterScribeTool.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/WaterSigil.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/WeakBindingAgent.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/WeakBloodShard.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/WeakFillingAgent.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/WindSigil_activated.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/WindSigil_deactivated.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/activationCrystalAwakened.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/activationCrystalWeak.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/baseAlchemyItemConcentratedCatalyst.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/baseAlchemyItemFracturedBone.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/baseAlchemyItemOffensa.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/baseAlchemyItemOrbisTerrae.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/baseAlchemyItemPotentia.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/baseAlchemyItemPraesidium.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/baseAlchemyItemReductus.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/baseAlchemyItemStrengthenedCatalyst.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/baseAlchemyItemVirtus.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/baseItemCostCore.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/baseItemCrackedRunicPlate.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/baseItemDefaultCore.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/baseItemDefensiveCore.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/baseItemEarthenCore.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/baseItemEmptyCore.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/baseItemEnvironmentalCore.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/baseItemFlameCore.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/baseItemGustCore.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/baseItemIcyCore.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/baseItemInputCable.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/baseItemMagicalesCable.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/baseItemMeleeCore.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/baseItemObsidianBrace.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/baseItemOffensiveCore.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/baseItemOutputCable.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/baseItemParadigmBackPlate.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/baseItemPotencyCore.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/baseItemPowerCore.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/baseItemProjectileCore.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/baseItemQuartzRod.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/baseItemRunicPlate.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/baseItemScribedRunicPlate.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/baseItemSelfCore.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/baseItemStoneBrace.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/baseItemWoodBrace.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/bloodBlastOrn.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/focusBloodBlastOrn.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/items/tYf5ft9.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/models/AirFloatingBeacon.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/models/BileDemon.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/models/Bird.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/models/BlockSpellEffect.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/models/BoulderFist.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/models/Conduit.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/models/DarkFloatingBeacon.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/models/EarthFloatingBeacon.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/models/EnergyBazookaMainProjectile.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/models/FireFloatingBeacon.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/models/FloatingBeacon.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/models/HolyFloatingBeacon.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/models/IceDemon.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/models/LowerGuardian.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/models/Meteor.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/models/ParadigmBlock.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/models/Pedestal.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/models/Plinth.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/models/ShadeMob.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/models/SmallEarthGolem.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/models/SpellEffectEarth.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/models/SpellEffectFire.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/models/SpellEffectIce.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/models/SpellEffectWind.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/models/SpellEnhancementCost1.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/models/SpellEnhancementCost2.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/models/SpellEnhancementCost3.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/models/SpellEnhancementPotency1.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/models/SpellEnhancementPotency2.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/models/SpellEnhancementPotency3.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/models/SpellEnhancementPower1.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/models/SpellEnhancementPower2.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/models/SpellEnhancementPower3.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/models/SpellModifierDefault.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/models/SpellModifierDefensive.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/models/SpellModifierEnvironmental.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/models/SpellModifierOffensive.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/models/SpellParadigmMelee.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/models/SpellParadigmProjectile.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/models/SpellParadigmSelf.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/models/WaterFloatingBeacon.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/models/WingedAngel.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/models/WingedFireDemon.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/models/WritingTable.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/models/altar.png (100%) rename 1.7.2/{ => main}/resources/assets/alchemicalwizardry/textures/models/blood.png (100%) rename 1.7.2/{ => main}/resources/assets/forge/lang/en_US.lang (100%) rename 1.7.2/{ => main}/resources/assets/forge/lang/es_ES.lang (100%) rename 1.7.2/{ => main}/resources/assets/forge/lang/fr_FR.lang (100%) rename 1.7.2/{ => main}/resources/mcmod.info (100%) delete mode 100644 1.7.2/resources/assets/alchemicalwizardry/bloodaltar.obj delete mode 100644 1.7.2/resources/assets/alchemicalwizardry/bloodlevel.obj delete mode 100644 1.7.2/resources/assets/alchemicalwizardry/models/bloodaltar-fixeUV.obj delete mode 100644 1.7.2/resources/assets/alchemicalwizardry/models/bloodaltar.obj delete mode 100644 1.7.2/resources/assets/alchemicalwizardry/models/bloodlevel.obj create mode 100644 BM_src/WayofTime/alchemicalWizardry/common/rituals/RitualEffectItemSuction.java diff --git a/1.7.2/api/java/thaumcraft/api/IGoggles.java b/1.7.2/api/java/thaumcraft/api/IGoggles.java new file mode 100644 index 00000000..2f53d816 --- /dev/null +++ b/1.7.2/api/java/thaumcraft/api/IGoggles.java @@ -0,0 +1,22 @@ +package thaumcraft.api; + +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.item.ItemStack; + +/** + * + * @author Azanor + * + * Equipped head slot items that extend this class will be able to perform most functions that + * goggles of revealing can apart from view nodes which is handled by IRevealer. + * + */ + +public interface IGoggles { + + /* + * If this method returns true things like block essentia contents will be shown. + */ + public boolean showIngamePopups(ItemStack itemstack, EntityLivingBase player); + +} diff --git a/1.7.2/api/java/thaumcraft/api/IRepairable.java b/1.7.2/api/java/thaumcraft/api/IRepairable.java new file mode 100644 index 00000000..48c6dff9 --- /dev/null +++ b/1.7.2/api/java/thaumcraft/api/IRepairable.java @@ -0,0 +1,13 @@ +package thaumcraft.api; + + + +/** + * @author Azanor + * Items, armor and tools with this interface can receive the Repair enchantment. + * Repairs 1 point of durability every 10 seconds (2 for repair II) + */ +public interface IRepairable { + + +} diff --git a/1.7.2/api/java/thaumcraft/api/IRepairableExtended.java b/1.7.2/api/java/thaumcraft/api/IRepairableExtended.java new file mode 100644 index 00000000..33827124 --- /dev/null +++ b/1.7.2/api/java/thaumcraft/api/IRepairableExtended.java @@ -0,0 +1,17 @@ +package thaumcraft.api; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; + + + +/** + * @author Azanor + * Items, armor and tools with this interface can receive the Repair enchantment. + * Repairs 1 point of durability every 10 seconds (2 for repair II) + */ +public interface IRepairableExtended extends IRepairable { + + public boolean doRepair(ItemStack stack, EntityPlayer player, int enchantlevel); + +} diff --git a/1.7.2/api/java/thaumcraft/api/IRunicArmor.java b/1.7.2/api/java/thaumcraft/api/IRunicArmor.java new file mode 100644 index 00000000..89d3c379 --- /dev/null +++ b/1.7.2/api/java/thaumcraft/api/IRunicArmor.java @@ -0,0 +1,23 @@ +package thaumcraft.api; + +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.item.ItemStack; + +/** + * + * @author Azanor + * + * Armor or bauble slot items that implement this interface can provide runic shielding. + * Recharging, hardening, etc. is handled internally by thaumcraft. + * + */ + +public interface IRunicArmor { + + /** + * returns how much charge this item can provide. This is the base shielding value - any hardening is stored and calculated internally. + */ + public int getRunicCharge(ItemStack itemstack); + + +} diff --git a/1.7.2/api/java/thaumcraft/api/IScribeTools.java b/1.7.2/api/java/thaumcraft/api/IScribeTools.java new file mode 100644 index 00000000..8800fa57 --- /dev/null +++ b/1.7.2/api/java/thaumcraft/api/IScribeTools.java @@ -0,0 +1,14 @@ +package thaumcraft.api; + + +/** + * + * @author Azanor + * + * Interface used to identify scribing tool items used in research table + * + */ + +public interface IScribeTools { + +} diff --git a/1.7.2/api/java/thaumcraft/api/IVisDiscountGear.java b/1.7.2/api/java/thaumcraft/api/IVisDiscountGear.java new file mode 100644 index 00000000..3793ea3e --- /dev/null +++ b/1.7.2/api/java/thaumcraft/api/IVisDiscountGear.java @@ -0,0 +1,20 @@ +package thaumcraft.api; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import thaumcraft.api.aspects.Aspect; + + + + +/** + * @author Azanor + * ItemArmor with this interface will grant a discount to the vis cost of actions the wearer performs with casting wands. + * The amount returned is the percentage by which the cost is discounted. There is a built-int max discount of 50%, but + * individual items really shouldn't have a discount more than 5% + */ +public interface IVisDiscountGear { + + int getVisDiscount(ItemStack stack, EntityPlayer player, Aspect aspect); + +} diff --git a/1.7.2/api/java/thaumcraft/api/ItemApi.java b/1.7.2/api/java/thaumcraft/api/ItemApi.java new file mode 100644 index 00000000..25dda282 --- /dev/null +++ b/1.7.2/api/java/thaumcraft/api/ItemApi.java @@ -0,0 +1,70 @@ +package thaumcraft.api; + +import net.minecraft.block.Block; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import cpw.mods.fml.common.FMLLog; + +/** + * @author Azanor + * + * This is used to gain access to the items in my mod. + * I only give some examples and it will probably still + * require a bit of work for you to get hold of everything you need. + * + */ +public class ItemApi { + + public static ItemStack getItem(String itemString, int meta) { + ItemStack item = null; + + try { + String itemClass = "thaumcraft.common.config.ConfigItems"; + Object obj = Class.forName(itemClass).getField(itemString).get(null); + if (obj instanceof Item) { + item = new ItemStack((Item) obj,1,meta); + } else if (obj instanceof ItemStack) { + item = (ItemStack) obj; + } + } catch (Exception ex) { + FMLLog.warning("[Thaumcraft] Could not retrieve item identified by: " + itemString); + } + + return item; + } + + public static ItemStack getBlock(String itemString, int meta) { + ItemStack item = null; + + try { + String itemClass = "thaumcraft.common.config.ConfigBlocks"; + Object obj = Class.forName(itemClass).getField(itemString).get(null); + if (obj instanceof Block) { + item = new ItemStack((Block) obj,1,meta); + } else if (obj instanceof ItemStack) { + item = (ItemStack) obj; + } + } catch (Exception ex) { + FMLLog.warning("[Thaumcraft] Could not retrieve block identified by: " + itemString); + } + + return item; + } + + /** + * + * Some examples + * + * Casting Wands: + * itemWandCasting + * + * Resources: + * itemEssence, itemWispEssence, itemResource, itemShard, itemNugget, + * itemNuggetChicken, itemNuggetBeef, itemNuggetPork, itemTripleMeatTreat + * + * Research: + * itemResearchNotes, itemInkwell, itemThaumonomicon + * + */ + +} diff --git a/1.7.2/api/java/thaumcraft/api/ItemRunic.java b/1.7.2/api/java/thaumcraft/api/ItemRunic.java new file mode 100644 index 00000000..80251f59 --- /dev/null +++ b/1.7.2/api/java/thaumcraft/api/ItemRunic.java @@ -0,0 +1,21 @@ +package thaumcraft.api; + +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; + +public class ItemRunic extends Item implements IRunicArmor { + + int charge; + + public ItemRunic (int charge) + { + super(); + this.charge = charge; + } + + @Override + public int getRunicCharge(ItemStack itemstack) { + return charge; + } + +} diff --git a/1.7.2/api/java/thaumcraft/api/ThaumcraftApi.java b/1.7.2/api/java/thaumcraft/api/ThaumcraftApi.java new file mode 100644 index 00000000..9dd0b6d2 --- /dev/null +++ b/1.7.2/api/java/thaumcraft/api/ThaumcraftApi.java @@ -0,0 +1,469 @@ +package thaumcraft.api; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.concurrent.ConcurrentHashMap; + +import net.minecraft.block.Block; +import net.minecraft.enchantment.Enchantment; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.Item.ToolMaterial; +import net.minecraft.item.ItemArmor.ArmorMaterial; +import net.minecraft.item.ItemStack; +import net.minecraftforge.common.util.EnumHelper; +import net.minecraftforge.oredict.OreDictionary; +import thaumcraft.api.aspects.Aspect; +import thaumcraft.api.aspects.AspectList; +import thaumcraft.api.crafting.CrucibleRecipe; +import thaumcraft.api.crafting.InfusionEnchantmentRecipe; +import thaumcraft.api.crafting.InfusionRecipe; +import thaumcraft.api.crafting.ShapedArcaneRecipe; +import thaumcraft.api.crafting.ShapelessArcaneRecipe; +import thaumcraft.api.research.IScanEventHandler; +import thaumcraft.api.research.ResearchCategories; +import thaumcraft.api.research.ResearchCategoryList; +import thaumcraft.api.research.ResearchItem; +import thaumcraft.api.research.ResearchPage; + + +/** + * @author Azanor + * + * + * IMPORTANT: If you are adding your own aspects to items it is a good idea to do it AFTER Thaumcraft adds its aspects, otherwise odd things may happen. + * + */ +public class ThaumcraftApi { + + //Materials + public static ToolMaterial toolMatThaumium = EnumHelper.addToolMaterial("THAUMIUM", 3, 400, 7F, 2, 22); + public static ToolMaterial toolMatElemental = EnumHelper.addToolMaterial("THAUMIUM_ELEMENTAL", 3, 1500, 10F, 3, 18); + public static ArmorMaterial armorMatThaumium = EnumHelper.addArmorMaterial("THAUMIUM", 25, new int[] { 2, 6, 5, 2 }, 25); + public static ArmorMaterial armorMatSpecial = EnumHelper.addArmorMaterial("SPECIAL", 25, new int[] { 1, 3, 2, 1 }, 25); + + //Enchantment references + public static int enchantFrugal; + public static int enchantPotency; + public static int enchantWandFortune; + public static int enchantHaste; + public static int enchantRepair; + + //Miscellaneous + /** + * Portable Hole Block-id Blacklist. + * Simply add the block-id's of blocks you don't want the portable hole to go through. + */ + public static ArrayList portableHoleBlackList = new ArrayList(); + + + //RESEARCH///////////////////////////////////////// + public static ArrayList scanEventhandlers = new ArrayList(); + public static ArrayList scanEntities = new ArrayList(); + public static class EntityTagsNBT { + public EntityTagsNBT(String name, Object value) { + this.name = name; + this.value = value; + } + public String name; + public Object value; + } + public static class EntityTags { + public EntityTags(String entityName, AspectList aspects, EntityTagsNBT... nbts) { + this.entityName = entityName; + this.nbts = nbts; + this.aspects = aspects; + } + public String entityName; + public EntityTagsNBT[] nbts; + public AspectList aspects; + } + + /** + * not really working atm, so ignore it for now + * @param scanEventHandler + */ + public static void registerScanEventhandler(IScanEventHandler scanEventHandler) { + scanEventhandlers.add(scanEventHandler); + } + + /** + * This is used to add aspects to entities which you can then scan using a thaumometer. + * Also used to calculate vis drops from mobs. + * @param entityName + * @param aspects + * @param nbt you can specify certain nbt keys and their values + * to differentiate between mobs.
For example the normal and wither skeleton: + *
ThaumcraftApi.registerEntityTag("Skeleton", (new AspectList()).add(Aspect.DEATH, 5)); + *
ThaumcraftApi.registerEntityTag("Skeleton", (new AspectList()).add(Aspect.DEATH, 8), new NBTTagByte("SkeletonType",(byte) 1)); + */ + public static void registerEntityTag(String entityName, AspectList aspects, EntityTagsNBT... nbt ) { + scanEntities.add(new EntityTags(entityName,aspects,nbt)); + } + + //RECIPES///////////////////////////////////////// + private static ArrayList craftingRecipes = new ArrayList(); + private static HashMap smeltingBonus = new HashMap(); + + /** + * This method is used to determine what bonus items are generated when the infernal furnace smelts items + * @param in The input of the smelting operation. e.g. new ItemStack(Block.oreGold) + * @param out The bonus item that can be produced from the smelting operation e.g. new ItemStack(nuggetGold,0,0). + * Stacksize should be 0 unless you want to guarantee that at least 1 item is always produced. + */ + public static void addSmeltingBonus(ItemStack in, ItemStack out) { + smeltingBonus.put( + Arrays.asList(Item.getIdFromItem(in.getItem()),in.getItemDamage()), + new ItemStack(out.getItem(),0,out.getItemDamage())); + } + + /** + * This method is used to determine what bonus items are generated when the infernal furnace smelts items + * @param in The ore dictionary input of the smelting operation. e.g. "oreGold" + * @param out The bonus item that can be produced from the smelting operation e.g. new ItemStack(nuggetGold,0,0). + * Stacksize should be 0 unless you want to guarantee that at least 1 item is always produced. + */ + public static void addSmeltingBonus(String in, ItemStack out) { + smeltingBonus.put( in, new ItemStack(out.getItem(),0,out.getItemDamage())); + } + + /** + * Returns the bonus item produced from a smelting operation in the infernal furnace + * @param in The input of the smelting operation. e.g. new ItemStack(oreGold) + * @return the The bonus item that can be produced + */ + public static ItemStack getSmeltingBonus(ItemStack in) { + ItemStack out = smeltingBonus.get(Arrays.asList(Item.getIdFromItem(in.getItem()),in.getItemDamage())); + if (out==null) { + out = smeltingBonus.get(Arrays.asList(Item.getIdFromItem(in.getItem()),OreDictionary.WILDCARD_VALUE)); + } + if (out==null) { + String od = OreDictionary.getOreName( OreDictionary.getOreID(in)); + out = smeltingBonus.get(od); + } + return out; + } + + public static List getCraftingRecipes() { + return craftingRecipes; + } + + /** + * @param research the research key required for this recipe to work. Leave blank if it will work without research + * @param result the recipe output + * @param aspects the vis cost per aspect. + * @param recipe The recipe. Format is exactly the same as vanilla recipes. Input itemstacks are NBT sensitive. + */ + public static ShapedArcaneRecipe addArcaneCraftingRecipe(String research, ItemStack result, AspectList aspects, Object ... recipe) + { + ShapedArcaneRecipe r= new ShapedArcaneRecipe(research, result, aspects, recipe); + craftingRecipes.add(r); + return r; + } + + /** + * @param research the research key required for this recipe to work. Leave blank if it will work without research + * @param result the recipe output + * @param aspects the vis cost per aspect + * @param recipe The recipe. Format is exactly the same as vanilla shapeless recipes. Input itemstacks are NBT sensitive. + */ + public static ShapelessArcaneRecipe addShapelessArcaneCraftingRecipe(String research, ItemStack result, AspectList aspects, Object ... recipe) + { + ShapelessArcaneRecipe r = new ShapelessArcaneRecipe(research, result, aspects, recipe); + craftingRecipes.add(r); + return r; + } + + /** + * @param research the research key required for this recipe to work. Leave blank if it will work without research + * @param result the recipe output. It can either be an itemstack or an nbt compound tag that will be added to the central item + * @param instability a number that represents the N in 1000 chance for the infusion altar to spawn an + * instability effect each second while the crafting is in progress + * @param aspects the essentia cost per aspect. + * @param aspects input the central item to be infused + * @param recipe An array of items required to craft this. Input itemstacks are NBT sensitive. + * Infusion crafting components are automatically "fuzzy" and the oredict will be checked for possible matches. + * + */ + public static InfusionRecipe addInfusionCraftingRecipe(String research, Object result, int instability, AspectList aspects, ItemStack input,ItemStack[] recipe) + { + if (!(result instanceof ItemStack || result instanceof Object[])) return null; + InfusionRecipe r= new InfusionRecipe(research, result, instability, aspects, input, recipe); + craftingRecipes.add(r); + return r; + } + + /** + * @param research the research key required for this recipe to work. Leave blank if it will work without research + * @param enchantment the enchantment that will be applied to the item + * @param instability a number that represents the N in 1000 chance for the infusion altar to spawn an + * instability effect each second while the crafting is in progress + * @param aspects the essentia cost per aspect. + * @param recipe An array of items required to craft this. Input itemstacks are NBT sensitive. + * Infusion crafting components are automatically "fuzzy" and the oredict will be checked for possible matches. + * + */ + public static InfusionEnchantmentRecipe addInfusionEnchantmentRecipe(String research, Enchantment enchantment, int instability, AspectList aspects, ItemStack[] recipe) + { + InfusionEnchantmentRecipe r= new InfusionEnchantmentRecipe(research, enchantment, instability, aspects, recipe); + craftingRecipes.add(r); + return r; + } + + /** + * @param stack the recipe result + * @return the recipe + */ + public static InfusionRecipe getInfusionRecipe(ItemStack res) { + for (Object r:getCraftingRecipes()) { + if (r instanceof InfusionRecipe) { + if (((InfusionRecipe)r).getRecipeOutput() instanceof ItemStack) { + if (((ItemStack) ((InfusionRecipe)r).getRecipeOutput()).isItemEqual(res)) + return (InfusionRecipe)r; + } + } + } + return null; + } + + + /** + * @param key the research key required for this recipe to work. + * @param result the output result + * @param cost the vis cost + * @param tags the aspects required to craft this + */ + public static CrucibleRecipe addCrucibleRecipe(String key, ItemStack result, Object catalyst, AspectList tags) { + CrucibleRecipe rc = new CrucibleRecipe(key, result, catalyst, tags); + getCraftingRecipes().add(rc); + return rc; + } + + + /** + * @param stack the recipe result + * @return the recipe + */ + public static CrucibleRecipe getCrucibleRecipe(ItemStack stack) { + for (Object r:getCraftingRecipes()) { + if (r instanceof CrucibleRecipe) { + if (((CrucibleRecipe)r).getRecipeOutput().isItemEqual(stack)) + return (CrucibleRecipe)r; + } + } + return null; + } + + /** + * Used by the thaumonomicon drilldown feature. + * @param stack the item + * @return the thaumcraft recipe key that produces that item. + */ + private static HashMap keyCache = new HashMap(); + + public static Object[] getCraftingRecipeKey(EntityPlayer player, ItemStack stack) { + int[] key = new int[] {Item.getIdFromItem(stack.getItem()),stack.getItemDamage()}; + if (keyCache.containsKey(key)) { + if (keyCache.get(key)==null) return null; + if (ThaumcraftApiHelper.isResearchComplete(player.getCommandSenderName(), (String)(keyCache.get(key))[0])) + return keyCache.get(key); + else + return null; + } + for (ResearchCategoryList rcl:ResearchCategories.researchCategories.values()) { + for (ResearchItem ri:rcl.research.values()) { + if (ri.getPages()==null) continue; + for (int a=0;a objectTags = new ConcurrentHashMap(); + + /** + * Checks to see if the passed item/block already has aspects associated with it. + * @param id + * @param meta + * @return + */ + public static boolean exists(Item item, int meta) { + AspectList tmp = ThaumcraftApi.objectTags.get(Arrays.asList(item,meta)); + if (tmp==null) { + tmp = ThaumcraftApi.objectTags.get(Arrays.asList(item,OreDictionary.WILDCARD_VALUE)); + if (meta==OreDictionary.WILDCARD_VALUE && tmp==null) { + int index=0; + do { + tmp = ThaumcraftApi.objectTags.get(Arrays.asList(item,index)); + index++; + } while (index<16 && tmp==null); + } + if (tmp==null) return false; + } + + return true; + } + + /** + * Used to assign apsects to the given item/block. Here is an example of the declaration for cobblestone:

+ * ThaumcraftApi.registerObjectTag(new ItemStack(Blocks.cobblestone), (new AspectList()).add(Aspect.ENTROPY, 1).add(Aspect.EARTH, 1)); + * @param item the item passed. Pass OreDictionary.WILDCARD_VALUE if all damage values of this item/block should have the same aspects + * @param aspects A ObjectTags object of the associated aspects + */ + public static void registerObjectTag(ItemStack item, AspectList aspects) { + if (aspects==null) aspects=new AspectList(); + try { + objectTags.put(Arrays.asList(item.getItem(),item.getItemDamage()), aspects); + } catch (Exception e) {} + } + + + /** + * Used to assign apsects to the given item/block. Here is an example of the declaration for cobblestone:

+ * ThaumcraftApi.registerObjectTag(new ItemStack(Blocks.cobblestone), new int[]{0,1}, (new AspectList()).add(Aspect.ENTROPY, 1).add(Aspect.EARTH, 1)); + * @param item + * @param meta A range of meta values if you wish to lump several item meta's together as being the "same" item (i.e. stair orientations) + * @param aspects A ObjectTags object of the associated aspects + */ + public static void registerObjectTag(ItemStack item, int[] meta, AspectList aspects) { + if (aspects==null) aspects=new AspectList(); + try { + objectTags.put(Arrays.asList(item.getItem(),meta), aspects); + } catch (Exception e) {} + } + + /** + * Used to assign apsects to the given ore dictionary item. + * @param oreDict the ore dictionary name + * @param aspects A ObjectTags object of the associated aspects + */ + public static void registerObjectTag(String oreDict, AspectList aspects) { + if (aspects==null) aspects=new AspectList(); + ArrayList ores = OreDictionary.getOres(oreDict); + if (ores!=null && ores.size()>0) { + for (ItemStack ore:ores) { + try { + objectTags.put(Arrays.asList(ore.getItem(), ore.getItemDamage()), aspects); + } catch (Exception e) {} + } + } + } + + /** + * Used to assign aspects to the given item/block. + * Attempts to automatically generate aspect tags by checking registered recipes. + * Here is an example of the declaration for pistons:

+ * ThaumcraftApi.registerComplexObjectTag(new ItemStack(Blocks.cobblestone), (new AspectList()).add(Aspect.MECHANISM, 2).add(Aspect.MOTION, 4)); + * @param item, pass OreDictionary.WILDCARD_VALUE to meta if all damage values of this item/block should have the same aspects + * @param aspects A ObjectTags object of the associated aspects + */ + public static void registerComplexObjectTag(ItemStack item, AspectList aspects ) { + if (!exists(item.getItem(),item.getItemDamage())) { + AspectList tmp = ThaumcraftApiHelper.generateTags(item.getItem(), item.getItemDamage()); + if (tmp != null && tmp.size()>0) { + for(Aspect tag:tmp.getAspects()) { + aspects.add(tag, tmp.getAmount(tag)); + } + } + registerObjectTag(item,aspects); + } else { + AspectList tmp = ThaumcraftApiHelper.getObjectAspects(item); + for(Aspect tag:aspects.getAspects()) { + tmp.merge(tag, tmp.getAmount(tag)); + } + registerObjectTag(item,tmp); + } + } + + //CROPS ////////////////////////////////////////////////////////////////////////////////////////// + + /** + * To define mod crops you need to use FMLInterModComms in your @Mod.Init method. + * There are two 'types' of crops you can add. Standard crops and clickable crops. + * + * Standard crops work like normal vanilla crops - they grow until a certain metadata + * value is reached and you harvest them by destroying the block and collecting the blocks. + * You need to create and ItemStack that tells the golem what block id and metadata represents + * the crop when fully grown. Sending a metadata of [OreDictionary.WILDCARD_VALUE] will mean the metadata won't get + * checked. + * Example for vanilla wheat: + * FMLInterModComms.sendMessage("Thaumcraft", "harvestStandardCrop", new ItemStack(Block.crops,1,7)); + * + * Clickable crops are crops that you right click to gather their bounty instead of destroying them. + * As for standard crops, you need to create and ItemStack that tells the golem what block id + * and metadata represents the crop when fully grown. The golem will trigger the blocks onBlockActivated method. + * Sending a metadata of [OreDictionary.WILDCARD_VALUE] will mean the metadata won't get checked. + * Example (this will technically do nothing since clicking wheat does nothing, but you get the idea): + * FMLInterModComms.sendMessage("Thaumcraft", "harvestClickableCrop", new ItemStack(Block.crops,1,7)); + * + * Stacked crops (like reeds) are crops that you wish the bottom block should remain after harvesting. + * As for standard crops, you need to create and ItemStack that tells the golem what block id + * and metadata represents the crop when fully grown. Sending a metadata of [OreDictionary.WILDCARD_VALUE] will mean the actualy md won't get + * checked. If it has the order upgrade it will only harvest if the crop is more than one block high. + * Example: + * FMLInterModComms.sendMessage("Thaumcraft", "harvestStackedCrop", new ItemStack(Block.reed,1,7)); + */ + + //NATIVE CLUSTERS ////////////////////////////////////////////////////////////////////////////////// + + /** + * You can define certain ores that will have a chance to produce native clusters via FMLInterModComms + * in your @Mod.Init method using the "nativeCluster" string message. + * The format should be: + * "[ore item/block id],[ore item/block metadata],[cluster item/block id],[cluster item/block metadata],[chance modifier float]" + * + * NOTE: The chance modifier is a multiplier applied to the default chance for that cluster to be produced (default 27.5% for a pickaxe of the core) + * + * Example for vanilla iron ore to produce one of my own native iron clusters (assuming default id's) at double the default chance: + * FMLInterModComms.sendMessage("Thaumcraft", "nativeCluster","15,0,25016,16,2.0"); + */ + + //LAMP OF GROWTH BLACKLIST /////////////////////////////////////////////////////////////////////////// + /** + * You can blacklist crops that should not be effected by the Lamp of Growth via FMLInterModComms + * in your @Mod.Init method using the "lampBlacklist" itemstack message. + * Sending a metadata of [OreDictionary.WILDCARD_VALUE] will mean the metadata won't get checked. + * Example for vanilla wheat: + * FMLInterModComms.sendMessage("Thaumcraft", "lampBlacklist", new ItemStack(Block.crops,1,OreDictionary.WILDCARD_VALUE)); + */ + + //DIMENSION BLACKLIST /////////////////////////////////////////////////////////////////////////// + /** + * You can blacklist a dimension to not spawn certain thaumcraft features + * in your @Mod.Init method using the "dimensionBlacklist" string message in the format "[dimension]:[level]" + * The level values are as follows: + * [0] stop all tc spawning and generation + * [1] allow ore and node generation + * [2] allow mob spawning + * [3] allow ore and node gen + mob spawning + * Example: + * FMLInterModComms.sendMessage("Thaumcraft", "dimensionBlacklist", "15:1"); + */ + + //BIOME BLACKLIST /////////////////////////////////////////////////////////////////////////// + /** + * You can blacklist a biome to not spawn certain thaumcraft features + * in your @Mod.Init method using the "biomeBlacklist" string message in the format "[biome id]:[level]" + * The level values are as follows: + * [0] stop all tc spawning and generation + * [1] allow ore and node generation + * [2] allow mob spawning + * [3] allow ore and node gen + mob spawning + * Example: + * FMLInterModComms.sendMessage("Thaumcraft", "biomeBlacklist", "180:2"); + */ +} diff --git a/1.7.2/api/java/thaumcraft/api/ThaumcraftApiHelper.java b/1.7.2/api/java/thaumcraft/api/ThaumcraftApiHelper.java new file mode 100644 index 00000000..b5feb068 --- /dev/null +++ b/1.7.2/api/java/thaumcraft/api/ThaumcraftApiHelper.java @@ -0,0 +1,268 @@ +package thaumcraft.api; + +import java.lang.reflect.Method; +import java.util.HashMap; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; +import net.minecraftforge.oredict.OreDictionary; +import thaumcraft.api.aspects.Aspect; +import thaumcraft.api.aspects.AspectList; +import thaumcraft.api.aspects.IEssentiaTransport; +import cpw.mods.fml.common.FMLLog; + +public class ThaumcraftApiHelper { + + public static AspectList cullTags(AspectList temp) { + AspectList temp2 = new AspectList(); + for (Aspect tag:temp.getAspects()) { + if (tag!=null) + temp2.add(tag, temp.getAmount(tag)); + } + while (temp2!=null && temp2.size()>10) { + Aspect lowest = null; + int low = Integer.MAX_VALUE; + for (Aspect tag:temp2.getAspects()) { + if (tag==null) continue; + if (temp2.getAmount(tag) allAspects= new HashMap(); + private static HashMap allCompoundAspects= new HashMap(); + + public static AspectList getAllAspects(int amount) { + if (allAspects.get(amount)==null) { + AspectList al = new AspectList(); + for (Aspect aspect:Aspect.aspects.values()) { + al.add(aspect, amount); + } + allAspects.put(amount, al); + } + return allAspects.get(amount); + } + + public static AspectList getAllCompoundAspects(int amount) { + if (allCompoundAspects.get(amount)==null) { + AspectList al = new AspectList(); + for (Aspect aspect:Aspect.getCompoundAspects()) { + al.add(aspect, amount); + } + allCompoundAspects.put(amount, al); + } + return allCompoundAspects.get(amount); + } + + static Method consumeVisFromWand; + /** + * Use to subtract vis from a wand for most operations + * Wands store vis differently so "real" vis costs need to be multiplied by 100 before calling this method + * @param wand the wand itemstack + * @param player the player using the wand + * @param cost the cost of the operation. + * @param doit actually subtract the vis from the wand if true - if false just simulate the result + * @param crafting is this a crafting operation or not - if + * false then things like frugal and potency will apply to the costs + * @return was the vis successfully subtracted + */ + public static boolean consumeVisFromWand(ItemStack wand, EntityPlayer player, + AspectList cost, boolean doit, boolean crafting) { + boolean ot = false; + try { + if(consumeVisFromWand == null) { + Class fake = Class.forName("thaumcraft.common.items.wands.ItemWandCasting"); + consumeVisFromWand = fake.getMethod("consumeAllVis", + ItemStack.class, EntityPlayer.class, AspectList.class, boolean.class, boolean.class); + } + ot = (Boolean) consumeVisFromWand.invoke( + consumeVisFromWand.getDeclaringClass().cast(wand.getItem()), wand, player, cost, doit, crafting); + } catch(Exception ex) { + FMLLog.warning("[Thaumcraft API] Could not invoke thaumcraft.common.items.wands.ItemWandCasting method consumeAllVis"); + } + return ot; + } + + static Method consumeVisFromWandCrafting; + /** + * Subtract vis for use by a crafting mechanic. Costs are calculated slightly + * differently and things like the frugal enchant is ignored + * Must NOT be multiplied by 100 - send the actual vis cost + * @param wand the wand itemstack + * @param player the player using the wand + * @param cost the cost of the operation. + * @param doit actually subtract the vis from the wand if true - if false just simulate the result + * @return was the vis successfully subtracted + */ + public static boolean consumeVisFromWandCrafting(ItemStack wand, EntityPlayer player, + AspectList cost, boolean doit) { + boolean ot = false; + try { + if(consumeVisFromWandCrafting == null) { + Class fake = Class.forName("thaumcraft.common.items.wands.ItemWandCasting"); + consumeVisFromWandCrafting = fake.getMethod("consumeAllVisCrafting", + ItemStack.class, EntityPlayer.class, AspectList.class, boolean.class); + } + ot = (Boolean) consumeVisFromWandCrafting.invoke( + consumeVisFromWandCrafting.getDeclaringClass().cast(wand.getItem()), wand, player, cost, doit); + } catch(Exception ex) { + FMLLog.warning("[Thaumcraft API] Could not invoke thaumcraft.common.items.wands.ItemWandCasting method consumeAllVisCrafting"); + } + return ot; + } + + static Method consumeVisFromInventory; + /** + * Subtract vis from a wand the player is carrying. Works like consumeVisFromWand in that actual vis + * costs should be multiplied by 100. The costs are handled like crafting however and things like + * frugal don't effect them + * @param player the player using the wand + * @param cost the cost of the operation. + * @return was the vis successfully subtracted + */ + public static boolean consumeVisFromInventory(EntityPlayer player, AspectList cost) { + boolean ot = false; + try { + if(consumeVisFromInventory == null) { + Class fake = Class.forName("thaumcraft.common.items.wands.WandManager"); + consumeVisFromInventory = fake.getMethod("consumeVisFromInventory", + EntityPlayer.class, AspectList.class); + } + ot = (Boolean) consumeVisFromInventory.invoke(null, player, cost); + } catch(Exception ex) { + FMLLog.warning("[Thaumcraft API] Could not invoke thaumcraft.common.items.wands.WandManager method consumeVisFromInventory"); + } + return ot; + } +} diff --git a/1.7.2/api/java/thaumcraft/api/aspects/Aspect.java b/1.7.2/api/java/thaumcraft/api/aspects/Aspect.java new file mode 100644 index 00000000..3c33a4a7 --- /dev/null +++ b/1.7.2/api/java/thaumcraft/api/aspects/Aspect.java @@ -0,0 +1,201 @@ +package thaumcraft.api.aspects; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.LinkedHashMap; + +import net.minecraft.util.ResourceLocation; +import net.minecraft.util.StatCollector; + +import org.apache.commons.lang3.text.WordUtils; + +public class Aspect { + + String tag; + Aspect[] components; + int color; + private String chatcolor; + ResourceLocation image; + int blend; + + /** + * Use this constructor to register your own aspects. + * @param tag the key that will be used to reference this aspect, as well as its latin display name + * @param color color to display the tag in + * @param components the aspects this one is formed from + * @param image ResourceLocation pointing to a 32x32 icon of the aspect + * @param blend GL11 blendmode (1 or 771). Used for rendering nodes. Default is 1 + */ + public Aspect(String tag, int color, Aspect[] components, ResourceLocation image, int blend) { + if (aspects.containsKey(tag)) throw new IllegalArgumentException(tag+" already registered!"); + this.tag = tag; + this.components = components; + this.color = color; + this.image = image; + this.blend = blend; + aspects.put(tag, this); + } + + /** + * Shortcut constructor I use for the default aspects - you shouldn't be using this. + */ + public Aspect(String tag, int color, Aspect[] components) { + this(tag,color,components,new ResourceLocation("thaumcraft","textures/aspects/"+tag.toLowerCase()+".png"),1); + } + + /** + * Shortcut constructor I use for the default aspects - you shouldn't be using this. + */ + public Aspect(String tag, int color, Aspect[] components, int blend) { + this(tag,color,components,new ResourceLocation("thaumcraft","textures/aspects/"+tag.toLowerCase()+".png"),blend); + } + + /** + * Shortcut constructor I use for the primal aspects - + * you shouldn't use this as making your own primal aspects will break all the things. + */ + public Aspect(String tag, int color, String chatcolor, int blend) { + this(tag,color,(Aspect[])null, blend); + this.setChatcolor(chatcolor); + } + + public int getColor() { + return color; + } + + public String getName() { + return WordUtils.capitalizeFully(tag); + } + + public String getLocalizedDescription() { + return StatCollector.translateToLocal("tc.aspect."+tag); + } + + public String getTag() { + return tag; + } + + public void setTag(String tag) { + this.tag = tag; + } + + public Aspect[] getComponents() { + return components; + } + + public void setComponents(Aspect[] components) { + this.components = components; + } + + public ResourceLocation getImage() { + return image; + } + + public static Aspect getAspect(String tag) { + return aspects.get(tag); + } + + public int getBlend() { + return blend; + } + + public void setBlend(int blend) { + this.blend = blend; + } + + public boolean isPrimal() { + return getComponents()==null || getComponents().length!=2; + } + + /////////////////////////////// + public static ArrayList getPrimalAspects() { + ArrayList primals = new ArrayList(); + Collection pa = aspects.values(); + for (Aspect aspect:pa) { + if (aspect.isPrimal()) primals.add(aspect); + } + return primals; + } + + public static ArrayList getCompoundAspects() { + ArrayList compounds = new ArrayList(); + Collection pa = aspects.values(); + for (Aspect aspect:pa) { + if (!aspect.isPrimal()) compounds.add(aspect); + } + return compounds; + } + + public String getChatcolor() { + return chatcolor; + } + + public void setChatcolor(String chatcolor) { + this.chatcolor = chatcolor; + } + + + /////////////////////////////// + public static LinkedHashMap aspects = new LinkedHashMap(); + + //PRIMAL + public static final Aspect AIR = new Aspect("aer",0xffff7e,"e",1); + public static final Aspect EARTH = new Aspect("terra",0x56c000,"2",1); + public static final Aspect FIRE = new Aspect("ignis",0xff5a01,"c",1); + public static final Aspect WATER = new Aspect("aqua",0x3cd4fc,"3",1); + public static final Aspect ORDER = new Aspect("ordo",0xd5d4ec,"7",1); + public static final Aspect ENTROPY = new Aspect("perditio",0x404040,"8",771); + + //SECONDARY + public static final Aspect VOID = new Aspect("vacuos",0x888888, new Aspect[] {AIR, ENTROPY},771); + public static final Aspect LIGHT = new Aspect("lux",0xfff663, new Aspect[] {AIR, FIRE}); + public static final Aspect WEATHER = new Aspect("tempestas",0xFFFFFF, new Aspect[] {AIR, WATER}); + public static final Aspect MOTION = new Aspect("motus",0xcdccf4, new Aspect[] {AIR, ORDER}); + public static final Aspect COLD = new Aspect("gelum",0xe1ffff, new Aspect[] {FIRE, ENTROPY}); + public static final Aspect CRYSTAL = new Aspect("vitreus",0x80ffff, new Aspect[] {EARTH, ORDER}); + public static final Aspect LIFE = new Aspect("victus",0xde0005, new Aspect[] {WATER, EARTH}); + public static final Aspect POISON = new Aspect("venenum",0x89f000, new Aspect[] {WATER, ENTROPY}); + public static final Aspect ENERGY = new Aspect("potentia",0xc0ffff, new Aspect[] {ORDER, FIRE}); + public static final Aspect EXCHANGE = new Aspect("permutatio",0x578357, new Aspect[] {ENTROPY, ORDER}); +// public static final Aspect ?? = new Aspect("??",0xcdccf4, new Aspect[] {AIR, EARTH}); +// public static final Aspect ?? = new Aspect("??",0xcdccf4, new Aspect[] {FIRE, EARTH}); +// public static final Aspect ?? = new Aspect("??",0xcdccf4, new Aspect[] {FIRE, WATER}); +// public static final Aspect ?? = new Aspect("??",0xcdccf4, new Aspect[] {ORDER, WATER}); +// public static final Aspect ?? = new Aspect("??",0xcdccf4, new Aspect[] {EARTH, ENTROPY}); + + //TERTIARY + public static final Aspect METAL = new Aspect("metallum",0xb5b5cd, new Aspect[] {EARTH, CRYSTAL}); + public static final Aspect DEATH = new Aspect("mortuus",0x887788, new Aspect[] {LIFE, ENTROPY}); + public static final Aspect FLIGHT = new Aspect("volatus",0xe7e7d7, new Aspect[] {AIR, MOTION}); + public static final Aspect DARKNESS = new Aspect("tenebrae",0x222222, new Aspect[] {VOID, LIGHT}); + public static final Aspect SOUL = new Aspect("spiritus",0xebebfb, new Aspect[] {LIFE, DEATH}); + public static final Aspect HEAL = new Aspect("sano",0xff2f34, new Aspect[] {LIFE, ORDER}); + public static final Aspect TRAVEL = new Aspect("iter",0xe0585b, new Aspect[] {MOTION, EARTH}); + public static final Aspect ELDRITCH = new Aspect("alienis",0x805080, new Aspect[] {VOID, DARKNESS}); + public static final Aspect MAGIC = new Aspect("praecantatio",0x9700c0, new Aspect[] {VOID, ENERGY}); + public static final Aspect AURA = new Aspect("auram",0xffc0ff, new Aspect[] {MAGIC, AIR}); + public static final Aspect TAINT = new Aspect("vitium",0x800080, new Aspect[] {MAGIC, ENTROPY}); + public static final Aspect SLIME = new Aspect("limus",0x01f800, new Aspect[] {LIFE, WATER}); + public static final Aspect PLANT = new Aspect("herba",0x01ac00, new Aspect[] {LIFE, EARTH}); + public static final Aspect TREE = new Aspect("arbor",0x876531, new Aspect[] {AIR, PLANT}); + public static final Aspect BEAST = new Aspect("bestia",0x9f6409, new Aspect[] {MOTION, LIFE}); + public static final Aspect FLESH = new Aspect("corpus",0xee478d, new Aspect[] {DEATH, BEAST}); + public static final Aspect UNDEAD = new Aspect("exanimis",0x3a4000, new Aspect[] {MOTION, DEATH}); + public static final Aspect MIND = new Aspect("cognitio",0xffc2b3, new Aspect[] {EARTH, SOUL}); + public static final Aspect SENSES = new Aspect("sensus",0x0fd9ff, new Aspect[] {AIR, SOUL}); + public static final Aspect MAN = new Aspect("humanus",0xffd7c0, new Aspect[] {BEAST, MIND}); + public static final Aspect CROP = new Aspect("messis",0xe1b371, new Aspect[] {PLANT, MAN}); + public static final Aspect MINE = new Aspect("perfodio",0xdcd2d8, new Aspect[] {MAN, EARTH}); + public static final Aspect TOOL = new Aspect("instrumentum",0x4040ee, new Aspect[] {MAN, ORDER}); + public static final Aspect HARVEST = new Aspect("meto",0xeead82, new Aspect[] {CROP, TOOL}); + public static final Aspect WEAPON = new Aspect("telum",0xc05050, new Aspect[] {TOOL, ENTROPY}); + public static final Aspect ARMOR = new Aspect("tutamen",0x00c0c0, new Aspect[] {TOOL, EARTH}); + public static final Aspect HUNGER = new Aspect("fames",0x9a0305, new Aspect[] {LIFE, VOID}); + public static final Aspect GREED = new Aspect("lucrum",0xe6be44, new Aspect[] {MAN, HUNGER}); + public static final Aspect CRAFT = new Aspect("fabrico",0x809d80, new Aspect[] {MAN, TOOL}); + public static final Aspect CLOTH = new Aspect("pannus",0xeaeac2, new Aspect[] {TOOL, BEAST}); + public static final Aspect MECHANISM = new Aspect("machina",0x8080a0, new Aspect[] {MOTION, TOOL}); + public static final Aspect TRAP = new Aspect("vinculum",0x9a8080, new Aspect[] {MOTION, ENTROPY}); + + +} diff --git a/1.7.2/api/java/thaumcraft/api/aspects/AspectList.java b/1.7.2/api/java/thaumcraft/api/aspects/AspectList.java new file mode 100644 index 00000000..6b9dfcef --- /dev/null +++ b/1.7.2/api/java/thaumcraft/api/aspects/AspectList.java @@ -0,0 +1,256 @@ +package thaumcraft.api.aspects; + +import java.io.Serializable; +import java.util.LinkedHashMap; + +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagList; +import thaumcraft.api.ThaumcraftApiHelper; + +public class AspectList implements Serializable { + + public LinkedHashMap aspects = new LinkedHashMap();//aspects associated with this object + + + /** + * this creates a new aspect list with preloaded values based off the aspects of the given item. + * @param the itemstack of the given item + */ + public AspectList(ItemStack stack) { + try { + AspectList temp = ThaumcraftApiHelper.getObjectAspects(stack); + if (temp!=null) + for (Aspect tag:temp.getAspects()) { + add(tag,temp.getAmount(tag)); + } + } catch (Exception e) {} + } + + public AspectList() { + } + + public AspectList copy() { + AspectList out = new AspectList(); + for (Aspect a:this.getAspects()) + out.add(a, this.getAmount(a)); + return out; + } + + /** + * @return the amount of different aspects in this collection + */ + public int size() { + return aspects.size(); + } + + /** + * @return the amount of total vis in this collection + */ + public int visSize() { + int q = 0; + + for (Aspect as:aspects.keySet()) { + q+=this.getAmount(as); + } + + return q; + } + + /** + * @return an array of all the aspects in this collection + */ + public Aspect[] getAspects() { + Aspect[] q = new Aspect[1]; + return aspects.keySet().toArray(q); + } + + /** + * @return an array of all the aspects in this collection + */ + public Aspect[] getPrimalAspects() { + AspectList t = new AspectList(); + for (Aspect as:aspects.keySet()) { + if (as.isPrimal()) { + t.add(as,1); + } + } + Aspect[] q = new Aspect[1]; + return t.aspects.keySet().toArray(q); + } + + /** + * @return an array of all the aspects in this collection sorted by name + */ + public Aspect[] getAspectsSorted() { + try { + Aspect[] out = aspects.keySet().toArray(new Aspect[1]); + boolean change=false; + do { + change=false; + for(int a=0;a0) { + out[a] = e2; + out[a+1] = e1; + change = true; + break; + } + } + } while (change==true); + return out; + } catch (Exception e) { + return this.getAspects(); + } + } + + /** + * @return an array of all the aspects in this collection sorted by amount + */ + public Aspect[] getAspectsSortedAmount() { + try { + Aspect[] out = aspects.keySet().toArray(new Aspect[1]); + boolean change=false; + do { + change=false; + for(int a=0;a0 && e2>0 && e2>e1) { + Aspect ea = out[a]; + Aspect eb = out[a+1]; + out[a] = eb; + out[a+1] = ea; + change = true; + break; + } + } + } while (change==true); + return out; + } catch (Exception e) { + return this.getAspects(); + } + } + + /** + * @param key + * @return the amount associated with the given aspect in this collection + */ + public int getAmount(Aspect key) { + return aspects.get(key)==null?0:aspects.get(key); + } + + /** + * Reduces the amount of an aspect in this collection by the given amount. + * @param key + * @param amount + * @return + */ + public boolean reduce(Aspect key, int amount) { + if (getAmount(key)>=amount) { + int am = getAmount(key)-amount; + aspects.put(key, am); + return true; + } + return false; + } + + /** + * Reduces the amount of an aspect in this collection by the given amount. + * If reduced to 0 or less the aspect will be removed completely. + * @param key + * @param amount + * @return + */ + public AspectList remove(Aspect key, int amount) { + int am = getAmount(key)-amount; + if (am<=0) aspects.remove(key); else + this.aspects.put(key, am); + return this; + } + + /** + * Simply removes the aspect from the list + * @param key + * @param amount + * @return + */ + public AspectList remove(Aspect key) { + aspects.remove(key); + return this; + } + + /** + * Adds this aspect and amount to the collection. + * If the aspect exists then its value will be increased by the given amount. + * @param aspect + * @param amount + * @return + */ + public AspectList add(Aspect aspect, int amount) { + if (this.aspects.containsKey(aspect)) { + int oldamount = this.aspects.get(aspect); + amount+=oldamount; + } + this.aspects.put( aspect, amount ); + return this; + } + + + /** + * Adds this aspect and amount to the collection. + * If the aspect exists then only the highest of the old or new amount will be used. + * @param aspect + * @param amount + * @return + */ + public AspectList merge(Aspect aspect, int amount) { + if (this.aspects.containsKey(aspect)) { + int oldamount = this.aspects.get(aspect); + if (amount0?aspects:null; + } + return null; + } + + @Override + public void setAspects(ItemStack itemstack, AspectList aspects) { + if (!itemstack.hasTagCompound()) itemstack.setTagCompound(new NBTTagCompound()); + aspects.writeToNBT(itemstack.getTagCompound()); + } +*/ \ No newline at end of file diff --git a/1.7.2/api/java/thaumcraft/api/aspects/IEssentiaTransport.java b/1.7.2/api/java/thaumcraft/api/aspects/IEssentiaTransport.java new file mode 100644 index 00000000..fecbc160 --- /dev/null +++ b/1.7.2/api/java/thaumcraft/api/aspects/IEssentiaTransport.java @@ -0,0 +1,100 @@ +package thaumcraft.api.aspects; + +import net.minecraftforge.common.util.ForgeDirection; + + +/** + * @author Azanor + * This interface is used by tiles that use or transport vis. + * Only tiles that implement this interface will be able to connect to vis conduits or other thaumic devices + */ +public interface IEssentiaTransport { + /** + * Is this tile able to connect to other vis users/sources on the specified side? + * @param face + * @return + */ + public boolean isConnectable(ForgeDirection face); + + /** + * Is this side used to input essentia? + * @param face + * @return + */ + boolean canInputFrom(ForgeDirection face); + + /** + * Is this side used to output essentia? + * @param face + * @return + */ + boolean canOutputTo(ForgeDirection face); + + /** + * Sets the amount of suction this block will apply + * @param suction + */ + public void setSuction(Aspect aspect, int amount); + + /** + * Returns the type of suction this block is applying. + * @param loc + * the location from where the suction is being checked + * @return + * a return type of null indicates the suction is untyped and the first thing available will be drawn + */ + public Aspect getSuctionType(ForgeDirection face); + + /** + * Returns the strength of suction this block is applying. + * @param loc + * the location from where the suction is being checked + * @return + */ + public int getSuctionAmount(ForgeDirection face); + + /** + * remove the specified amount of essentia from this transport tile + * @return how much was actually taken + */ + public int takeEssentia(Aspect aspect, int amount, ForgeDirection face); + + /** + * add the specified amount of essentia to this transport tile + * @return how much was actually added + */ + public int addEssentia(Aspect aspect, int amount, ForgeDirection face); + + /** + * What type of essentia this contains + * @param face + * @return + */ + public Aspect getEssentiaType(ForgeDirection face); + + /** + * How much essentia this block contains + * @param face + * @return + */ + public int getEssentiaAmount(ForgeDirection face); + + + + /** + * Essentia will not be drawn from this container unless the suction exceeds this amount. + * @return the amount + */ + public int getMinimumSuction(); + + /** + * Return true if you want the conduit to extend a little further into the block. + * Used by jars and alembics that have smaller than normal hitboxes + * @return + */ + boolean renderExtendedTube(); + + + +} + diff --git a/1.7.2/api/java/thaumcraft/api/crafting/CrucibleRecipe.java b/1.7.2/api/java/thaumcraft/api/crafting/CrucibleRecipe.java new file mode 100644 index 00000000..ebd84791 --- /dev/null +++ b/1.7.2/api/java/thaumcraft/api/crafting/CrucibleRecipe.java @@ -0,0 +1,74 @@ +package thaumcraft.api.crafting; + +import java.util.ArrayList; + +import net.minecraft.item.ItemStack; +import net.minecraftforge.oredict.OreDictionary; +import thaumcraft.api.ThaumcraftApiHelper; +import thaumcraft.api.aspects.Aspect; +import thaumcraft.api.aspects.AspectList; + +public class CrucibleRecipe { + + private ItemStack recipeOutput; + + + public Object catalyst; + public AspectList aspects; + public String key; + + public CrucibleRecipe(String researchKey, ItemStack result, Object cat, AspectList tags) { + recipeOutput = result; + this.aspects = tags; + this.key = researchKey; + this.catalyst = cat; + if (cat instanceof String) { + this.catalyst = OreDictionary.getOres((String) cat); + } + } + + + public boolean matches(AspectList itags, ItemStack cat) { + if (catalyst instanceof ItemStack && + !ThaumcraftApiHelper.itemMatches((ItemStack) catalyst,cat,false)) { + return false; + } else + if (catalyst instanceof ArrayList && ((ArrayList)catalyst).size()>0) { + if (!ThaumcraftApiHelper.containsMatch(true, ((ArrayList)catalyst).toArray(new ItemStack[]{}), cat)) return false; + } + if (itags==null) return false; + for (Aspect tag:aspects.getAspects()) { + if (itags.getAmount(tag))catalyst).size()>0) { + if (ThaumcraftApiHelper.containsMatch(true, + ((ArrayList)catalyst).toArray(new ItemStack[]{}), cat)) return true; + } + return false; + } + + public AspectList removeMatching(AspectList itags) { + AspectList temptags = new AspectList(); + temptags.aspects.putAll(itags.aspects); + + for (Aspect tag:aspects.getAspects()) { + temptags.remove(tag, aspects.getAmount(tag)); +// if (!temptags.remove(tag, aspects.getAmount(tag))) return null; + } + + itags = temptags; + return itags; + } + + public ItemStack getRecipeOutput() { + return recipeOutput; + } + +} diff --git a/1.7.2/api/java/thaumcraft/api/crafting/IArcaneRecipe.java b/1.7.2/api/java/thaumcraft/api/crafting/IArcaneRecipe.java new file mode 100644 index 00000000..bb5036d2 --- /dev/null +++ b/1.7.2/api/java/thaumcraft/api/crafting/IArcaneRecipe.java @@ -0,0 +1,35 @@ +package thaumcraft.api.crafting; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.IInventory; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; +import thaumcraft.api.aspects.AspectList; + +public interface IArcaneRecipe +{ + + + /** + * Used to check if a recipe matches current crafting inventory + * @param player + */ + boolean matches(IInventory var1, World world, EntityPlayer player); + + /** + * Returns an Item that is the result of this recipe + */ + ItemStack getCraftingResult(IInventory var1); + + /** + * Returns the size of the recipe area + */ + int getRecipeSize(); + + ItemStack getRecipeOutput(); + AspectList getAspects(); + AspectList getAspects(IInventory var1); + String getResearch(); + + +} diff --git a/1.7.2/api/java/thaumcraft/api/crafting/IInfusionStabiliser.java b/1.7.2/api/java/thaumcraft/api/crafting/IInfusionStabiliser.java new file mode 100644 index 00000000..d137ff24 --- /dev/null +++ b/1.7.2/api/java/thaumcraft/api/crafting/IInfusionStabiliser.java @@ -0,0 +1,19 @@ +package thaumcraft.api.crafting; + +import net.minecraft.world.World; + +/** + * + * @author Azanor + * + * Blocks that implement this interface act as infusion crafting stabilisers like candles and skulls + * + */ +public interface IInfusionStabiliser { + + /** + * returns true if the block can stabilise things + */ + public boolean canStabaliseInfusion(World world, int x, int y, int z); + +} diff --git a/1.7.2/api/java/thaumcraft/api/crafting/InfusionEnchantmentRecipe.java b/1.7.2/api/java/thaumcraft/api/crafting/InfusionEnchantmentRecipe.java new file mode 100644 index 00000000..6fb4d63d --- /dev/null +++ b/1.7.2/api/java/thaumcraft/api/crafting/InfusionEnchantmentRecipe.java @@ -0,0 +1,156 @@ +package thaumcraft.api.crafting; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.Map; + +import net.minecraft.enchantment.Enchantment; +import net.minecraft.enchantment.EnchantmentHelper; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; +import net.minecraftforge.oredict.OreDictionary; +import thaumcraft.api.ThaumcraftApiHelper; +import thaumcraft.api.aspects.AspectList; + +public class InfusionEnchantmentRecipe +{ + + public AspectList aspects; + public String research; + public ItemStack[] components; + public Enchantment enchantment; + public int recipeXP; + public int instability; + + public InfusionEnchantmentRecipe(String research, Enchantment input, int inst, + AspectList aspects2, ItemStack[] recipe) { + this.research = research; + this.enchantment = input; + this.aspects = aspects2; + this.components = recipe; + this.instability = inst; + this.recipeXP = Math.max(1, input.getMinEnchantability(1)/3); + } + + /** + * Used to check if a recipe matches current crafting inventory + * @param player + */ + public boolean matches(ArrayList input, ItemStack central, World world, EntityPlayer player) { + if (research.length()>0 && !ThaumcraftApiHelper.isResearchComplete(player.getCommandSenderName(), research)) { + return false; + } + + if (!enchantment.canApply(central) || !central.getItem().isItemTool(central)) { + return false; + } + + Map map1 = EnchantmentHelper.getEnchantments(central); + Iterator iterator = map1.keySet().iterator(); + while (iterator.hasNext()) + { + int j1 = ((Integer)iterator.next()).intValue(); + Enchantment ench = Enchantment.enchantmentsList[j1]; + if (j1 == enchantment.effectId && + EnchantmentHelper.getEnchantmentLevel(j1, central)>=ench.getMaxLevel()) + return false; + if (enchantment.effectId != ench.effectId && + (!enchantment.canApplyTogether(ench) || + !ench.canApplyTogether(enchantment))) { + return false; + } + } + + ItemStack i2 = null; + + ArrayList ii = new ArrayList(); + for (ItemStack is:input) { + ii.add(is.copy()); + } + + for (ItemStack comp:components) { + boolean b=false; + for (int a=0;a stack0.getMaxStackSize() ? false : t1)); + } + + + public Enchantment getEnchantment() { + return enchantment; + + } + + public AspectList getAspects() { + return aspects; + + } + + public String getResearch() { + return research; + + } + + public int calcInstability(ItemStack recipeInput) { + int i = 0; + Map map1 = EnchantmentHelper.getEnchantments(recipeInput); + Iterator iterator = map1.keySet().iterator(); + while (iterator.hasNext()) + { + int j1 = ((Integer)iterator.next()).intValue(); + i += EnchantmentHelper.getEnchantmentLevel(j1, recipeInput); + } + return (i/2) + instability; + } + + public int calcXP(ItemStack recipeInput) { + return recipeXP * (1+EnchantmentHelper.getEnchantmentLevel(enchantment.effectId, recipeInput)); + } + + public float getEssentiaMod(ItemStack recipeInput) { + float mod = EnchantmentHelper.getEnchantmentLevel(enchantment.effectId, recipeInput); + Map map1 = EnchantmentHelper.getEnchantments(recipeInput); + Iterator iterator = map1.keySet().iterator(); + while (iterator.hasNext()) + { + int j1 = ((Integer)iterator.next()).intValue(); + if (j1 != enchantment.effectId) + mod += EnchantmentHelper.getEnchantmentLevel(j1, recipeInput) * .1f; + } + return mod; + } + +} diff --git a/1.7.2/api/java/thaumcraft/api/crafting/InfusionRecipe.java b/1.7.2/api/java/thaumcraft/api/crafting/InfusionRecipe.java new file mode 100644 index 00000000..fef0a347 --- /dev/null +++ b/1.7.2/api/java/thaumcraft/api/crafting/InfusionRecipe.java @@ -0,0 +1,128 @@ +package thaumcraft.api.crafting; + +import java.util.ArrayList; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; +import net.minecraftforge.oredict.OreDictionary; +import thaumcraft.api.ThaumcraftApiHelper; +import thaumcraft.api.aspects.AspectList; + +public class InfusionRecipe +{ + protected AspectList aspects; + protected String research; + private ItemStack[] components; + private ItemStack recipeInput; + protected Object recipeOutput; + protected int instability; + + public InfusionRecipe(String research, Object output, int inst, + AspectList aspects2, ItemStack input, ItemStack[] recipe) { + this.research = research; + this.recipeOutput = output; + this.recipeInput = input; + this.aspects = aspects2; + this.components = recipe; + this.instability = inst; + } + + /** + * Used to check if a recipe matches current crafting inventory + * @param player + */ + public boolean matches(ArrayList input, ItemStack central, World world, EntityPlayer player) { + if (getRecipeInput()==null) return false; + + if (research.length()>0 && !ThaumcraftApiHelper.isResearchComplete(player.getCommandSenderName(), research)) { + return false; + } + + ItemStack i2 = central.copy(); + if (getRecipeInput().getItemDamage()==OreDictionary.WILDCARD_VALUE) { + i2.setItemDamage(OreDictionary.WILDCARD_VALUE); + } + + if (!areItemStacksEqual(i2, getRecipeInput(), true)) return false; + + ArrayList ii = new ArrayList(); + for (ItemStack is:input) { + ii.add(is.copy()); + } + + for (ItemStack comp:getComponents()) { + boolean b=false; + for (int a=0;a stack0.getMaxStackSize() ? false : t1)); + } + + + public Object getRecipeOutput() { + return getRecipeOutput(this.getRecipeInput()); + } + + public AspectList getAspects() { + return getAspects(this.getRecipeInput()); + } + + public int getInstability() { + return getInstability(this.getRecipeInput()); + } + + public String getResearch() { + return research; + } + + public ItemStack getRecipeInput() { + return recipeInput; + } + + public ItemStack[] getComponents() { + return components; + } + + public Object getRecipeOutput(ItemStack input) { + return recipeOutput; + } + + public AspectList getAspects(ItemStack input) { + return aspects; + } + + public int getInstability(ItemStack input) { + return instability; + } +} diff --git a/1.7.2/api/java/thaumcraft/api/crafting/ShapedArcaneRecipe.java b/1.7.2/api/java/thaumcraft/api/crafting/ShapedArcaneRecipe.java new file mode 100644 index 00000000..40c7bc27 --- /dev/null +++ b/1.7.2/api/java/thaumcraft/api/crafting/ShapedArcaneRecipe.java @@ -0,0 +1,261 @@ +package thaumcraft.api.crafting; + +import java.util.ArrayList; +import java.util.HashMap; + +import net.minecraft.block.Block; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.IInventory; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; +import net.minecraftforge.oredict.OreDictionary; +import thaumcraft.api.ThaumcraftApiHelper; +import thaumcraft.api.aspects.AspectList; + +public class ShapedArcaneRecipe implements IArcaneRecipe +{ + //Added in for future ease of change, but hard coded for now. + private static final int MAX_CRAFT_GRID_WIDTH = 3; + private static final int MAX_CRAFT_GRID_HEIGHT = 3; + + public ItemStack output = null; + public Object[] input = null; + public AspectList aspects = null; + public String research; + public int width = 0; + public int height = 0; + private boolean mirrored = true; + + public ShapedArcaneRecipe(String research, Block result, AspectList aspects, Object... recipe){ this(research, new ItemStack(result), aspects, recipe); } + public ShapedArcaneRecipe(String research, Item result, AspectList aspects, Object... recipe){ this(research, new ItemStack(result), aspects, recipe); } + public ShapedArcaneRecipe(String research, ItemStack result, AspectList aspects, Object... recipe) + { + output = result.copy(); + this.research = research; + this.aspects = aspects; + String shape = ""; + + int idx = 0; + + if (recipe[idx] instanceof Boolean) + { + mirrored = (Boolean)recipe[idx]; + if (recipe[idx+1] instanceof Object[]) + { + recipe = (Object[])recipe[idx+1]; + } + else + { + idx = 1; + } + } + + if (recipe[idx] instanceof String[]) + { + String[] parts = ((String[])recipe[idx++]); + + for (String s : parts) + { + width = s.length(); + shape += s; + } + + height = parts.length; + } + else + { + while (recipe[idx] instanceof String) + { + String s = (String)recipe[idx++]; + shape += s; + width = s.length(); + height++; + } + } + + if (width * height != shape.length()) + { + String ret = "Invalid shaped ore recipe: "; + for (Object tmp : recipe) + { + ret += tmp + ", "; + } + ret += output; + throw new RuntimeException(ret); + } + + HashMap itemMap = new HashMap(); + + for (; idx < recipe.length; idx += 2) + { + Character chr = (Character)recipe[idx]; + Object in = recipe[idx + 1]; + + if (in instanceof ItemStack) + { + itemMap.put(chr, ((ItemStack)in).copy()); + } + else if (in instanceof Item) + { + itemMap.put(chr, new ItemStack((Item)in)); + } + else if (in instanceof Block) + { + itemMap.put(chr, new ItemStack((Block)in, 1, OreDictionary.WILDCARD_VALUE)); + } + else if (in instanceof String) + { + itemMap.put(chr, OreDictionary.getOres((String)in)); + } + else + { + String ret = "Invalid shaped ore recipe: "; + for (Object tmp : recipe) + { + ret += tmp + ", "; + } + ret += output; + throw new RuntimeException(ret); + } + } + + input = new Object[width * height]; + int x = 0; + for (char chr : shape.toCharArray()) + { + input[x++] = itemMap.get(chr); + } + } + + @Override + public ItemStack getCraftingResult(IInventory var1){ return output.copy(); } + + @Override + public int getRecipeSize(){ return input.length; } + + @Override + public ItemStack getRecipeOutput(){ return output; } + + @Override + public boolean matches(IInventory inv, World world, EntityPlayer player) + { + if (research.length()>0 && !ThaumcraftApiHelper.isResearchComplete(player.getCommandSenderName(), research)) { + return false; + } + for (int x = 0; x <= MAX_CRAFT_GRID_WIDTH - width; x++) + { + for (int y = 0; y <= MAX_CRAFT_GRID_HEIGHT - height; ++y) + { + if (checkMatch(inv, x, y, false)) + { + return true; + } + + if (mirrored && checkMatch(inv, x, y, true)) + { + return true; + } + } + } + + return false; + } + + private boolean checkMatch(IInventory inv, int startX, int startY, boolean mirror) + { + for (int x = 0; x < MAX_CRAFT_GRID_WIDTH; x++) + { + for (int y = 0; y < MAX_CRAFT_GRID_HEIGHT; y++) + { + int subX = x - startX; + int subY = y - startY; + Object target = null; + + if (subX >= 0 && subY >= 0 && subX < width && subY < height) + { + if (mirror) + { + target = input[width - subX - 1 + subY * width]; + } + else + { + target = input[subX + subY * width]; + } + } + + ItemStack slot = ThaumcraftApiHelper.getStackInRowAndColumn(inv, x, y); + + if (target instanceof ItemStack) + { + if (!checkItemEquals((ItemStack)target, slot)) + { + return false; + } + } + else if (target instanceof ArrayList) + { + boolean matched = false; + + for (ItemStack item : (ArrayList)target) + { + matched = matched || checkItemEquals(item, slot); + } + + if (!matched) + { + return false; + } + } + else if (target == null && slot != null) + { + return false; + } + } + } + + return true; + } + + private boolean checkItemEquals(ItemStack target, ItemStack input) + { + if (input == null && target != null || input != null && target == null) + { + return false; + } + return (target.getItem() == input.getItem() && + (!target.hasTagCompound() || ItemStack.areItemStackTagsEqual(target, input)) && + (target.getItemDamage() == OreDictionary.WILDCARD_VALUE|| target.getItemDamage() == input.getItemDamage())); + } + + public ShapedArcaneRecipe setMirrored(boolean mirror) + { + mirrored = mirror; + return this; + } + + /** + * Returns the input for this recipe, any mod accessing this value should never + * manipulate the values in this array as it will effect the recipe itself. + * @return The recipes input vales. + */ + public Object[] getInput() + { + return this.input; + } + + @Override + public AspectList getAspects() { + return aspects; + } + + @Override + public AspectList getAspects(IInventory inv) { + return aspects; + } + + @Override + public String getResearch() { + return research; + } +} diff --git a/1.7.2/api/java/thaumcraft/api/crafting/ShapelessArcaneRecipe.java b/1.7.2/api/java/thaumcraft/api/crafting/ShapelessArcaneRecipe.java new file mode 100644 index 00000000..3d4ed508 --- /dev/null +++ b/1.7.2/api/java/thaumcraft/api/crafting/ShapelessArcaneRecipe.java @@ -0,0 +1,157 @@ +package thaumcraft.api.crafting; + +import java.util.ArrayList; +import java.util.Iterator; + +import net.minecraft.block.Block; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.IInventory; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; +import net.minecraftforge.oredict.OreDictionary; +import thaumcraft.api.ThaumcraftApiHelper; +import thaumcraft.api.aspects.AspectList; + +public class ShapelessArcaneRecipe implements IArcaneRecipe +{ + private ItemStack output = null; + private ArrayList input = new ArrayList(); + + public AspectList aspects = null; + public String research; + + public ShapelessArcaneRecipe(String research, Block result, AspectList aspects, Object... recipe){ this(research,new ItemStack(result),aspects, recipe); } + public ShapelessArcaneRecipe(String research, Item result, AspectList aspects, Object... recipe){ this(research,new ItemStack(result),aspects, recipe); } + + public ShapelessArcaneRecipe(String research, ItemStack result, AspectList aspects, Object... recipe) + { + output = result.copy(); + this.research = research; + this.aspects = aspects; + for (Object in : recipe) + { + if (in instanceof ItemStack) + { + input.add(((ItemStack)in).copy()); + } + else if (in instanceof Item) + { + input.add(new ItemStack((Item)in)); + } + else if (in instanceof Block) + { + input.add(new ItemStack((Block)in)); + } + else if (in instanceof String) + { + input.add(OreDictionary.getOres((String)in)); + } + else + { + String ret = "Invalid shapeless ore recipe: "; + for (Object tmp : recipe) + { + ret += tmp + ", "; + } + ret += output; + throw new RuntimeException(ret); + } + } + } + + @Override + public int getRecipeSize(){ return input.size(); } + + @Override + public ItemStack getRecipeOutput(){ return output; } + + @Override + public ItemStack getCraftingResult(IInventory var1){ return output.copy(); } + + @Override + public boolean matches(IInventory var1, World world, EntityPlayer player) + { + if (research.length()>0 && !ThaumcraftApiHelper.isResearchComplete(player.getCommandSenderName(), research)) { + return false; + } + + ArrayList required = new ArrayList(input); + + for (int x = 0; x < 9; x++) + { + ItemStack slot = var1.getStackInSlot(x); + + if (slot != null) + { + boolean inRecipe = false; + Iterator req = required.iterator(); + + while (req.hasNext()) + { + boolean match = false; + + Object next = req.next(); + + if (next instanceof ItemStack) + { + match = checkItemEquals((ItemStack)next, slot); + } + else if (next instanceof ArrayList) + { + for (ItemStack item : (ArrayList)next) + { + match = match || checkItemEquals(item, slot); + } + } + + if (match) + { + inRecipe = true; + required.remove(next); + break; + } + } + + if (!inRecipe) + { + return false; + } + } + } + + return required.isEmpty(); + } + + private boolean checkItemEquals(ItemStack target, ItemStack input) + { + return (target.getItem() == input.getItem() && + (!target.hasTagCompound() || ItemStack.areItemStackTagsEqual(target, input)) && + (target.getItemDamage() == OreDictionary.WILDCARD_VALUE || target.getItemDamage() == input.getItemDamage())); + } + + /** + * Returns the input for this recipe, any mod accessing this value should never + * manipulate the values in this array as it will effect the recipe itself. + * @return The recipes input vales. + */ + public ArrayList getInput() + { + return this.input; + } + + @Override + public AspectList getAspects() { + return aspects; + } + + @Override + public AspectList getAspects(IInventory inv) { + return aspects; + } + + @Override + public String getResearch() { + return research; + } +} diff --git a/1.7.2/api/java/thaumcraft/api/nodes/INode.java b/1.7.2/api/java/thaumcraft/api/nodes/INode.java new file mode 100644 index 00000000..8c71414d --- /dev/null +++ b/1.7.2/api/java/thaumcraft/api/nodes/INode.java @@ -0,0 +1,53 @@ +package thaumcraft.api.nodes; + +import thaumcraft.api.aspects.Aspect; +import thaumcraft.api.aspects.AspectList; +import thaumcraft.api.aspects.IAspectContainer; + +public interface INode extends IAspectContainer { + + /** + * Unique identifier to distinguish nodes. Normal node id's are based on world id and coordinates + * @return + */ + public String getId(); + + public AspectList getAspectsBase(); + + /** + * Return the type of node + * @return + */ + public NodeType getNodeType(); + + /** + * Set the type of node + * @return + */ + public void setNodeType(NodeType nodeType); + + /** + * Return the node modifier + * @return + */ + public void setNodeModifier(NodeModifier nodeModifier); + + /** + * Set the node modifier + * @return + */ + public NodeModifier getNodeModifier(); + + /** + * Return the maximum capacity of each aspect the node can hold + * @return + */ + public int getNodeVisBase(Aspect aspect); + + /** + * Set the maximum capacity of each aspect the node can hold + * @return + */ + public void setNodeVisBase(Aspect aspect, short nodeVisBase); + +} diff --git a/1.7.2/api/java/thaumcraft/api/nodes/IRevealer.java b/1.7.2/api/java/thaumcraft/api/nodes/IRevealer.java new file mode 100644 index 00000000..14a19b54 --- /dev/null +++ b/1.7.2/api/java/thaumcraft/api/nodes/IRevealer.java @@ -0,0 +1,22 @@ +package thaumcraft.api.nodes; + +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.item.ItemStack; + +/** + * + * @author Azanor + * + * Equipped head slot items that extend this class will make nodes visible in world. + * + */ + +public interface IRevealer { + + /* + * If this method returns true the nodes will be visible. + */ + public boolean showNodes(ItemStack itemstack, EntityLivingBase player); + + +} diff --git a/1.7.2/api/java/thaumcraft/api/nodes/NodeModifier.java b/1.7.2/api/java/thaumcraft/api/nodes/NodeModifier.java new file mode 100644 index 00000000..885b8678 --- /dev/null +++ b/1.7.2/api/java/thaumcraft/api/nodes/NodeModifier.java @@ -0,0 +1,6 @@ +package thaumcraft.api.nodes; + +public enum NodeModifier +{ + BRIGHT, PALE, FADING +} \ No newline at end of file diff --git a/1.7.2/api/java/thaumcraft/api/nodes/NodeType.java b/1.7.2/api/java/thaumcraft/api/nodes/NodeType.java new file mode 100644 index 00000000..355324b5 --- /dev/null +++ b/1.7.2/api/java/thaumcraft/api/nodes/NodeType.java @@ -0,0 +1,6 @@ +package thaumcraft.api.nodes; + +public enum NodeType +{ + NORMAL, UNSTABLE, DARK, TAINTED, HUNGRY, PURE +} \ No newline at end of file diff --git a/1.7.2/api/java/thaumcraft/api/research/IScanEventHandler.java b/1.7.2/api/java/thaumcraft/api/research/IScanEventHandler.java new file mode 100644 index 00000000..d0efac5f --- /dev/null +++ b/1.7.2/api/java/thaumcraft/api/research/IScanEventHandler.java @@ -0,0 +1,9 @@ +package thaumcraft.api.research; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; + +public interface IScanEventHandler { + ScanResult scanPhenomena(ItemStack stack, World world, EntityPlayer player); +} diff --git a/1.7.2/api/java/thaumcraft/api/research/ResearchCategories.java b/1.7.2/api/java/thaumcraft/api/research/ResearchCategories.java new file mode 100644 index 00000000..82309b36 --- /dev/null +++ b/1.7.2/api/java/thaumcraft/api/research/ResearchCategories.java @@ -0,0 +1,101 @@ +package thaumcraft.api.research; + +import java.util.Collection; +import java.util.LinkedHashMap; + +import net.minecraft.util.ResourceLocation; +import net.minecraft.util.StatCollector; + +import org.apache.logging.log4j.Level; + +import cpw.mods.fml.common.FMLLog; + +public class ResearchCategories { + + //Research + public static LinkedHashMap researchCategories = new LinkedHashMap (); + + /** + * @param key + * @return the research item linked to this key + */ + public static ResearchCategoryList getResearchList(String key) { + return researchCategories.get(key); + } + + /** + * @param key + * @return the name of the research category linked to this key. + * Must be stored as localization information in the LanguageRegistry. + */ + public static String getCategoryName(String key) { + return StatCollector.translateToLocal("tc.research_category."+key); + } + + /** + * @param key the research key + * @return the ResearchItem object. + */ + public static ResearchItem getResearch(String key) { + Collection rc = researchCategories.values(); + for (Object cat:rc) { + Collection rl = ((ResearchCategoryList)cat).research.values(); + for (Object ri:rl) { + if ((((ResearchItem)ri).key).equals(key)) return (ResearchItem)ri; + } + } + return null; + } + + /** + * This should only be done at the PostInit stage + * @param key the key used for this category + * @param icon the icon to be used for the research category tab + * @param background the resource location of the background image to use for this category + * @return the name of the research linked to this key + */ + public static void registerCategory(String key, ResourceLocation icon, ResourceLocation background) { + if (getResearchList(key)==null) { + ResearchCategoryList rl = new ResearchCategoryList(icon, background); + researchCategories.put(key, rl); + } + } + + public static void addResearch(ResearchItem ri) { + ResearchCategoryList rl = getResearchList(ri.category); + if (rl!=null && !rl.research.containsKey(ri.key)) { + + if (!ri.isVirtual()) { + for (ResearchItem rr:rl.research.values()) { + if (rr.displayColumn == ri.displayColumn && rr.displayRow == ri.displayRow) { + FMLLog.log(Level.FATAL, "[Thaumcraft] Research ["+ri.getName()+"] not added as it overlaps with existing research ["+rr.getName()+"]"); + return; + } + } + } + + + rl.research.put(ri.key, ri); + + if (ri.displayColumn < rl.minDisplayColumn) + { + rl.minDisplayColumn = ri.displayColumn; + } + + if (ri.displayRow < rl.minDisplayRow) + { + rl.minDisplayRow = ri.displayRow; + } + + if (ri.displayColumn > rl.maxDisplayColumn) + { + rl.maxDisplayColumn = ri.displayColumn; + } + + if (ri.displayRow > rl.maxDisplayRow) + { + rl.maxDisplayRow = ri.displayRow; + } + } + } +} diff --git a/1.7.2/api/java/thaumcraft/api/research/ResearchCategoryList.java b/1.7.2/api/java/thaumcraft/api/research/ResearchCategoryList.java new file mode 100644 index 00000000..7eed0101 --- /dev/null +++ b/1.7.2/api/java/thaumcraft/api/research/ResearchCategoryList.java @@ -0,0 +1,37 @@ +package thaumcraft.api.research; + +import java.util.HashMap; +import java.util.Map; + +import net.minecraft.util.ResourceLocation; + +public class ResearchCategoryList { + + /** Is the smallest column used on the GUI. */ + public int minDisplayColumn; + + /** Is the smallest row used on the GUI. */ + public int minDisplayRow; + + /** Is the biggest column used on the GUI. */ + public int maxDisplayColumn; + + /** Is the biggest row used on the GUI. */ + public int maxDisplayRow; + + /** display variables **/ + public ResourceLocation icon; + public ResourceLocation background; + + public ResearchCategoryList(ResourceLocation icon, ResourceLocation background) { + this.icon = icon; + this.background = background; + } + + //Research + public Map research = new HashMap(); + + + + +} diff --git a/1.7.2/api/java/thaumcraft/api/research/ResearchItem.java b/1.7.2/api/java/thaumcraft/api/research/ResearchItem.java new file mode 100644 index 00000000..55b3820c --- /dev/null +++ b/1.7.2/api/java/thaumcraft/api/research/ResearchItem.java @@ -0,0 +1,367 @@ +package thaumcraft.api.research; + +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; +import net.minecraft.util.StatCollector; +import thaumcraft.api.aspects.Aspect; +import thaumcraft.api.aspects.AspectList; + +public class ResearchItem +{ + /** + * A short string used as a key for this research. Must be unique + */ + public final String key; + + /** + * A short string used as a reference to the research category to which this must be added. + */ + public final String category; + + /** + * The aspect tags and their values required to complete this research + */ + public final AspectList tags; + + /** + * This links to any research that needs to be completed before this research can be discovered or learnt. + */ + public String[] parents = null; + + /** + * Like parent above, but a line will not be displayed in the thaumonomicon linking them. Just used to prevent clutter. + */ + public String[] parentsHidden = null; + /** + * any research linked to this that will be unlocked automatically when this research is complete + */ + public String[] siblings = null; + + /** + * the horizontal position of the research icon + */ + public final int displayColumn; + + /** + * the vertical position of the research icon + */ + public final int displayRow; + + /** + * the icon to be used for this research + */ + public final ItemStack icon_item; + + /** + * the icon to be used for this research + */ + public final ResourceLocation icon_resource; + + /** + * How large the research grid is. Valid values are 1 to 3. + */ + private int complexity; + + /** + * Special research has a spiky border. Used for important research milestones. + */ + private boolean isSpecial; + + /** + * Research that can be directly purchased with RP in normal research difficulty. + */ + private boolean isSecondary; + + /** + * This indicates if the research should use a circular icon border. Usually used for "passive" research + * that doesn't have recipes and grants passive effects, or that unlock automatically. + */ + private boolean isRound; + + /** + * Stub research cannot be discovered by normal means, but can be unlocked via the sibling system. + */ + private boolean isStub; + + /** + * This indicated that the research is completely hidden and cannot be discovered by any + * player-controlled means. The recipes will never show up in the thaumonomicon. + * Usually used to unlock "hidden" recipes via sibling unlocking, like + * the various cap and rod combos for wands. + */ + private boolean isVirtual; + + @Deprecated + private boolean isLost; + + /** + * Concealed research does not display in the thaumonomicon until parent researches are discovered. + */ + private boolean isConcealed; + + /** + * Hidden research can only be discovered via scanning or knowledge fragments + */ + private boolean isHidden; + + /** + * These research items will automatically unlock for all players on game start + */ + private boolean isAutoUnlock; + + /** + * Scanning these items will have a chance of revealing hidden knowledge in the thaumonomicon + */ + private ItemStack[] itemTriggers; + + /** + * Scanning these entities will have a chance of revealing hidden knowledge in the thaumonomicon + */ + private String[] entityTriggers; + + /** + * Scanning things with these aspects will have a chance of revealing hidden knowledge in the thaumonomicon + */ + private Aspect[] aspectTriggers; + + private ResearchPage[] pages = null; + + public ResearchItem(String key, String category) + { + this.key = key; + this.category = category; + this.tags = new AspectList(); + this.icon_resource = null; + this.icon_item = null; + this.displayColumn = 0; + this.displayRow = 0; + this.setVirtual(); + + } + + public ResearchItem(String key, String category, AspectList tags, int col, int row, int complex, ResourceLocation icon) + { + this.key = key; + this.category = category; + this.tags = tags; + this.icon_resource = icon; + this.icon_item = null; + this.displayColumn = col; + this.displayRow = row; + this.complexity = complex; + if (complexity < 1) this.complexity = 1; + if (complexity > 3) this.complexity = 3; + } + + public ResearchItem(String key, String category, AspectList tags, int col, int row, int complex, ItemStack icon) + { + this.key = key; + this.category = category; + this.tags = tags; + this.icon_item = icon; + this.icon_resource = null; + this.displayColumn = col; + this.displayRow = row; + this.complexity = complex; + if (complexity < 1) this.complexity = 1; + if (complexity > 3) this.complexity = 3; + } + + public ResearchItem setSpecial() + { + this.isSpecial = true; + return this; + } + + public ResearchItem setStub() + { + this.isStub = true; + return this; + } + + @Deprecated + public ResearchItem setLost() + { + this.isLost = true; + return this; + } + + public ResearchItem setConcealed() + { + this.isConcealed = true; + return this; + } + + public ResearchItem setHidden() + { + this.isHidden = true; + return this; + } + + public ResearchItem setVirtual() + { + this.isVirtual = true; + return this; + } + + public ResearchItem setParents(String... par) + { + this.parents = par; + return this; + } + + + + public ResearchItem setParentsHidden(String... par) + { + this.parentsHidden = par; + return this; + } + + public ResearchItem setSiblings(String... sib) + { + this.siblings = sib; + return this; + } + + public ResearchItem setPages(ResearchPage... par) + { + this.pages = par; + return this; + } + + public ResearchPage[] getPages() { + return pages; + } + + public ResearchItem setItemTriggers(ItemStack... par) + { + this.itemTriggers = par; + return this; + } + + public ResearchItem setEntityTriggers(String... par) + { + this.entityTriggers = par; + return this; + } + + public ResearchItem setAspectTriggers(Aspect... par) + { + this.aspectTriggers = par; + return this; + } + + public ItemStack[] getItemTriggers() { + return itemTriggers; + } + + public String[] getEntityTriggers() { + return entityTriggers; + } + + public Aspect[] getAspectTriggers() { + return aspectTriggers; + } + + public ResearchItem registerResearchItem() + { + ResearchCategories.addResearch(this); + return this; + } + + public String getName() + { + return StatCollector.translateToLocal("tc.research_name."+key); + } + + public String getText() + { + return StatCollector.translateToLocal("tc.research_text."+key); + } + + public boolean isSpecial() + { + return this.isSpecial; + } + + public boolean isStub() + { + return this.isStub; + } + + @Deprecated + public boolean isLost() + { + return this.isLost; + } + + public boolean isConcealed() + { + return this.isConcealed; + } + + public boolean isHidden() + { + return this.isHidden; + } + + public boolean isVirtual() + { + return this.isVirtual; + } + + public boolean isAutoUnlock() { + return isAutoUnlock; + } + + public ResearchItem setAutoUnlock() + { + this.isAutoUnlock = true; + return this; + } + + public boolean isRound() { + return isRound; + } + + public ResearchItem setRound() { + this.isRound = true; + return this; + } + + public boolean isSecondary() { + return isSecondary; + } + + public ResearchItem setSecondary() { + this.isSecondary = true; + return this; + } + + public int getComplexity() { + return complexity; + } + + public ResearchItem setComplexity(int complexity) { + this.complexity = complexity; + return this; + } + + /** + * @return the aspect aspects ordinal with the highest value. Used to determine scroll color and similar things + */ + public Aspect getResearchPrimaryTag() { + Aspect aspect=null; + int highest=0; + if (tags!=null) + for (Aspect tag:tags.getAspects()) { + if (tags.getAmount(tag)>highest) { + aspect=tag; + highest=tags.getAmount(tag); + }; + } + return aspect; + } + +} diff --git a/1.7.2/api/java/thaumcraft/api/research/ResearchPage.java b/1.7.2/api/java/thaumcraft/api/research/ResearchPage.java new file mode 100644 index 00000000..a2e7824a --- /dev/null +++ b/1.7.2/api/java/thaumcraft/api/research/ResearchPage.java @@ -0,0 +1,174 @@ +package thaumcraft.api.research; + +import java.util.List; + +import net.minecraft.item.ItemStack; +import net.minecraft.item.crafting.IRecipe; +import net.minecraft.util.ResourceLocation; +import net.minecraft.util.StatCollector; +import thaumcraft.api.aspects.AspectList; +import thaumcraft.api.crafting.CrucibleRecipe; +import thaumcraft.api.crafting.IArcaneRecipe; +import thaumcraft.api.crafting.InfusionEnchantmentRecipe; +import thaumcraft.api.crafting.InfusionRecipe; + +public class ResearchPage { + public static enum PageType + { + TEXT, + TEXT_CONCEALED, + IMAGE, + CRUCIBLE_CRAFTING, + ARCANE_CRAFTING, + ASPECTS, + NORMAL_CRAFTING, + INFUSION_CRAFTING, + COMPOUND_CRAFTING, + INFUSION_ENCHANTMENT + } + + public PageType type = PageType.TEXT; + + public String text=null; + public String research=null; + public ResourceLocation image=null; + public AspectList aspects=null; + public Object recipe=null; + public ItemStack recipeOutput=null; + + /** + * @param text this can (but does not have to) be a reference to a localization variable, not the actual text. + */ + public ResearchPage(String text) { + this.type = PageType.TEXT; + this.text = text; + } + + /** + * @param research this page will only be displayed if the player has discovered this research + * @param text this can (but does not have to) be a reference to a localization variable, not the actual text. + */ + public ResearchPage(String research, String text) { + this.type = PageType.TEXT_CONCEALED; + this.research = research; + this.text = text; + } + + /** + * @param recipe a vanilla crafting recipe. + */ + public ResearchPage(IRecipe recipe) { + this.type = PageType.NORMAL_CRAFTING; + this.recipe = recipe; + this.recipeOutput = recipe.getRecipeOutput(); + } + + /** + * @param recipe a collection of vanilla crafting recipes. + */ + public ResearchPage(IRecipe[] recipe) { + this.type = PageType.NORMAL_CRAFTING; + this.recipe = recipe; + } + + /** + * @param recipe a collection of arcane crafting recipes. + */ + public ResearchPage(IArcaneRecipe[] recipe) { + this.type = PageType.ARCANE_CRAFTING; + this.recipe = recipe; + } + + /** + * @param recipe a collection of infusion crafting recipes. + */ + public ResearchPage(InfusionRecipe[] recipe) { + this.type = PageType.INFUSION_CRAFTING; + this.recipe = recipe; + } + + /** + * @param recipe a compound crafting recipe. + */ + public ResearchPage(List recipe) { + this.type = PageType.COMPOUND_CRAFTING; + this.recipe = recipe; + } + + /** + * @param recipe an arcane worktable crafting recipe. + */ + public ResearchPage(IArcaneRecipe recipe) { + this.type = PageType.ARCANE_CRAFTING; + this.recipe = recipe; + this.recipeOutput = recipe.getRecipeOutput(); + } + + /** + * @param recipe an alchemy crafting recipe. + */ + public ResearchPage(CrucibleRecipe recipe) { + this.type = PageType.CRUCIBLE_CRAFTING; + this.recipe = recipe; + this.recipeOutput = recipe.getRecipeOutput(); + } + + /** + * @param recipe an infusion crafting recipe. + */ + public ResearchPage(InfusionRecipe recipe) { + this.type = PageType.INFUSION_CRAFTING; + this.recipe = recipe; + if (recipe.getRecipeOutput() instanceof ItemStack) { + this.recipeOutput = (ItemStack) recipe.getRecipeOutput(); + } else { + this.recipeOutput = recipe.getRecipeInput(); + } + } + + /** + * @param recipe an infusion crafting recipe. + */ + public ResearchPage(InfusionEnchantmentRecipe recipe) { + this.type = PageType.INFUSION_ENCHANTMENT; + this.recipe = recipe; +// if (recipe.recipeOutput instanceof ItemStack) { +// this.recipeOutput = (ItemStack) recipe.recipeOutput; +// } else { +// this.recipeOutput = recipe.recipeInput; +// } + } + + /** + * @param image + * @param caption this can (but does not have to) be a reference to a localization variable, not the actual text. + */ + public ResearchPage(ResourceLocation image, String caption) { + this.type = PageType.IMAGE; + this.image = image; + this.text = caption; + } + + /** + * This function should really not be called directly - used internally + */ + public ResearchPage(AspectList as) { + this.type = PageType.ASPECTS; + this.aspects = as; + } + + /** + * returns a localized text of the text field (if one exists). Returns the text field itself otherwise. + * @return + */ + public String getTranslatedText() { + String ret=""; + if (text != null) { + ret = StatCollector.translateToLocal(text); + if (ret.isEmpty()) ret = text; + } + return ret; + } + + +} diff --git a/1.7.2/api/java/thaumcraft/api/research/ScanResult.java b/1.7.2/api/java/thaumcraft/api/research/ScanResult.java new file mode 100644 index 00000000..e1498f31 --- /dev/null +++ b/1.7.2/api/java/thaumcraft/api/research/ScanResult.java @@ -0,0 +1,39 @@ +package thaumcraft.api.research; + +import net.minecraft.entity.Entity; + +public class ScanResult { + public byte type = 0; //1=blocks,2=entities,3=phenomena + public int id; + public int meta; + public Entity entity; + public String phenomena; + + public ScanResult(byte type, int blockId, int blockMeta, Entity entity, + String phenomena) { + super(); + this.type = type; + this.id = blockId; + this.meta = blockMeta; + this.entity = entity; + this.phenomena = phenomena; + } + + @Override + public boolean equals(Object obj) { + if (obj instanceof ScanResult) { + ScanResult sr = (ScanResult) obj; + if (type != sr.type) + return false; + if (type == 1 + && (id != sr.id || meta != sr.meta)) + return false; + if (type == 2 && entity.getEntityId() != sr.entity.getEntityId()) + return false; + if (type == 3 && !phenomena.equals(sr.phenomena)) + return false; + } + return true; + } + +} diff --git a/1.7.2/api/java/thaumcraft/api/wands/IWandFocus.java b/1.7.2/api/java/thaumcraft/api/wands/IWandFocus.java new file mode 100644 index 00000000..da4b9ae9 --- /dev/null +++ b/1.7.2/api/java/thaumcraft/api/wands/IWandFocus.java @@ -0,0 +1,64 @@ +package thaumcraft.api.wands; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.util.IIcon; +import net.minecraft.util.MovingObjectPosition; +import net.minecraft.world.World; +import thaumcraft.api.aspects.AspectList; + + +public interface IWandFocus { + + public enum WandFocusAnimation { + WAVE, CHARGE; + } + + /** + * @return The color the focus should be changed to. + */ + public int getFocusColor(); + + /** + * @return An icon that will be drawn as a block inside the focus "block". + */ + IIcon getFocusDepthLayerIcon(); + + public IIcon getOrnament(); + + public WandFocusAnimation getAnimation(); + + /** + * Gets the amount of vis used per aspect per click or tick. This cost is actually listed as + * a hundredth of a single point of vis, so a cost of 100 will equal one vis per tick/click. + * It is returned as an AspectList to allow for multiple vis types in different ratios. + */ + public AspectList getVisCost(); + + public boolean isVisCostPerTick(); + + public ItemStack onFocusRightClick(ItemStack itemstack, World world, EntityPlayer player, MovingObjectPosition movingobjectposition); + + public void onUsingFocusTick(ItemStack itemstack, EntityPlayer player, int count); + + public void onPlayerStoppedUsingFocus(ItemStack itemstack, World world, EntityPlayer player, int count); + + /** + * Helper method to determine in what order foci should be iterated through when + * the user presses the 'change focus' keybinding. + * @return a string of characters that foci will be sorted against. + * For example AA00 will be placed before FG12 + *
As a guide build the sort string from two alphanumeric characters followed by + * two numeric characters based on... whatever. + */ + public String getSortingHelper(ItemStack itemstack); + + boolean onFocusBlockStartBreak(ItemStack itemstack, int x, int y, int z, EntityPlayer player); + + public boolean acceptsEnchant(int id); + + + + + +} diff --git a/1.7.2/api/java/thaumcraft/api/wands/IWandRodOnUpdate.java b/1.7.2/api/java/thaumcraft/api/wands/IWandRodOnUpdate.java new file mode 100644 index 00000000..4ef8c849 --- /dev/null +++ b/1.7.2/api/java/thaumcraft/api/wands/IWandRodOnUpdate.java @@ -0,0 +1,16 @@ +package thaumcraft.api.wands; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; + +/** + * + * @author azanor + * + * Implemented by a class that you wish to be called whenever a wand with this rod performs its + * update tick. + * + */ +public interface IWandRodOnUpdate { + void onUpdate(ItemStack itemstack, EntityPlayer player); +} diff --git a/1.7.2/api/java/thaumcraft/api/wands/IWandTriggerManager.java b/1.7.2/api/java/thaumcraft/api/wands/IWandTriggerManager.java new file mode 100644 index 00000000..47465552 --- /dev/null +++ b/1.7.2/api/java/thaumcraft/api/wands/IWandTriggerManager.java @@ -0,0 +1,12 @@ +package thaumcraft.api.wands; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; + +public interface IWandTriggerManager { + + public boolean performTrigger(World world, ItemStack wand, EntityPlayer player, + int x, int y, int z, int side, int event); + +} diff --git a/1.7.2/api/java/thaumcraft/api/wands/IWandable.java b/1.7.2/api/java/thaumcraft/api/wands/IWandable.java new file mode 100644 index 00000000..aeb9bac7 --- /dev/null +++ b/1.7.2/api/java/thaumcraft/api/wands/IWandable.java @@ -0,0 +1,25 @@ +package thaumcraft.api.wands; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; + +/** + * + * @author azanor + * + * Add this to a tile entity that you wish wands to interact with in some way. + * + */ + +public interface IWandable { + + public int onWandRightClick(World world, ItemStack wandstack, EntityPlayer player, int x, int y, int z, int side, int md); + + public ItemStack onWandRightClick(World world, ItemStack wandstack, EntityPlayer player); + + public void onUsingWandTick(ItemStack wandstack, EntityPlayer player, int count); + + public void onWandStoppedUsing(ItemStack wandstack, World world, EntityPlayer player, int count); + +} diff --git a/1.7.2/api/java/thaumcraft/api/wands/ItemFocusBasic.java b/1.7.2/api/java/thaumcraft/api/wands/ItemFocusBasic.java new file mode 100644 index 00000000..35900520 --- /dev/null +++ b/1.7.2/api/java/thaumcraft/api/wands/ItemFocusBasic.java @@ -0,0 +1,166 @@ +package thaumcraft.api.wands; + +import java.text.DecimalFormat; +import java.util.List; +import java.util.Map; + +import net.minecraft.enchantment.EnchantmentHelper; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.EnumRarity; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.IIcon; +import net.minecraft.util.MovingObjectPosition; +import net.minecraft.util.StatCollector; +import net.minecraft.world.World; +import thaumcraft.api.ThaumcraftApi; +import thaumcraft.api.aspects.Aspect; +import thaumcraft.api.aspects.AspectList; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + +public class ItemFocusBasic extends Item implements IWandFocus { + + public ItemFocusBasic () + { + super(); + maxStackSize = 1; + canRepair=false; + this.setMaxDamage(0); + } + + public IIcon icon; + + @SideOnly(Side.CLIENT) + @Override + public IIcon getIconFromDamage(int par1) { + return icon; + } + + @Override + public boolean isItemTool(ItemStack par1ItemStack) + { + return true; + } + + @Override + public boolean isDamageable() { + return true; + } + + @Override + public void addInformation(ItemStack stack,EntityPlayer player, List list, boolean par4) { + AspectList al = this.getVisCost(); + if (al!=null && al.size()>0) { + list.add(StatCollector.translateToLocal(isVisCostPerTick()?"item.Focus.cost2":"item.Focus.cost1")); + for (Aspect aspect:al.getAspectsSorted()) { + DecimalFormat myFormatter = new DecimalFormat("#####.##"); + String amount = myFormatter.format(al.getAmount(aspect)/100f); + list.add(" \u00A7"+aspect.getChatcolor()+aspect.getName()+"\u00A7r x "+ amount); + + } + } + } + + @Override + public int getItemEnchantability() { + return 5; + } + + @Override + public EnumRarity getRarity(ItemStack itemstack) + { + return EnumRarity.rare; + } + + + @Override + public int getFocusColor() { + // TODO Auto-generated method stub + return 0; + } + + @Override + public AspectList getVisCost() { + // TODO Auto-generated method stub + return null; + } + + @Override + public ItemStack onFocusRightClick(ItemStack itemstack, World world, + EntityPlayer player, MovingObjectPosition movingobjectposition) { + // TODO Auto-generated method stub + return null; + } + + @Override + public void onUsingFocusTick(ItemStack itemstack, EntityPlayer player, + int count) { + // TODO Auto-generated method stub + } + + @Override + public void onPlayerStoppedUsingFocus(ItemStack itemstack, World world, + EntityPlayer player, int count) { + // TODO Auto-generated method stub + + } + + /** + * Just insert two alphanumeric characters before this string in your focus item class + */ + @Override + public String getSortingHelper(ItemStack itemstack) { + Map ench = EnchantmentHelper.getEnchantments(itemstack); + String out=""; + for (Integer lvl:ench.values()) { + out = out + lvl + ""; + } + return out; + } + + @Override + public boolean isVisCostPerTick() { + return false; + } + + @Override + public IIcon getOrnament() { + // TODO Auto-generated method stub + return null; + } + + @Override + public boolean onFocusBlockStartBreak(ItemStack itemstack, int x, int y, + int z, EntityPlayer player) { + // TODO Auto-generated method stub + return false; + } + + @Override + public WandFocusAnimation getAnimation() { + return WandFocusAnimation.WAVE; + } + + @Override + public IIcon getFocusDepthLayerIcon() { + // TODO Auto-generated method stub + return null; + } + + /** + * @see thaumcraft.api.wands.IWandFocus#acceptsEnchant(int) + * By default fortune is off for all wands + **/ + @Override + public boolean acceptsEnchant(int id) { + if (id==ThaumcraftApi.enchantFrugal|| + id==ThaumcraftApi.enchantPotency) return true; + return false; + } + + + + + +} diff --git a/1.7.2/api/java/thaumcraft/api/wands/StaffRod.java b/1.7.2/api/java/thaumcraft/api/wands/StaffRod.java new file mode 100644 index 00000000..e7ae90f0 --- /dev/null +++ b/1.7.2/api/java/thaumcraft/api/wands/StaffRod.java @@ -0,0 +1,48 @@ +package thaumcraft.api.wands; + +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; + +/** + * + * @author Azanor + * + * This class is used to keep the material information for the various rods. + * It is also used to generate the wand recipes ingame. + * + */ +public class StaffRod extends WandRod { + + boolean runes=false; + + public StaffRod(String tag, int capacity, ItemStack item, int craftCost) { + super(tag+"_staff", capacity, item, craftCost); + this.texture = new ResourceLocation("thaumcraft","textures/models/wand_rod_"+tag+".png"); + } + + public StaffRod(String tag, int capacity, ItemStack item, int craftCost, + IWandRodOnUpdate onUpdate, ResourceLocation texture) { + super(tag+"_staff", capacity, item, craftCost, onUpdate, texture); + } + + public StaffRod(String tag, int capacity, ItemStack item, int craftCost, + IWandRodOnUpdate onUpdate) { + super(tag+"_staff", capacity, item, craftCost, onUpdate); + this.texture = new ResourceLocation("thaumcraft","textures/models/wand_rod_"+tag+".png"); + } + + public StaffRod(String tag, int capacity, ItemStack item, int craftCost, + ResourceLocation texture) { + super(tag+"_staff", capacity, item, craftCost, texture); + } + + public boolean hasRunes() { + return runes; + } + + public void setRunes(boolean hasRunes) { + this.runes = hasRunes; + } + + +} diff --git a/1.7.2/api/java/thaumcraft/api/wands/WandCap.java b/1.7.2/api/java/thaumcraft/api/wands/WandCap.java new file mode 100644 index 00000000..1fc9ba1c --- /dev/null +++ b/1.7.2/api/java/thaumcraft/api/wands/WandCap.java @@ -0,0 +1,122 @@ +package thaumcraft.api.wands; + +import java.util.LinkedHashMap; +import java.util.List; + +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; +import thaumcraft.api.aspects.Aspect; + +/** + * This class is used to keep the material information for the various caps. + * It is also used to generate the wand recipes ingame. + * @author Azanor + * + */ +public class WandCap { + + private String tag; + + /** + * Cost to craft this wand. Combined with the rod cost. + */ + private int craftCost; + + /** + * the amount by which all aspect costs are multiplied + */ + float baseCostModifier; + + /** + * specifies a list of primal aspects that use the special discount figure instead of the normal discount. + */ + List specialCostModifierAspects; + + /** + * the amount by which the specified aspect costs are multiplied + */ + float specialCostModifier; + + /** + * The texture that will be used for the ingame wand cap + */ + ResourceLocation texture; + + /** + * the actual item that makes up this cap and will be used to generate the wand recipes + */ + ItemStack item; + + public static LinkedHashMap caps = new LinkedHashMap(); + + public WandCap (String tag, float discount, ItemStack item, int craftCost) { + this.setTag(tag); + this.baseCostModifier = discount; + this.specialCostModifierAspects = null; + texture = new ResourceLocation("thaumcraft","textures/models/wand_cap_"+getTag()+".png"); + this.item=item; + this.setCraftCost(craftCost); + caps.put(tag, this); + } + + public WandCap (String tag, float discount, List specialAspects, float discountSpecial, ItemStack item, int craftCost) { + this.setTag(tag); + this.baseCostModifier = discount; + this.specialCostModifierAspects = specialAspects; + this.specialCostModifier = discountSpecial; + texture = new ResourceLocation("thaumcraft","textures/models/wand_cap_"+getTag()+".png"); + this.item=item; + this.setCraftCost(craftCost); + caps.put(tag, this); + } + + public float getBaseCostModifier() { + return baseCostModifier; + } + + public List getSpecialCostModifierAspects() { + return specialCostModifierAspects; + } + + public float getSpecialCostModifier() { + return specialCostModifier; + } + + public ResourceLocation getTexture() { + return texture; + } + + public void setTexture(ResourceLocation texture) { + this.texture = texture; + } + + public String getTag() { + return tag; + } + + public void setTag(String tag) { + this.tag = tag; + } + + + public ItemStack getItem() { + return item; + } + + public void setItem(ItemStack item) { + this.item = item; + } + + public int getCraftCost() { + return craftCost; + } + + public void setCraftCost(int craftCost) { + this.craftCost = craftCost; + } + + // Some examples: + // WandCap WAND_CAP_IRON = new WandCap("iron", 1.1f, Arrays.asList(Aspect.ORDER),1, new ItemStack(ConfigItems.itemWandCap,1,0),1); + // WandCap WAND_CAP_GOLD = new WandCap("gold", 1f, new ItemStack(ConfigItems.itemWandCap,1,1),3); + +} diff --git a/1.7.2/api/java/thaumcraft/api/wands/WandRod.java b/1.7.2/api/java/thaumcraft/api/wands/WandRod.java new file mode 100644 index 00000000..6b43cd47 --- /dev/null +++ b/1.7.2/api/java/thaumcraft/api/wands/WandRod.java @@ -0,0 +1,151 @@ +package thaumcraft.api.wands; + +import java.util.LinkedHashMap; + +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; + +/** + * + * @author Azanor + * + * This class is used to keep the material information for the various rods. + * It is also used to generate the wand recipes ingame. + * + */ +public class WandRod { + + + private String tag; + + /** + * Cost to craft this wand. Combined with the rod cost. + */ + private int craftCost; + + /** + * The amount of vis that can be stored - this number is actually multiplied + * by 100 for use by the wands internals + */ + int capacity; + + /** + * The texture that will be used for the ingame wand rod + */ + protected ResourceLocation texture; + + /** + * the actual item that makes up this rod and will be used to generate the wand recipes + */ + ItemStack item; + + /** + * A class that will be called whenever the wand onUpdate tick is run + */ + IWandRodOnUpdate onUpdate; + + /** + * Does the rod glow in the dark? + */ + boolean glow; + + public static LinkedHashMap rods = new LinkedHashMap(); + + public WandRod (String tag, int capacity, ItemStack item, int craftCost, ResourceLocation texture) { + this.setTag(tag); + this.capacity = capacity; + this.texture = texture; + this.item=item; + this.setCraftCost(craftCost); + rods.put(tag, this); + } + + public WandRod (String tag, int capacity, ItemStack item, int craftCost, IWandRodOnUpdate onUpdate, ResourceLocation texture) { + this.setTag(tag); + this.capacity = capacity; + this.texture = texture; + this.item=item; + this.setCraftCost(craftCost); + rods.put(tag, this); + this.onUpdate = onUpdate; + } + + public WandRod (String tag, int capacity, ItemStack item, int craftCost) { + this.setTag(tag); + this.capacity = capacity; + this.texture = new ResourceLocation("thaumcraft","textures/models/wand_rod_"+getTag()+".png"); + this.item=item; + this.setCraftCost(craftCost); + rods.put(tag, this); + } + + public WandRod (String tag, int capacity, ItemStack item, int craftCost, IWandRodOnUpdate onUpdate) { + this.setTag(tag); + this.capacity = capacity; + this.texture = new ResourceLocation("thaumcraft","textures/models/wand_rod_"+getTag()+".png"); + this.item=item; + this.setCraftCost(craftCost); + rods.put(tag, this); + this.onUpdate = onUpdate; + } + + public String getTag() { + return tag; + } + + public void setTag(String tag) { + this.tag = tag; + } + + public int getCapacity() { + return capacity; + } + + public void setCapacity(int capacity) { + this.capacity = capacity; + } + + public ResourceLocation getTexture() { + return texture; + } + + public void setTexture(ResourceLocation texture) { + this.texture = texture; + } + + public ItemStack getItem() { + return item; + } + + public void setItem(ItemStack item) { + this.item = item; + } + + public int getCraftCost() { + return craftCost; + } + + public void setCraftCost(int craftCost) { + this.craftCost = craftCost; + } + + public IWandRodOnUpdate getOnUpdate() { + return onUpdate; + } + + public void setOnUpdate(IWandRodOnUpdate onUpdate) { + this.onUpdate = onUpdate; + } + + public boolean isGlowing() { + return glow; + } + + public void setGlowing(boolean hasGlow) { + this.glow = hasGlow; + } + + // Some examples: + // WandRod WAND_ROD_WOOD = new WandRod("wood",25,new ItemStack(Item.stick),1); + // WandRod WAND_ROD_BLAZE = new WandRod("blaze",100,new ItemStack(Item.blazeRod),7,new WandRodBlazeOnUpdate()); +} diff --git a/1.7.2/api/java/thaumcraft/api/wands/WandTriggerRegistry.java b/1.7.2/api/java/thaumcraft/api/wands/WandTriggerRegistry.java new file mode 100644 index 00000000..68655cb7 --- /dev/null +++ b/1.7.2/api/java/thaumcraft/api/wands/WandTriggerRegistry.java @@ -0,0 +1,72 @@ +package thaumcraft.api.wands; + +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; + +import net.minecraft.block.Block; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; + +/** + * This class serves a similar function to IWandable in that it allows wands to interact + * with object in the world. In this case it is most useful for adding interaction with non-mod + * blocks where you can't control what happens in their code. + * Example where it is used is in crafting the thaumonomicon from a bookshelf and the + * crucible from a cauldron + * + * @author azanor + * + */ +public class WandTriggerRegistry { + + /** + * Registers an action to perform when a casting wand right clicks on a specific block. + * A manager class needs to be created that implements IWandTriggerManager. + * @param manager + * @param event a logical number that you can use to differentiate different events or actions + * @param block + * @param meta send -1 as a wildcard value for all possible meta values + */ + public static void registerWandBlockTrigger(IWandTriggerManager manager, int event, Block block, int meta) { + triggers.put(Arrays.asList(block,meta), + Arrays.asList(manager,event)); + + } + + private static HashMap triggers = new HashMap(); + + public static boolean hasTrigger(Block block, int meta) { + if (triggers.containsKey(Arrays.asList(block,meta)) || + triggers.containsKey(Arrays.asList(block,-1))) return true; + return false; + } + + /** + * This is called by the onItemUseFirst function in wands. + * Parameters and return value functions like you would expect for that function. + * @param world + * @param wand + * @param player + * @param x + * @param y + * @param z + * @param side + * @param block + * @param meta + * @return + */ + public static boolean performTrigger(World world, ItemStack wand, EntityPlayer player, + int x, int y, int z, int side, Block block, int meta) { + + List l = triggers.get(Arrays.asList(block,meta)); + if (l==null) l = triggers.get(Arrays.asList(block,-1)); + if (l==null) return false; + + IWandTriggerManager manager = (IWandTriggerManager) l.get(0); + int event = (Integer) l.get(1); + return manager.performTrigger(world, wand, player, x, y, z, side, event); + } + +} diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/AlchemicalWizardry.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/AlchemicalWizardry.java similarity index 96% rename from 1.7.2/java/WayofTime/alchemicalWizardry/AlchemicalWizardry.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/AlchemicalWizardry.java index c34f84d4..2c4f31da 100644 --- a/1.7.2/java/WayofTime/alchemicalWizardry/AlchemicalWizardry.java +++ b/1.7.2/main/java/WayofTime/alchemicalWizardry/AlchemicalWizardry.java @@ -76,6 +76,7 @@ import WayofTime.alchemicalWizardry.common.rituals.RitualEffectFlight; import WayofTime.alchemicalWizardry.common.rituals.RitualEffectGrowth; import WayofTime.alchemicalWizardry.common.rituals.RitualEffectHealing; import WayofTime.alchemicalWizardry.common.rituals.RitualEffectInterdiction; +import WayofTime.alchemicalWizardry.common.rituals.RitualEffectItemSuction; import WayofTime.alchemicalWizardry.common.rituals.RitualEffectJumping; import WayofTime.alchemicalWizardry.common.rituals.RitualEffectLava; import WayofTime.alchemicalWizardry.common.rituals.RitualEffectLeap; @@ -124,9 +125,8 @@ import cpw.mods.fml.common.event.FMLPreInitializationEvent; import cpw.mods.fml.common.network.NetworkRegistry; import cpw.mods.fml.common.registry.EntityRegistry; import cpw.mods.fml.common.registry.GameRegistry; -import cpw.mods.fml.common.registry.LanguageRegistry; -@Mod(modid = "AWWayofTime", name = "AlchemicalWizardry", version = "v1.0.1d") +@Mod(modid = "AWWayofTime", name = "AlchemicalWizardry", version = "v1.0.2") //@NetworkMod(clientSideRequired = true, serverSideRequired = false, channels = {"BloodAltar", "particle", "SetLifeEssence", "GetLifeEssence", "Ritual", "GetAltarEssence", "TESocket", "TEWritingTable", "CustomParticle", "SetPlayerVel", "SetPlayerPos", "TEPedestal", "TEPlinth", "TETeleposer", "InfiniteLPPath", "TEOrientor"}, packetHandler = PacketHandler.class) public class AlchemicalWizardry @@ -750,7 +750,7 @@ public class AlchemicalWizardry GameRegistry.addShapelessRecipe(new ItemStack(Items.dye,5,15),fracturedBoneStack); GameRegistry.addRecipe(new ItemStack(ModItems.itemSigilOfSupression),"wtl","wvl","wol",'v',new ItemStack(ModItems.voidSigil),'t',new ItemStack(ModBlocks.blockTeleposer),'o',masterBloodOrbStack,'l',lavaBucketStack,'w',waterBucketStack); - + GameRegistry.addRecipe(new ItemStack(ModItems.itemSigilOfEnderSeverance),"ptp","ese","pop",'s',new ItemStack(ModItems.demonicSlate),'t',weakBloodShardStack,'o',masterBloodOrbStack,'e',new ItemStack(Items.ender_eye),'p', new ItemStack(Items.ender_pearl)); AlchemyRecipeRegistry.registerRecipe(new ItemStack(Items.flint,2,0), 1, new ItemStack[]{new ItemStack(Blocks.gravel),new ItemStack(Items.flint)}, 1); AlchemyRecipeRegistry.registerRecipe(new ItemStack(Blocks.grass), 2, new ItemStack[]{new ItemStack(Blocks.dirt),new ItemStack(Items.dye,1,15),new ItemStack(Items.wheat_seeds),new ItemStack(Items.wheat_seeds)}, 1); @@ -881,29 +881,30 @@ public class AlchemicalWizardry public static void initRituals() { - Rituals.ritualList.add(new Rituals(1, 500, new RitualEffectWater(), "Ritual of the Full Spring")); - Rituals.ritualList.add(new Rituals(1, 10000, new RitualEffectLava(), "Serenade of the Nether")); - Rituals.ritualList.add(new Rituals(1, 1000, new RitualEffectGrowth(), "Ritual of the Green Grove")); - Rituals.ritualList.add(new Rituals(1, 1000, new RitualEffectInterdiction(), "Interdiction Ritual")); - Rituals.ritualList.add(new Rituals(1, 2000, new RitualEffectContainment(), "Ritual of Containment")); - Rituals.ritualList.add(new Rituals(1, 5000, new RitualEffectSoulBound(), "Ritual of Binding")); - Rituals.ritualList.add(new Rituals(1, 30000, new RitualEffectUnbinding(), "Ritual of Unbinding")); - Rituals.ritualList.add(new Rituals(1, 1000, new RitualEffectJumping(), "Ritual of the High Jump")); - Rituals.ritualList.add(new Rituals(1, 5000, new RitualEffectMagnetic(), "Ritual of Magnetism")); - Rituals.ritualList.add(new Rituals(1, 2500, new RitualEffectCrushing(), "Ritual of the Crusher")); - Rituals.ritualList.add(new Rituals(1, 1000, new RitualEffectLeap(), "Ritual of Speed")); - Rituals.ritualList.add(new Rituals(1, 10000, new RitualEffectAnimalGrowth(), "Ritual of the Shepherd")); - Rituals.ritualList.add(new Rituals(1, 50000, new RitualEffectWellOfSuffering(), "Well of Suffering")); - Rituals.ritualList.add(new Rituals(1, 25000, new RitualEffectHealing(), "Ritual of Regeneration")); - Rituals.ritualList.add(new Rituals(1, 50000, new RitualEffectFeatheredKnife(), "Ritual of the Feathered Knife")); - Rituals.ritualList.add(new Rituals(2, 100000, new RitualEffectFeatheredEarth(), "Ritual of the Feathered Earth")); - Rituals.ritualList.add(new Rituals(2, 1000000, new RitualEffectBiomeChanger(), "Ritual of Gaia's Transformation")); - Rituals.ritualList.add(new Rituals(2, 1000000, new RitualEffectFlight(), "Reverence of the Condor")); - Rituals.ritualList.add(new Rituals(2, 1000000, new RitualEffectSummonMeteor(), "Mark of the Falling Tower")); - Rituals.ritualList.add(new Rituals(1, 20000,new RitualEffectAutoAlchemy(), "Ballad of Alchemy")); - Rituals.ritualList.add(new Rituals(1, 1000000,new RitualEffectExpulsion(), "Aura of Expulsion")); - Rituals.ritualList.add(new Rituals(1, 10000,new RitualEffectSupression(), "Dome of Supression")); - //Rituals.ritualList.add(new Rituals(1,100,new RitualEffectApiaryOverclock(),"Apiary Overclock")); + Rituals.registerRitual("AW001Water", 1, 500, new RitualEffectWater(), "Ritual of the Full Spring"); + Rituals.registerRitual("AW002Lava", 1, 10000, new RitualEffectLava(), "Serenade of the Nether"); + Rituals.registerRitual("AW003GreenGrove", 1, 1000, new RitualEffectGrowth(), "Ritual of the Green Grove"); + Rituals.registerRitual("AW004Interdiction", 1, 1000, new RitualEffectInterdiction(), "Interdiction Ritual"); + Rituals.registerRitual("AW005Containment", 1, 2000, new RitualEffectContainment(), "Ritual of Containment"); + Rituals.registerRitual("AW006Binding", 1, 5000, new RitualEffectSoulBound(), "Ritual of Binding"); + Rituals.registerRitual("AW007Unbinding", 1, 30000, new RitualEffectUnbinding(), "Ritual of Unbinding"); + Rituals.registerRitual("AW008HighJump", 1, 1000, new RitualEffectJumping(), "Ritual of the High Jump"); + Rituals.registerRitual("AW009Magnetism", 1, 5000, new RitualEffectMagnetic(), "Ritual of Magnetism"); + Rituals.registerRitual("AW010Crusher", 1, 2500, new RitualEffectCrushing(), "Ritual of the Crusher"); + Rituals.registerRitual("AW011Speed", 1, 1000, new RitualEffectLeap(), "Ritual of Speed"); + Rituals.registerRitual("AW012AnimalGrowth", 1, 10000, new RitualEffectAnimalGrowth(), "Ritual of the Shepherd"); + Rituals.registerRitual("AW013Suffering", 1, 50000, new RitualEffectWellOfSuffering(), "Well of Suffering"); + Rituals.registerRitual("AW014Regen", 1, 25000, new RitualEffectHealing(), "Ritual of Regeneration"); + Rituals.registerRitual("AW015FeatheredKnife", 1, 50000, new RitualEffectFeatheredKnife(), "Ritual of the Feathered Knife"); + Rituals.registerRitual("AW016FeatheredEarth", 2, 100000, new RitualEffectFeatheredEarth(), "Ritual of the Feathered Earth"); + Rituals.registerRitual("AW017Gaia", 2, 1000000, new RitualEffectBiomeChanger(), "Ritual of Gaia's Transformation"); + Rituals.registerRitual("AW018Condor", 2, 1000000, new RitualEffectFlight(), "Reverence of the Condor"); + Rituals.registerRitual("AW019FallingTower", 2, 1000000, new RitualEffectSummonMeteor(), "Mark of the Falling Tower"); + Rituals.registerRitual("AW020BalladOfAlchemy", 1, 20000, new RitualEffectAutoAlchemy(), "Ballad of Alchemy"); + Rituals.registerRitual("AW021Expulsion", 1, 1000000, new RitualEffectExpulsion(), "Aura of Expulsion"); + Rituals.registerRitual("AW022Supression", 1, 10000, new RitualEffectSupression(), "Dome of Supression"); + Rituals.registerRitual("AW023Zephyr", 1, 25000, new RitualEffectItemSuction(),"Call of the Zephyr"); + //Rituals.registerRitual(1,100,new RitualEffectApiaryOverclock(),"Apiary Overclock")); } public static void initBindingRecipes() diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/BloodMagicConfiguration.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/BloodMagicConfiguration.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/BloodMagicConfiguration.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/BloodMagicConfiguration.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/ModBlocks.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/ModBlocks.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/ModBlocks.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/ModBlocks.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/ModItems.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/ModItems.java similarity index 96% rename from 1.7.2/java/WayofTime/alchemicalWizardry/ModItems.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/ModItems.java index a30da1bd..e1cc8f3a 100644 --- a/1.7.2/java/WayofTime/alchemicalWizardry/ModItems.java +++ b/1.7.2/main/java/WayofTime/alchemicalWizardry/ModItems.java @@ -56,6 +56,8 @@ import WayofTime.alchemicalWizardry.common.items.potion.WeakFillingAgent; 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.ItemSeerSigil; import WayofTime.alchemicalWizardry.common.items.sigil.ItemSigilOfEnderSeverance; import WayofTime.alchemicalWizardry.common.items.sigil.ItemSigilOfSupression; import WayofTime.alchemicalWizardry.common.items.sigil.LavaSigil; @@ -69,6 +71,7 @@ import WayofTime.alchemicalWizardry.common.items.sigil.SigilOfTheFastMiner; import WayofTime.alchemicalWizardry.common.items.sigil.SigilOfWind; import WayofTime.alchemicalWizardry.common.items.sigil.VoidSigil; import WayofTime.alchemicalWizardry.common.items.sigil.WaterSigil; +import WayofTime.alchemicalWizardry.common.items.spell.ItemSpellMultiTool; import cpw.mods.fml.common.registry.GameRegistry; /** @@ -167,6 +170,10 @@ public class ModItems public static Item itemSigilOfEnderSeverance; public static Item itemSigilOfSupression; + public static Item itemFluidSigil; + public static Item itemSeerSigil; + + public static Item customTool; public static Item bucketLife; @@ -254,6 +261,9 @@ public class ModItems baseItems = new ItemComponents().setUnlocalizedName("baseItems"); baseAlchemyItems = new ItemAlchemyBase().setUnlocalizedName("baseAlchemyItems"); itemSigilOfSupression = new ItemSigilOfSupression().setUnlocalizedName("itemSigilOfSupression"); + itemFluidSigil = new ItemFluidSigil().setUnlocalizedName("itemFluidSigil"); + itemSeerSigil = new ItemSeerSigil().setUnlocalizedName("itemSeerSigil"); + customTool = new ItemSpellMultiTool().setUnlocalizedName("multiTool"); } public static void registerItems() @@ -342,6 +352,10 @@ public class ModItems GameRegistry.registerItem(ModItems.itemComplexSpellCrystal, "itemComplexSpellCrystal"); GameRegistry.registerItem(ModItems.itemSigilOfSupression, "sigilOfSupression"); GameRegistry.registerItem(ModItems.itemSigilOfEnderSeverance, "sigilOfEnderSeverance"); + GameRegistry.registerItem(ModItems.itemFluidSigil, "fluidSigil"); + GameRegistry.registerItem(ModItems.itemSeerSigil, "seerSigil"); + + GameRegistry.registerItem(ModItems.customTool, "customTool"); GameRegistry.registerItem(ModItems.bucketLife, "bucketLife"); diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/api/alchemy/AlchemicalPotionCreationHandler.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/api/alchemy/AlchemicalPotionCreationHandler.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/api/alchemy/AlchemicalPotionCreationHandler.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/api/alchemy/AlchemicalPotionCreationHandler.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/api/alchemy/AlchemyPotionHandlerComponent.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/api/alchemy/AlchemyPotionHandlerComponent.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/api/alchemy/AlchemyPotionHandlerComponent.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/api/alchemy/AlchemyPotionHandlerComponent.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/api/alchemy/AlchemyPotionHelper.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/api/alchemy/AlchemyPotionHelper.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/api/alchemy/AlchemyPotionHelper.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/api/alchemy/AlchemyPotionHelper.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/api/alchemy/AlchemyRecipe.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/api/alchemy/AlchemyRecipe.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/api/alchemy/AlchemyRecipe.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/api/alchemy/AlchemyRecipe.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/api/alchemy/AlchemyRecipeRegistry.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/api/alchemy/AlchemyRecipeRegistry.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/api/alchemy/AlchemyRecipeRegistry.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/api/alchemy/AlchemyRecipeRegistry.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/api/altarRecipeRegistry/AltarRecipe.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/api/altarRecipeRegistry/AltarRecipe.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/api/altarRecipeRegistry/AltarRecipe.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/api/altarRecipeRegistry/AltarRecipe.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/api/altarRecipeRegistry/AltarRecipeRegistry.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/api/altarRecipeRegistry/AltarRecipeRegistry.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/api/altarRecipeRegistry/AltarRecipeRegistry.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/api/altarRecipeRegistry/AltarRecipeRegistry.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/api/bindingRegistry/BindingRecipe.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/api/bindingRegistry/BindingRecipe.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/api/bindingRegistry/BindingRecipe.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/api/bindingRegistry/BindingRecipe.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/api/bindingRegistry/BindingRegistry.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/api/bindingRegistry/BindingRegistry.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/api/bindingRegistry/BindingRegistry.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/api/bindingRegistry/BindingRegistry.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/api/items/interfaces/ArmourUpgrade.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/api/items/interfaces/ArmourUpgrade.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/api/items/interfaces/ArmourUpgrade.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/api/items/interfaces/ArmourUpgrade.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/api/items/interfaces/IBindable.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/api/items/interfaces/IBindable.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/api/items/interfaces/IBindable.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/api/items/interfaces/IBindable.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/api/items/interfaces/IBloodOrb.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/api/items/interfaces/IBloodOrb.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/api/items/interfaces/IBloodOrb.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/api/items/interfaces/IBloodOrb.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/api/items/interfaces/IHolding.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/api/items/interfaces/IHolding.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/api/items/interfaces/IHolding.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/api/items/interfaces/IHolding.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/api/rituals/IMasterRitualStone.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/api/rituals/IMasterRitualStone.java similarity index 86% rename from 1.7.2/java/WayofTime/alchemicalWizardry/api/rituals/IMasterRitualStone.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/api/rituals/IMasterRitualStone.java index a89c1dd2..9777093f 100644 --- a/1.7.2/java/WayofTime/alchemicalWizardry/api/rituals/IMasterRitualStone.java +++ b/1.7.2/main/java/WayofTime/alchemicalWizardry/api/rituals/IMasterRitualStone.java @@ -4,7 +4,7 @@ import net.minecraft.world.World; public interface IMasterRitualStone { - public void performRitual(World world, int x, int y, int z, int ritualID); + public void performRitual(World world, int x, int y, int z, String ritualID); public String getOwner(); diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/api/rituals/IRitualStone.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/api/rituals/IRitualStone.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/api/rituals/IRitualStone.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/api/rituals/IRitualStone.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/api/rituals/RitualComponent.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/api/rituals/RitualComponent.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/api/rituals/RitualComponent.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/api/rituals/RitualComponent.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/api/rituals/RitualEffect.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/api/rituals/RitualEffect.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/api/rituals/RitualEffect.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/api/rituals/RitualEffect.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/api/rituals/Rituals.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/api/rituals/Rituals.java similarity index 51% rename from 1.7.2/java/WayofTime/alchemicalWizardry/api/rituals/Rituals.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/api/rituals/Rituals.java index 188ea6ee..1bde06fb 100644 --- a/1.7.2/java/WayofTime/alchemicalWizardry/api/rituals/Rituals.java +++ b/1.7.2/main/java/WayofTime/alchemicalWizardry/api/rituals/Rituals.java @@ -1,11 +1,13 @@ package WayofTime.alchemicalWizardry.api.rituals; -import java.util.ArrayList; +import java.util.HashMap; +import java.util.LinkedList; import java.util.List; +import java.util.Map; +import scala.reflect.internal.Trees.This; import net.minecraft.block.Block; import net.minecraft.world.World; -import net.minecraftforge.oredict.OreDictionary; public class Rituals { @@ -14,7 +16,10 @@ public class Rituals private RitualEffect effect; private String name; - public static List ritualList = new ArrayList(); + public static Map ritualMap = new HashMap(); + @Deprecated + public static List ritualList = new LinkedList(); + public static List keyList = new LinkedList(); public Rituals(int crystalLevel, int actCost, RitualEffect effect, String name) { @@ -22,33 +27,75 @@ public class Rituals this.actCost = actCost; this.effect = effect; this.name = name; + keyList.add(name); + ritualMap.put(name, this); } - - public static int checkValidRitual(World world, int x, int y, int z) + + /** + * Static method to register a ritual to the Ritual Registry + * @param key Unique identification key - must be different from all others to properly register + * @param crystalLevel Crystal level required to activate + * @param actCost LP amount required to activate + * @param effect The effect that will be ticked + * @param name The name of the ritual + * @return Returns true if properly registered, or false if the key is already used + */ + public static boolean registerRitual(String key, int crystalLevel, int actCost, RitualEffect effect, String name) { - for (int i = 1; i <= ritualList.size(); i++) - { - if (checkRitualIsValid(world, x, y, z, i)) - { - return i; - } - } - - return 0; + if(ritualMap.containsKey(key)) + { + return false; + } + else + { + Rituals ritual = new Rituals(crystalLevel, actCost, effect, name); + ritual.removeRitualFromList(); + ritualMap.put(key, ritual); + keyList.add(key); + return true; + } } - - public static boolean canCrystalActivate(int ritual, int crystalLevel) + + public void removeRitualFromList() { - if (ritual <= ritualList.size()) - { - return ritualList.get(ritual - 1).crystalLevel <= crystalLevel; - } else - { - return false; - } + if(ritualMap.containsValue(this)) + { + ritualMap.remove(ritualMap.remove(this.name)); + } + if(keyList.contains(this.name)) + { + keyList.remove(this.name); + } } - public static boolean checkRitualIsValid(World world, int x, int y, int z, int ritualID) + public static String checkValidRitual(World world, int x, int y, int z) + { + for(String key : ritualMap.keySet()) + { + if(checkRitualIsValid(world,x,y,z,key)) + { + return key; + } + } + + return ""; + } + + public static boolean canCrystalActivate(String ritualID, int crystalLevel) + { + if(ritualMap.containsKey(ritualID)) + { + Rituals ritual = ritualMap.get(ritualID); + if(ritual != null) + { + return ritual.getCrystalLevel() <= crystalLevel; + } + } + + return false; + } + + public static boolean checkRitualIsValid(World world, int x, int y, int z, String ritualID) { int direction = Rituals.getDirectionOfRitual(world, x, y, z, ritualID); @@ -66,7 +113,7 @@ public class Rituals * 3 - SOUTH * 4 - WEST */ - public static boolean checkDirectionOfRitualValid(World world, int x, int y, int z, int ritualID, int direction) + public static boolean checkDirectionOfRitualValid(World world, int x, int y, int z, String ritualID, int direction) { List ritual = Rituals.getRitualList(ritualID); @@ -155,7 +202,7 @@ public class Rituals return false; } - public static int getDirectionOfRitual(World world, int x, int y, int z, int ritualID) + public static int getDirectionOfRitual(World world, int x, int y, int z, String ritualID) { for (int i = 1; i <= 4; i++) { @@ -168,42 +215,50 @@ public class Rituals return -1; } - public static int getCostForActivation(int ritualID) + public static int getCostForActivation(String ritualID) { - if (ritualID <= ritualList.size()) - { - return ritualList.get(ritualID - 1).actCost; - } else - { - return 0; - } + if(ritualMap.containsKey(ritualID)) + { + Rituals ritual = ritualMap.get(ritualID); + if(ritual != null) + { + return ritual.actCost; + } + } + + return 0; } - public static int getInitialCooldown(int ritualID) + public static int getInitialCooldown(String ritualID) { - if (ritualID <= ritualList.size()) - { - RitualEffect ef = ritualList.get(ritualID - 1).effect; - - if (ef != null) - { - OreDictionary d; - return ef.getInitialCooldown(); - } - } - - return 0; + if(ritualMap.containsKey(ritualID)) + { + Rituals ritual = ritualMap.get(ritualID); + if(ritual != null && ritual.effect != null) + { + return ritual.effect.getInitialCooldown(); + } + } + + return 0; } - public static List getRitualList(int ritualID) + public static List getRitualList(String ritualID) { - if (ritualID <= ritualList.size()) - { - return ritualList.get(ritualID - 1).obtainComponents(); - } else - { - return null; - } + if(ritualMap.containsKey(ritualID)) + { + Rituals ritual = ritualMap.get(ritualID); + if(ritual != null) + { + return ritual.obtainComponents(); + }else + { + return null; + } + }else + { + return null; + } } private List obtainComponents() @@ -216,22 +271,21 @@ public class Rituals return this.crystalLevel; } - public static void performEffect(IMasterRitualStone ritualStone, int ritualID) + public static void performEffect(IMasterRitualStone ritualStone, String ritualID) { - if (ritualID <= ritualList.size()) - { - RitualEffect ef = ritualList.get(ritualID - 1).effect; - - if (ef != null) - { - ef.performEffect(ritualStone); - } - } + if(ritualMap.containsKey(ritualID)) + { + Rituals ritual = ritualMap.get(ritualID); + if(ritual != null && ritual.effect != null) + { + ritual.effect.performEffect(ritualStone); + } + } } public static int getNumberOfRituals() { - return ritualList.size(); + return ritualMap.size(); } public String getRitualName() @@ -239,14 +293,41 @@ public class Rituals return this.name; } - public static String getNameOfRitual(int id) + public static String getNameOfRitual(String id) { - if (ritualList.get(id) != null) - { - return ritualList.get(id).getRitualName(); - } else - { - return ""; - } + if(ritualMap.containsKey(id)) + { + Rituals ritual = ritualMap.get(id); + if(ritual != null) + { + return ritual.getRitualName(); + } + } + + return ""; + } + + public static String getNextRitualKey(String key) + { + boolean hasSpotted = false; + String firstKey = ""; + + for(String str : keyList) + { + if(firstKey.equals("")) + { + firstKey = str; + } + if(hasSpotted) + { + return str; + } + if(str.equals(key)) + { + hasSpotted = true; + } + } + + return firstKey; } } diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/api/soulNetwork/LifeEssenceNetwork.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/api/soulNetwork/LifeEssenceNetwork.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/api/soulNetwork/LifeEssenceNetwork.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/api/soulNetwork/LifeEssenceNetwork.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/api/soulNetwork/SoulNetworkHandler.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/api/soulNetwork/SoulNetworkHandler.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/api/soulNetwork/SoulNetworkHandler.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/api/soulNetwork/SoulNetworkHandler.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/api/summoningRegistry/SummoningHelper.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/api/summoningRegistry/SummoningHelper.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/api/summoningRegistry/SummoningHelper.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/api/summoningRegistry/SummoningHelper.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/api/summoningRegistry/SummoningRegistry.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/api/summoningRegistry/SummoningRegistry.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/api/summoningRegistry/SummoningRegistry.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/api/summoningRegistry/SummoningRegistry.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/api/summoningRegistry/SummoningRegistryComponent.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/api/summoningRegistry/SummoningRegistryComponent.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/api/summoningRegistry/SummoningRegistryComponent.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/api/summoningRegistry/SummoningRegistryComponent.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/client/ClientProxy.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/client/ClientProxy.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/client/ClientProxy.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/client/ClientProxy.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/AlchemicalWizardryEventHooks.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/AlchemicalWizardryEventHooks.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/AlchemicalWizardryEventHooks.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/AlchemicalWizardryEventHooks.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/AlchemicalWizardryFuelHandler.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/AlchemicalWizardryFuelHandler.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/AlchemicalWizardryFuelHandler.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/AlchemicalWizardryFuelHandler.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/AlchemicalWizardryTickHandler.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/AlchemicalWizardryTickHandler.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/AlchemicalWizardryTickHandler.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/AlchemicalWizardryTickHandler.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/ArmourComponent.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/ArmourComponent.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/ArmourComponent.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/ArmourComponent.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/CommonProxy.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/CommonProxy.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/CommonProxy.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/CommonProxy.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/EntityAIFly.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/EntityAIFly.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/EntityAIFly.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/EntityAIFly.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/EntityAITargetAggro.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/EntityAITargetAggro.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/EntityAITargetAggro.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/EntityAITargetAggro.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/EntityAirElemental.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/EntityAirElemental.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/EntityAirElemental.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/EntityAirElemental.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/IBindingAgent.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/IBindingAgent.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/IBindingAgent.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/IBindingAgent.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/ICatalyst.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/ICatalyst.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/ICatalyst.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/ICatalyst.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/IDemon.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/IDemon.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/IDemon.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/IDemon.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/IFillingAgent.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/IFillingAgent.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/IFillingAgent.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/IFillingAgent.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/LifeBucketHandler.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/LifeBucketHandler.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/LifeBucketHandler.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/LifeBucketHandler.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/LifeEssence.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/LifeEssence.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/LifeEssence.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/LifeEssence.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/ModLivingDropsEvent.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/ModLivingDropsEvent.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/ModLivingDropsEvent.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/ModLivingDropsEvent.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/NewPacketHandler.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/NewPacketHandler.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/NewPacketHandler.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/NewPacketHandler.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/PacketHandler.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/PacketHandler.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/PacketHandler.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/PacketHandler.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/PlinthComponent.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/PlinthComponent.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/PlinthComponent.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/PlinthComponent.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/block/ArmourForge.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/ArmourForge.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/block/ArmourForge.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/ArmourForge.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/block/BlockAltar.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BlockAltar.java similarity index 90% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/block/BlockAltar.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BlockAltar.java index 829ee329..0cdb4272 100644 --- a/1.7.2/java/WayofTime/alchemicalWizardry/common/block/BlockAltar.java +++ b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BlockAltar.java @@ -106,7 +106,20 @@ public class BlockAltar extends BlockContainer } return true; - } else if (playerItem.getItem().equals(ModItems.sigilOfHolding)) + } + else if(playerItem.getItem().equals(ModItems.itemSeerSigil)) + { + if (player.worldObj.isRemote) + { + world.markBlockForUpdate(x, y, z); + }else + { + tileEntity.sendMoreChatInfoToPlayer(player); + } + + return true; + } + else if (playerItem.getItem().equals(ModItems.sigilOfHolding)) { ItemStack item = ((SigilOfHolding) playerItem.getItem()).getCurrentItem(playerItem); @@ -120,6 +133,18 @@ public class BlockAltar extends BlockContainer tileEntity.sendChatInfoToPlayer(player); } + return true; + } + else if(item !=null && item.getItem().equals(ModItems.itemSeerSigil)) + { + if (player.worldObj.isRemote) + { + world.markBlockForUpdate(x, y, z); + }else + { + tileEntity.sendMoreChatInfoToPlayer(player); + } + return true; } } diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/block/BlockBloodLightSource.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BlockBloodLightSource.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/block/BlockBloodLightSource.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BlockBloodLightSource.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/block/BlockConduit.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BlockConduit.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/block/BlockConduit.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BlockConduit.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/block/BlockHomHeart.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BlockHomHeart.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/block/BlockHomHeart.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BlockHomHeart.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/block/BlockMasterStone.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BlockMasterStone.java similarity index 99% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/block/BlockMasterStone.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BlockMasterStone.java index 97532b0f..da201c0c 100644 --- a/1.7.2/java/WayofTime/alchemicalWizardry/common/block/BlockMasterStone.java +++ b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BlockMasterStone.java @@ -59,7 +59,7 @@ public class BlockMasterStone extends BlockContainer ActivationCrystal acItem = (ActivationCrystal) item; tileEntity.setOwner(acItem.getOwnerName(playerItem)); - tileEntity.activateRitual(world, acItem.getCrystalLevel(playerItem)); + tileEntity.activateRitual(world, acItem.getCrystalLevel(playerItem), player); world.markBlockForUpdate(x, y, z); return true; } diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/block/BlockOrientable.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BlockOrientable.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/block/BlockOrientable.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BlockOrientable.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/block/BlockPedestal.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BlockPedestal.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/block/BlockPedestal.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BlockPedestal.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/block/BlockPlinth.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BlockPlinth.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/block/BlockPlinth.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BlockPlinth.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/block/BlockSocket.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BlockSocket.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/block/BlockSocket.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BlockSocket.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/block/BlockSpectralContainer.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BlockSpectralContainer.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/block/BlockSpectralContainer.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BlockSpectralContainer.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/block/BlockSpellEffect.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BlockSpellEffect.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/block/BlockSpellEffect.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BlockSpellEffect.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/block/BlockSpellEnhancement.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BlockSpellEnhancement.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/block/BlockSpellEnhancement.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BlockSpellEnhancement.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/block/BlockSpellModifier.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BlockSpellModifier.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/block/BlockSpellModifier.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BlockSpellModifier.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/block/BlockSpellParadigm.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BlockSpellParadigm.java similarity index 99% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/block/BlockSpellParadigm.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BlockSpellParadigm.java index 0f31468c..faadb7e8 100644 --- a/1.7.2/java/WayofTime/alchemicalWizardry/common/block/BlockSpellParadigm.java +++ b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BlockSpellParadigm.java @@ -62,6 +62,7 @@ public class BlockSpellParadigm extends BlockOrientable par3List.add(new ItemStack(par1, 1, 0)); par3List.add(new ItemStack(par1, 1, 1)); par3List.add(new ItemStack(par1, 1, 2)); + par3List.add(new ItemStack(par1, 1, 3)); } else { super.getSubBlocks(par1, par2CreativeTabs, par3List); diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/block/BlockTeleposer.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BlockTeleposer.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/block/BlockTeleposer.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BlockTeleposer.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/block/BlockWritingTable.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BlockWritingTable.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/block/BlockWritingTable.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BlockWritingTable.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/block/BloodRune.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BloodRune.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/block/BloodRune.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BloodRune.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/block/BloodStoneBrick.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BloodStoneBrick.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/block/BloodStoneBrick.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BloodStoneBrick.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/block/EfficiencyRune.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/EfficiencyRune.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/block/EfficiencyRune.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/EfficiencyRune.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/block/EmptySocket.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/EmptySocket.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/block/EmptySocket.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/EmptySocket.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/block/IOrientable.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/IOrientable.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/block/IOrientable.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/IOrientable.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/block/ImperfectRitualStone.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/ImperfectRitualStone.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/block/ImperfectRitualStone.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/ImperfectRitualStone.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/block/LargeBloodStoneBrick.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/LargeBloodStoneBrick.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/block/LargeBloodStoneBrick.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/LargeBloodStoneBrick.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/block/LifeEssenceBlock.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/LifeEssenceBlock.java similarity index 92% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/block/LifeEssenceBlock.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/LifeEssenceBlock.java index cf7fd838..ca5a6925 100644 --- a/1.7.2/java/WayofTime/alchemicalWizardry/common/block/LifeEssenceBlock.java +++ b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/LifeEssenceBlock.java @@ -16,6 +16,8 @@ public class LifeEssenceBlock extends BlockFluidClassic { super(AlchemicalWizardry.lifeEssenceFluid, Material.water); AlchemicalWizardry.lifeEssenceFluid.setBlock(this); + AlchemicalWizardry.lifeEssenceFluid.setFlowingIcon(blockIcon); + AlchemicalWizardry.lifeEssenceFluid.setStillIcon(blockIcon); //setCreativeTab(AlchemicalWizardry.tabBloodMagic); this.setBlockName("lifeEssenceFluidBlock"); } diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/block/RitualStone.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/RitualStone.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/block/RitualStone.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/RitualStone.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/block/RuneOfSacrifice.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/RuneOfSacrifice.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/block/RuneOfSacrifice.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/RuneOfSacrifice.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/block/RuneOfSelfSacrifice.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/RuneOfSelfSacrifice.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/block/RuneOfSelfSacrifice.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/RuneOfSelfSacrifice.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/block/SpectralBlock.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/SpectralBlock.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/block/SpectralBlock.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/SpectralBlock.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/block/SpeedRune.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/SpeedRune.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/block/SpeedRune.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/SpeedRune.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/bloodAltarUpgrade/AltarComponent.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/bloodAltarUpgrade/AltarComponent.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/bloodAltarUpgrade/AltarComponent.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/bloodAltarUpgrade/AltarComponent.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/bloodAltarUpgrade/AltarUpgradeComponent.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/bloodAltarUpgrade/AltarUpgradeComponent.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/bloodAltarUpgrade/AltarUpgradeComponent.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/bloodAltarUpgrade/AltarUpgradeComponent.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/bloodAltarUpgrade/UpgradedAltars.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/bloodAltarUpgrade/UpgradedAltars.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/bloodAltarUpgrade/UpgradedAltars.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/bloodAltarUpgrade/UpgradedAltars.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityBileDemon.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityBileDemon.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityBileDemon.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityBileDemon.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityBoulderFist.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityBoulderFist.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityBoulderFist.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityBoulderFist.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityDemon.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityDemon.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityDemon.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityDemon.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityEarthElemental.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityEarthElemental.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityEarthElemental.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityEarthElemental.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityElemental.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityElemental.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityElemental.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityElemental.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityFallenAngel.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityFallenAngel.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityFallenAngel.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityFallenAngel.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityFireElemental.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityFireElemental.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityFireElemental.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityFireElemental.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityHolyElemental.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityHolyElemental.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityHolyElemental.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityHolyElemental.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityIceDemon.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityIceDemon.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityIceDemon.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityIceDemon.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityLowerGuardian.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityLowerGuardian.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityLowerGuardian.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityLowerGuardian.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityShade.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityShade.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityShade.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityShade.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityShadeElemental.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityShadeElemental.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityShadeElemental.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityShadeElemental.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/entity/mob/EntitySmallEarthGolem.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntitySmallEarthGolem.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/entity/mob/EntitySmallEarthGolem.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntitySmallEarthGolem.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityWaterElemental.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityWaterElemental.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityWaterElemental.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityWaterElemental.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityWingedFireDemon.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityWingedFireDemon.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityWingedFireDemon.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityWingedFireDemon.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/entity/projectile/EnergyBlastProjectile.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/projectile/EnergyBlastProjectile.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/entity/projectile/EnergyBlastProjectile.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/projectile/EnergyBlastProjectile.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/entity/projectile/EntityBloodLightProjectile.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/projectile/EntityBloodLightProjectile.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/entity/projectile/EntityBloodLightProjectile.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/projectile/EntityBloodLightProjectile.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/entity/projectile/EntityEnergyBazookaMainProjectile.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/projectile/EntityEnergyBazookaMainProjectile.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/entity/projectile/EntityEnergyBazookaMainProjectile.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/projectile/EntityEnergyBazookaMainProjectile.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/entity/projectile/EntityEnergyBazookaSecondaryProjectile.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/projectile/EntityEnergyBazookaSecondaryProjectile.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/entity/projectile/EntityEnergyBazookaSecondaryProjectile.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/projectile/EntityEnergyBazookaSecondaryProjectile.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/entity/projectile/EntityMeteor.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/projectile/EntityMeteor.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/entity/projectile/EntityMeteor.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/projectile/EntityMeteor.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/entity/projectile/ExplosionProjectile.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/projectile/ExplosionProjectile.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/entity/projectile/ExplosionProjectile.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/projectile/ExplosionProjectile.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/entity/projectile/FireProjectile.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/projectile/FireProjectile.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/entity/projectile/FireProjectile.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/projectile/FireProjectile.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/entity/projectile/HolyProjectile.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/projectile/HolyProjectile.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/entity/projectile/HolyProjectile.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/projectile/HolyProjectile.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/entity/projectile/IceProjectile.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/projectile/IceProjectile.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/entity/projectile/IceProjectile.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/projectile/IceProjectile.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/entity/projectile/LightningBoltProjectile.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/projectile/LightningBoltProjectile.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/entity/projectile/LightningBoltProjectile.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/projectile/LightningBoltProjectile.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/entity/projectile/MudProjectile.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/projectile/MudProjectile.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/entity/projectile/MudProjectile.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/projectile/MudProjectile.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/entity/projectile/TeleportProjectile.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/projectile/TeleportProjectile.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/entity/projectile/TeleportProjectile.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/projectile/TeleportProjectile.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/entity/projectile/WaterProjectile.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/projectile/WaterProjectile.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/entity/projectile/WaterProjectile.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/projectile/WaterProjectile.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/entity/projectile/WindGustProjectile.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/projectile/WindGustProjectile.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/entity/projectile/WindGustProjectile.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/projectile/WindGustProjectile.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/items/AWBaseItems.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/AWBaseItems.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/items/AWBaseItems.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/AWBaseItems.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/items/ActivationCrystal.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/ActivationCrystal.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/items/ActivationCrystal.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/ActivationCrystal.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/items/AirScribeTool.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/AirScribeTool.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/items/AirScribeTool.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/AirScribeTool.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/items/ApprenticeBloodOrb.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/ApprenticeBloodOrb.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/items/ApprenticeBloodOrb.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/ApprenticeBloodOrb.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/items/ArchmageBloodOrb.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/ArchmageBloodOrb.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/items/ArchmageBloodOrb.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/ArchmageBloodOrb.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/items/ArmourInhibitor.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/ArmourInhibitor.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/items/ArmourInhibitor.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/ArmourInhibitor.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/items/BlankSpell.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/BlankSpell.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/items/BlankSpell.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/BlankSpell.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/items/BloodShard.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/BloodShard.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/items/BloodShard.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/BloodShard.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/items/BloodboundSword.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/BloodboundSword.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/items/BloodboundSword.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/BloodboundSword.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/items/BoundArmour.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/BoundArmour.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/items/BoundArmour.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/BoundArmour.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/items/BoundAxe.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/BoundAxe.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/items/BoundAxe.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/BoundAxe.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/items/BoundPickaxe.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/BoundPickaxe.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/items/BoundPickaxe.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/BoundPickaxe.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/items/BoundShovel.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/BoundShovel.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/items/BoundShovel.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/BoundShovel.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/items/CheatyItem.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/CheatyItem.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/items/CheatyItem.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/CheatyItem.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/items/DaggerOfSacrifice.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/DaggerOfSacrifice.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/items/DaggerOfSacrifice.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/DaggerOfSacrifice.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/items/DemonPlacer.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/DemonPlacer.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/items/DemonPlacer.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/DemonPlacer.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/items/DemonicTelepositionFocus.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/DemonicTelepositionFocus.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/items/DemonicTelepositionFocus.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/DemonicTelepositionFocus.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/items/DuskScribeTool.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/DuskScribeTool.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/items/DuskScribeTool.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/DuskScribeTool.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/items/EarthScribeTool.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/EarthScribeTool.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/items/EarthScribeTool.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/EarthScribeTool.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/items/EnergyBattery.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/EnergyBattery.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/items/EnergyBattery.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/EnergyBattery.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/items/EnergyBazooka.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/EnergyBazooka.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/items/EnergyBazooka.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/EnergyBazooka.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/items/EnergyBlast.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/EnergyBlast.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/items/EnergyBlast.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/EnergyBlast.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/items/EnergyItems.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/EnergyItems.java similarity index 99% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/items/EnergyItems.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/EnergyItems.java index 95de3aba..a82f268f 100644 --- a/1.7.2/java/WayofTime/alchemicalWizardry/common/items/EnergyItems.java +++ b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/EnergyItems.java @@ -269,7 +269,7 @@ public class EnergyItems extends Item implements IBindable if (MinecraftServer.getServer() == null) { - // + return; } World world = MinecraftServer.getServer().worldServers[0]; diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/items/EnergySword.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/EnergySword.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/items/EnergySword.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/EnergySword.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/items/EnhancedTelepositionFocus.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/EnhancedTelepositionFocus.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/items/EnhancedTelepositionFocus.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/EnhancedTelepositionFocus.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/items/FireScribeTool.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/FireScribeTool.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/items/FireScribeTool.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/FireScribeTool.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/items/ItemAlchemyBase.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/ItemAlchemyBase.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/items/ItemAlchemyBase.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/ItemAlchemyBase.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/items/ItemBloodRuneBlock.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/ItemBloodRuneBlock.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/items/ItemBloodRuneBlock.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/ItemBloodRuneBlock.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/items/ItemComplexSpellCrystal.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/ItemComplexSpellCrystal.java similarity index 97% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/items/ItemComplexSpellCrystal.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/ItemComplexSpellCrystal.java index f5cc3455..e2261961 100644 --- a/1.7.2/java/WayofTime/alchemicalWizardry/common/items/ItemComplexSpellCrystal.java +++ b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/ItemComplexSpellCrystal.java @@ -27,13 +27,13 @@ public class ItemComplexSpellCrystal extends EnergyItems @SideOnly(Side.CLIENT) public void registerIcons(IIconRegister iconRegister) { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:BlankSpell"); + this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:ComplexCrystal"); } @Override public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) { - par3List.add("Crystal of infinite possibilities."); + par3List.add("Crystal of unimaginable power"); if (!(par1ItemStack.stackTagCompound == null)) { diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/items/ItemComponents.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/ItemComponents.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/items/ItemComponents.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/ItemComponents.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/items/ItemDiabloKey.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/ItemDiabloKey.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/items/ItemDiabloKey.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/ItemDiabloKey.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/items/ItemRitualDiviner.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/ItemRitualDiviner.java similarity index 92% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/items/ItemRitualDiviner.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/ItemRitualDiviner.java index a640cee8..00d9c533 100644 --- a/1.7.2/java/WayofTime/alchemicalWizardry/common/items/ItemRitualDiviner.java +++ b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/ItemRitualDiviner.java @@ -58,11 +58,15 @@ public class ItemRitualDiviner extends EnergyItems if (!(par1ItemStack.stackTagCompound == null)) { - int ritualID = this.getCurrentRitual(par1ItemStack); + String ritualID = this.getCurrentRitual(par1ItemStack); //TODO par3List.add("Current owner: " + par1ItemStack.stackTagCompound.getString("ownerName")); - par3List.add("RitualID: " + (ritualID + 1)); - List ritualList = Rituals.getRitualList(this.getCurrentRitual(par1ItemStack) + 1); + par3List.add("RitualID: " + ritualID); + List ritualList = Rituals.getRitualList(this.getCurrentRitual(par1ItemStack)); + if(ritualList == null) + { + return; + } int blankStones = 0; int airStones = 0; @@ -116,7 +120,11 @@ public class ItemRitualDiviner extends EnergyItems { if (!(par1ItemStack.stackTagCompound == null)) { - int ritualID = this.getCurrentRitual(par1ItemStack); + String ritualID = this.getCurrentRitual(par1ItemStack); + if(ritualID.equals("")) + { + return super.getItemStackDisplayName(par1ItemStack); + } return "Ritual: " + Rituals.getNameOfRitual(ritualID); //par3List.add("Current owner: " + par1ItemStack.stackTagCompound.getString("ownerName")); } else @@ -135,7 +143,7 @@ public class ItemRitualDiviner extends EnergyItems if (tileEntity instanceof TEMasterStone) { TEMasterStone masterStone = (TEMasterStone) tileEntity; - List ritualList = Rituals.getRitualList(this.getCurrentRitual(par1ItemStack) + 1); + List ritualList = Rituals.getRitualList(this.getCurrentRitual(par1ItemStack)); int playerInvRitualStoneLocation = -1; for (int i = 0; i < playerInventory.length; i++) @@ -228,15 +236,9 @@ public class ItemRitualDiviner extends EnergyItems if (par3EntityPlayer.isSneaking()) { int maxRitualID = Rituals.getNumberOfRituals(); - int currentRitualID = this.getCurrentRitual(par1ItemStack); + String currentRitualID = this.getCurrentRitual(par1ItemStack); - if (currentRitualID + 1 >= maxRitualID) - { - this.setCurrentRitual(par1ItemStack, 0); - } else - { - this.setCurrentRitual(par1ItemStack, currentRitualID + 1); - } + this.setCurrentRitual(par1ItemStack, Rituals.getNextRitualKey(currentRitualID)); if (par2World.isRemote) { @@ -250,24 +252,24 @@ public class ItemRitualDiviner extends EnergyItems return par1ItemStack; } - public int getCurrentRitual(ItemStack par1ItemStack) + public String getCurrentRitual(ItemStack par1ItemStack) { if (par1ItemStack.stackTagCompound == null) { par1ItemStack.setTagCompound(new NBTTagCompound()); } - return par1ItemStack.stackTagCompound.getInteger("ritualID"); + return par1ItemStack.stackTagCompound.getString("ritualID"); } - public void setCurrentRitual(ItemStack par1ItemStack, int ritualID) + public void setCurrentRitual(ItemStack par1ItemStack, String ritualID) { if (par1ItemStack.stackTagCompound == null) { par1ItemStack.setTagCompound(new NBTTagCompound()); } - par1ItemStack.stackTagCompound.setInteger("ritualID", ritualID); + par1ItemStack.stackTagCompound.setString("ritualID", ritualID); } public int getMaxRuneDisplacement(ItemStack par1ItemStack) //0 indicates the starting 4 runes, 1 indicates it can use Dusk runes diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/items/ItemSpellEffectBlock.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/ItemSpellEffectBlock.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/items/ItemSpellEffectBlock.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/ItemSpellEffectBlock.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/items/ItemSpellEnhancementBlock.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/ItemSpellEnhancementBlock.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/items/ItemSpellEnhancementBlock.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/ItemSpellEnhancementBlock.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/items/ItemSpellModifierBlock.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/ItemSpellModifierBlock.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/items/ItemSpellModifierBlock.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/ItemSpellModifierBlock.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/items/ItemSpellParadigmBlock.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/ItemSpellParadigmBlock.java similarity index 92% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/items/ItemSpellParadigmBlock.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/ItemSpellParadigmBlock.java index 44cb8e57..5fb0b9e3 100644 --- a/1.7.2/java/WayofTime/alchemicalWizardry/common/items/ItemSpellParadigmBlock.java +++ b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/ItemSpellParadigmBlock.java @@ -38,6 +38,10 @@ public class ItemSpellParadigmBlock extends ItemBlock case 2: name = "melee"; break; + + case 3: + name = "tool"; + break; default: name = "broken"; diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/items/LavaCrystal.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/LavaCrystal.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/items/LavaCrystal.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/LavaCrystal.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/items/LifeBucket.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/LifeBucket.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/items/LifeBucket.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/LifeBucket.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/items/MagicianBloodOrb.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/MagicianBloodOrb.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/items/MagicianBloodOrb.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/MagicianBloodOrb.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/items/MasterBloodOrb.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/MasterBloodOrb.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/items/MasterBloodOrb.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/MasterBloodOrb.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/items/OrbOfTesting.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/OrbOfTesting.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/items/OrbOfTesting.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/OrbOfTesting.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/items/ReinforcedTelepositionFocus.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/ReinforcedTelepositionFocus.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/items/ReinforcedTelepositionFocus.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/ReinforcedTelepositionFocus.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/items/SacrificialDagger.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/SacrificialDagger.java similarity index 98% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/items/SacrificialDagger.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/SacrificialDagger.java index 9282ff57..98a41bfd 100644 --- a/1.7.2/java/WayofTime/alchemicalWizardry/common/items/SacrificialDagger.java +++ b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/SacrificialDagger.java @@ -84,7 +84,7 @@ public class SacrificialDagger extends Item findAndFillAltar(par2World, par3EntityPlayer, 200); - if (par3EntityPlayer.getHealth() <= 0.5f) + if (par3EntityPlayer.getHealth() <= 0.001f) { //par3EntityPlayer.inventory.dropAllItems(); par3EntityPlayer.onDeath(DamageSource.generic); diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/items/ScribeTool.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/ScribeTool.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/items/ScribeTool.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/ScribeTool.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/items/TelepositionFocus.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/TelepositionFocus.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/items/TelepositionFocus.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/TelepositionFocus.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/items/WaterScribeTool.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/WaterScribeTool.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/items/WaterScribeTool.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/WaterScribeTool.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/items/forestry/ItemBloodFrame.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/forestry/ItemBloodFrame.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/items/forestry/ItemBloodFrame.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/forestry/ItemBloodFrame.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/items/potion/AlchemyFlask.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/potion/AlchemyFlask.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/items/potion/AlchemyFlask.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/potion/AlchemyFlask.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/items/potion/AlchemyReagent.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/potion/AlchemyReagent.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/items/potion/AlchemyReagent.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/potion/AlchemyReagent.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/items/potion/AverageLengtheningCatalyst.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/potion/AverageLengtheningCatalyst.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/items/potion/AverageLengtheningCatalyst.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/potion/AverageLengtheningCatalyst.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/items/potion/AveragePowerCatalyst.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/potion/AveragePowerCatalyst.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/items/potion/AveragePowerCatalyst.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/potion/AveragePowerCatalyst.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/items/potion/EnhancedFillingAgent.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/potion/EnhancedFillingAgent.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/items/potion/EnhancedFillingAgent.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/potion/EnhancedFillingAgent.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/items/potion/GreaterLengtheningCatalyst.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/potion/GreaterLengtheningCatalyst.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/items/potion/GreaterLengtheningCatalyst.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/potion/GreaterLengtheningCatalyst.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/items/potion/GreaterPowerCatalyst.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/potion/GreaterPowerCatalyst.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/items/potion/GreaterPowerCatalyst.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/potion/GreaterPowerCatalyst.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/items/potion/LengtheningCatalyst.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/potion/LengtheningCatalyst.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/items/potion/LengtheningCatalyst.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/potion/LengtheningCatalyst.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/items/potion/MundaneLengtheningCatalyst.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/potion/MundaneLengtheningCatalyst.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/items/potion/MundaneLengtheningCatalyst.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/potion/MundaneLengtheningCatalyst.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/items/potion/MundanePowerCatalyst.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/potion/MundanePowerCatalyst.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/items/potion/MundanePowerCatalyst.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/potion/MundanePowerCatalyst.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/items/potion/PowerCatalyst.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/potion/PowerCatalyst.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/items/potion/PowerCatalyst.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/potion/PowerCatalyst.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/items/potion/StandardBindingAgent.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/potion/StandardBindingAgent.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/items/potion/StandardBindingAgent.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/potion/StandardBindingAgent.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/items/potion/StandardFillingAgent.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/potion/StandardFillingAgent.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/items/potion/StandardFillingAgent.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/potion/StandardFillingAgent.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/items/potion/WeakBindingAgent.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/potion/WeakBindingAgent.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/items/potion/WeakBindingAgent.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/potion/WeakBindingAgent.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/items/potion/WeakFillingAgent.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/potion/WeakFillingAgent.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/items/potion/WeakFillingAgent.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/potion/WeakFillingAgent.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/items/sigil/AirSigil.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/sigil/AirSigil.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/items/sigil/AirSigil.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/sigil/AirSigil.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/items/sigil/DivinationSigil.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/sigil/DivinationSigil.java similarity index 99% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/items/sigil/DivinationSigil.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/sigil/DivinationSigil.java index 393bcd57..a5d61a79 100644 --- a/1.7.2/java/WayofTime/alchemicalWizardry/common/items/sigil/DivinationSigil.java +++ b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/sigil/DivinationSigil.java @@ -77,7 +77,7 @@ public class DivinationSigil extends Item implements ArmourUpgrade public void onArmourUpdate(World world, EntityPlayer player, ItemStack thisItemStack) { // TODO Auto-generated method stub - player.addPotionEffect(new PotionEffect(Potion.nightVision.id, 400, 9)); + player.addPotionEffect(new PotionEffect(Potion.nightVision.id, 400, 9,true)); } @Override diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/items/sigil/ItemBloodLightSigil.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/sigil/ItemBloodLightSigil.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/items/sigil/ItemBloodLightSigil.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/sigil/ItemBloodLightSigil.java diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/sigil/ItemFluidSigil.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/sigil/ItemFluidSigil.java new file mode 100644 index 00000000..fd8931f4 --- /dev/null +++ b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/sigil/ItemFluidSigil.java @@ -0,0 +1,597 @@ +package WayofTime.alchemicalWizardry.common.items.sigil; + +import java.util.List; + +import net.minecraft.block.Block; +import net.minecraft.block.material.MaterialLiquid; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.MovingObjectPosition; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; +import net.minecraftforge.fluids.Fluid; +import net.minecraftforge.fluids.FluidRegistry; +import net.minecraftforge.fluids.FluidStack; +import net.minecraftforge.fluids.IFluidContainerItem; +import net.minecraftforge.fluids.IFluidHandler; +import WayofTime.alchemicalWizardry.AlchemicalWizardry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + +public class ItemFluidSigil extends Item implements IFluidContainerItem +{ + private int capacity = 128 * 1000; + private static final int STATE_SYPHON = 0; + private static final int STATE_FORCE_SYPHON = 1; + private static final int STATE_PLACE = 2; + private static final int STATE_INPUT_TANK = 3; + private static final int STATE_DRAIN_TANK = 4; + private static final int maxNumOfStates = 5; + + public ItemFluidSigil() + { + super(); + this.setMaxDamage(0); + this.setMaxStackSize(1); + setCreativeTab(AlchemicalWizardry.tabBloodMagic); + } + + @Override + public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) + { + par3List.add("A sigil with a lovely affinity for fluids"); + + if (!(par1ItemStack.stackTagCompound == null)) + { + //par3List.add("Current owner: " + par1ItemStack.stackTagCompound.getString("ownerName")); + + switch(this.getActionState(par1ItemStack)) + { + case STATE_SYPHON: + par3List.add("Syphoning Mode"); + break; + case STATE_FORCE_SYPHON: + par3List.add("Force-syphon Mode"); + break; + case STATE_PLACE: + par3List.add("Fluid Placement Mode"); + break; + case STATE_INPUT_TANK: + par3List.add("Fill Tank Mode"); + break; + case STATE_DRAIN_TANK: + par3List.add("Drain Tank Mode"); + break; + } + + FluidStack fluid = this.getFluid(par1ItemStack); + if(fluid!=null && fluid.amount>0) + { + String str = fluid.getFluid().getName(); + int amount = fluid.amount; + + par3List.add("" + amount + "mB of " + str); + }else + { + par3List.add("Empty"); + } + } + } + + @Override + @SideOnly(Side.CLIENT) + public void registerIcons(IIconRegister iconRegister) + { + this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:WaterSigil"); + } + + @Override + public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) + { + if(par3EntityPlayer.isSneaking()) + { + int curState = this.cycleActionState(par1ItemStack); + this.sendMessageViaState(curState, par3EntityPlayer); + return par1ItemStack; + } + +// if(par2World.isRemote) +// { +// return par1ItemStack; +// } + + switch(this.getActionState(par1ItemStack)) + { + case STATE_SYPHON: + return this.fillItemFromWorld(par1ItemStack, par2World, par3EntityPlayer,false); + case STATE_FORCE_SYPHON: + return this.fillItemFromWorld(par1ItemStack, par2World, par3EntityPlayer,true); + case STATE_PLACE: + return this.emptyItemToWorld(par1ItemStack, par2World, par3EntityPlayer); + case STATE_INPUT_TANK: + return this.fillSelectedTank(par1ItemStack, par2World, par3EntityPlayer); + case STATE_DRAIN_TANK: + return this.drainSelectedTank(par1ItemStack, par2World, par3EntityPlayer); + } + + return par1ItemStack; + } + + public int getActionState(ItemStack item) + { + if (item.stackTagCompound == null) + { + item.setTagCompound(new NBTTagCompound()); + } + + return item.stackTagCompound.getInteger("actionState"); + } + + public void setActionState(ItemStack item, int actionState) + { + if (item.stackTagCompound == null) + { + item.setTagCompound(new NBTTagCompound()); + } + + item.stackTagCompound.setInteger("actionState", actionState); + } + + public int cycleActionState(ItemStack item) + { + int state = this.getActionState(item); + + state++; + + if(state>=maxNumOfStates) + { + state = 0; + } + + this.setActionState(item, state); + + return state; + } + + public void sendMessageViaState(int state, EntityPlayer player) + { + if(player.worldObj.isRemote) + { + ChatComponentText cmc = new ChatComponentText(""); + switch(state) + { + case STATE_SYPHON: + cmc.appendText("Now in Syphoning Mode"); + break; + case STATE_FORCE_SYPHON: + cmc.appendText("Now in Force-syphon Mode"); + break; + case STATE_PLACE: + cmc.appendText("Now in Fluid Placement Mode"); + break; + case STATE_INPUT_TANK: + cmc.appendText("Now in Fill Tank Mode"); + break; + case STATE_DRAIN_TANK: + cmc.appendText("Now in Drain Tank Mode"); + break; + } + player.addChatComponentMessage(cmc); + } + } + + public ItemStack fillItemFromWorld(ItemStack container, World world, EntityPlayer player, boolean forceFill) + { + float f = 1.0F; + double d0 = player.prevPosX + (player.posX - player.prevPosX) * (double)f; + double d1 = player.prevPosY + (player.posY - player.prevPosY) * (double)f + 1.62D - (double)player.yOffset; + double d2 = player.prevPosZ + (player.posZ - player.prevPosZ) * (double)f; + boolean flag = true; + MovingObjectPosition movingobjectposition = this.getMovingObjectPositionFromPlayer(world, player, flag); + + if (movingobjectposition == null) + { + return container; + } + else + { + if (movingobjectposition.typeOfHit == MovingObjectPosition.MovingObjectType.BLOCK) + { + int i = movingobjectposition.blockX; + int j = movingobjectposition.blockY; + int k = movingobjectposition.blockZ; + + if (!world.canMineBlock(player, i, j, k)) + { + return container; + } + + if (!player.canPlayerEdit(i, j, k, movingobjectposition.sideHit, container)) + { + return container; + } + + if (world.getBlock(i, j, k) != null && world.getBlock(i, j, k).getMaterial() instanceof MaterialLiquid) + { + Block block = world.getBlock(i, j, k); + Fluid fluid = FluidRegistry.lookupFluidForBlock(block); + + if(fluid==null) + { + return container; + } + + FluidStack fillStack = new FluidStack(fluid,1000); + + int amount = this.fill(container, fillStack, false); + + if((amount > 0 && forceFill) || (amount >=1000 && !forceFill)) + { + if(!player.capabilities.isCreativeMode) + { + world.setBlockToAir(i, j, k); + } + + this.fill(container, new FluidStack(fluid,1000), true); + + if (!player.capabilities.isCreativeMode) + { +// if (!EnergyItems.syphonBatteries(container, player, getEnergyUsed())) +// { +// } + } + else + { + return container; + } + } + } + } + + return container; + } + } + + public ItemStack emptyItemToWorld(ItemStack container, World world, EntityPlayer player) + { + FluidStack simStack = this.drain(container, 1000, false); + + if(simStack!=null && simStack.amount>=1000) + { + Block fluidBlock = simStack.getFluid().getBlock(); + + float f = 1.0F; + double d0 = player.prevPosX + (player.posX - player.prevPosX) * (double)f; + double d1 = player.prevPosY + (player.posY - player.prevPosY) * (double)f + 1.62D - (double)player.yOffset; + double d2 = player.prevPosZ + (player.posZ - player.prevPosZ) * (double)f; + boolean flag = false; + MovingObjectPosition movingobjectposition = this.getMovingObjectPositionFromPlayer(world, player, flag); + + if (movingobjectposition == null) + { + return container; + } + else + { + if (movingobjectposition.typeOfHit == MovingObjectPosition.MovingObjectType.BLOCK) + { + int i = movingobjectposition.blockX; + int j = movingobjectposition.blockY; + int k = movingobjectposition.blockZ; + + if (!world.canMineBlock(player, i, j, k)) + { + return container; + } + + if (movingobjectposition.sideHit == 0) + { + --j; + } + + if (movingobjectposition.sideHit == 1) + { + ++j; + } + + if (movingobjectposition.sideHit == 2) + { + --k; + } + + if (movingobjectposition.sideHit == 3) + { + ++k; + } + + if (movingobjectposition.sideHit == 4) + { + --i; + } + + if (movingobjectposition.sideHit == 5) + { + ++i; + } + + if (!player.canPlayerEdit(i, j, k, movingobjectposition.sideHit, container)) + { + return container; + } + + if (this.tryPlaceContainedLiquid(world, fluidBlock, d0, d1, d2, i, j, k) && !player.capabilities.isCreativeMode) + { + this.drain(container, 1000, true); + + return container; + } + + } + + return container; + } + } + + return container; + } + + public boolean tryPlaceContainedLiquid(World par1World, Block block, double par2, double par4, double par6, int par8, int par9, int par10) + { + if (!par1World.isAirBlock(par8, par9, par10) && par1World.getBlock(par8, par9, par10).func_149730_j()) + { + return false; + } + else if ((par1World.getBlock(par8, par9, par10).getMaterial() instanceof MaterialLiquid && (par1World.getBlockMetadata(par8, par9, par10) == 0))) + { + return false; + } + else + { + if ((block == Blocks.water || block == Blocks.flowing_water) && par1World.provider.isHellWorld) + { + par1World.playSoundEffect(par2 + 0.5D, par4 + 0.5D, par6 + 0.5D, "random.fizz", 0.5F, 2.6F + (par1World.rand.nextFloat() - par1World.rand.nextFloat()) * 0.8F); + + for (int l = 0; l < 8; ++l) + { + par1World.spawnParticle("largesmoke", (double)par8 + Math.random(), (double)par9 + Math.random(), (double)par10 + Math.random(), 0.0D, 0.0D, 0.0D); + } + } + else + { + par1World.setBlock(par8, par9, par10, block, 0, 3); + } + + return true; + } + } + + public ItemStack fillSelectedTank(ItemStack container, World world, EntityPlayer player) + { + FluidStack fluid = this.getFluid(container); + + if(fluid == null) + { + return container; + } + + float f = 1.0F; + double d0 = player.prevPosX + (player.posX - player.prevPosX) * (double)f; + double d1 = player.prevPosY + (player.posY - player.prevPosY) * (double)f + 1.62D - (double)player.yOffset; + double d2 = player.prevPosZ + (player.posZ - player.prevPosZ) * (double)f; + boolean flag = false; + MovingObjectPosition movingobjectposition = this.getMovingObjectPositionFromPlayer(world, player, flag); + + if (movingobjectposition == null) + { + return container; + } + else + { + if (movingobjectposition.typeOfHit == MovingObjectPosition.MovingObjectType.BLOCK) + { + int i = movingobjectposition.blockX; + int j = movingobjectposition.blockY; + int k = movingobjectposition.blockZ; + + TileEntity tile = world.getTileEntity(i, j, k); + + if(tile instanceof IFluidHandler) + { + int amount = ((IFluidHandler) tile).fill(ForgeDirection.getOrientation(movingobjectposition.sideHit), fluid, true); + + this.drain(container, amount, true); + } + } + } + + return container; + } + + public ItemStack drainSelectedTank(ItemStack container, World world, EntityPlayer player) + { + float f = 1.0F; + double d0 = player.prevPosX + (player.posX - player.prevPosX) * (double)f; + double d1 = player.prevPosY + (player.posY - player.prevPosY) * (double)f + 1.62D - (double)player.yOffset; + double d2 = player.prevPosZ + (player.posZ - player.prevPosZ) * (double)f; + boolean flag = false; + MovingObjectPosition movingobjectposition = this.getMovingObjectPositionFromPlayer(world, player, flag); + + if (movingobjectposition == null) + { + return container; + } + else + { + if (movingobjectposition.typeOfHit == MovingObjectPosition.MovingObjectType.BLOCK) + { + int i = movingobjectposition.blockX; + int j = movingobjectposition.blockY; + int k = movingobjectposition.blockZ; + + TileEntity tile = world.getTileEntity(i, j, k); + + if(tile instanceof IFluidHandler) + { + FluidStack fluidAmount = ((IFluidHandler) tile).drain(ForgeDirection.getOrientation(movingobjectposition.sideHit), this.getCapacity(container), false); + + int amount = this.fill(container, fluidAmount, false); + + if(amount>0) + { + ((IFluidHandler) tile).drain(ForgeDirection.getOrientation(movingobjectposition.sideHit), this.getCapacity(container), true); + + this.fill(container, fluidAmount, true); + } + } + } + } + + return container; + } + + /* IFluidContainerItem */ + @Override + public FluidStack getFluid(ItemStack container) + { + if (container.stackTagCompound == null || !container.stackTagCompound.hasKey("Fluid")) + { + return null; + } + return FluidStack.loadFluidStackFromNBT(container.stackTagCompound.getCompoundTag("Fluid")); + } + + @Override + public int getCapacity(ItemStack container) + { + return capacity; + } + + @Override + public int fill(ItemStack container, FluidStack resource, boolean doFill) + { + if (resource == null) + { + return 0; + } + + if (!doFill) + { + if (container.stackTagCompound == null || !container.stackTagCompound.hasKey("Fluid")) + { + return Math.min(capacity, resource.amount); + } + + FluidStack stack = FluidStack.loadFluidStackFromNBT(container.stackTagCompound.getCompoundTag("Fluid")); + + if (stack == null || stack.amount <= 0) + { + return Math.min(capacity, resource.amount); + } + + if (!stack.isFluidEqual(resource)) + { + return 0; + } + + return Math.min(capacity - stack.amount, resource.amount); + } + + if (container.stackTagCompound == null) + { + container.stackTagCompound = new NBTTagCompound(); + } + + if (!container.stackTagCompound.hasKey("Fluid")) + { + NBTTagCompound fluidTag = resource.writeToNBT(new NBTTagCompound()); + + if (capacity < resource.amount) + { + fluidTag.setInteger("Amount", capacity); + container.stackTagCompound.setTag("Fluid", fluidTag); + return capacity; + } + + container.stackTagCompound.setTag("Fluid", fluidTag); + return resource.amount; + } + + NBTTagCompound fluidTag = container.stackTagCompound.getCompoundTag("Fluid"); + FluidStack stack = FluidStack.loadFluidStackFromNBT(fluidTag); + + if(stack==null || stack.amount<=0) + { + NBTTagCompound fluidTag1 = resource.writeToNBT(new NBTTagCompound()); + + if (capacity < resource.amount) + { + fluidTag1.setInteger("Amount", capacity); + container.stackTagCompound.setTag("Fluid", fluidTag1); + return capacity; + } + + container.stackTagCompound.setTag("Fluid", fluidTag1); + return resource.amount; + } + + if (!stack.isFluidEqual(resource)) + { + return 0; + } + + int filled = capacity - stack.amount; + if (resource.amount < filled) + { + stack.amount += resource.amount; + filled = resource.amount; + } + else + { + stack.amount = capacity; + } + + container.stackTagCompound.setTag("Fluid", stack.writeToNBT(fluidTag)); + return filled; + } + + @Override + public FluidStack drain(ItemStack container, int maxDrain, boolean doDrain) + { + if (container.stackTagCompound == null || !container.stackTagCompound.hasKey("Fluid")) + { + return null; + } + + FluidStack stack = FluidStack.loadFluidStackFromNBT(container.stackTagCompound.getCompoundTag("Fluid")); + if (stack == null) + { + return null; + } + + stack.amount = Math.min(stack.amount, maxDrain); + if (doDrain) + { + if (maxDrain >= capacity) + { + container.stackTagCompound.removeTag("Fluid"); + + if (container.stackTagCompound.hasNoTags()) + { + container.stackTagCompound = null; + } + return stack; + } + + NBTTagCompound fluidTag = container.stackTagCompound.getCompoundTag("Fluid"); + fluidTag.setInteger("Amount", fluidTag.getInteger("Amount") - maxDrain); + container.stackTagCompound.setTag("Fluid", fluidTag); + } + return stack; + } +} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/sigil/ItemSeerSigil.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/sigil/ItemSeerSigil.java new file mode 100644 index 00000000..827a3244 --- /dev/null +++ b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/sigil/ItemSeerSigil.java @@ -0,0 +1,67 @@ +package WayofTime.alchemicalWizardry.common.items.sigil; + +import java.util.List; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.world.World; +import WayofTime.alchemicalWizardry.AlchemicalWizardry; +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 ItemSeerSigil extends Item implements IHolding +{ + public ItemSeerSigil() + { + super(); + this.maxStackSize = 1; + setCreativeTab(AlchemicalWizardry.tabBloodMagic); + } + + @Override + @SideOnly(Side.CLIENT) + public void registerIcons(IIconRegister iconRegister) + { + this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:SeerSigil"); + } + + @Override + public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) + { + par3List.add("When seeing all is not enough"); + + if (!(par1ItemStack.stackTagCompound == null)) + { + par3List.add("Current owner: " + par1ItemStack.stackTagCompound.getString("ownerName")); + } + } + + @Override + public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) + { + EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); + + if (par3EntityPlayer.worldObj.isRemote) + { + return par1ItemStack; + } + + NBTTagCompound itemTag = par1ItemStack.stackTagCompound; + + if (itemTag == null || itemTag.getString("ownerName").equals("")) + { + return par1ItemStack; + } + + String ownerName = itemTag.getString("ownerName"); + + return par1ItemStack; + } +} diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/items/sigil/ItemSigilOfEnderSeverance.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/sigil/ItemSigilOfEnderSeverance.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/items/sigil/ItemSigilOfEnderSeverance.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/sigil/ItemSigilOfEnderSeverance.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/items/sigil/ItemSigilOfSupression.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/sigil/ItemSigilOfSupression.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/items/sigil/ItemSigilOfSupression.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/sigil/ItemSigilOfSupression.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/items/sigil/LavaSigil.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/sigil/LavaSigil.java similarity index 88% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/items/sigil/LavaSigil.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/sigil/LavaSigil.java index 69d26007..75028002 100644 --- a/1.7.2/java/WayofTime/alchemicalWizardry/common/items/sigil/LavaSigil.java +++ b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/sigil/LavaSigil.java @@ -11,8 +11,13 @@ import net.minecraft.item.ItemBucket; import net.minecraft.item.ItemStack; import net.minecraft.potion.Potion; import net.minecraft.potion.PotionEffect; +import net.minecraft.tileentity.TileEntity; import net.minecraft.util.MovingObjectPosition; import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; +import net.minecraftforge.fluids.FluidRegistry; +import net.minecraftforge.fluids.FluidStack; +import net.minecraftforge.fluids.IFluidHandler; import WayofTime.alchemicalWizardry.AlchemicalWizardry; import WayofTime.alchemicalWizardry.api.items.interfaces.ArmourUpgrade; import WayofTime.alchemicalWizardry.common.items.EnergyBattery; @@ -99,6 +104,26 @@ public class LavaSigil extends ItemBucket implements ArmourUpgrade { return par1ItemStack; } + + TileEntity tile = par2World.getTileEntity(i, j, k); + if(tile instanceof IFluidHandler) + { + FluidStack fluid = new FluidStack(FluidRegistry.LAVA,1000); + int amount = ((IFluidHandler) tile).fill(ForgeDirection.getOrientation(movingobjectposition.sideHit), fluid, false); + + if(amount>0) + { + ((IFluidHandler) tile).fill(ForgeDirection.getOrientation(movingobjectposition.sideHit), fluid, true); + if (!par3EntityPlayer.capabilities.isCreativeMode) + { + if (!EnergyItems.syphonBatteries(par1ItemStack, par3EntityPlayer, getEnergyUsed())) + { + } + } + } + + return par1ItemStack; + } //if (this.isFull == 0) { @@ -265,7 +290,7 @@ public class LavaSigil extends ItemBucket implements ArmourUpgrade ItemStack thisItemStack) { // TODO Auto-generated method stub - player.addPotionEffect(new PotionEffect(Potion.fireResistance.id, 2, 9)); + player.addPotionEffect(new PotionEffect(Potion.fireResistance.id, 2, 9,true)); player.extinguish(); } diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfElementalAffinity.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfElementalAffinity.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfElementalAffinity.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfElementalAffinity.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfGrowth.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfGrowth.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfGrowth.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfGrowth.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfHaste.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfHaste.java similarity index 99% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfHaste.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfHaste.java index 0ae157d9..2aecbf25 100644 --- a/1.7.2/java/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfHaste.java +++ b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfHaste.java @@ -179,7 +179,7 @@ public class SigilOfHaste extends EnergyItems implements ArmourUpgrade itemStack.setTagCompound(new NBTTagCompound()); } - player.addPotionEffect(new PotionEffect(AlchemicalWizardry.customPotionBoost.id, 3, 1)); + player.addPotionEffect(new PotionEffect(AlchemicalWizardry.customPotionBoost.id, 3, 1,true)); } @Override diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfHolding.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfHolding.java similarity index 99% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfHolding.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfHolding.java index 1e3d9af8..03b1f730 100644 --- a/1.7.2/java/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfHolding.java +++ b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfHolding.java @@ -152,6 +152,7 @@ public class SigilOfHolding extends EnergyItems if (itemTag == null) { itemStack.setTagCompound(new NBTTagCompound()); + return null; } ItemStack[] inv = new ItemStack[9]; diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfMagnetism.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfMagnetism.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfMagnetism.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfMagnetism.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfTheBridge.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfTheBridge.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfTheBridge.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfTheBridge.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfTheFastMiner.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfTheFastMiner.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfTheFastMiner.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfTheFastMiner.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfWind.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfWind.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfWind.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfWind.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/items/sigil/VoidSigil.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/sigil/VoidSigil.java similarity index 71% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/items/sigil/VoidSigil.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/sigil/VoidSigil.java index 6b73fc03..54695d21 100644 --- a/1.7.2/java/WayofTime/alchemicalWizardry/common/items/sigil/VoidSigil.java +++ b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/sigil/VoidSigil.java @@ -9,10 +9,15 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemBucket; import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; import net.minecraft.util.MovingObjectPosition; import net.minecraft.world.World; import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.event.entity.player.FillBucketEvent; +import net.minecraftforge.fluids.FluidRegistry; +import net.minecraftforge.fluids.FluidStack; +import net.minecraftforge.fluids.IFluidHandler; import WayofTime.alchemicalWizardry.AlchemicalWizardry; import WayofTime.alchemicalWizardry.api.items.interfaces.ArmourUpgrade; import WayofTime.alchemicalWizardry.common.items.EnergyBattery; @@ -72,74 +77,6 @@ public class VoidSigil extends ItemBucket implements ArmourUpgrade return this.energyUsed; } - // protected void damagePlayer(World world, EntityPlayer player, int damage) -// { -// if (world != null) -// { -// double posX = player.posX; -// double posY = player.posY; -// double posZ = player.posZ; -// world.playSoundEffect((double)((float)posX + 0.5F), (double)((float)posY + 0.5F), (double)((float)posZ + 0.5F), "random.fizz", 0.5F, 2.6F + (world.rand.nextFloat() - world.rand.nextFloat()) * 0.8F); -// float f = (float)1.0F; -// float f1 = f * 0.6F + 0.4F; -// float f2 = f * f * 0.7F - 0.5F; -// float f3 = f * f * 0.6F - 0.7F; -// -// for (int l = 0; l < 8; ++l) -// { -// world.spawnParticle("reddust", posX + Math.random() - Math.random(), posY + Math.random() - Math.random(), posZ + Math.random() - Math.random(), f1, f2, f3); -// } -// } -// -// for (int i = 0; i < damage; i++) -// { -// //player.setEntityHealth((player.getHealth()-1)); -// player.setEntityHealth(player.func_110143_aJ() - 1); -// } -// -// if (player.func_110143_aJ() <= 0) -// { -// player.inventory.dropAllItems(); -// } -// } - protected boolean syphonBatteries(ItemStack ist, EntityPlayer player, int damageToBeDone) - { - if (!player.capabilities.isCreativeMode) - { - boolean usedBattery = false; - IInventory inventory = player.inventory; - - for (int slot = 0; slot < inventory.getSizeInventory(); slot++) - { - ItemStack stack = inventory.getStackInSlot(slot); - - if (stack == null) - { - continue; - } - - if (stack.getItem() instanceof EnergyBattery && !usedBattery) - { - if (stack.getItemDamage() <= stack.getMaxDamage() - damageToBeDone) - { - stack.setItemDamage(stack.getItemDamage() + damageToBeDone); - usedBattery = true; - } - } - } - - if (!usedBattery) - { - return false; - } - - return true; - } else - { - return true; - } - } - @Override public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) { @@ -179,6 +116,25 @@ public class VoidSigil extends ItemBucket implements ArmourUpgrade { return par1ItemStack; } + + TileEntity tile = par2World.getTileEntity(i, j, k); + if(tile instanceof IFluidHandler) + { + FluidStack amount = ((IFluidHandler) tile).drain(ForgeDirection.getOrientation(movingobjectposition.sideHit), 1000, false); + + if(amount != null && amount.amount > 0) + { + ((IFluidHandler) tile).drain(ForgeDirection.getOrientation(movingobjectposition.sideHit), 1000, true); + if (!par3EntityPlayer.capabilities.isCreativeMode) + { + if (!EnergyItems.syphonBatteries(par1ItemStack, par3EntityPlayer, getEnergyUsed())) + { + } + } + } + + return par1ItemStack; + } if (this.isFull == 0) { diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/items/sigil/WaterSigil.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/sigil/WaterSigil.java similarity index 88% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/items/sigil/WaterSigil.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/sigil/WaterSigil.java index ef4d1672..e8378c7a 100644 --- a/1.7.2/java/WayofTime/alchemicalWizardry/common/items/sigil/WaterSigil.java +++ b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/sigil/WaterSigil.java @@ -11,8 +11,13 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.potion.Potion; import net.minecraft.potion.PotionEffect; +import net.minecraft.tileentity.TileEntity; import net.minecraft.util.MovingObjectPosition; import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; +import net.minecraftforge.fluids.FluidRegistry; +import net.minecraftforge.fluids.FluidStack; +import net.minecraftforge.fluids.IFluidHandler; import WayofTime.alchemicalWizardry.AlchemicalWizardry; import WayofTime.alchemicalWizardry.api.items.interfaces.ArmourUpgrade; import WayofTime.alchemicalWizardry.common.items.EnergyItems; @@ -106,7 +111,26 @@ public class WaterSigil extends ItemBucket implements ArmourUpgrade { return par1ItemStack; } - + + TileEntity tile = par2World.getTileEntity(i, j, k); + if(tile instanceof IFluidHandler) + { + FluidStack fluid = new FluidStack(FluidRegistry.WATER,1000); + int amount = ((IFluidHandler) tile).fill(ForgeDirection.getOrientation(movingobjectposition.sideHit), fluid, false); + + if(amount>0) + { + ((IFluidHandler) tile).fill(ForgeDirection.getOrientation(movingobjectposition.sideHit), fluid, true); + if (!par3EntityPlayer.capabilities.isCreativeMode) + { + if (!EnergyItems.syphonBatteries(par1ItemStack, par3EntityPlayer, getEnergyUsed())) + { + } + } + } + + return par1ItemStack; + } { if (movingobjectposition.sideHit == 0) @@ -242,7 +266,7 @@ public class WaterSigil extends ItemBucket implements ArmourUpgrade { // TODO Auto-generated method stub //PotionEffect effect = new PotionEffect(Potion.waterBreathing.id, 2,9); - player.addPotionEffect(new PotionEffect(Potion.waterBreathing.id, 2, 9)); + player.addPotionEffect(new PotionEffect(Potion.waterBreathing.id, 2, 9,true)); } @Override diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/spell/ItemSpellMultiTool.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/spell/ItemSpellMultiTool.java new file mode 100644 index 00000000..f770c9dd --- /dev/null +++ b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/spell/ItemSpellMultiTool.java @@ -0,0 +1,861 @@ +package WayofTime.alchemicalWizardry.common.items.spell; + +import java.util.HashSet; +import java.util.LinkedList; +import java.util.List; +import java.util.Random; +import java.util.Set; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagList; +import net.minecraft.util.DamageSource; +import net.minecraft.util.MovingObjectPosition; +import net.minecraft.world.World; +import net.minecraftforge.common.DimensionManager; +import net.minecraftforge.common.util.Constants; +import net.minecraftforge.common.util.ForgeDirection; +import WayofTime.alchemicalWizardry.common.items.EnergyItems; +import WayofTime.alchemicalWizardry.common.spell.complex.SpellParadigmTool; +import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellEffect; +import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper; + +public class ItemSpellMultiTool extends Item +{ + private static final String harvestLevelSuffix = "harvestLvl"; + private static final String digLevelSuffix = "digLvl"; + private static final String tagName = "BloodMagicTool"; + private Random rand = new Random(); + + public ItemSpellMultiTool() + { + super(); + this.setMaxDamage(0); + this.setMaxStackSize(1); + this.setFull3D(); + } + + @Override + public void registerIcons (IIconRegister iconRegister) + { + this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:BoundTool"); + } + + @Override + public boolean hitEntity(ItemStack par1ItemStack, EntityLivingBase par2EntityLivingBase, EntityLivingBase par3EntityLivingBase) + { + float damage = this.getCustomItemAttack(par1ItemStack); + + SpellParadigmTool parad = this.loadParadigmFromStack(par1ItemStack); + + if(parad != null) + { + parad.onLeftClickEntity(par1ItemStack, par2EntityLivingBase, par3EntityLivingBase); + } + + damage += parad.getAddedDamageForEntity(par2EntityLivingBase); + + if(rand.nextFloat() < this.getCritChance(par1ItemStack)) + { + damage *= 1.75f; + } + + if(par3EntityLivingBase instanceof EntityPlayer) + { + par2EntityLivingBase.attackEntityFrom(DamageSource.causePlayerDamage((EntityPlayer)par3EntityLivingBase), damage); + } + else + { + par2EntityLivingBase.attackEntityFrom(DamageSource.causeMobDamage(par3EntityLivingBase), damage); + } + + return true; + } + + @Override + public boolean onLeftClickEntity(ItemStack stack, EntityPlayer player, Entity entity) + { + SpellParadigmTool parad = this.loadParadigmFromStack(stack); + + if(parad != null && entity instanceof EntityLivingBase) + { + parad.onLeftClickEntity(stack, (EntityLivingBase)entity, player); + } + + return false; + } + + @Override + public boolean onBlockStartBreak (ItemStack stack, int x, int y, int z, EntityPlayer player) + { + if(player.worldObj.isRemote) + { + return false; + } + + if (!stack.hasTagCompound()) + return false; + + World world = player.worldObj; + Block block = player.worldObj.getBlock(x, y, z); + int meta = world.getBlockMetadata(x, y, z); + // Block block = Block.blocksList[bID]; + if (block == null || block == Blocks.air) + return false; + int hlvl = -1; + float blockHardness = block.getBlockHardness(world, x, y, z); + + MovingObjectPosition mop = SpellHelper.raytraceFromEntity(world, player, true, 5.0D); + + Block localBlock = world.getBlock(x, y, z); + int localMeta = world.getBlockMetadata(x, y, z); + String toolClass = block.getHarvestTool(meta); + if (toolClass != null && this.getHarvestLevel(stack, toolClass) != -1) + hlvl = block.getHarvestLevel(meta); + int toolLevel = this.getHarvestLevel(stack, toolClass); + + float localHardness = localBlock == null ? Float.MAX_VALUE : localBlock.getBlockHardness(world, x, y, z); + + if (hlvl <= toolLevel && localHardness - 1.5 <= blockHardness) + { + boolean cancelHarvest = false; + + if (!cancelHarvest) + { + if (localBlock != null && !(localHardness < 0)) + { + boolean isEffective = false; + + String localToolClass = this.getToolClassForMaterial(localBlock.getMaterial()); + + if(localToolClass != null && this.getHarvestLevel(stack, toolClass) >= localBlock.getHarvestLevel(localMeta)) + { + isEffective = true; + } + + + if (localBlock.getMaterial().isToolNotRequired()) + { + isEffective = true; + } + + if (!player.capabilities.isCreativeMode) + { + if (isEffective) + { + if (localBlock.removedByPlayer(world, player, x, y, z)) + { + localBlock.onBlockDestroyedByPlayer(world, x, y, z, localMeta); + } + //localBlock.harvestBlock(world, player, x, y, z, localMeta); + localBlock.onBlockHarvested(world, x, y, z, localMeta, player); + if (blockHardness > 0f) + onBlockDestroyed(stack, world, localBlock, x, y, z, player); + + List items = SpellHelper.getItemsFromBlock(world, localBlock, x, y, z, localMeta, this.getSilkTouch(stack), this.getFortuneLevel(stack)); + + SpellParadigmTool parad = this.loadParadigmFromStack(stack); + List newItems = parad.handleItemList(stack, items); + + if(!world.isRemote) + { + SpellHelper.spawnItemListInWorld(newItems, world, x + 0.5f, y + 0.5f, z + 0.5f); + } + + world.func_147479_m(x, y, z); + + int cost = 0; + + cost += parad.digSurroundingArea(stack, world, player, mop, localToolClass, localHardness, toolLevel, this); + + cost += parad.onBreakBlock(stack, world, player, localBlock, localMeta, x, y, z, ForgeDirection.getOrientation(mop.sideHit)); + + if(cost > 0) + { + EnergyItems.syphonAndDamageWhileInContainer(stack, player, cost); + } + } + else + { + world.setBlockToAir(x, y, z); + world.func_147479_m(x, y, z); + } + + } + else + { + world.setBlockToAir(x, y, z); + world.func_147479_m(x, y, z); + } + } + } + } + + if (!world.isRemote) + world.playAuxSFX(2001, x, y, z, Block.getIdFromBlock(block) + (meta << 12)); + return true; + + } + + public Material[] getMaterialsForToolclass(String toolClass) + { + if("pickaxe".equals(toolClass)) + { + return new Material[] { Material.rock, Material.iron, Material.ice, Material.glass, Material.piston, Material.anvil, Material.circuits }; + } + else if("shovel".equals(toolClass)) + { + return new Material[]{ Material.grass, Material.ground, Material.sand, Material.snow, Material.craftedSnow, Material.clay }; + } + else if("axe".equals(toolClass)) + { + return new Material[]{ Material.wood, Material.vine, Material.circuits, Material.cactus }; + } + return new Material[0]; + } + + public String getToolClassForMaterial(Material mat) + { + String testString = "pickaxe"; + + Material[] matList = this.getMaterialsForToolclass(testString); + for(int i=0; i < matList.length; i++) + { + if(matList[i] == mat) + { + return testString; + } + } + + testString = "shovel"; + matList = this.getMaterialsForToolclass(testString); + for(int i=0; i < matList.length; i++) + { + if(matList[i] == mat) + { + return testString; + } + } + + testString = "axe"; + matList = this.getMaterialsForToolclass(testString); + for(int i=0; i < matList.length; i++) + { + if(matList[i] == mat) + { + return testString; + } + } + + return null; + } + + public Set getToolClasses(ItemStack stack) + { + Set set = new HashSet(); + + if(this.getHarvestLevel(stack, "pickaxe") > -1) + { + set.add("pickaxe"); + } + + if(this.getHarvestLevel(stack, "axe") > -1) + { + set.add("axe"); + } + + if(this.getHarvestLevel(stack, "shovel") > -1) + { + set.add("shovel"); + } + + return set; + } + +// @Override +// public boolean onBlockDestroyed (ItemStack itemstack, World world, Block block, int x, int y, int z, EntityLivingBase player) +// { +// if (block != null && block.getMaterial() == Material.leaves) +// return false; +// +// +// return AbilityHelper.onBlockChanged(itemstack, world, block, x, y, z, player, random); +// } + + @Override + public float getDigSpeed(ItemStack stack, Block block, int meta) + { + String toolClass = block.getHarvestTool(meta); + + if(toolClass == null || toolClass.equals("")) + { + return 1.0f; + } + + //if (ForgeHooks.isToolEffective(stack, block, meta)) + { + if(stack.hasTagCompound()) + { + NBTTagCompound tag = stack.getTagCompound().getCompoundTag(tagName); + + return tag.getFloat(digLevelSuffix + toolClass); + } + else + { + stack.setTagCompound(new NBTTagCompound()); + } + } + + return 1.0f; + } + + @Override + public int getHarvestLevel(ItemStack stack, String toolClass) + { + if(stack.hasTagCompound()) + { + NBTTagCompound tag = stack.getTagCompound().getCompoundTag(tagName); + + if(tag.hasKey(harvestLevelSuffix + toolClass)) + { + return tag.getInteger(harvestLevelSuffix + toolClass); + }else + { + return -1; + } + } + else + { + stack.setTagCompound(new NBTTagCompound()); + } + + return -1; + } + +// @Override +// public float func_150893_a(ItemStack p_150893_1_, Block p_150893_2_) +// { +// return p_150893_2_.getMaterial() != Material.iron && p_150893_2_.getMaterial() != Material.anvil && p_150893_2_.getMaterial() != Material.rock ? super.func_150893_a(p_150893_1_, p_150893_2_) : 15; +// } + + @Override + public boolean canHarvestBlock(Block par1Block, ItemStack itemStack) + { + + return true; + } + + @Override + public boolean getIsRepairable(ItemStack par1ItemStack, ItemStack par2ItemStack) + { + return false; + } + + @Override + public void onUpdate(ItemStack toolStack, World world, Entity par3Entity, int par4, boolean par5) + { + if(world.isRemote) + { + return; + } + + SpellParadigmTool parad = this.loadParadigmFromStack(toolStack); + int cost = parad.onUpdate(toolStack, world, par3Entity, par4, par5); + + if(par3Entity instanceof EntityPlayer && cost > 0) + EnergyItems.syphonAndDamageWhileInContainer(toolStack, (EntityPlayer)par3Entity, cost); + + int duration = Math.max(this.getDuration(toolStack, world), 0); + + if(duration <= 0 && par3Entity instanceof EntityPlayer) + { + int banishCost = parad.onBanishTool(toolStack, world, par3Entity, par4, par5); + EnergyItems.syphonAndDamageWhileInContainer(toolStack, (EntityPlayer)par3Entity, banishCost); + ((EntityPlayer) par3Entity).inventory.mainInventory[par4] = this.getContainedCrystal(toolStack); + } + } + + @Override + public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) + { + if(par3EntityPlayer.isSneaking()) + { + par3EntityPlayer.setCurrentItemOrArmor(0, this.getContainedCrystal(par1ItemStack)); + return par1ItemStack; + } + + SpellParadigmTool parad = this.loadParadigmFromStack(par1ItemStack); + + MovingObjectPosition mop = this.getMovingObjectPositionFromPlayer(par2World, par3EntityPlayer, false); + + int cost = 0; + + if(mop != null && mop.typeOfHit.equals(MovingObjectPosition.MovingObjectType.BLOCK)) + { + cost = parad.onRightClickBlock(par1ItemStack, par3EntityPlayer, par2World, mop); + }else + { + cost = parad.onRightClickAir(par1ItemStack, par2World, par3EntityPlayer); + } + + if(cost > 0) + { + EnergyItems.syphonAndDamageWhileInContainer(par1ItemStack, par3EntityPlayer, cost); + } + + return par1ItemStack; + } + + @Override + public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) + { + par3List.add("Here's a 'Tool Tip' :D"); + + if (!(par1ItemStack.stackTagCompound == null)) + { + if (!par1ItemStack.stackTagCompound.getString("ownerName").equals("")) + { + par3List.add("Current owner: " + par1ItemStack.stackTagCompound.getString("ownerName")); + } + + for(String str : this.getToolListString(par1ItemStack)) + { + par3List.add(str); + } + + 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; + par3List.add("\u00A79+" + critChance + "% " + "Crit Chance"); + } + } + + //--------------Custom methods--------------// + + public void setHarvestLevel(ItemStack stack, String toolClass, int harvestLevel) + { + if(stack.hasTagCompound()) + { + NBTTagCompound tag = stack.getTagCompound().getCompoundTag(tagName); + + tag.setInteger(harvestLevelSuffix + toolClass, Math.max(-1,harvestLevel)); + + stack.getTagCompound().setTag(tagName, tag); + } + else + { + stack.setTagCompound(new NBTTagCompound()); + + NBTTagCompound tag = stack.getTagCompound().getCompoundTag(tagName); + + tag.setInteger(harvestLevelSuffix + toolClass, Math.max(-1,harvestLevel)); + + stack.getTagCompound().setTag(tagName, tag); + } + } + + public void setDigSpeed(ItemStack stack, String toolClass, float digSpeed) + { + if(stack.hasTagCompound()) + { + NBTTagCompound tag = stack.getTagCompound().getCompoundTag(tagName); + + tag.setFloat(digLevelSuffix + toolClass, digSpeed); + + stack.getTagCompound().setTag(tagName, tag); + } + else + { + stack.setTagCompound(new NBTTagCompound()); + + NBTTagCompound tag = stack.getTagCompound().getCompoundTag(tagName); + + tag.setFloat(digLevelSuffix + toolClass, digSpeed); + + stack.getTagCompound().setTag(tagName, tag); + } + } + + public float getDigSpeed(ItemStack stack, String toolClass) + { + if(stack.hasTagCompound()) + { + NBTTagCompound tag = stack.getTagCompound().getCompoundTag(tagName); + + return tag.getFloat(digLevelSuffix + toolClass); + } + else + { + stack.setTagCompound(new NBTTagCompound()); + + return 0.0f; + } + } + + public void setItemAttack(ItemStack stack, float damage) + { + if(stack.hasTagCompound()) + { + NBTTagCompound tag = stack.getTagCompound().getCompoundTag(tagName); + + tag.setFloat("itemAttack", Math.max(damage, 0.0f)); + + stack.stackTagCompound.setTag(tagName, tag); + } + else + { + stack.setTagCompound(new NBTTagCompound()); + + NBTTagCompound tag = stack.getTagCompound().getCompoundTag(tagName); + + tag.setFloat("itemAttack", Math.max(damage, 0.0f)); + + stack.stackTagCompound.setTag(tagName, tag); + } + } + + public float getCustomItemAttack(ItemStack stack) + { + if(stack.hasTagCompound()) + { + NBTTagCompound tag = stack.getTagCompound().getCompoundTag(tagName); + + return tag.getFloat("itemAttack"); + } + else + { + stack.setTagCompound(new NBTTagCompound()); + + return 0.0f; + } + } + + public ItemStack getContainedCrystal(ItemStack container) + { + if(container.hasTagCompound()) + { + NBTTagCompound tag = container.getTagCompound().getCompoundTag(tagName).getCompoundTag("heldItem"); + + return ItemStack.loadItemStackFromNBT(tag); + } + else + { + container.setTagCompound(new NBTTagCompound()); + + return null; + } + } + + public void setContainedCrystal(ItemStack container, ItemStack crystal) + { + if(container.hasTagCompound()) + { + NBTTagCompound compTag = container.getTagCompound().getCompoundTag(tagName); + NBTTagCompound tag = compTag.getCompoundTag("heldItem"); + + crystal.writeToNBT(tag); + + compTag.setTag("heldItem", tag); + container.getTagCompound().setTag(tagName, compTag); + } + else + { + container.setTagCompound(new NBTTagCompound()); + + NBTTagCompound compTag = container.getTagCompound().getCompoundTag(tagName); + NBTTagCompound tag = compTag.getCompoundTag("heldItem"); + + crystal.writeToNBT(tag); + + compTag.setTag("heldItem", tag); + container.getTagCompound().setTag(tagName, compTag); + } + } + + public void setDuration(ItemStack container, World world, int duration) + { + if(world.isRemote) + { + return; + }else + { + World overWorld = DimensionManager.getWorld(0); + long worldtime = overWorld.getTotalWorldTime(); + + if(container.hasTagCompound()) + { + NBTTagCompound tag = container.getTagCompound().getCompoundTag(tagName); + + tag.setLong("duration", Math.max(duration + worldtime, worldtime)); + + container.getTagCompound().setTag(tagName, tag); + } + else + { + container.setTagCompound(new NBTTagCompound()); + + NBTTagCompound tag = container.getTagCompound().getCompoundTag(tagName); + + tag.setLong("duration", Math.max(duration + worldtime, worldtime)); + + container.getTagCompound().setTag(tagName, tag); + } + } + } + + public int getDuration(ItemStack container, World world) + { + if(world.isRemote) + { + return 0; + } + else + { + World overWorld = DimensionManager.getWorld(0); + long worldtime = overWorld.getTotalWorldTime(); + + if(container.hasTagCompound()) + { + NBTTagCompound tag = container.getTagCompound().getCompoundTag(tagName); + + return (int)(tag.getLong("duration") - worldtime); + } + else + { + container.setTagCompound(new NBTTagCompound()); + + return 0; + } + } +// if(container.hasTagCompound()) +// { +// NBTTagCompound tag = container.getTagCompound().getCompoundTag(tagName); +// +// return tag.getInteger("duration"); +// } +// else +// { +// container.setTagCompound(new NBTTagCompound()); +// +// return 0; +// } + } + + public void loadParadigmIntoStack(ItemStack container, List list) + { + if(!container.hasTagCompound()) + { + container.setTagCompound(new NBTTagCompound()); + } + + NBTTagCompound tagiest = container.getTagCompound().getCompoundTag(tagName); + + NBTTagList effectList = new NBTTagList(); + + for(SpellEffect eff : list) + { + effectList.appendTag(eff.getTag()); + } + + tagiest.setTag("Effects", effectList); + + container.getTagCompound().setTag(tagName, tagiest); + } + + public SpellParadigmTool loadParadigmFromStack(ItemStack container) + { + if(!container.hasTagCompound()) + { + container.setTagCompound(new NBTTagCompound()); + } + NBTTagCompound tagiest = container.getTagCompound().getCompoundTag(tagName); + + NBTTagList tagList = tagiest.getTagList("Effects",Constants.NBT.TAG_COMPOUND); + + List spellEffectList = new LinkedList(); + for (int i = 0; i < tagList.tagCount(); i++) + { + NBTTagCompound tag = (NBTTagCompound) tagList.getCompoundTagAt(i); + + SpellEffect eff = SpellEffect.getEffectFromTag(tag); + if(eff!=null) + { + spellEffectList.add(eff); + } + } + + return SpellParadigmTool.getParadigmForEffectArray(spellEffectList); + } + + public void setSilkTouch(ItemStack stack, boolean silkTouch) + { + if(stack.hasTagCompound()) + { + NBTTagCompound tag = stack.getTagCompound().getCompoundTag(tagName); + + tag.setBoolean("silkTouch", silkTouch); + + stack.stackTagCompound.setTag(tagName, tag); + } + else + { + stack.setTagCompound(new NBTTagCompound()); + + NBTTagCompound tag = stack.getTagCompound().getCompoundTag(tagName); + + tag.setBoolean("silkTouch", silkTouch); + + stack.stackTagCompound.setTag(tagName, tag); + } + } + + public boolean getSilkTouch(ItemStack stack) + { + if(stack.hasTagCompound()) + { + NBTTagCompound tag = stack.getTagCompound().getCompoundTag(tagName); + + return tag.getBoolean("silkTouch"); + } + else + { + stack.setTagCompound(new NBTTagCompound()); + + return false; + } + } + + public void setFortuneLevel(ItemStack stack, int fortune) + { + if(stack.hasTagCompound()) + { + NBTTagCompound tag = stack.getTagCompound().getCompoundTag(tagName); + + tag.setInteger("fortuneLevel", Math.max(fortune, 0)); + + stack.stackTagCompound.setTag(tagName, tag); + } + else + { + stack.setTagCompound(new NBTTagCompound()); + + NBTTagCompound tag = stack.getTagCompound().getCompoundTag(tagName); + + tag.setInteger("fortuneLevel", Math.max(fortune, 0)); + + stack.stackTagCompound.setTag(tagName, tag); + } + } + + public int getFortuneLevel(ItemStack stack) + { + if(stack.hasTagCompound()) + { + NBTTagCompound tag = stack.getTagCompound().getCompoundTag(tagName); + + return tag.getInteger("fortuneLevel"); + } + else + { + stack.setTagCompound(new NBTTagCompound()); + + return 0; + } + } + + public List getToolListString(ItemStack container) + { + if(!container.hasTagCompound()) + { + container.setTagCompound(new NBTTagCompound()); + } + NBTTagCompound tagiest = container.getTagCompound().getCompoundTag(tagName); + + NBTTagList tagList = tagiest.getTagList("ToolTips",Constants.NBT.TAG_COMPOUND); + + List toolTipList = new LinkedList(); + for (int i = 0; i < tagList.tagCount(); i++) + { + NBTTagCompound tag = (NBTTagCompound) tagList.getCompoundTagAt(i); + + String str = tag.getString("tip"); + if(str!=null) + { + toolTipList.add(str); + } + } + + return toolTipList; + } + + public void setToolListString(ItemStack container, List toolTipString) + { + if(!container.hasTagCompound()) + { + container.setTagCompound(new NBTTagCompound()); + } + + NBTTagCompound tagiest = container.getTagCompound().getCompoundTag(tagName); + + NBTTagList stringList = new NBTTagList(); + + for(String str : toolTipString) + { + NBTTagCompound tag = new NBTTagCompound(); + tag.setString("tip", str); + + stringList.appendTag(tag); + } + + tagiest.setTag("ToolTips", stringList); + + container.getTagCompound().setTag(tagName, tagiest); + } + + public void setCritChance(ItemStack container, float chance) + { + if(container.hasTagCompound()) + { + NBTTagCompound tag = container.getTagCompound().getCompoundTag(tagName); + + tag.setFloat("critChance", Math.max(chance, 0)); + + container.stackTagCompound.setTag(tagName, tag); + } + else + { + container.setTagCompound(new NBTTagCompound()); + + NBTTagCompound tag = container.getTagCompound().getCompoundTag(tagName); + + tag.setFloat("critChance", Math.max(chance, 0)); + + container.stackTagCompound.setTag(tagName, tag); + } + } + + public float getCritChance(ItemStack container) + { + if(container.hasTagCompound()) + { + NBTTagCompound tag = container.getTagCompound().getCompoundTag(tagName); + + return tag.getFloat("critChance"); + } + else + { + container.setTagCompound(new NBTTagCompound()); + + return 0; + } + } +} \ No newline at end of file diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/items/thaumcraft/FocusBase.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/thaumcraft/FocusBase.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/items/thaumcraft/FocusBase.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/thaumcraft/FocusBase.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/items/thaumcraft/FocusBloodBlast.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/thaumcraft/FocusBloodBlast.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/items/thaumcraft/FocusBloodBlast.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/thaumcraft/FocusBloodBlast.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/items/thaumcraft/FocusGravityWell.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/thaumcraft/FocusGravityWell.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/items/thaumcraft/FocusGravityWell.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/thaumcraft/FocusGravityWell.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/items/thaumcraft/ItemSanguineArmour.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/thaumcraft/ItemSanguineArmour.java similarity index 99% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/items/thaumcraft/ItemSanguineArmour.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/thaumcraft/ItemSanguineArmour.java index 92ec9342..7cdef813 100644 --- a/1.7.2/java/WayofTime/alchemicalWizardry/common/items/thaumcraft/ItemSanguineArmour.java +++ b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/thaumcraft/ItemSanguineArmour.java @@ -74,7 +74,7 @@ public class ItemSanguineArmour extends ItemArmor implements ArmourUpgrade, IGog @Override public boolean isUpgrade() { - return true; + return false; } @Override diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/mcmod.info b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/mcmod.info similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/mcmod.info rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/mcmod.info diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/potion/PotionBoost.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/potion/PotionBoost.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/potion/PotionBoost.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/potion/PotionBoost.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/potion/PotionDrowning.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/potion/PotionDrowning.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/potion/PotionDrowning.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/potion/PotionDrowning.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/potion/PotionFireFuse.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/potion/PotionFireFuse.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/potion/PotionFireFuse.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/potion/PotionFireFuse.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/potion/PotionFlameCloak.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/potion/PotionFlameCloak.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/potion/PotionFlameCloak.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/potion/PotionFlameCloak.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/potion/PotionFlight.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/potion/PotionFlight.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/potion/PotionFlight.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/potion/PotionFlight.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/potion/PotionHeavyHeart.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/potion/PotionHeavyHeart.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/potion/PotionHeavyHeart.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/potion/PotionHeavyHeart.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/potion/PotionIceCloak.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/potion/PotionIceCloak.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/potion/PotionIceCloak.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/potion/PotionIceCloak.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/potion/PotionInhibit.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/potion/PotionInhibit.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/potion/PotionInhibit.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/potion/PotionInhibit.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/potion/PotionPlanarBinding.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/potion/PotionPlanarBinding.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/potion/PotionPlanarBinding.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/potion/PotionPlanarBinding.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/potion/PotionProjectileProtect.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/potion/PotionProjectileProtect.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/potion/PotionProjectileProtect.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/potion/PotionProjectileProtect.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/potion/PotionReciprocation.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/potion/PotionReciprocation.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/potion/PotionReciprocation.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/potion/PotionReciprocation.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/renderer/block/RenderConduit.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/block/RenderConduit.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/renderer/block/RenderConduit.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/block/RenderConduit.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/renderer/block/RenderPedestal.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/block/RenderPedestal.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/renderer/block/RenderPedestal.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/block/RenderPedestal.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/renderer/block/RenderPlinth.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/block/RenderPlinth.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/renderer/block/RenderPlinth.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/block/RenderPlinth.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/renderer/block/RenderSpellEffectBlock.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/block/RenderSpellEffectBlock.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/renderer/block/RenderSpellEffectBlock.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/block/RenderSpellEffectBlock.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/renderer/block/RenderSpellEnhancementBlock.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/block/RenderSpellEnhancementBlock.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/renderer/block/RenderSpellEnhancementBlock.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/block/RenderSpellEnhancementBlock.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/renderer/block/RenderSpellModifierBlock.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/block/RenderSpellModifierBlock.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/renderer/block/RenderSpellModifierBlock.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/block/RenderSpellModifierBlock.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/renderer/block/RenderSpellParadigmBlock.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/block/RenderSpellParadigmBlock.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/renderer/block/RenderSpellParadigmBlock.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/block/RenderSpellParadigmBlock.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/renderer/block/RenderWritingTable.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/block/RenderWritingTable.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/renderer/block/RenderWritingTable.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/block/RenderWritingTable.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/renderer/block/TEAltarRenderer.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/block/TEAltarRenderer.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/renderer/block/TEAltarRenderer.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/block/TEAltarRenderer.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/renderer/block/itemRender/TEAltarItemRenderer.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/block/itemRender/TEAltarItemRenderer.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/renderer/block/itemRender/TEAltarItemRenderer.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/block/itemRender/TEAltarItemRenderer.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/renderer/block/itemRender/TEConduitItemRenderer.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/block/itemRender/TEConduitItemRenderer.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/renderer/block/itemRender/TEConduitItemRenderer.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/block/itemRender/TEConduitItemRenderer.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/renderer/block/itemRender/TESpellEffectBlockItemRenderer.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/block/itemRender/TESpellEffectBlockItemRenderer.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/renderer/block/itemRender/TESpellEffectBlockItemRenderer.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/block/itemRender/TESpellEffectBlockItemRenderer.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/renderer/block/itemRender/TESpellEnhancementBlockItemRenderer.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/block/itemRender/TESpellEnhancementBlockItemRenderer.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/renderer/block/itemRender/TESpellEnhancementBlockItemRenderer.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/block/itemRender/TESpellEnhancementBlockItemRenderer.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/renderer/block/itemRender/TESpellModifierBlockItemRenderer.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/block/itemRender/TESpellModifierBlockItemRenderer.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/renderer/block/itemRender/TESpellModifierBlockItemRenderer.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/block/itemRender/TESpellModifierBlockItemRenderer.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/renderer/block/itemRender/TESpellParadigmBlockItemRenderer.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/block/itemRender/TESpellParadigmBlockItemRenderer.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/renderer/block/itemRender/TESpellParadigmBlockItemRenderer.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/block/itemRender/TESpellParadigmBlockItemRenderer.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/renderer/block/itemRender/TEWritingTableItemRenderer.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/block/itemRender/TEWritingTableItemRenderer.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/renderer/block/itemRender/TEWritingTableItemRenderer.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/block/itemRender/TEWritingTableItemRenderer.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/renderer/mob/RenderBileDemon.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/mob/RenderBileDemon.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/renderer/mob/RenderBileDemon.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/mob/RenderBileDemon.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/renderer/mob/RenderBoulderFist.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/mob/RenderBoulderFist.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/renderer/mob/RenderBoulderFist.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/mob/RenderBoulderFist.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/renderer/mob/RenderElemental.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/mob/RenderElemental.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/renderer/mob/RenderElemental.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/mob/RenderElemental.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/renderer/mob/RenderFallenAngel.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/mob/RenderFallenAngel.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/renderer/mob/RenderFallenAngel.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/mob/RenderFallenAngel.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/renderer/mob/RenderIceDemon.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/mob/RenderIceDemon.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/renderer/mob/RenderIceDemon.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/mob/RenderIceDemon.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/renderer/mob/RenderLowerGuardian.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/mob/RenderLowerGuardian.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/renderer/mob/RenderLowerGuardian.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/mob/RenderLowerGuardian.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/renderer/mob/RenderShade.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/mob/RenderShade.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/renderer/mob/RenderShade.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/mob/RenderShade.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/renderer/mob/RenderSmallEarthGolem.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/mob/RenderSmallEarthGolem.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/renderer/mob/RenderSmallEarthGolem.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/mob/RenderSmallEarthGolem.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/renderer/mob/RenderWingedFireDemon.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/mob/RenderWingedFireDemon.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/renderer/mob/RenderWingedFireDemon.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/mob/RenderWingedFireDemon.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelBileDemon.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelBileDemon.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelBileDemon.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelBileDemon.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelBloodAltar.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelBloodAltar.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelBloodAltar.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelBloodAltar.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelBoulderFist.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelBoulderFist.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelBoulderFist.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelBoulderFist.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelConduit.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelConduit.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelConduit.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelConduit.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelElemental.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelElemental.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelElemental.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelElemental.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelEnergyBazookaMainProjectile.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelEnergyBazookaMainProjectile.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelEnergyBazookaMainProjectile.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelEnergyBazookaMainProjectile.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelFallenAngel.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelFallenAngel.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelFallenAngel.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelFallenAngel.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelIceDemon.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelIceDemon.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelIceDemon.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelIceDemon.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelLowerGuardian.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelLowerGuardian.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelLowerGuardian.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelLowerGuardian.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelMeteor.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelMeteor.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelMeteor.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelMeteor.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelPedestal.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelPedestal.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelPedestal.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelPedestal.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelPlinth.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelPlinth.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelPlinth.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelPlinth.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelShade.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelShade.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelShade.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelShade.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelSmallEarthGolem.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelSmallEarthGolem.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelSmallEarthGolem.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelSmallEarthGolem.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelSpellEffectBlock.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelSpellEffectBlock.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelSpellEffectBlock.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelSpellEffectBlock.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelSpellEnhancementBlock.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelSpellEnhancementBlock.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelSpellEnhancementBlock.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelSpellEnhancementBlock.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelSpellModifierBlock.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelSpellModifierBlock.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelSpellModifierBlock.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelSpellModifierBlock.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelSpellParadigmBlock.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelSpellParadigmBlock.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelSpellParadigmBlock.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelSpellParadigmBlock.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelWingedFireDemon.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelWingedFireDemon.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelWingedFireDemon.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelWingedFireDemon.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelWritingTable.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelWritingTable.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelWritingTable.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelWritingTable.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/renderer/projectile/RenderEnergyBazookaMainProjectile.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/projectile/RenderEnergyBazookaMainProjectile.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/renderer/projectile/RenderEnergyBazookaMainProjectile.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/projectile/RenderEnergyBazookaMainProjectile.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/renderer/projectile/RenderEnergyBlastProjectile.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/projectile/RenderEnergyBlastProjectile.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/renderer/projectile/RenderEnergyBlastProjectile.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/projectile/RenderEnergyBlastProjectile.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/renderer/projectile/RenderFireProjectile.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/projectile/RenderFireProjectile.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/renderer/projectile/RenderFireProjectile.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/projectile/RenderFireProjectile.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/renderer/projectile/RenderMeteor.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/projectile/RenderMeteor.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/renderer/projectile/RenderMeteor.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/projectile/RenderMeteor.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectAnimalGrowth.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectAnimalGrowth.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectAnimalGrowth.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectAnimalGrowth.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectApiaryOverclock.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectApiaryOverclock.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectApiaryOverclock.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectApiaryOverclock.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectAutoAlchemy.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectAutoAlchemy.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectAutoAlchemy.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectAutoAlchemy.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectBiomeChanger.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectBiomeChanger.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectBiomeChanger.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectBiomeChanger.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectContainment.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectContainment.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectContainment.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectContainment.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectCrushing.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectCrushing.java similarity index 97% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectCrushing.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectCrushing.java index ce5bec6d..ae2af3ea 100644 --- a/1.7.2/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectCrushing.java +++ b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectCrushing.java @@ -114,7 +114,7 @@ public class RitualEffectCrushing extends RitualEffect copyStack.stackSize = 0; } else { - if (itemStack.getItem().equals(copyStack.getItem())) + if (itemStack.getItem().equals(copyStack.getItem()) && itemStack.getItemDamage() == copyStack.getItemDamage()) { int itemSize = itemStack.stackSize; int copySize = copyStack.stackSize; @@ -166,7 +166,7 @@ public class RitualEffectCrushing extends RitualEffect copyStack.stackSize = 0; } else { - if (itemStack.getItem().equals(copyStack.getItem())) + if (itemStack.getItem().equals(copyStack.getItem()) && itemStack.getItemDamage() == copyStack.getItemDamage()) { int itemSize = itemStack.stackSize; int copySize = copyStack.stackSize; @@ -247,7 +247,7 @@ public class RitualEffectCrushing extends RitualEffect if((index1 == 2 && (index2 == 2 || index2 == 1)) || (index1 == 1 && index2 == 2)) { Block block = world.getBlock(x + i, y + 1, z + j); - if(block == Blocks.emerald_block) + if(block == Blocks.emerald_block || block == Blocks.diamond_block) { index++; } diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectExpulsion.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectExpulsion.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectExpulsion.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectExpulsion.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectFeatheredEarth.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectFeatheredEarth.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectFeatheredEarth.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectFeatheredEarth.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectFeatheredKnife.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectFeatheredKnife.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectFeatheredKnife.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectFeatheredKnife.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectFlight.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectFlight.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectFlight.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectFlight.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectGrowth.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectGrowth.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectGrowth.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectGrowth.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectHealing.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectHealing.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectHealing.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectHealing.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectInterdiction.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectInterdiction.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectInterdiction.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectInterdiction.java diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectItemSuction.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectItemSuction.java new file mode 100644 index 00000000..b42896b4 --- /dev/null +++ b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectItemSuction.java @@ -0,0 +1,167 @@ +package WayofTime.alchemicalWizardry.common.rituals; + +import java.util.ArrayList; +import java.util.List; + +import net.minecraft.block.Block; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.inventory.IInventory; +import net.minecraft.item.ItemStack; +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; +import net.minecraft.server.MinecraftServer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; +import WayofTime.alchemicalWizardry.ModBlocks; +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 RitualEffectItemSuction 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(); + TileEntity tile = world.getTileEntity(x, y + 1, z); + IInventory tileEntity; + + if (tile instanceof IInventory) + { + tileEntity = (IInventory) tile; + } else + { + return; + } + + if (tileEntity.getSizeInventory() <= 0) + { + return; + } + + if (currentEssence < this.getCostPerRefresh()*100) + { + EntityPlayer entityOwner = MinecraftServer.getServer().getConfigurationManager().getPlayerForUsername(owner); + + if (entityOwner == null) + { + return; + } + + entityOwner.addPotionEffect(new PotionEffect(Potion.confusion.id, 80)); + } else + { + List itemDropList = SpellHelper.getItemsInRange(world, x+0.5f, y+0.5f, z+0.5f, 10, 10); + + int count = 0; + + if (itemDropList != null) + { + int invSize = tileEntity.getSizeInventory(); + + for (EntityItem itemEntity : itemDropList) + { + ItemStack item = itemEntity.getEntityItem(); + ItemStack copyStack = itemEntity.getEntityItem().copy(); + + count++; + + for (int n = 0; n < invSize; n++) + { + if (tileEntity.isItemValidForSlot(n, copyStack) && copyStack.stackSize != 0) + { + ItemStack itemStack = tileEntity.getStackInSlot(n); + + if (itemStack == null) + { + tileEntity.setInventorySlotContents(n, item); + copyStack.stackSize = 0; + } else + { + if (itemStack.getItem().equals(copyStack.getItem())) + { + int itemSize = itemStack.stackSize; + int copySize = copyStack.stackSize; + int maxSize = itemStack.getMaxStackSize(); + + if (copySize + itemSize < maxSize) + { + copyStack.stackSize = 0; + itemStack.stackSize = itemSize + copySize; + tileEntity.setInventorySlotContents(n, itemStack); + } else + { + copyStack.stackSize = itemSize + copySize - maxSize; + itemStack.stackSize = maxSize; + } + } + } + } + } + + if(copyStack.stackSize<=0) + { + itemEntity.setDead(); + } + + if (copyStack.stackSize > 0) + { + world.spawnEntityInWorld(new EntityItem(world, x + 0.4, y + 2, z + 0.5, copyStack)); + //flag=true; + } + } + } + + if(count>0) + { + data.currentEssence = currentEssence - this.getCostPerRefresh()*Math.min(count, 100); + data.markDirty(); + return; + } + } + } + + @Override + public int getCostPerRefresh() + { + return 5; + } + + @Override + public List getRitualComponentList() + { + ArrayList suctionRitual = new ArrayList(); + suctionRitual.add(new RitualComponent(2, 0, 0, RitualComponent.AIR)); + suctionRitual.add(new RitualComponent(-2, 0, 0, RitualComponent.AIR)); + suctionRitual.add(new RitualComponent(0, 0, 2, RitualComponent.AIR)); + suctionRitual.add(new RitualComponent(0, 0, -2, RitualComponent.AIR)); + suctionRitual.add(new RitualComponent(1, 1, 1, RitualComponent.AIR)); + suctionRitual.add(new RitualComponent(1, 1, -1, RitualComponent.AIR)); + suctionRitual.add(new RitualComponent(-1, 1, 1, RitualComponent.AIR)); + suctionRitual.add(new RitualComponent(-1, 1, -1, RitualComponent.AIR)); + suctionRitual.add(new RitualComponent(1, -1, 0, RitualComponent.AIR)); + suctionRitual.add(new RitualComponent(-1, -1, 0, RitualComponent.AIR)); + suctionRitual.add(new RitualComponent(0, -1, 1, RitualComponent.AIR)); + suctionRitual.add(new RitualComponent(0, -1, -1, RitualComponent.AIR)); + return suctionRitual; + } +} diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectJumping.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectJumping.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectJumping.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectJumping.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectLava.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectLava.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectLava.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectLava.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectLeap.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectLeap.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectLeap.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectLeap.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectMagnetic.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectMagnetic.java similarity index 90% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectMagnetic.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectMagnetic.java index 0fcc6a22..ef3cbcd0 100644 --- a/1.7.2/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectMagnetic.java +++ b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectMagnetic.java @@ -5,6 +5,7 @@ import java.util.List; import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; import net.minecraft.potion.Potion; import net.minecraft.potion.PotionEffect; @@ -43,6 +44,9 @@ public class RitualEffectMagnetic extends RitualEffect return; } + Block powerBlock = world.getBlock(x, y-1, z); + int radius = this.getRadiusForModifierBlock(powerBlock); + if (currentEssence < this.getCostPerRefresh()) { EntityPlayer entityOwner = MinecraftServer.getServer().getConfigurationManager().getPlayerForUsername(owner); @@ -82,9 +86,9 @@ public class RitualEffectMagnetic extends RitualEffect //boolean hasReplaced = false; for (int j = y - 1; j >= 0; j--) { - for (int i = -3; i <= 3; i++) + for (int i = -radius; i <= radius; i++) { - for (int k = -3; k <= 3; k++) + for (int k = -radius; k <= radius; k++) { Block block = world.getBlock(x + i, j, z + k); int meta = world.getBlockMetadata(x + i, j, z + k); @@ -146,4 +150,29 @@ public class RitualEffectMagnetic extends RitualEffect magneticRitual.add(new RitualComponent(0, 2, -2, RitualComponent.FIRE)); return magneticRitual; } + + public int getRadiusForModifierBlock(Block block) + { + if(block == null) + { + return 3; + } + + if(block == Blocks.diamond_block) + { + return 31; + } + + if(block == Blocks.gold_block) + { + return 15; + } + + if(block == Blocks.iron_block) + { + return 7; + } + + return 3; + } } diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectSoulBound.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectSoulBound.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectSoulBound.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectSoulBound.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectSummonMeteor.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectSummonMeteor.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectSummonMeteor.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectSummonMeteor.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectSummonPlayer.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectSummonPlayer.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectSummonPlayer.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectSummonPlayer.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectSupression.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectSupression.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectSupression.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectSupression.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectUnbinding.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectUnbinding.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectUnbinding.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectUnbinding.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectWater.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectWater.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectWater.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectWater.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectWellOfSuffering.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectWellOfSuffering.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectWellOfSuffering.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectWellOfSuffering.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/EntitySpellProjectile.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/EntitySpellProjectile.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/EntitySpellProjectile.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/EntitySpellProjectile.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/SpellModifier.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/SpellModifier.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/SpellModifier.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/SpellModifier.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/SpellModifierDefault.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/SpellModifierDefault.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/SpellModifierDefault.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/SpellModifierDefault.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/SpellModifierDefensive.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/SpellModifierDefensive.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/SpellModifierDefensive.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/SpellModifierDefensive.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/SpellModifierEnvironmental.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/SpellModifierEnvironmental.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/SpellModifierEnvironmental.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/SpellModifierEnvironmental.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/SpellModifierOffensive.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/SpellModifierOffensive.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/SpellModifierOffensive.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/SpellModifierOffensive.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/SpellParadigm.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/SpellParadigm.java similarity index 93% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/SpellParadigm.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/SpellParadigm.java index 025d188c..75bad220 100644 --- a/1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/SpellParadigm.java +++ b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/SpellParadigm.java @@ -12,7 +12,7 @@ import WayofTime.alchemicalWizardry.common.spell.complex.enhancement.SpellEnhanc public abstract class SpellParadigm { - protected List bufferedEffectList = new ArrayList(); + protected List bufferedEffectList = new LinkedList(); public List effectList = new LinkedList(); public void addBufferedEffect(SpellEffect effect) @@ -109,6 +109,12 @@ public abstract class SpellParadigm { cost+=effect.getCostForMelee(); } + }else if(this instanceof SpellParadigmTool) + { + for(SpellEffect effect : bufferedEffectList) + { + cost+=effect.getCostForTool(); + } } return (int)(cost*Math.sqrt(this.bufferedEffectList.size())); diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/SpellParadigmMelee.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/SpellParadigmMelee.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/SpellParadigmMelee.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/SpellParadigmMelee.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/SpellParadigmProjectile.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/SpellParadigmProjectile.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/SpellParadigmProjectile.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/SpellParadigmProjectile.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/SpellParadigmSelf.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/SpellParadigmSelf.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/SpellParadigmSelf.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/SpellParadigmSelf.java diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/SpellParadigmTool.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/SpellParadigmTool.java new file mode 100644 index 00000000..a9390285 --- /dev/null +++ b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/SpellParadigmTool.java @@ -0,0 +1,486 @@ +package WayofTime.alchemicalWizardry.common.spell.complex; + +import java.util.HashMap; +import java.util.LinkedList; +import java.util.List; +import java.util.Map.Entry; +import java.util.Set; + +import net.minecraft.block.Block; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.util.MovingObjectPosition; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; +import WayofTime.alchemicalWizardry.ModItems; +import WayofTime.alchemicalWizardry.common.items.EnergyItems; +import WayofTime.alchemicalWizardry.common.items.spell.ItemSpellMultiTool; +import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellEffect; +import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper; +import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.tool.IDigAreaEffect; +import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.tool.IItemManipulator; +import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.tool.ILeftClickEffect; +import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.tool.IOnBanishTool; +import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.tool.IOnBreakBlock; +import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.tool.IOnSummonTool; +import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.tool.IRightClickEffect; +import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.tool.ISpecialDamageEffect; +import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.tool.IToolUpdateEffect; +import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.tool.RightClickTunnel; +import WayofTime.alchemicalWizardry.common.spell.complex.enhancement.SpellEnhancement; + +public class SpellParadigmTool extends SpellParadigm +{ + private List leftClickEffectList; + private List rightClickEffectList; + private List toolUpdateEffectList; + private List toolSummonEffectList; + private List toolBanishEffectList; + private List breakBlockEffectList; + private List itemManipulatorEffectList; + private List digAreaEffectList; + private List specialDamageEffectList; + + private float maxDamage; + private HashMap harvestLevel; + private HashMap digSpeed; + private HashMap maxDamageHash; + private HashMap critChanceHash; + + private HashMap toolInfoString; + + private int fortuneLevel; + private boolean silkTouch; + + private int duration; + + public SpellParadigmTool() + { + this.leftClickEffectList = new LinkedList(); + this.rightClickEffectList = new LinkedList(); + this.toolUpdateEffectList = new LinkedList(); + this.toolSummonEffectList = new LinkedList(); + this.toolBanishEffectList = new LinkedList(); + this.breakBlockEffectList = new LinkedList(); + this.itemManipulatorEffectList = new LinkedList(); + this.digAreaEffectList = new LinkedList(); + + this.toolInfoString = new HashMap(); + this.critChanceHash = new HashMap(); + + this.maxDamage = 5; + + this.harvestLevel = new HashMap(); + this.harvestLevel.put("pickaxe", 2); + this.harvestLevel.put("shovel", -1); + this.harvestLevel.put("axe", -1); + + this.digSpeed = new HashMap(); + this.digSpeed.put("pickaxe", 6.0f); + this.digSpeed.put("shovel", 1.0f); + this.digSpeed.put("axe", 1.0f); + + this.maxDamageHash = new HashMap(); + this.maxDamageHash.put("default", 5.0f); + + this.fortuneLevel = 0; + this.silkTouch = false; + + this.duration = 2400; + + //this.addRightClickEffect(new RightClickTunnel(0,0,0)); + + //this.addItemManipulatorEffect(new ToolDefaultFire(0,0,0)); + //this.addDigAreaEffect(new DigAreaEffect(0,0,0)); + } + + @Override + public void enhanceParadigm(SpellEnhancement enh) + { + + } + + @Override + public void castSpell(World world, EntityPlayer entityPlayer, ItemStack crystal) + { + if(entityPlayer.worldObj.isRemote) + { + return; + } + + int cost = this.getTotalCost(); + + EnergyItems.syphonBatteries(crystal, entityPlayer, cost); + + ItemStack toolStack = this.prepareTool(crystal, world); + + entityPlayer.setCurrentItemOrArmor(0, toolStack); + + this.onSummonTool(toolStack, world, entityPlayer); + } + + /** + * + * @param crystalStack + * @return stack containing the new multitool + */ + public ItemStack prepareTool(ItemStack crystalStack, World world) + { + ItemStack toolStack = new ItemStack(ModItems.customTool,1); + + ItemSpellMultiTool itemTool = (ItemSpellMultiTool) ModItems.customTool; + + itemTool.setItemAttack(toolStack, this.composeMaxDamageFromHash()); + + Set> harvestLevelSet = this.harvestLevel.entrySet(); + + for(Entry testMap : harvestLevelSet) + { + String tool = testMap.getKey(); + int level = testMap.getValue(); + + itemTool.setHarvestLevel(toolStack, tool, level); + } + + Set> digSpeedSet = this.digSpeed.entrySet(); + + for(Entry testMap : digSpeedSet) + { + String tool = testMap.getKey(); + float speed = testMap.getValue(); + + itemTool.setDigSpeed(toolStack, tool, speed); + } + + itemTool.setFortuneLevel(toolStack, getFortuneLevel()); + itemTool.setSilkTouch(toolStack, this.getSilkTouch()); + + if(this.getSilkTouch()) + { + this.addToolString("SilkTouch", "Silk Touch" + " " + SpellHelper.getNumeralForInt(1)); + } + + if(this.getFortuneLevel() > 0) + { + this.addToolString("Fortune", "Fortune" + " " + SpellHelper.getNumeralForInt(this.getFortuneLevel())); + } + + itemTool.setCritChance(toolStack, this.getCritChance()/100f); + + List toolStringList = new LinkedList(); + + for(String str : this.toolInfoString.values()) + { + toolStringList.add(str); + } + + itemTool.setToolListString(toolStack, toolStringList); + + itemTool.setDuration(toolStack, world, this.duration); + itemTool.loadParadigmIntoStack(toolStack, this.bufferedEffectList); + + EnergyItems.checkAndSetItemOwner(toolStack, EnergyItems.getOwnerName(crystalStack)); + + itemTool.setContainedCrystal(toolStack, crystalStack); + + return toolStack; + } + + @Override + public int getDefaultCost() + { + return 100; + } + + public static SpellParadigmTool getParadigmForEffectArray(List effectList) + { + SpellParadigmTool parad = new SpellParadigmTool(); + + for(SpellEffect eff : effectList) + { + parad.addBufferedEffect(eff); + } + + parad.applyAllSpellEffects(); + + return parad; + } + + public void addLeftClickEffect(ILeftClickEffect eff) + { + if(eff != null) + { + this.leftClickEffectList.add(eff); + } + } + + public void addRightClickEffect(IRightClickEffect eff) + { + if(eff != null) + { + this.rightClickEffectList.add(eff); + } + } + + public void addUpdateEffect(IToolUpdateEffect eff) + { + if(eff != null) + { + this.toolUpdateEffectList.add(eff); + } + } + + public void addToolSummonEffect(IOnSummonTool eff) + { + if(eff != null) + { + this.toolSummonEffectList.add(eff); + } + } + + public void addToolBanishEffect(IOnBanishTool eff) + { + if(eff != null) + { + this.toolBanishEffectList.add(eff); + } + } + + public void addBlockBreakEffect(IOnBreakBlock eff) + { + if(eff != null) + { + this.breakBlockEffectList.add(eff); + } + } + + public void addItemManipulatorEffect(IItemManipulator eff) + { + if(eff != null) + { + this.itemManipulatorEffectList.add(eff); + } + } + + public void addDigAreaEffect(IDigAreaEffect eff) + { + if(eff != null) + { + this.digAreaEffectList.add(eff); + } + } + + public void addSpecialDamageEffect(ISpecialDamageEffect eff) + { + if(eff != null) + { + this.specialDamageEffectList.add(eff); + } + } + + public int onLeftClickEntity(ItemStack stack, EntityLivingBase attacked, EntityLivingBase weilder) + { + int total = 0; + for(ILeftClickEffect effect : this.leftClickEffectList) + { + total += effect.onLeftClickEntity(stack, attacked, weilder); + } + + return total; + } + + public int onRightClickBlock(ItemStack toolStack, EntityLivingBase weilder, World world, MovingObjectPosition mop) + { + int total = 0; + for(IRightClickEffect effect : this.rightClickEffectList) + { + total += effect.onRightClickBlock(toolStack, weilder, world, mop); + } + + return total; + } + + public int onRightClickAir(ItemStack toolStack, World world, EntityPlayer player) + { + int total = 0; + for(IRightClickEffect effect : this.rightClickEffectList) + { + total += effect.onRightClickAir(toolStack, player); + } + + return total; + } + + public int onUpdate(ItemStack toolStack, World world, Entity par3Entity, int invSlot, boolean inHand) + { + int total = 0; + for(IToolUpdateEffect effect : this.toolUpdateEffectList) + { + total += effect.onUpdate(toolStack, world, par3Entity, invSlot, inHand); + } + + return total; + } + + public int onSummonTool(ItemStack toolStack, World world, Entity entity) + { + int total = 0; + for(IOnSummonTool effect : this.toolSummonEffectList) + { + total += effect.onSummonTool(toolStack, world, entity); + } + + return total; + } + + public int onBanishTool(ItemStack toolStack, World world, Entity entity, int invSlot, boolean inHand) + { + int total = 0; + for(IOnBanishTool effect : this.toolBanishEffectList) + { + total += effect.onBanishTool(toolStack, world, entity, invSlot, inHand); + } + + return total; + } + + public int onBreakBlock(ItemStack container, World world, EntityPlayer player, Block block, int meta, int x, int y, int z, ForgeDirection sideBroken) + { + int total = 0; + for(IOnBreakBlock effect : this.breakBlockEffectList) + { + total += effect.onBlockBroken(container, world, player, block, meta, x, y, z, sideBroken); + } + + return total; + } + + public List handleItemList(ItemStack toolStack, List items) + { + List heldList = items; + + for(IItemManipulator eff : this.itemManipulatorEffectList) + { + List newHeldList = eff.handleItemsOnBlockBroken(toolStack, heldList); + heldList = newHeldList; + } + + return heldList; + } + + public int digSurroundingArea(ItemStack container, World world, EntityPlayer player, MovingObjectPosition blockPos, String usedToolClass, float blockHardness, int harvestLvl, ItemSpellMultiTool itemTool) + { + int cost = 0; + + for(IDigAreaEffect effect : this.digAreaEffectList) + { + cost += effect.digSurroundingArea(container, world, player, blockPos, usedToolClass, blockHardness, harvestLvl, itemTool); + } + + return cost; + } + + public int getFortuneLevel() + { + return this.fortuneLevel; + } + + public void setFortuneLevel(int fortuneLevel) + { + this.fortuneLevel = fortuneLevel; + } + + public boolean getSilkTouch() + { + return this.silkTouch; + } + + public void setSilkTouch(boolean silkTouch) + { + this.silkTouch = silkTouch; + } + + public int getDuration() + { + return this.duration; + } + + public void setDuration(int duration) + { + this.duration = duration; + } + + public void setDigSpeed(String toolClass, float digSpeed) + { + this.digSpeed.put(toolClass, digSpeed); + } + + public void setHarvestLevel(String toolClass, int hlvl) + { + this.harvestLevel.put(toolClass, hlvl); + } + + public float composeMaxDamageFromHash() + { + float damage = 0.0f; + + for(float f : this.maxDamageHash.values()) + { + damage += f; + } + + return damage; + } + + public void addDamageToHash(String key, float dmg) + { + this.maxDamageHash.put(key, dmg); + } + + public void addToolString(String key, String str) + { + if(str != null && key != null) + { + this.toolInfoString.put(key, str); + } + } + + public void addCritChance(String key, float chance) + { + //Chance is in percentage chance i.e. chance = 1.0 means 1.0% + this.critChanceHash.put(key, chance); + } + + public float getCritChance() + { + float chance = 0.0f; + + for(float fl : this.critChanceHash.values()) + { + chance += fl; + } + + return chance; + } + + public float getAddedDamageForEntity(Entity entity) + { + HashMap hash = new HashMap(); + + for(ISpecialDamageEffect effect : this.specialDamageEffectList) + { + hash.put(effect.getKey(), effect.getDamageForEntity(entity)); + } + + float addedDmg = 0.0f; + + for(float fl : hash.values()) + { + addedDmg += fl; + } + + return addedDmg; + } +} \ No newline at end of file diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellEffect.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellEffect.java similarity index 83% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellEffect.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellEffect.java index 7a090649..d241917e 100644 --- a/1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellEffect.java +++ b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellEffect.java @@ -6,6 +6,7 @@ import WayofTime.alchemicalWizardry.common.spell.complex.SpellParadigm; import WayofTime.alchemicalWizardry.common.spell.complex.SpellParadigmMelee; import WayofTime.alchemicalWizardry.common.spell.complex.SpellParadigmProjectile; import WayofTime.alchemicalWizardry.common.spell.complex.SpellParadigmSelf; +import WayofTime.alchemicalWizardry.common.spell.complex.SpellParadigmTool; import WayofTime.alchemicalWizardry.common.spell.complex.enhancement.SpellEnhancement; public abstract class SpellEffect @@ -56,6 +57,10 @@ public abstract class SpellEffect { this.modifyMeleeParadigm((SpellParadigmMelee)parad); } + if(parad instanceof SpellParadigmTool) + { + this.modifyToolParadigm((SpellParadigmTool)parad); + } } public void modifyProjectileParadigm(SpellParadigmProjectile parad) @@ -106,6 +111,22 @@ public abstract class SpellEffect public abstract void defensiveModificationMelee(SpellParadigmMelee parad); public abstract void environmentalModificationMelee(SpellParadigmMelee parad); + public void modifyToolParadigm(SpellParadigmTool parad) + { + switch(modifierState) + { + case SpellModifier.DEFAULT: this.defaultModificationTool(parad); break; + case SpellModifier.OFFENSIVE: this.offensiveModificationTool(parad); break; + case SpellModifier.DEFENSIVE: this.defensiveModificationTool(parad); break; + case SpellModifier.ENVIRONMENTAL: this.environmentalModificationTool(parad); break; + } + } + + public abstract void defaultModificationTool(SpellParadigmTool parad); + public abstract void offensiveModificationTool(SpellParadigmTool parad); + public abstract void defensiveModificationTool(SpellParadigmTool parad); + public abstract void environmentalModificationTool(SpellParadigmTool parad); + public int getCostForProjectile() { switch(this.modifierState) @@ -157,6 +178,23 @@ public abstract class SpellEffect protected abstract int getCostForDefenseMelee(); protected abstract int getCostForEnvironmentMelee(); + public int getCostForTool() + { + switch(this.modifierState) + { + case SpellModifier.DEFAULT: return this.getCostForDefaultTool(); + case SpellModifier.OFFENSIVE: return this.getCostForOffenseTool(); + case SpellModifier.DEFENSIVE: return this.getCostForDefenseTool(); + case SpellModifier.ENVIRONMENTAL: return this.getCostForEnvironmentTool(); + } + return 0; + } + + protected abstract int getCostForDefaultTool(); + protected abstract int getCostForOffenseTool(); + protected abstract int getCostForDefenseTool(); + protected abstract int getCostForEnvironmentTool(); + public int getPowerEnhancements() { return this.powerEnhancement; diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellEffectEarth.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellEffectEarth.java similarity index 74% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellEffectEarth.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellEffectEarth.java index a3c993c1..31120f48 100644 --- a/1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellEffectEarth.java +++ b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellEffectEarth.java @@ -3,6 +3,7 @@ package WayofTime.alchemicalWizardry.common.spell.complex.effect; import WayofTime.alchemicalWizardry.common.spell.complex.SpellParadigmMelee; import WayofTime.alchemicalWizardry.common.spell.complex.SpellParadigmProjectile; import WayofTime.alchemicalWizardry.common.spell.complex.SpellParadigmSelf; +import WayofTime.alchemicalWizardry.common.spell.complex.SpellParadigmTool; import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.earth.MeleeDefaultEarth; import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.earth.MeleeDefensiveEarth; import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.earth.MeleeEnvironmentalEarth; @@ -15,6 +16,7 @@ import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.ea import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.earth.SelfDefensiveEarth; import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.earth.SelfEnvironmentalEarth; import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.earth.SelfOffensiveEarth; +import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.earth.ToolEnvironmentalEarth; public class SpellEffectEarth extends SpellEffect { @@ -162,4 +164,104 @@ public class SpellEffectEarth extends SpellEffect { return (int)(500*Math.pow(2*this.potencyEnhancement+1, 3)*(0.25*this.powerEnhancement+1)*Math.pow(0.85, costEnhancement)); } + + @Override + public void defaultModificationTool(SpellParadigmTool parad) + { + String toolClass = "pickaxe"; + + float digSpeed = 7.0f; + + switch(this.powerEnhancement) + { + case 1: + digSpeed = 9.0f; + break; + case 2: + digSpeed = 12.0f; + break; + case 3: + digSpeed = 16.0f; + break; + case 4: + digSpeed = 21.0f; + break; + case 5: + digSpeed = 27.0f; + break; + } + + parad.setDigSpeed(toolClass, digSpeed); + + int hlvl = this.potencyEnhancement + 2; + parad.setHarvestLevel(toolClass, hlvl); + } + + @Override + public void offensiveModificationTool(SpellParadigmTool parad) { + // TODO Auto-generated method stub + + } + + @Override + public void defensiveModificationTool(SpellParadigmTool parad) + { + String toolClass = "shovel"; + + float digSpeed = 7.0f; + + switch(this.powerEnhancement) + { + case 1: + digSpeed = 9.0f; + break; + case 2: + digSpeed = 12.0f; + break; + case 3: + digSpeed = 16.0f; + break; + case 4: + digSpeed = 21.0f; + break; + case 5: + digSpeed = 27.0f; + break; + } + + parad.setDigSpeed(toolClass, digSpeed); + + int hlvl = this.potencyEnhancement + 2; + parad.setHarvestLevel(toolClass, hlvl); + } + + @Override + public void environmentalModificationTool(SpellParadigmTool parad) + { + parad.addDigAreaEffect(new ToolEnvironmentalEarth(this.powerEnhancement, this.potencyEnhancement, this.costEnhancement)); + } + + @Override + protected int getCostForDefaultTool() + { + return (int)(1000 * (1 + this.potencyEnhancement*0.1f) * (1 + this.powerEnhancement*0.2f) * Math.pow(0.85, costEnhancement)); + } + + @Override + protected int getCostForOffenseTool() { + // TODO Auto-generated method stub + return 0; + } + + @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() { + // TODO Auto-generated method stub + return 0; + } } diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellEffectFire.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellEffectFire.java similarity index 81% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellEffectFire.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellEffectFire.java index edba6b15..3e4d7c3a 100644 --- a/1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellEffectFire.java +++ b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellEffectFire.java @@ -3,6 +3,7 @@ package WayofTime.alchemicalWizardry.common.spell.complex.effect; import WayofTime.alchemicalWizardry.common.spell.complex.SpellParadigmMelee; import WayofTime.alchemicalWizardry.common.spell.complex.SpellParadigmProjectile; import WayofTime.alchemicalWizardry.common.spell.complex.SpellParadigmSelf; +import WayofTime.alchemicalWizardry.common.spell.complex.SpellParadigmTool; import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.fire.MeleeDefaultFire; import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.fire.MeleeDefensiveFire; import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.fire.MeleeEnvironmentalFire; @@ -15,6 +16,8 @@ import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.fi import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.fire.SelfDefensiveFire; 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.ToolOffensiveFire; public class SpellEffectFire extends SpellEffect { @@ -162,4 +165,54 @@ public class SpellEffectFire extends SpellEffect { return (int)(25*Math.pow(1.5*this.powerEnhancement+1,3)*(0.25*this.powerEnhancement+1)*Math.pow(0.85, costEnhancement)); } + + @Override + public void defaultModificationTool(SpellParadigmTool parad) + { + parad.addItemManipulatorEffect(new ToolDefaultFire(this.powerEnhancement,this.potencyEnhancement,this.costEnhancement)); + } + + @Override + public void offensiveModificationTool(SpellParadigmTool parad) + { + parad.addLeftClickEffect(new ToolOffensiveFire(this.powerEnhancement, this.potencyEnhancement, this.costEnhancement)); + + parad.addToolString("offFire", "Fire Aspect" + " " + SpellHelper.getNumeralForInt(this.powerEnhancement + 1)); + } + + @Override + public void defensiveModificationTool(SpellParadigmTool parad) { + // TODO Auto-generated method stub + + } + + @Override + public void environmentalModificationTool(SpellParadigmTool parad) { + // TODO Auto-generated method stub + + } + + @Override + protected int getCostForDefaultTool() + { + return 1000; + } + + @Override + protected int getCostForOffenseTool() { + // TODO Auto-generated method stub + return 0; + } + + @Override + protected int getCostForDefenseTool() { + // TODO Auto-generated method stub + return 0; + } + + @Override + protected int getCostForEnvironmentTool() { + // TODO Auto-generated method stub + return 0; + } } diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellEffectIce.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellEffectIce.java similarity index 81% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellEffectIce.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellEffectIce.java index f11d92b0..71054740 100644 --- a/1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellEffectIce.java +++ b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellEffectIce.java @@ -3,6 +3,7 @@ package WayofTime.alchemicalWizardry.common.spell.complex.effect; import WayofTime.alchemicalWizardry.common.spell.complex.SpellParadigmMelee; import WayofTime.alchemicalWizardry.common.spell.complex.SpellParadigmProjectile; import WayofTime.alchemicalWizardry.common.spell.complex.SpellParadigmSelf; +import WayofTime.alchemicalWizardry.common.spell.complex.SpellParadigmTool; import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.ice.MeleeDefaultIce; import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.ice.MeleeDefensiveIce; import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.ice.MeleeEnvironmentalIce; @@ -15,6 +16,7 @@ import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.ic import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.ice.SelfDefensiveIce; import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.ice.SelfEnvironmentalIce; import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.ice.SelfOffensiveIce; +import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.ice.ToolDefensiveIce; public class SpellEffectIce extends SpellEffect { @@ -164,4 +166,56 @@ public class SpellEffectIce extends SpellEffect { return (int)(20*(0.5*potencyEnhancement+1)*(0*powerEnhancement+1)*Math.pow(0.85, costEnhancement)); } + + @Override + public void defaultModificationTool(SpellParadigmTool parad) { + // TODO Auto-generated method stub + + } + + @Override + public void offensiveModificationTool(SpellParadigmTool parad) + { + parad.addDamageToHash("Sharpness", (this.powerEnhancement+1)*1.5f); + + parad.addToolString("Sharpness", "Sharpness" + " " + SpellHelper.getNumeralForInt((this.powerEnhancement+1))); + + parad.addCritChance("SharpCrit", this.potencyEnhancement); + } + + @Override + public void defensiveModificationTool(SpellParadigmTool parad) + { + parad.addToolSummonEffect(new ToolDefensiveIce(this.powerEnhancement,this.potencyEnhancement,this.costEnhancement)); + } + + @Override + public void environmentalModificationTool(SpellParadigmTool parad) { + // TODO Auto-generated method stub + + } + + @Override + protected int getCostForDefaultTool() { + // TODO Auto-generated method stub + return 0; + } + + @Override + protected int getCostForOffenseTool() + { + return (int)(1000 * (1 + this.powerEnhancement*0.3f) * Math.pow(0.85, costEnhancement)); + } + + @Override + protected int getCostForDefenseTool() { + // TODO Auto-generated method stub + return 0; + } + + @Override + protected int getCostForEnvironmentTool() { + // TODO Auto-generated method stub + return 0; + } } diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellEffectWind.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellEffectWind.java similarity index 72% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellEffectWind.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellEffectWind.java index 91688c44..7bf6ec80 100644 --- a/1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellEffectWind.java +++ b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellEffectWind.java @@ -3,6 +3,7 @@ package WayofTime.alchemicalWizardry.common.spell.complex.effect; import WayofTime.alchemicalWizardry.common.spell.complex.SpellParadigmMelee; import WayofTime.alchemicalWizardry.common.spell.complex.SpellParadigmProjectile; import WayofTime.alchemicalWizardry.common.spell.complex.SpellParadigmSelf; +import WayofTime.alchemicalWizardry.common.spell.complex.SpellParadigmTool; import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.wind.MeleeDefaultWind; import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.wind.MeleeDefensiveWind; import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.wind.MeleeEnvironmentalWind; @@ -14,6 +15,9 @@ import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.wi import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.wind.SelfDefensiveWind; import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.wind.SelfEnvironmentalWind; import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.wind.SelfOffensiveWind; +import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.wind.ToolDefensiveWind; +import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.wind.ToolEnvironmentalWind; +import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.wind.ToolOffensiveWind; public class SpellEffectWind extends SpellEffect { @@ -160,4 +164,79 @@ public class SpellEffectWind extends SpellEffect { return (int)(100*(1.0*this.potencyEnhancement+1)*(0.7*this.powerEnhancement+1)*Math.pow(0.85, costEnhancement)); } + + @Override + public void defaultModificationTool(SpellParadigmTool parad) + { + String toolClass = "axe"; + + float digSpeed = 7.0f; + + switch(this.powerEnhancement) + { + case 1: + digSpeed = 9.0f; + break; + case 2: + digSpeed = 12.0f; + break; + case 3: + digSpeed = 16.0f; + break; + case 4: + digSpeed = 21.0f; + break; + case 5: + digSpeed = 27.0f; + break; + } + + parad.setDigSpeed(toolClass, digSpeed); + + int hlvl = this.potencyEnhancement + 2; + parad.setHarvestLevel(toolClass, hlvl); + } + + @Override + public void offensiveModificationTool(SpellParadigmTool parad) + { + parad.addLeftClickEffect(new ToolOffensiveWind(this.powerEnhancement, this.potencyEnhancement, this.costEnhancement)); + } + + @Override + public void defensiveModificationTool(SpellParadigmTool parad) + { + parad.addLeftClickEffect(new ToolDefensiveWind(this.powerEnhancement, this.potencyEnhancement, this.costEnhancement)); + parad.addToolString("DefWind", "Knockback" + " " + SpellHelper.getNumeralForInt(this.powerEnhancement + 1)); + } + + @Override + public void environmentalModificationTool(SpellParadigmTool parad) + { + parad.addBlockBreakEffect(new ToolEnvironmentalWind(this.powerEnhancement, this.potencyEnhancement, this.costEnhancement)); + } + + @Override + protected int getCostForDefaultTool() + { + return (int)(1000 * (1 + this.potencyEnhancement*0.1f) * (1 + this.powerEnhancement*0.2f) * Math.pow(0.85, costEnhancement)); + } + + @Override + protected int getCostForOffenseTool() + { + return 0; //Cost is on the attack method + } + + @Override + protected int getCostForDefenseTool() + { + return (int)(150 * (1+this.powerEnhancement*0.4f) * (1+this.potencyEnhancement*0.3f) * Math.pow(0.85, costEnhancement)); + } + + @Override + protected int getCostForEnvironmentTool() + { + return (int)(150 * (1+this.powerEnhancement) * Math.pow(0.85, costEnhancement)); + } } diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellHelper.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellHelper.java similarity index 74% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellHelper.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellHelper.java index d3c01b09..3878d7b1 100644 --- a/1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellHelper.java +++ b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellHelper.java @@ -7,6 +7,7 @@ import java.util.Random; import net.minecraft.block.Block; import net.minecraft.block.BlockLiquid; import net.minecraft.entity.Entity; +import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.init.Blocks; @@ -14,6 +15,8 @@ import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemStack; import net.minecraft.item.crafting.FurnaceRecipes; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.MathHelper; +import net.minecraft.util.MovingObjectPosition; import net.minecraft.util.Vec3; import net.minecraft.world.World; import net.minecraftforge.common.util.FakePlayer; @@ -52,6 +55,11 @@ public class SpellHelper return world.getEntitiesWithinAABB(Entity.class, AxisAlignedBB.getBoundingBox(posX-0.5f, posY-0.5f, posZ-0.5f, posX + 0.5f, posY + 0.5f, posZ + 0.5f).expand(horizontalRadius, verticalRadius, horizontalRadius)); } + public static List getItemsInRange(World world, double posX, double posY, double posZ, double horizontalRadius, double verticalRadius) + { + return world.getEntitiesWithinAABB(EntityItem.class, AxisAlignedBB.getBoundingBox(posX-0.5f, posY-0.5f, posZ-0.5f, posX + 0.5f, posY + 0.5f, posZ + 0.5f).expand(horizontalRadius, verticalRadius, horizontalRadius)); + } + public static List getPlayersInRange(World world, double posX, double posY, double posZ, double horizontalRadius, double verticalRadius) { return world.getEntitiesWithinAABB(EntityPlayer.class, AxisAlignedBB.getBoundingBox(posX-0.5f, posY-0.5f, posZ-0.5f, posX + 0.5f, posY + 0.5f, posZ + 0.5f).expand(horizontalRadius, verticalRadius, horizontalRadius)); @@ -298,4 +306,76 @@ public class SpellHelper return null; } + + public static List getItemsFromBlock(World world, Block block, int x, int y, int z, int meta, boolean silkTouch, int fortune) + { + boolean canSilk = block.canSilkHarvest(world, null, x, y, z, meta); + + if(canSilk && silkTouch) + { + ArrayList items = new ArrayList(); + ItemStack item = new ItemStack(block, 1, meta); + + items.add(item); + + return items; + }else + { + return block.getDrops(world, x, y, z, meta, fortune); + } + } + + public static void spawnItemListInWorld(List items, World world, float x, float y, float z) + { + for(ItemStack stack : items) + { + EntityItem itemEntity = new EntityItem(world, x, y, z, stack); + itemEntity.delayBeforeCanPickup = 10; + world.spawnEntityInWorld(itemEntity); + } + } + + public static MovingObjectPosition raytraceFromEntity (World world, Entity player, boolean par3, double range) + { + float f = 1.0F; + float f1 = player.prevRotationPitch + (player.rotationPitch - player.prevRotationPitch) * f; + float f2 = player.prevRotationYaw + (player.rotationYaw - player.prevRotationYaw) * f; + double d0 = player.prevPosX + (player.posX - player.prevPosX) * (double) f; + double d1 = player.prevPosY + (player.posY - player.prevPosY) * (double) f; + if (!world.isRemote && player instanceof EntityPlayer) + d1 += 1.62D; + double d2 = player.prevPosZ + (player.posZ - player.prevPosZ) * (double) f; + Vec3 vec3 = world.getWorldVec3Pool().getVecFromPool(d0, d1, d2); + float f3 = MathHelper.cos(-f2 * 0.017453292F - (float) Math.PI); + float f4 = MathHelper.sin(-f2 * 0.017453292F - (float) Math.PI); + float f5 = -MathHelper.cos(-f1 * 0.017453292F); + float f6 = MathHelper.sin(-f1 * 0.017453292F); + float f7 = f4 * f5; + float f8 = f3 * f5; + double d3 = range; + if (player instanceof EntityPlayerMP) + { + d3 = ((EntityPlayerMP) player).theItemInWorldManager.getBlockReachDistance(); + } + Vec3 vec31 = vec3.addVector((double) f7 * d3, (double) f6 * d3, (double) f8 * d3); + return world.func_147447_a(vec3, vec31, par3, !par3, par3); + } + + public static String getNumeralForInt(int num) + { + switch(num) + { + case 1: return "I"; + case 2: return "II"; + case 3: return "III"; + case 4: return "IV"; + case 5: return "V"; + case 6: return "VI"; + case 7: return "VII"; + case 8: return "VIII"; + case 9: return "IX"; + case 10: return "X"; + default: return ""; + } + } } diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ExtrapolatedMeleeEntityEffect.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ExtrapolatedMeleeEntityEffect.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ExtrapolatedMeleeEntityEffect.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ExtrapolatedMeleeEntityEffect.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/IMeleeSpellEntityEffect.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/IMeleeSpellEntityEffect.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/IMeleeSpellEntityEffect.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/IMeleeSpellEntityEffect.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/IMeleeSpellWorldEffect.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/IMeleeSpellWorldEffect.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/IMeleeSpellWorldEffect.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/IMeleeSpellWorldEffect.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/IProjectileImpactEffect.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/IProjectileImpactEffect.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/IProjectileImpactEffect.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/IProjectileImpactEffect.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/IProjectileUpdateEffect.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/IProjectileUpdateEffect.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/IProjectileUpdateEffect.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/IProjectileUpdateEffect.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ISelfSpellEffect.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ISelfSpellEffect.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ISelfSpellEffect.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ISelfSpellEffect.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/MeleeSpellCenteredWorldEffect.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/MeleeSpellCenteredWorldEffect.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/MeleeSpellCenteredWorldEffect.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/MeleeSpellCenteredWorldEffect.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/MeleeSpellWorldEffect.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/MeleeSpellWorldEffect.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/MeleeSpellWorldEffect.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/MeleeSpellWorldEffect.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ProjectileImpactEffect.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ProjectileImpactEffect.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ProjectileImpactEffect.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ProjectileImpactEffect.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ProjectileUpdateEffect.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ProjectileUpdateEffect.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ProjectileUpdateEffect.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ProjectileUpdateEffect.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/SelfSpellEffect.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/SelfSpellEffect.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/SelfSpellEffect.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/SelfSpellEffect.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/MeleeDefaultEarth.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/MeleeDefaultEarth.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/MeleeDefaultEarth.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/MeleeDefaultEarth.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/MeleeDefensiveEarth.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/MeleeDefensiveEarth.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/MeleeDefensiveEarth.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/MeleeDefensiveEarth.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/MeleeEnvironmentalEarth.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/MeleeEnvironmentalEarth.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/MeleeEnvironmentalEarth.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/MeleeEnvironmentalEarth.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/MeleeOffensiveEarth.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/MeleeOffensiveEarth.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/MeleeOffensiveEarth.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/MeleeOffensiveEarth.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/ProjectileDefaultEarth.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/ProjectileDefaultEarth.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/ProjectileDefaultEarth.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/ProjectileDefaultEarth.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/ProjectileDefensiveEarth.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/ProjectileDefensiveEarth.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/ProjectileDefensiveEarth.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/ProjectileDefensiveEarth.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/ProjectileEnvironmentalEarth.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/ProjectileEnvironmentalEarth.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/ProjectileEnvironmentalEarth.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/ProjectileEnvironmentalEarth.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/ProjectileOffensiveEarth.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/ProjectileOffensiveEarth.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/ProjectileOffensiveEarth.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/ProjectileOffensiveEarth.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/SelfDefaultEarth.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/SelfDefaultEarth.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/SelfDefaultEarth.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/SelfDefaultEarth.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/SelfDefensiveEarth.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/SelfDefensiveEarth.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/SelfDefensiveEarth.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/SelfDefensiveEarth.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/SelfEnvironmentalEarth.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/SelfEnvironmentalEarth.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/SelfEnvironmentalEarth.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/SelfEnvironmentalEarth.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/SelfOffensiveEarth.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/SelfOffensiveEarth.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/SelfOffensiveEarth.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/SelfOffensiveEarth.java diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/ToolEnvironmentalEarth.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/ToolEnvironmentalEarth.java new file mode 100644 index 00000000..a6f03bc1 --- /dev/null +++ b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/ToolEnvironmentalEarth.java @@ -0,0 +1,86 @@ +package WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.earth; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.util.MovingObjectPosition; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; +import WayofTime.alchemicalWizardry.common.items.spell.ItemSpellMultiTool; +import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.tool.DigAreaEffect; + +public class ToolEnvironmentalEarth extends DigAreaEffect +{ + public ToolEnvironmentalEarth(int power, int potency, int cost) + { + super(power, potency, cost); + } + + @Override + public int digSurroundingArea(ItemStack container, World world, EntityPlayer player, MovingObjectPosition blockPos, String usedToolClass, float blockHardness, int harvestLvl, ItemSpellMultiTool itemTool) + { + if(!blockPos.typeOfHit.equals(MovingObjectPosition.MovingObjectType.BLOCK)) + { + return 0; + } + + int x = blockPos.blockX; + int y = blockPos.blockY; + int z = blockPos.blockZ; + ForgeDirection sidehit = ForgeDirection.getOrientation(blockPos.sideHit); + + int radius = 2; + int depth = 5; + + depth--; + + int posX = radius; + int negX = radius; + int posY = radius; + int negY = radius; + int posZ = radius; + int negZ = radius; + + switch(sidehit) + { + case UP: + posY = 0; + negY = depth; + break; + case DOWN: + negY = 0; + posY = depth; + break; + case SOUTH: + posZ = 0; + negZ = depth; + break; + case NORTH: + negZ = 0; + posZ = depth; + break; + case WEST: + negX = 0; + posX = depth; + break; + case EAST: + posX = 0; + negX = depth; + break; + + default: + } + + for(int xPos = x-negX; xPos <= x+posX; xPos++) + { + for(int yPos = y-negY; yPos <= y+posY; yPos++) + { + for(int zPos = z-negZ; zPos <= z+posZ; zPos++) + { + this.breakBlock(container, world, player, blockHardness, xPos, yPos, zPos, itemTool); + } + } + } + + return 0; + } +} diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/MeleeDefaultFire.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/MeleeDefaultFire.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/MeleeDefaultFire.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/MeleeDefaultFire.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/MeleeDefensiveFire.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/MeleeDefensiveFire.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/MeleeDefensiveFire.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/MeleeDefensiveFire.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/MeleeEnvironmentalFire.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/MeleeEnvironmentalFire.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/MeleeEnvironmentalFire.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/MeleeEnvironmentalFire.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/MeleeOffensiveFire.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/MeleeOffensiveFire.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/MeleeOffensiveFire.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/MeleeOffensiveFire.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/ProjectileDefaultFire.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/ProjectileDefaultFire.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/ProjectileDefaultFire.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/ProjectileDefaultFire.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/ProjectileDefensiveFire.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/ProjectileDefensiveFire.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/ProjectileDefensiveFire.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/ProjectileDefensiveFire.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/ProjectileEnvironmentalFire.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/ProjectileEnvironmentalFire.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/ProjectileEnvironmentalFire.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/ProjectileEnvironmentalFire.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/ProjectileOffensiveFire.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/ProjectileOffensiveFire.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/ProjectileOffensiveFire.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/ProjectileOffensiveFire.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/SelfDefaultFire.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/SelfDefaultFire.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/SelfDefaultFire.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/SelfDefaultFire.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/SelfDefensiveFire.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/SelfDefensiveFire.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/SelfDefensiveFire.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/SelfDefensiveFire.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/SelfEnvironmentalFire.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/SelfEnvironmentalFire.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/SelfEnvironmentalFire.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/SelfEnvironmentalFire.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/SelfOffensiveFire.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/SelfOffensiveFire.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/SelfOffensiveFire.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/SelfOffensiveFire.java diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/ToolDefaultFire.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/ToolDefaultFire.java new file mode 100644 index 00000000..2a419e8b --- /dev/null +++ b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/ToolDefaultFire.java @@ -0,0 +1,38 @@ +package WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.fire; + +import java.util.LinkedList; +import java.util.List; + +import net.minecraft.item.ItemStack; +import net.minecraft.item.crafting.FurnaceRecipes; +import net.minecraft.tileentity.TileEntityFurnace; +import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.tool.ItemManipulator; + +public class ToolDefaultFire extends ItemManipulator +{ + public ToolDefaultFire(int power, int potency, int cost) + { + super(power, potency, cost); + } + + @Override + public List handleItemsOnBlockBroken(ItemStack toolStack, List itemList) + { + LinkedList newList = new LinkedList(); + for(ItemStack item : itemList) + { + ItemStack newItem = FurnaceRecipes.smelting().getSmeltingResult(item); + if(newItem != null) + { + newList.add(newItem); + } + else + { + newList.add(item); + } + } + + return newList; + } + +} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/ToolOffensiveFire.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/ToolOffensiveFire.java new file mode 100644 index 00000000..40a59bf0 --- /dev/null +++ b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/ToolOffensiveFire.java @@ -0,0 +1,21 @@ +package WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.fire; + +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.item.ItemStack; +import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.tool.LeftClickEffect; + +public class ToolOffensiveFire extends LeftClickEffect +{ + public ToolOffensiveFire(int power, int potency, int cost) + { + super(power, potency, cost); + } + + @Override + public int onLeftClickEntity(ItemStack stack, EntityLivingBase attacked, EntityLivingBase weilder) + { + attacked.setFire(3 + 4*this.powerUpgrades); + + return (int)(10*(1+this.powerUpgrades)*Math.pow(0.85, this.costUpgrades)); + } +} diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ice/MeleeDefaultIce.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ice/MeleeDefaultIce.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ice/MeleeDefaultIce.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ice/MeleeDefaultIce.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ice/MeleeDefensiveIce.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ice/MeleeDefensiveIce.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ice/MeleeDefensiveIce.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ice/MeleeDefensiveIce.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ice/MeleeEnvironmentalIce.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ice/MeleeEnvironmentalIce.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ice/MeleeEnvironmentalIce.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ice/MeleeEnvironmentalIce.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ice/MeleeOffensiveIce.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ice/MeleeOffensiveIce.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ice/MeleeOffensiveIce.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ice/MeleeOffensiveIce.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ice/ProjectileDefaultIce.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ice/ProjectileDefaultIce.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ice/ProjectileDefaultIce.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ice/ProjectileDefaultIce.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ice/ProjectileDefensiveIce.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ice/ProjectileDefensiveIce.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ice/ProjectileDefensiveIce.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ice/ProjectileDefensiveIce.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ice/ProjectileEnvironmentalIce.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ice/ProjectileEnvironmentalIce.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ice/ProjectileEnvironmentalIce.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ice/ProjectileEnvironmentalIce.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ice/ProjectileOffensiveIce.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ice/ProjectileOffensiveIce.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ice/ProjectileOffensiveIce.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ice/ProjectileOffensiveIce.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ice/SelfDefaultIce.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ice/SelfDefaultIce.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ice/SelfDefaultIce.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ice/SelfDefaultIce.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ice/SelfDefensiveIce.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ice/SelfDefensiveIce.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ice/SelfDefensiveIce.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ice/SelfDefensiveIce.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ice/SelfEnvironmentalIce.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ice/SelfEnvironmentalIce.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ice/SelfEnvironmentalIce.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ice/SelfEnvironmentalIce.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ice/SelfOffensiveIce.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ice/SelfOffensiveIce.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ice/SelfOffensiveIce.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ice/SelfOffensiveIce.java diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ice/ToolDefensiveIce.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ice/ToolDefensiveIce.java new file mode 100644 index 00000000..4a4fac77 --- /dev/null +++ b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ice/ToolDefensiveIce.java @@ -0,0 +1,62 @@ +package WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.ice; + +import java.util.List; + +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.init.Blocks; +import net.minecraft.item.ItemStack; +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; +import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper; +import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.tool.SummonToolEffect; + +public class ToolDefensiveIce extends SummonToolEffect +{ + public ToolDefensiveIce(int power, int potency, int cost) + { + super(power, potency, cost); + } + + @Override + public int onSummonTool(ItemStack toolStack, World world, Entity entity) + { + int horizRadius = this.powerUpgrades*2+2; + int vertRadius = this.powerUpgrades * 3 + 2; + List entityList = SpellHelper.getEntitiesInRange(world, entity.posX, entity.posY, entity.posZ, horizRadius, vertRadius); + + for(Entity ent : entityList) + { + if(ent instanceof EntityLivingBase && !ent.equals(entity)) + { + ((EntityLivingBase)ent).addPotionEffect(new PotionEffect(Potion.moveSlowdown.id,200,this.potencyUpgrades*2)); + } + } + + Vec3 blockVec = SpellHelper.getEntityBlockVector(entity); + + int x = (int)(blockVec.xCoord); + int y = (int)(blockVec.yCoord); + int z = (int)(blockVec.zCoord); + + for(int posX = x-horizRadius; posX <= x+horizRadius; posX++) + { + for(int posY = y-vertRadius; posY <= y+vertRadius; posY++) + { + for(int posZ = z-horizRadius; posZ <= z+horizRadius; posZ++) + { + SpellHelper.freezeWaterBlock(world, posX, posY, posZ); + if(world.isSideSolid(posX, posY, posZ, ForgeDirection.UP) && world.isAirBlock(posX, posY+1, posZ)) + { + world.setBlock(posX, posY+1, posZ, Blocks.snow_layer); + } + } + } + } + + return 0; + } +} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/DigAreaEffect.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/DigAreaEffect.java new file mode 100644 index 00000000..c1e9511f --- /dev/null +++ b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/DigAreaEffect.java @@ -0,0 +1,138 @@ +package WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.tool; + +import java.util.List; + +import net.minecraft.block.Block; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.util.MovingObjectPosition; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; +import WayofTime.alchemicalWizardry.common.items.spell.ItemSpellMultiTool; +import WayofTime.alchemicalWizardry.common.spell.complex.SpellParadigmTool; +import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper; + +public class DigAreaEffect implements IDigAreaEffect +{ + protected int powerUpgrades; + protected int potencyUpgrades; + protected int costUpgrades; + + public DigAreaEffect(int power, int potency, int cost) + { + this.powerUpgrades = power; + this.potencyUpgrades = potency; + this.costUpgrades = cost; + } + + @Override + public int digSurroundingArea(ItemStack container, World world, EntityPlayer player, MovingObjectPosition blockPos, String usedToolClass, float blockHardness, int harvestLvl, ItemSpellMultiTool itemTool) + { + if(!blockPos.typeOfHit.equals(MovingObjectPosition.MovingObjectType.BLOCK)) + { + return 0; + } + + int x = blockPos.blockX; + int y = blockPos.blockY; + int z = blockPos.blockZ; + ForgeDirection sidehit = ForgeDirection.getOrientation(blockPos.sideHit); + + for(int xPos = x-1; xPos <= x+1; xPos++) + { + for(int yPos = y-1; yPos <= y+1; yPos++) + { + for(int zPos = z-1; zPos <= z+1; zPos++) + { + this.breakBlock(container, world, player, blockHardness, xPos, yPos, zPos, itemTool); + } + } + } + + return 0; + } + + public void breakBlock(ItemStack container, World world, EntityPlayer player, float blockHardness, int x, int y, int z, ItemSpellMultiTool itemTool) + { + int hlvl = -1; + Block localBlock = world.getBlock(x, y, z); + int localMeta = world.getBlockMetadata(x, y, z); + String toolClass = localBlock.getHarvestTool(localMeta); + if (toolClass != null && itemTool.getHarvestLevel(container, toolClass) != -1) + hlvl = localBlock.getHarvestLevel(localMeta); + int toolLevel = itemTool.getHarvestLevel(container, toolClass); + + float localHardness = localBlock == null ? Float.MAX_VALUE : localBlock.getBlockHardness(world, x, y, z); + + if (hlvl <= toolLevel && localHardness - this.getHardnessDifference() <= blockHardness) + { + boolean cancelHarvest = false; + + if (!cancelHarvest) + { + if (localBlock != null && !(localHardness < 0)) + { + boolean isEffective = false; + + String localToolClass = itemTool.getToolClassForMaterial(localBlock.getMaterial()); + + if(localToolClass != null && itemTool.getHarvestLevel(container, toolClass) >= localBlock.getHarvestLevel(localMeta)) + { + isEffective = true; + } + + + if (localBlock.getMaterial().isToolNotRequired()) + { + isEffective = true; + } + + + if (!player.capabilities.isCreativeMode) + { + if (isEffective) + { + if (localBlock.removedByPlayer(world, player, x, y, z)) + { + localBlock.onBlockDestroyedByPlayer(world, x, y, z, localMeta); + } + //localBlock.harvestBlock(world, player, x, y, z, localMeta); + localBlock.onBlockHarvested(world, x, y, z, localMeta, player); + if (localHardness > 0f) + itemTool.onBlockDestroyed(container, world, localBlock, x, y, z, player); + + List items = SpellHelper.getItemsFromBlock(world, localBlock, x, y, z, localMeta, itemTool.getSilkTouch(container), itemTool.getFortuneLevel(container)); + + SpellParadigmTool parad = itemTool.loadParadigmFromStack(container); + items = parad.handleItemList(container, items); + + if(!world.isRemote) + { + SpellHelper.spawnItemListInWorld(items, world, x + 0.5f, y + 0.5f, z + 0.5f); + } + + world.func_147479_m(x, y, z); + } + else + { +// world.setBlockToAir(x, y, z); +// world.func_147479_m(x, y, z); + } + + + } + else + { + world.setBlockToAir(x, y, z); + world.func_147479_m(x, y, z); + } + } + } + } + } + + public float getHardnessDifference() + { + return 1.5f; + } +} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/DigAreaTunnel.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/DigAreaTunnel.java new file mode 100644 index 00000000..323ab050 --- /dev/null +++ b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/DigAreaTunnel.java @@ -0,0 +1,171 @@ +package WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.tool; + +import java.util.LinkedList; +import java.util.List; +import java.util.Random; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.util.MovingObjectPosition; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; +import WayofTime.alchemicalWizardry.common.items.spell.ItemSpellMultiTool; + +public class DigAreaTunnel extends DigAreaEffect +{ + Random rand = new Random(); + + public DigAreaTunnel(int power, int potency, int cost) + { + super(power, potency, cost); + } + + @Override + public int digSurroundingArea(ItemStack container, World world, EntityPlayer player, MovingObjectPosition blockPos, String usedToolClass, float blockHardness, int harvestLvl, ItemSpellMultiTool itemTool) + { + if(!blockPos.typeOfHit.equals(MovingObjectPosition.MovingObjectType.BLOCK)) + { + return 0; + } + + List vectorLine = new LinkedList(); + + double initialX = blockPos.blockX; + double initialY = blockPos.blockY; + double initialZ = blockPos.blockZ; + ForgeDirection sidehit = ForgeDirection.getOrientation(blockPos.sideHit); + ForgeDirection opposite = sidehit.getOpposite(); + + System.out.println(opposite.toString()); + + double initialLength = this.getRandomVectorLength(); + + Vec3 initialVector = Vec3.createVectorHelper(opposite.offsetX*initialLength, opposite.offsetY*initialLength, opposite.offsetZ*initialLength); + + Vec3 lastVec = Vec3.createVectorHelper(initialVector.xCoord, initialVector.yCoord, initialVector.zCoord); + vectorLine.add(initialVector); + + double currentLength = lastVec.lengthVector(); + double totalLength = this.totalLength(); + + while(currentLength < totalLength-0.01) + { + Vec3 tempVec = lastVec.addVector(0, 0, 0); + + tempVec = tempVec.normalize(); + + double varr = this.varyRate(); + + tempVec = tempVec.addVector(varr*(rand.nextFloat() - rand.nextFloat()), varr*(rand.nextFloat() - rand.nextFloat()), varr*(rand.nextFloat() - rand.nextFloat())); + + tempVec = tempVec.normalize(); + + double length = Math.min(this.getRandomVectorLength(), totalLength-currentLength); + + tempVec.xCoord = tempVec.xCoord*length; + tempVec.yCoord = tempVec.yCoord*length; + tempVec.zCoord = tempVec.zCoord*length; + + vectorLine.add(tempVec); + + lastVec = tempVec; + + currentLength += tempVec.lengthVector(); + } + + for(Vec3 testVec : vectorLine) + { + this.travelVector(testVec, world, initialX, initialY, initialZ); + + initialX += testVec.xCoord; + initialY += testVec.yCoord; + initialZ += testVec.zCoord; + } + + this.travelVector(lastVec, world, initialX, initialY, initialZ); + + return 0; + } + + public double totalLength() + { + return 100; + } + + public double getStepSize() + { + return 1; + } + + public double varyRate() + { + return 0.5; + } + + public double getRandomVectorLength() + { + return 10; + } + + public double getRandomStepLength() + { + return 0.5; + } + + public int getRandomRadius() + { + return 3; + } + + public void destroySphereOfMundane(World world, double x, double y, double z, int radius) + { + for(int i=-radius; i<=radius; i++) + { + for(int j=-radius; j<=radius; j++) + { + for(int k=-radius; k<=radius; k++) + { + if (i * i + j * j + k * k >= (radius + 0.50f) * (radius + 0.50f)) + { + continue; + } + + int newX = (int)(i + x + 0.5); + int newY = (int)(j + y + 0.5); + int newZ = (int)(k + z + 0.5); + + this.destroyMunadeAt(world, newX, newY, newZ); + } + } + } + } + + public void destroyMunadeAt(World world, int x, int y, int z) + { + world.setBlockToAir(x, y, z); + } + + public void travelVector(Vec3 vector, World world, double x, double y, double z) + { + double vecLength = vector.lengthVector(); + System.out.println(vecLength); + Vec3 normVec = Vec3.createVectorHelper(vector.xCoord, vector.yCoord, vector.zCoord); + normVec = normVec.normalize(); + + Vec3 prevVec = Vec3.createVectorHelper(0, 0, 0); + double distanceTravelled = 0; + + while(distanceTravelled < vecLength) + { + System.out.println(distanceTravelled); + double stepLength = this.getRandomStepLength(); + + prevVec = prevVec.addVector(stepLength*normVec.xCoord, stepLength*normVec.yCoord, normVec.zCoord); + + this.destroySphereOfMundane(world, prevVec.xCoord + x, prevVec.yCoord + y, prevVec.zCoord + z, this.getRandomRadius()); + + distanceTravelled = prevVec.lengthVector(); + } + } +} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/IDigAreaEffect.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/IDigAreaEffect.java new file mode 100644 index 00000000..8e993b49 --- /dev/null +++ b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/IDigAreaEffect.java @@ -0,0 +1,12 @@ +package WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.tool; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.util.MovingObjectPosition; +import net.minecraft.world.World; +import WayofTime.alchemicalWizardry.common.items.spell.ItemSpellMultiTool; + +public interface IDigAreaEffect +{ + public abstract int digSurroundingArea(ItemStack container, World world, EntityPlayer player, MovingObjectPosition blockPos, String usedToolClass, float blockHardness, int harvestLvl, ItemSpellMultiTool itemTool); +} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/IItemManipulator.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/IItemManipulator.java new file mode 100644 index 00000000..4df354e2 --- /dev/null +++ b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/IItemManipulator.java @@ -0,0 +1,10 @@ +package WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.tool; + +import java.util.List; + +import net.minecraft.item.ItemStack; + +public interface IItemManipulator +{ + public List handleItemsOnBlockBroken(ItemStack toolStack, List itemList); +} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/ILeftClickEffect.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/ILeftClickEffect.java new file mode 100644 index 00000000..64ee0ce9 --- /dev/null +++ b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/ILeftClickEffect.java @@ -0,0 +1,11 @@ +package WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.tool; + +import net.minecraft.block.Block; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; + +public interface ILeftClickEffect +{ + public abstract int onLeftClickEntity(ItemStack stack, EntityLivingBase attacked, EntityLivingBase weilder); +} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/IOnBanishTool.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/IOnBanishTool.java new file mode 100644 index 00000000..d734154a --- /dev/null +++ b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/IOnBanishTool.java @@ -0,0 +1,10 @@ +package WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.tool; + +import net.minecraft.entity.Entity; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; + +public interface IOnBanishTool +{ + public abstract int onBanishTool(ItemStack toolStack, World world, Entity entity, int invSlot, boolean inHand); +} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/IOnBreakBlock.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/IOnBreakBlock.java new file mode 100644 index 00000000..0bb58be6 --- /dev/null +++ b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/IOnBreakBlock.java @@ -0,0 +1,12 @@ +package WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.tool; + +import net.minecraft.block.Block; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public interface IOnBreakBlock +{ + public abstract int onBlockBroken(ItemStack container, World world, EntityPlayer player, Block block, int meta, int x, int y, int z, ForgeDirection sideBroken); +} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/IOnSummonTool.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/IOnSummonTool.java new file mode 100644 index 00000000..612e23c8 --- /dev/null +++ b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/IOnSummonTool.java @@ -0,0 +1,10 @@ +package WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.tool; + +import net.minecraft.entity.Entity; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; + +public interface IOnSummonTool +{ + public abstract int onSummonTool(ItemStack toolStack, World world, Entity entity); +} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/IRightClickEffect.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/IRightClickEffect.java new file mode 100644 index 00000000..9bd8db88 --- /dev/null +++ b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/IRightClickEffect.java @@ -0,0 +1,15 @@ +package WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.tool; + +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.item.ItemStack; +import net.minecraft.util.MovingObjectPosition; +import net.minecraft.world.World; + +public interface IRightClickEffect +{ + //public abstract int onRightClickEntity(ItemStack stack, EntityLivingBase attacked, EntityLivingBase weilder); + + public abstract int onRightClickBlock(ItemStack stack, EntityLivingBase weilder, World world, MovingObjectPosition mop); + + public abstract int onRightClickAir(ItemStack stack, EntityLivingBase weilder); +} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/ISpecialDamageEffect.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/ISpecialDamageEffect.java new file mode 100644 index 00000000..3882fd6c --- /dev/null +++ b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/ISpecialDamageEffect.java @@ -0,0 +1,10 @@ +package WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.tool; + +import net.minecraft.entity.Entity; + +public interface ISpecialDamageEffect +{ + public float getDamageForEntity(Entity entity); + + public String getKey(); +} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/IToolUpdateEffect.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/IToolUpdateEffect.java new file mode 100644 index 00000000..ffb0d6cf --- /dev/null +++ b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/IToolUpdateEffect.java @@ -0,0 +1,10 @@ +package WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.tool; + +import net.minecraft.entity.Entity; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; + +public interface IToolUpdateEffect +{ + public abstract int onUpdate(ItemStack toolStack, World world, Entity par3Entity, int invSlot, boolean inHand); +} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/ItemManipulator.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/ItemManipulator.java new file mode 100644 index 00000000..079b7e98 --- /dev/null +++ b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/ItemManipulator.java @@ -0,0 +1,22 @@ +package WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.tool; + +import java.util.List; + +import net.minecraft.item.ItemStack; + +public abstract class ItemManipulator implements IItemManipulator +{ + protected int powerUpgrades; + protected int potencyUpgrades; + protected int costUpgrades; + + public ItemManipulator(int power, int potency, int cost) + { + this.powerUpgrades = power; + this.potencyUpgrades = potency; + this.costUpgrades = cost; + } + + @Override + public abstract List handleItemsOnBlockBroken(ItemStack toolStack,List itemList); +} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/LeftClickEffect.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/LeftClickEffect.java new file mode 100644 index 00000000..63e0629a --- /dev/null +++ b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/LeftClickEffect.java @@ -0,0 +1,21 @@ +package WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.tool; + +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.item.ItemStack; + +public abstract class LeftClickEffect implements ILeftClickEffect +{ + protected int powerUpgrades; + protected int potencyUpgrades; + protected int costUpgrades; + + public LeftClickEffect(int power, int potency, int cost) + { + this.powerUpgrades = power; + this.potencyUpgrades = potency; + this.costUpgrades = cost; + } + + @Override + public abstract int onLeftClickEntity(ItemStack stack, EntityLivingBase attacked, EntityLivingBase weilder); +} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/OnBreakBlockEffect.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/OnBreakBlockEffect.java new file mode 100644 index 00000000..d8521990 --- /dev/null +++ b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/OnBreakBlockEffect.java @@ -0,0 +1,21 @@ +package WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.tool; + +import net.minecraft.block.Block; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public abstract class OnBreakBlockEffect implements IOnBreakBlock +{ + protected int powerUpgrades; + protected int potencyUpgrades; + protected int costUpgrades; + + public OnBreakBlockEffect(int power, int potency, int cost) + { + this.powerUpgrades = power; + this.potencyUpgrades = potency; + this.costUpgrades = cost; + } +} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/RightClickEffect.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/RightClickEffect.java new file mode 100644 index 00000000..e047b01a --- /dev/null +++ b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/RightClickEffect.java @@ -0,0 +1,15 @@ +package WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.tool; + +public abstract class RightClickEffect implements IRightClickEffect +{ + protected int powerUpgrades; + protected int potencyUpgrades; + protected int costUpgrades; + + public RightClickEffect(int power, int potency, int cost) + { + this.powerUpgrades = power; + this.potencyUpgrades = potency; + this.costUpgrades = cost; + } +} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/RightClickTunnel.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/RightClickTunnel.java new file mode 100644 index 00000000..6f300afb --- /dev/null +++ b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/RightClickTunnel.java @@ -0,0 +1,177 @@ +package WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.tool; + +import java.util.LinkedList; +import java.util.List; +import java.util.Random; + +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.item.ItemStack; +import net.minecraft.util.MovingObjectPosition; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class RightClickTunnel extends RightClickEffect +{ + Random rand = new Random(); + public RightClickTunnel(int power, int potency, int cost) + { + super(power, potency, cost); + } + + @Override + public int onRightClickBlock(ItemStack stack, EntityLivingBase weilder, World world, MovingObjectPosition mop) + { + if(weilder.worldObj.isRemote) + { + return 0; + } + if(!mop.typeOfHit.equals(MovingObjectPosition.MovingObjectType.BLOCK)) + { + return 0; + } + + List vectorLine = new LinkedList(); + + double initialX = mop.blockX; + double initialY = mop.blockY; + double initialZ = mop.blockZ; + ForgeDirection sidehit = ForgeDirection.getOrientation(mop.sideHit); + ForgeDirection opposite = sidehit.getOpposite(); + + double initialLength = this.getRandomVectorLength(); + + Vec3 initialVector = Vec3.createVectorHelper(opposite.offsetX*initialLength, opposite.offsetY*initialLength, opposite.offsetZ*initialLength); + + Vec3 lastVec = Vec3.createVectorHelper(initialVector.xCoord, initialVector.yCoord, initialVector.zCoord); + vectorLine.add(initialVector); + + double currentLength = lastVec.lengthVector(); + double totalLength = this.totalLength(); + + while(currentLength < totalLength-0.01) + { + Vec3 tempVec = lastVec.addVector(0, 0, 0); + + tempVec = tempVec.normalize(); + + double varr = this.varyRate(); + + tempVec = tempVec.addVector(varr*(rand.nextFloat() - rand.nextFloat()), varr*(rand.nextFloat() - rand.nextFloat()), varr*(rand.nextFloat() - rand.nextFloat())); + + tempVec = tempVec.normalize(); + + double length = Math.min(this.getRandomVectorLength(), totalLength-currentLength); + + tempVec.xCoord = tempVec.xCoord*length; + tempVec.yCoord = tempVec.yCoord*length; + tempVec.zCoord = tempVec.zCoord*length; + + vectorLine.add(tempVec); + + lastVec = tempVec; + + currentLength += tempVec.lengthVector(); + } + + for(Vec3 testVec : vectorLine) + { + this.travelVector(testVec, world, initialX, initialY, initialZ); + + initialX += testVec.xCoord; + initialY += testVec.yCoord; + initialZ += testVec.zCoord; + } + + this.travelVector(lastVec, world, initialX, initialY, initialZ); + + return 0; + } + + @Override + public int onRightClickAir(ItemStack stack, EntityLivingBase weilder) + { + //Empty Method + return 0; + } + + public double totalLength() + { + return 100; + } + + public double getStepSize() + { + return 1; + } + + public double varyRate() + { + return 0.5; + } + + public double getRandomVectorLength() + { + return 10; + } + + public double getRandomStepLength() + { + return 0.5; + } + + public int getRandomRadius() + { + return 3; + } + + public void destroySphereOfMundane(World world, double x, double y, double z, int radius) + { + for(int i=-radius; i<=radius; i++) + { + for(int j=-radius; j<=radius; j++) + { + for(int k=-radius; k<=radius; k++) + { + if (i * i + j * j + k * k >= (radius + 0.50f) * (radius + 0.50f)) + { + continue; + } + + int newX = (int)(i + x + 0.5); + int newY = (int)(j + y + 0.5); + int newZ = (int)(k + z + 0.5); + + this.destroyMunadeAt(world, newX, newY, newZ); + } + } + } + } + + public void destroyMunadeAt(World world, int x, int y, int z) + { + world.setBlockToAir(x, y, z); + } + + public void travelVector(Vec3 vector, World world, double x, double y, double z) + { + double vecLength = vector.lengthVector(); + + Vec3 normVec = Vec3.createVectorHelper(vector.xCoord, vector.yCoord, vector.zCoord); + normVec = normVec.normalize(); + + Vec3 prevVec = Vec3.createVectorHelper(0, 0, 0); + double distanceTravelled = 0; + + while(distanceTravelled < vecLength) + { + double stepLength = this.getRandomStepLength(); + + prevVec = prevVec.addVector(stepLength*normVec.xCoord, stepLength*normVec.yCoord, normVec.zCoord); + + this.destroySphereOfMundane(world, prevVec.xCoord + x, prevVec.yCoord + y, prevVec.zCoord + z, this.getRandomRadius()); + + distanceTravelled = prevVec.lengthVector(); + } + } +} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/SummonToolEffect.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/SummonToolEffect.java new file mode 100644 index 00000000..e8bb04a4 --- /dev/null +++ b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/SummonToolEffect.java @@ -0,0 +1,15 @@ +package WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.tool; + +public abstract class SummonToolEffect implements IOnSummonTool +{ + protected int powerUpgrades; + protected int potencyUpgrades; + protected int costUpgrades; + + public SummonToolEffect(int power, int potency, int cost) + { + this.powerUpgrades = power; + this.potencyUpgrades = potency; + this.costUpgrades = cost; + } +} diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/MeleeDefaultWind.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/MeleeDefaultWind.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/MeleeDefaultWind.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/MeleeDefaultWind.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/MeleeDefensiveWind.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/MeleeDefensiveWind.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/MeleeDefensiveWind.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/MeleeDefensiveWind.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/MeleeEnvironmentalWind.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/MeleeEnvironmentalWind.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/MeleeEnvironmentalWind.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/MeleeEnvironmentalWind.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/MeleeOffensiveWind.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/MeleeOffensiveWind.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/MeleeOffensiveWind.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/MeleeOffensiveWind.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/ProjectileDefaultWind.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/ProjectileDefaultWind.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/ProjectileDefaultWind.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/ProjectileDefaultWind.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/ProjectileEnvironmentalWind.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/ProjectileEnvironmentalWind.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/ProjectileEnvironmentalWind.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/ProjectileEnvironmentalWind.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/ProjectileOffensiveWind.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/ProjectileOffensiveWind.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/ProjectileOffensiveWind.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/ProjectileOffensiveWind.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/SelfDefaultWind.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/SelfDefaultWind.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/SelfDefaultWind.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/SelfDefaultWind.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/SelfDefensiveWind.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/SelfDefensiveWind.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/SelfDefensiveWind.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/SelfDefensiveWind.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/SelfEnvironmentalWind.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/SelfEnvironmentalWind.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/SelfEnvironmentalWind.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/SelfEnvironmentalWind.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/SelfOffensiveWind.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/SelfOffensiveWind.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/SelfOffensiveWind.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/SelfOffensiveWind.java diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/ToolDefensiveWind.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/ToolDefensiveWind.java new file mode 100644 index 00000000..02dd42dc --- /dev/null +++ b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/ToolDefensiveWind.java @@ -0,0 +1,32 @@ +package WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.wind; + +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.item.ItemStack; +import net.minecraft.util.Vec3; +import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.tool.LeftClickEffect; + +public class ToolDefensiveWind extends LeftClickEffect +{ + + public ToolDefensiveWind(int power, int potency, int cost) + { + super(power, potency, cost); + } + + @Override + public int onLeftClickEntity(ItemStack stack, EntityLivingBase attacked, EntityLivingBase weilder) + { + Vec3 vec = weilder.getLookVec(); + vec.yCoord = 0; + vec.normalize(); + + float velocity = 0.5f*(1+this.powerUpgrades*0.8f); + float ratio = 0.1f + 0.3f*this.potencyUpgrades; + + attacked.motionX += vec.xCoord*velocity; + attacked.motionY += velocity*ratio; + attacked.motionZ += vec.zCoord*velocity; + + return 0; + } +} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/ToolEnvironmentalWind.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/ToolEnvironmentalWind.java new file mode 100644 index 00000000..082c27e2 --- /dev/null +++ b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/ToolEnvironmentalWind.java @@ -0,0 +1,41 @@ +package WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.wind; + +import java.util.List; + +import net.minecraft.block.Block; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; +import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper; +import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.tool.OnBreakBlockEffect; + +public class ToolEnvironmentalWind extends OnBreakBlockEffect +{ + public ToolEnvironmentalWind(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) + { + double vertRange = 0.5 + (this.powerUpgrades*this.powerUpgrades + this.powerUpgrades)/2; + double horizRange = vertRange; + + List itemList = SpellHelper.getItemsInRange(world, x + 0.5f, y + 0.5f, z + 0.5f, horizRange, vertRange); + + for(EntityItem entity : itemList) + { + if(!world.isRemote) + { + entity.delayBeforeCanPickup = 0; + entity.onCollideWithPlayer(player); + } + } + + return 0; + } + +} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/ToolOffensiveWind.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/ToolOffensiveWind.java new file mode 100644 index 00000000..5d08d2df --- /dev/null +++ b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/ToolOffensiveWind.java @@ -0,0 +1,24 @@ +package WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.wind; + +import net.minecraft.entity.EntityLiving; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.item.ItemStack; +import net.minecraft.potion.PotionEffect; +import WayofTime.alchemicalWizardry.AlchemicalWizardry; +import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.tool.LeftClickEffect; + +public class ToolOffensiveWind extends LeftClickEffect +{ + public ToolOffensiveWind(int power, int potency, int cost) + { + super(power, potency, cost); + } + + @Override + public int onLeftClickEntity(ItemStack stack, EntityLivingBase attacked, EntityLivingBase weilder) + { + attacked.addPotionEffect(new PotionEffect(AlchemicalWizardry.customPotionHeavyHeart.id,(int)(100*(2*this.powerUpgrades+1)*(1/(this.potencyUpgrades+1))),this.potencyUpgrades)); + + return (int)(100*(0.5*this.potencyUpgrades+1)*(this.powerUpgrades+1)*Math.pow(0.85, costUpgrades)); + } +} diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/enhancement/SpellEnhancement.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/enhancement/SpellEnhancement.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/enhancement/SpellEnhancement.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/enhancement/SpellEnhancement.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/enhancement/SpellEnhancementCost.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/enhancement/SpellEnhancementCost.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/enhancement/SpellEnhancementCost.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/enhancement/SpellEnhancementCost.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/enhancement/SpellEnhancementPotency.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/enhancement/SpellEnhancementPotency.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/enhancement/SpellEnhancementPotency.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/enhancement/SpellEnhancementPotency.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/enhancement/SpellEnhancementPower.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/enhancement/SpellEnhancementPower.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/spell/complex/enhancement/SpellEnhancementPower.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/enhancement/SpellEnhancementPower.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/spell/simple/HomSpell.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/simple/HomSpell.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/spell/simple/HomSpell.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/simple/HomSpell.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/spell/simple/HomSpellComponent.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/simple/HomSpellComponent.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/spell/simple/HomSpellComponent.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/simple/HomSpellComponent.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/spell/simple/HomSpellRegistry.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/simple/HomSpellRegistry.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/spell/simple/HomSpellRegistry.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/simple/HomSpellRegistry.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/spell/simple/ISimpleSpell.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/simple/ISimpleSpell.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/spell/simple/ISimpleSpell.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/simple/ISimpleSpell.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/spell/simple/SpellEarthBender.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/simple/SpellEarthBender.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/spell/simple/SpellEarthBender.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/simple/SpellEarthBender.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/spell/simple/SpellExplosions.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/simple/SpellExplosions.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/spell/simple/SpellExplosions.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/simple/SpellExplosions.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/spell/simple/SpellFireBurst.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/simple/SpellFireBurst.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/spell/simple/SpellFireBurst.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/simple/SpellFireBurst.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/spell/simple/SpellFrozenWater.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/simple/SpellFrozenWater.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/spell/simple/SpellFrozenWater.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/simple/SpellFrozenWater.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/spell/simple/SpellHolyBlast.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/simple/SpellHolyBlast.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/spell/simple/SpellHolyBlast.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/simple/SpellHolyBlast.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/spell/simple/SpellLightningBolt.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/simple/SpellLightningBolt.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/spell/simple/SpellLightningBolt.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/simple/SpellLightningBolt.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/spell/simple/SpellTeleport.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/simple/SpellTeleport.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/spell/simple/SpellTeleport.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/simple/SpellTeleport.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/spell/simple/SpellWateryGrave.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/simple/SpellWateryGrave.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/spell/simple/SpellWateryGrave.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/simple/SpellWateryGrave.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/spell/simple/SpellWindGust.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/simple/SpellWindGust.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/spell/simple/SpellWindGust.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/simple/SpellWindGust.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/summoning/SummoningFallenAngel.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/summoning/SummoningFallenAngel.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/summoning/SummoningFallenAngel.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/summoning/SummoningFallenAngel.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/summoning/SummoningHelperAW.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/summoning/SummoningHelperAW.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/summoning/SummoningHelperAW.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/summoning/SummoningHelperAW.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/summoning/meteor/MeteorParadigm.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/summoning/meteor/MeteorParadigm.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/summoning/meteor/MeteorParadigm.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/summoning/meteor/MeteorParadigm.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/summoning/meteor/MeteorParadigmComponent.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/summoning/meteor/MeteorParadigmComponent.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/summoning/meteor/MeteorParadigmComponent.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/summoning/meteor/MeteorParadigmComponent.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/summoning/meteor/MeteorRegistry.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/summoning/meteor/MeteorRegistry.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/summoning/meteor/MeteorRegistry.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/summoning/meteor/MeteorRegistry.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/tileEntity/TEAltar.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TEAltar.java similarity index 97% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/tileEntity/TEAltar.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TEAltar.java index eda93956..889aeac6 100644 --- a/1.7.2/java/WayofTime/alchemicalWizardry/common/tileEntity/TEAltar.java +++ b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TEAltar.java @@ -1020,8 +1020,21 @@ public class TEAltar extends TileEntity implements IInventory, IFluidTank, IFlui public void sendChatInfoToPlayer(EntityPlayer player) { - player.addChatMessage(new ChatComponentText("Altar's Current Essence: " + this.fluid.amount+ "LP")); + player.addChatMessage(new ChatComponentText("Altar's Current Essence: " + this.fluid.amount + "LP")); player.addChatMessage(new ChatComponentText("Altar's Current Tier: " + UpgradedAltars.isAltarValid(worldObj, xCoord, yCoord, zCoord))); player.addChatMessage(new ChatComponentText("Capacity: " + this.getCapacity() + "LP")); } + + public void sendMoreChatInfoToPlayer(EntityPlayer player) + { + if(getStackInSlot(0) != null) + { + int stackSize = getStackInSlot(0).stackSize; + player.addChatMessage(new ChatComponentText("Altar's Progress: " + progress + "LP/" + liquidRequired * stackSize + "LP")); + player.addChatMessage(new ChatComponentText("Consumption rate: " + (int)(consumptionRate * (1+consumptionMultiplier)) + "LP/t")); + } + player.addChatMessage(new ChatComponentText("Altar's Current Essence: " + this.fluid.amount + "LP")); + player.addChatMessage(new ChatComponentText(" Input tank: " + this.fluidInput.amount + "LP")); + player.addChatMessage(new ChatComponentText(" Output tank: " + this.fluidOutput.amount + "LP")); + } } diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/tileEntity/TEConduit.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TEConduit.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/tileEntity/TEConduit.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TEConduit.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/tileEntity/TEHomHeart.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TEHomHeart.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/tileEntity/TEHomHeart.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TEHomHeart.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/tileEntity/TEImperfectRitualStone.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TEImperfectRitualStone.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/tileEntity/TEImperfectRitualStone.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TEImperfectRitualStone.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/tileEntity/TEMasterStone.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TEMasterStone.java similarity index 78% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/tileEntity/TEMasterStone.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TEMasterStone.java index 26429085..897b7857 100644 --- a/1.7.2/java/WayofTime/alchemicalWizardry/common/tileEntity/TEMasterStone.java +++ b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TEMasterStone.java @@ -1,8 +1,10 @@ package WayofTime.alchemicalWizardry.common.tileEntity; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.server.MinecraftServer; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ChatComponentText; import net.minecraft.world.World; import WayofTime.alchemicalWizardry.api.rituals.IMasterRitualStone; import WayofTime.alchemicalWizardry.api.rituals.Rituals; @@ -11,7 +13,8 @@ import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper; public class TEMasterStone extends TileEntity implements IMasterRitualStone { - private int currentRitual; + //private int currentRitual; + private String currentRitualString; private boolean isActive; private String owner; private String varString1; @@ -21,25 +24,27 @@ public class TEMasterStone extends TileEntity implements IMasterRitualStone public TEMasterStone() { - currentRitual = 0; + //currentRitual = 0; isActive = false; owner = ""; cooldown = 0; var1 = 0; direction = 0; varString1 = ""; + currentRitualString = ""; } @Override public void readFromNBT(NBTTagCompound par1NBTTagCompound) { super.readFromNBT(par1NBTTagCompound); - currentRitual = par1NBTTagCompound.getInteger("currentRitual"); + //currentRitual = par1NBTTagCompound.getInteger("currentRitual"); isActive = par1NBTTagCompound.getBoolean("isActive"); owner = par1NBTTagCompound.getString("owner"); cooldown = par1NBTTagCompound.getInteger("cooldown"); var1 = par1NBTTagCompound.getInteger("var1"); direction = par1NBTTagCompound.getInteger("direction"); + currentRitualString = par1NBTTagCompound.getString("currentRitualString"); // varString1 = par1NBTTagCompound.getString("varString1"); } @@ -47,33 +52,37 @@ public class TEMasterStone extends TileEntity implements IMasterRitualStone public void writeToNBT(NBTTagCompound par1NBTTagCompound) { super.writeToNBT(par1NBTTagCompound); - par1NBTTagCompound.setInteger("currentRitual", currentRitual); + //par1NBTTagCompound.setInteger("currentRitual", currentRitual); par1NBTTagCompound.setBoolean("isActive", isActive); par1NBTTagCompound.setString("owner", owner); par1NBTTagCompound.setInteger("cooldown", cooldown); par1NBTTagCompound.setInteger("var1", var1); par1NBTTagCompound.setInteger("direction", direction); + par1NBTTagCompound.setString("currentRitualString", currentRitualString); // par1NBTTagCompound.setString("varString1", varString1); } - public void activateRitual(World world, int crystalLevel) + public void activateRitual(World world, int crystalLevel, EntityPlayer player) { - int testRitual = Rituals.checkValidRitual(world, xCoord, yCoord, zCoord); - - if (testRitual == 0) + if (world.isRemote) { return; } + + String testRitual = Rituals.checkValidRitual(world, xCoord, yCoord, zCoord); + + if (testRitual.equals("")) + { + player.addChatMessage(new ChatComponentText("Nothing appears to have happened...")); + return; + } boolean testLevel = Rituals.canCrystalActivate(testRitual, crystalLevel); if (!testLevel) { - return; - } + player.addChatMessage(new ChatComponentText("Your crystal vibrates pathetically.")); - if (world.isRemote) - { return; } @@ -90,6 +99,8 @@ public class TEMasterStone extends TileEntity implements IMasterRitualStone if (currentEssence < Rituals.getCostForActivation(testRitual)) { + player.addChatMessage(new ChatComponentText("You feel a pull, but you are too weak to push any further.")); + //TODO Bad stuff return; } @@ -98,6 +109,8 @@ public class TEMasterStone extends TileEntity implements IMasterRitualStone { data.currentEssence = currentEssence - Rituals.getCostForActivation(testRitual); data.markDirty(); + + player.addChatMessage(new ChatComponentText("A rush of energy flows through the ritual!")); for (int i = 0; i < 12; i++) { @@ -107,7 +120,7 @@ public class TEMasterStone extends TileEntity implements IMasterRitualStone cooldown = Rituals.getInitialCooldown(testRitual); var1 = 0; - currentRitual = testRitual; + currentRitualString = testRitual; isActive = true; direction = Rituals.getDirectionOfRitual(world, xCoord, yCoord, zCoord, testRitual); worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); @@ -135,13 +148,13 @@ public class TEMasterStone extends TileEntity implements IMasterRitualStone if (worldTime % 100 == 0) { - boolean testRunes = Rituals.checkDirectionOfRitualValid(worldObj, xCoord, yCoord, zCoord, currentRitual, direction); + boolean testRunes = Rituals.checkDirectionOfRitualValid(worldObj, xCoord, yCoord, zCoord, currentRitualString, direction); SpellHelper.sendIndexedParticleToAllAround(worldObj, xCoord, yCoord, zCoord, 20, worldObj.provider.dimensionId, 1, xCoord, yCoord, zCoord); if (!testRunes) { isActive = false; - currentRitual = 0; + currentRitualString = ""; worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); //PacketDispatcher.sendPacketToAllPlayers(TEAltar.getParticlePacket(xCoord, yCoord, zCoord, (short)3)); return; @@ -153,12 +166,12 @@ public class TEMasterStone extends TileEntity implements IMasterRitualStone return; } - performRitual(worldObj, xCoord, yCoord, zCoord, currentRitual); + performRitual(worldObj, xCoord, yCoord, zCoord, currentRitualString); } - public void performRitual(World world, int x, int y, int z, int ritualID) + public void performRitual(World world, int x, int y, int z, String currentRitualString2) { - Rituals.performEffect(this, ritualID); + Rituals.performEffect(this, currentRitualString2); } public String getOwner() diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/tileEntity/TEOrientable.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TEOrientable.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/tileEntity/TEOrientable.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TEOrientable.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/tileEntity/TEPedestal.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TEPedestal.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/tileEntity/TEPedestal.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TEPedestal.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/tileEntity/TEPlinth.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TEPlinth.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/tileEntity/TEPlinth.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TEPlinth.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/tileEntity/TESocket.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TESocket.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/tileEntity/TESocket.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TESocket.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/tileEntity/TESpectralContainer.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TESpectralContainer.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/tileEntity/TESpectralContainer.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TESpectralContainer.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/tileEntity/TESpellBlock.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TESpellBlock.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/tileEntity/TESpellBlock.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TESpellBlock.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/tileEntity/TESpellEffectBlock.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TESpellEffectBlock.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/tileEntity/TESpellEffectBlock.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TESpellEffectBlock.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/tileEntity/TESpellEnhancementBlock.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TESpellEnhancementBlock.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/tileEntity/TESpellEnhancementBlock.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TESpellEnhancementBlock.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/tileEntity/TESpellModifierBlock.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TESpellModifierBlock.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/tileEntity/TESpellModifierBlock.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TESpellModifierBlock.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/tileEntity/TESpellParadigmBlock.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TESpellParadigmBlock.java similarity index 95% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/tileEntity/TESpellParadigmBlock.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TESpellParadigmBlock.java index c980373a..014a0eef 100644 --- a/1.7.2/java/WayofTime/alchemicalWizardry/common/tileEntity/TESpellParadigmBlock.java +++ b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TESpellParadigmBlock.java @@ -8,6 +8,7 @@ import WayofTime.alchemicalWizardry.common.spell.complex.SpellParadigm; import WayofTime.alchemicalWizardry.common.spell.complex.SpellParadigmMelee; import WayofTime.alchemicalWizardry.common.spell.complex.SpellParadigmProjectile; import WayofTime.alchemicalWizardry.common.spell.complex.SpellParadigmSelf; +import WayofTime.alchemicalWizardry.common.spell.complex.SpellParadigmTool; public class TESpellParadigmBlock extends TESpellBlock { @@ -19,6 +20,7 @@ public class TESpellParadigmBlock extends TESpellBlock case 0: return new SpellParadigmProjectile(); case 1: return new SpellParadigmSelf(); case 2: return new SpellParadigmMelee(); + case 3: return new SpellParadigmTool(); } return new SpellParadigmSelf(); } diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/tileEntity/TETeleposer.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TETeleposer.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/tileEntity/TETeleposer.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TETeleposer.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/tileEntity/TEWritingTable.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TEWritingTable.java similarity index 92% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/tileEntity/TEWritingTable.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TEWritingTable.java index 10457e40..bc005c4a 100644 --- a/1.7.2/java/WayofTime/alchemicalWizardry/common/tileEntity/TEWritingTable.java +++ b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TEWritingTable.java @@ -9,9 +9,12 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; import net.minecraft.tileentity.TileEntity; import net.minecraftforge.common.util.Constants; +import net.minecraftforge.oredict.OreDictionary; import WayofTime.alchemicalWizardry.ModItems; import WayofTime.alchemicalWizardry.api.alchemy.AlchemicalPotionCreationHandler; +import WayofTime.alchemicalWizardry.api.alchemy.AlchemyRecipe; import WayofTime.alchemicalWizardry.api.alchemy.AlchemyRecipeRegistry; +import WayofTime.alchemicalWizardry.api.items.interfaces.IBloodOrb; import WayofTime.alchemicalWizardry.common.IBindingAgent; import WayofTime.alchemicalWizardry.common.ICatalyst; import WayofTime.alchemicalWizardry.common.IFillingAgent; @@ -696,7 +699,14 @@ public class TEWritingTable extends TileEntity implements IInventory progress = 0; this.setInventorySlotContents(6, getResultingItemStack()); - this.decrementSlots(AlchemyRecipeRegistry.getRecipeForItemStack(getResultingItemStack())); + ItemStack[] composedRecipe = new ItemStack[5]; + + for (int i = 0; i < 5; i++) + { + composedRecipe[i] = inv[i + 1]; + } + + this.decrementSlots(this.getRecipeForItems(composedRecipe, inv[0])); if (worldObj != null) { @@ -723,8 +733,15 @@ public class TEWritingTable extends TileEntity implements IInventory ItemStack result = getResultingItemStack().copy(); result.stackSize += getStackInSlot(6).stackSize; this.setInventorySlotContents(6, result); + + ItemStack[] composedRecipe = new ItemStack[5]; - this.decrementSlots(AlchemyRecipeRegistry.getRecipeForItemStack(getResultingItemStack())); + for (int i = 0; i < 5; i++) + { + composedRecipe[i] = inv[i + 1]; + } + + this.decrementSlots(this.getRecipeForItems(composedRecipe, inv[0])); if (worldObj != null) { @@ -737,7 +754,7 @@ public class TEWritingTable extends TileEntity implements IInventory //worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); } - public void decrementSlots(ItemStack[] recipe) + public void decrementSlots(ItemStack[] recipe) //TODO Fix this. This doesn't work. { boolean[] decrementedList = new boolean[]{false,false,false,false,false}; @@ -754,13 +771,45 @@ public class TEWritingTable extends TileEntity implements IInventory { ItemStack testStack = this.getStackInSlot(j+1); - if(testStack != null && testStack.isItemEqual(decStack) && !(decrementedList[j])) + if(testStack != null && (testStack.isItemEqual(decStack) || (testStack.getItem() == decStack.getItem() && decStack.getItemDamage() == OreDictionary.WILDCARD_VALUE)) && !(decrementedList[j])) { - this.decrStackSize(j+1, 1); + if(testStack.getItem().hasContainerItem(testStack)) + { + this.inv[j+1] = testStack.getItem().getContainerItem(testStack); + }else + { + this.decrStackSize(j+1, 1); + } + decrementedList[j] = true; break; } } } } + + public ItemStack[] getRecipeForItems(ItemStack[] recipe, ItemStack bloodOrb) + { + if (bloodOrb == null) + { + return null; + } + + if (!(bloodOrb.getItem() instanceof IBloodOrb)) + { + return null; + } + + int bloodOrbLevel = ((IBloodOrb) bloodOrb.getItem()).getOrbLevel(); + + for (AlchemyRecipe ar : AlchemyRecipeRegistry.recipes) + { + if (ar.doesRecipeMatch(recipe, bloodOrbLevel)) + { + return ar.getRecipe(); + } + } + + return null; + } } \ No newline at end of file diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/tileEntity/container/ContainerAltar.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/container/ContainerAltar.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/tileEntity/container/ContainerAltar.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/container/ContainerAltar.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/tileEntity/container/ContainerTeleposer.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/container/ContainerTeleposer.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/tileEntity/container/ContainerTeleposer.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/container/ContainerTeleposer.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/tileEntity/container/ContainerWritingTable.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/container/ContainerWritingTable.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/tileEntity/container/ContainerWritingTable.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/container/ContainerWritingTable.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/tileEntity/gui/GuiHandler.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/gui/GuiHandler.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/tileEntity/gui/GuiHandler.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/gui/GuiHandler.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/tileEntity/gui/GuiTeleposer.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/gui/GuiTeleposer.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/tileEntity/gui/GuiTeleposer.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/gui/GuiTeleposer.java diff --git a/1.7.2/java/WayofTime/alchemicalWizardry/common/tileEntity/gui/GuiWritingTable.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/gui/GuiWritingTable.java similarity index 100% rename from 1.7.2/java/WayofTime/alchemicalWizardry/common/tileEntity/gui/GuiWritingTable.java rename to 1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/gui/GuiWritingTable.java diff --git a/1.7.2/main/java/joshie/alchemicalWizardy/nei/NEIAlchemyRecipeHandler.java b/1.7.2/main/java/joshie/alchemicalWizardy/nei/NEIAlchemyRecipeHandler.java new file mode 100644 index 00000000..b21ec47c --- /dev/null +++ b/1.7.2/main/java/joshie/alchemicalWizardy/nei/NEIAlchemyRecipeHandler.java @@ -0,0 +1,132 @@ +package joshie.alchemicalWizardy.nei; + +import java.util.ArrayList; +import java.util.List; + +import net.minecraft.client.Minecraft; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; +import net.minecraft.util.StatCollector; +import WayofTime.alchemicalWizardry.api.alchemy.AlchemyRecipe; +import WayofTime.alchemicalWizardry.api.alchemy.AlchemyRecipeRegistry; +import codechicken.nei.NEIServerUtils; +import codechicken.nei.PositionedStack; +import codechicken.nei.recipe.TemplateRecipeHandler; + +public class NEIAlchemyRecipeHandler extends TemplateRecipeHandler { + public static ArrayList bloodOrbs; + + public class CachedAlchemyRecipe extends CachedRecipe { + public class BloodOrbs { + public PositionedStack stack; + public BloodOrbs(ItemStack orb) { + this.stack = new PositionedStack(orb, 136, 47, false); + } + } + + ArrayList orbs; + PositionedStack output; + List inputs; + int lp; + + public CachedAlchemyRecipe(AlchemyRecipe recipe) { + List inputs = new ArrayList(); + ItemStack[] stacks = recipe.getRecipe(); + if(stacks.length > 0) + inputs.add(new PositionedStack(stacks[0], 76, 3)); + if(stacks.length > 1) + inputs.add(new PositionedStack(stacks[1], 51, 19)); + if(stacks.length > 2) + inputs.add(new PositionedStack(stacks[2], 101, 19)); + if(stacks.length > 3) + inputs.add(new PositionedStack(stacks[3], 64, 47)); + if(stacks.length > 4) + inputs.add(new PositionedStack(stacks[4], 88, 47)); + this.inputs = inputs; + this.output = new PositionedStack(recipe.getResult(), 76, 25); + this.lp = recipe.getAmountNeeded() * 100; + this.orbs = new ArrayList(); + for(int i = recipe.getOrbLevel(); i <= bloodOrbs.size(); i++) { + ItemStack orb = new ItemStack(bloodOrbs.get(i - 1)); + orbs.add(new BloodOrbs(orb)); + } + } + + @Override + public List getIngredients() { + return inputs; + } + + @Override + public PositionedStack getResult() { + return output; + } + + @Override + public PositionedStack getOtherStack() { + return orbs.get((cycleticks/48) % orbs.size()).stack; + } + } + + @Override + public void loadCraftingRecipes(ItemStack result) { + for(AlchemyRecipe recipe: AlchemyRecipeRegistry.recipes) { + ItemStack output = recipe.getResult(); + if(NEIServerUtils.areStacksSameTypeCrafting(result, recipe.getResult())) { + arecipes.add(new CachedAlchemyRecipe(recipe)); + } + } + } + + @Override + public void loadUsageRecipes(ItemStack ingredient) { + for(AlchemyRecipe recipe: AlchemyRecipeRegistry.recipes) { + ItemStack[] stacks = recipe.getRecipe(); + for(ItemStack stack: stacks) { + if(NEIServerUtils.areStacksSameTypeCrafting(stack, ingredient)) { + arecipes.add(new CachedAlchemyRecipe(recipe)); + break; + } + } + + ArrayList orbs = new ArrayList(); + for(int i = recipe.getOrbLevel(); i <= bloodOrbs.size(); i++) { + ItemStack orb = new ItemStack(bloodOrbs.get(i - 1)); + if(NEIServerUtils.areStacksSameTypeCrafting(orb, ingredient)) { + arecipes.add(new CachedAlchemyRecipe(recipe)); + } + } + } + } + + @Override + public void drawExtras(int id) { + CachedAlchemyRecipe cache = (CachedAlchemyRecipe) arecipes.get(id); + Minecraft.getMinecraft().fontRenderer.drawString("\u00a77" + cache.lp + "LP", getLPX(cache.lp), 34, 0); + } + + public int getLPX(int lp) { + if(lp < 10) + return 122; + else if (lp < 100) + return 122; + else if (lp < 1000) + return 130; + else if (lp < 10000) + return 127; + else if (lp < 100000) + return 124; + return 122; + } + + @Override + public String getRecipeName() { + return StatCollector.translateToLocal("tile.blockWritingTable.name"); + } + + @Override + public String getGuiTexture() { + return new ResourceLocation("alchemicalwizardry", "gui/nei/alchemy.png").toString(); + } +} diff --git a/1.7.2/main/java/joshie/alchemicalWizardy/nei/NEIAltarRecipeHandler.java b/1.7.2/main/java/joshie/alchemicalWizardy/nei/NEIAltarRecipeHandler.java new file mode 100644 index 00000000..c2215aa3 --- /dev/null +++ b/1.7.2/main/java/joshie/alchemicalWizardy/nei/NEIAltarRecipeHandler.java @@ -0,0 +1,182 @@ +package joshie.alchemicalWizardy.nei; + +import java.awt.Dimension; +import java.awt.Point; +import java.awt.Rectangle; +import java.lang.reflect.Field; +import java.util.List; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.ScaledResolution; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; +import net.minecraft.util.StatCollector; + +import org.lwjgl.input.Mouse; + +import WayofTime.alchemicalWizardry.api.altarRecipeRegistry.AltarRecipe; +import WayofTime.alchemicalWizardry.api.altarRecipeRegistry.AltarRecipeRegistry; +import codechicken.nei.NEIServerUtils; +import codechicken.nei.PositionedStack; +import codechicken.nei.recipe.GuiRecipe; +import codechicken.nei.recipe.TemplateRecipeHandler; + +public class NEIAltarRecipeHandler extends TemplateRecipeHandler { + public class CachedAltarRecipe extends CachedRecipe { + PositionedStack input; + PositionedStack output; + int tier, lp_amount, consumption, drain; + + public CachedAltarRecipe(AltarRecipe recipe) { + input = new PositionedStack(recipe.requiredItem, 38, 2, false); + output = new PositionedStack(recipe.result, 132, 32, false); + tier = recipe.minTier; + lp_amount = recipe.liquidRequired; + consumption = recipe.consumptionRate; + drain = recipe.drainRate; + } + + @Override + public PositionedStack getIngredient() { + return input; + } + + @Override + public PositionedStack getResult() { + return output; + } + } + + @Override + public void loadCraftingRecipes(String outputId, Object... results) { + if (outputId.equals("altarrecipes") && getClass() == NEIAltarRecipeHandler.class) { + for(AltarRecipe recipe: AltarRecipeRegistry.altarRecipes) { + if(recipe.result != null) arecipes.add(new CachedAltarRecipe(recipe)); + } + } else { + super.loadCraftingRecipes(outputId, results); + } + } + + @Override + public void loadCraftingRecipes(ItemStack result) { + for(AltarRecipe recipe: AltarRecipeRegistry.altarRecipes) { + if(NEIServerUtils.areStacksSameTypeCrafting(recipe.result, result)) { + if(recipe.result != null) arecipes.add(new CachedAltarRecipe(recipe)); + } + } + } + + @Override + public void loadUsageRecipes(ItemStack ingredient) { + for(AltarRecipe recipe: AltarRecipeRegistry.altarRecipes) { + if(NEIServerUtils.areStacksSameTypeCrafting(recipe.requiredItem, ingredient)) { + if(recipe.result != null) arecipes.add(new CachedAltarRecipe(recipe)); + } + } + } + + //Mouse Position helper + public Point getMouse(int width, int height) { + Point mousepos = this.getMousePosition(); + int guiLeft = (width - 176) / 2; + int guiTop = (height - 166) / 2; + Point relMouse = new Point(mousepos.x - guiLeft, mousepos.y - guiTop); + return relMouse; + } + + //width helper, getting width normal way hates me on compile + public int getGuiWidth(GuiRecipe gui) { + try { + Field f = gui.getClass().getField("width"); + return (Integer) f.get(gui); + } catch (NoSuchFieldException e) { + try { + Field f = gui.getClass().getField("field_73880_f"); + return (Integer) f.get(gui); + } catch (Exception e2) { + return 0; + } + } catch (Exception e) { + e.printStackTrace(); + return 0; + } + } + + //height helper, getting height normal way hates me on compile + public int getGuiHeight(GuiRecipe gui) { + try { + Field f = gui.getClass().getField("height"); + return (Integer) f.get(gui); + } catch (NoSuchFieldException e) { + try { + Field f = gui.getClass().getField("field_73881_g"); + return (Integer) f.get(gui); + } catch (Exception e2) { + return 0; + } + } catch (Exception e) { + e.printStackTrace(); + return 0; + } + } + + @Override + public void drawExtras(int id) { + CachedAltarRecipe recipe = (CachedAltarRecipe) arecipes.get(id); + Minecraft.getMinecraft().fontRenderer.drawString("\u00a77" + StatCollector.translateToLocal("bm.string.tier") + ": " + recipe.tier, 78, 5, 0); + Minecraft.getMinecraft().fontRenderer.drawString("\u00a77" + "LP: " + recipe.lp_amount, 78, 15, 0); + } + + @Override + public List handleTooltip(GuiRecipe gui, List currenttip, int id) { + currenttip = super.handleTooltip(gui, currenttip, id); + Point mouse = getMouse(getGuiWidth(gui), getGuiHeight(gui)); + CachedAltarRecipe recipe = (CachedAltarRecipe) arecipes.get(id); + int yLow = id % 2 == 0 ? 38 : 102; + int yHigh = id % 2 == 0 ? 72 : 136; + if(mouse.x >= 19 && mouse.x <= 80 && mouse.y >= yLow && mouse.y <= yHigh) { + currenttip.add(StatCollector.translateToLocal("bm.string.consume") + ": " + recipe.consumption + "LP/t"); + currenttip.add(StatCollector.translateToLocal("bm.string.drain") + ": " + recipe.drain + "LP/t"); + } + + return currenttip; + } + + @Override + public String getOverlayIdentifier() { + return "altarrecipes"; + } + + @Override + public void loadTransferRects() { + transferRects.add(new RecipeTransferRect(new Rectangle(90, 32, 22, 16), "altarrecipes")); + } + + @Override + public String getRecipeName() { + return " " + StatCollector.translateToLocal("tile.bloodAltar.name"); + } + + @Override + public String getGuiTexture() { + return new ResourceLocation("alchemicalwizardry", "gui/nei/altar.png").toString(); + } + + public static Point getMousePosition() { + Dimension size = displaySize(); + Dimension res = displayRes(); + return new Point(Mouse.getX() * size.width / res.width, size.height - Mouse.getY() * size.height / res.height - 1); + } + + public static Dimension displaySize() { + Minecraft mc = Minecraft.getMinecraft(); + ScaledResolution res = new ScaledResolution(mc.gameSettings, mc.displayWidth, mc.displayHeight); + return new Dimension(res.getScaledWidth(), res.getScaledHeight()); + } + + public static Dimension displayRes() { + Minecraft mc = Minecraft.getMinecraft(); + return new Dimension(mc.displayWidth, mc.displayHeight); + } +} diff --git a/1.7.2/main/java/joshie/alchemicalWizardy/nei/NEIConfig.java b/1.7.2/main/java/joshie/alchemicalWizardy/nei/NEIConfig.java new file mode 100644 index 00000000..e4dcdf36 --- /dev/null +++ b/1.7.2/main/java/joshie/alchemicalWizardy/nei/NEIConfig.java @@ -0,0 +1,35 @@ +package joshie.alchemicalWizardy.nei; + +import java.util.ArrayList; + +import net.minecraft.item.Item; +import WayofTime.alchemicalWizardry.ModItems; +import codechicken.nei.api.API; +import codechicken.nei.api.IConfigureNEI; + +public class NEIConfig implements IConfigureNEI { + @Override + public void loadConfig() { + API.registerRecipeHandler(new NEIAlchemyRecipeHandler()); + API.registerUsageHandler(new NEIAlchemyRecipeHandler()); + API.registerRecipeHandler(new NEIAltarRecipeHandler()); + API.registerUsageHandler(new NEIAltarRecipeHandler()); + + NEIAlchemyRecipeHandler.bloodOrbs = new ArrayList(); + NEIAlchemyRecipeHandler.bloodOrbs.add(ModItems.weakBloodOrb); + NEIAlchemyRecipeHandler.bloodOrbs.add(ModItems.apprenticeBloodOrb); + NEIAlchemyRecipeHandler.bloodOrbs.add(ModItems.magicianBloodOrb); + NEIAlchemyRecipeHandler.bloodOrbs.add(ModItems.masterBloodOrb); + NEIAlchemyRecipeHandler.bloodOrbs.add(ModItems.archmageBloodOrb); + } + + @Override + public String getName() { + return "Blood Magic NEI"; + } + + @Override + public String getVersion() { + return "1.1"; + } +} diff --git a/1.7.2/resources/assets/alchemicalwizardry/altar.png b/1.7.2/main/resources/assets/alchemicalwizardry/altar.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/altar.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/altar.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/books/architect.xml b/1.7.2/main/resources/assets/alchemicalwizardry/books/architect.xml similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/books/architect.xml rename to 1.7.2/main/resources/assets/alchemicalwizardry/books/architect.xml diff --git a/1.7.2/resources/assets/alchemicalwizardry/gui/Teleposer.png b/1.7.2/main/resources/assets/alchemicalwizardry/gui/Teleposer.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/gui/Teleposer.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/gui/Teleposer.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/gui/WritingTable.png b/1.7.2/main/resources/assets/alchemicalwizardry/gui/WritingTable.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/gui/WritingTable.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/gui/WritingTable.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/gui/bookleft.png b/1.7.2/main/resources/assets/alchemicalwizardry/gui/bookleft.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/gui/bookleft.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/gui/bookleft.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/gui/nei/alchemy.png b/1.7.2/main/resources/assets/alchemicalwizardry/gui/nei/alchemy.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/gui/nei/alchemy.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/gui/nei/alchemy.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/gui/nei/altar.png b/1.7.2/main/resources/assets/alchemicalwizardry/gui/nei/altar.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/gui/nei/altar.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/gui/nei/altar.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/lang/de_DE.lang b/1.7.2/main/resources/assets/alchemicalwizardry/lang/de_DE.lang similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/lang/de_DE.lang rename to 1.7.2/main/resources/assets/alchemicalwizardry/lang/de_DE.lang diff --git a/1.7.2/resources/assets/alchemicalwizardry/lang/en_US.lang b/1.7.2/main/resources/assets/alchemicalwizardry/lang/en_US.lang similarity index 98% rename from 1.7.2/resources/assets/alchemicalwizardry/lang/en_US.lang rename to 1.7.2/main/resources/assets/alchemicalwizardry/lang/en_US.lang index cb05cce3..cac0d43d 100644 --- a/1.7.2/resources/assets/alchemicalwizardry/lang/en_US.lang +++ b/1.7.2/main/resources/assets/alchemicalwizardry/lang/en_US.lang @@ -130,7 +130,7 @@ 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.bloodMagicBaseItem.quartzRod.name=Quartz Rod +item.bloodMagicBaseItem.QuartzRod.name=Quartz Rod item.bloodMagicBaseItem.EmptyCore.name=Empty Core item.bloodMagicBaseItem.MagicalesCable.name=Magicales Cable item.bloodMagicBaseItem.WoodBrace.name=Wooden Brace @@ -166,6 +166,8 @@ item.bloodMagicAlchemyItem.Virtus.name=Virtus item.bloodMagicAlchemyItem.Reductus.name=Reductus item.bloodMagicAlchemyItem.Potentia.name=Potentia item.sanguineHelmet.name=Sanguine Helmet +item.itemSeerSigil.name=Sigil of Sight +item.itemFluidSigil.name= #Creative Tab diff --git a/1.7.2/resources/assets/alchemicalwizardry/models/armor/armor - Shortcut.lnk b/1.7.2/main/resources/assets/alchemicalwizardry/models/armor/armor - Shortcut.lnk similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/models/armor/armor - Shortcut.lnk rename to 1.7.2/main/resources/assets/alchemicalwizardry/models/armor/armor - Shortcut.lnk diff --git a/1.7.2/resources/assets/alchemicalwizardry/models/armor/boundArmour_invisible_layer_1.png b/1.7.2/main/resources/assets/alchemicalwizardry/models/armor/boundArmour_invisible_layer_1.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/models/armor/boundArmour_invisible_layer_1.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/models/armor/boundArmour_invisible_layer_1.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/models/armor/boundArmour_invisible_layer_2.png b/1.7.2/main/resources/assets/alchemicalwizardry/models/armor/boundArmour_invisible_layer_2.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/models/armor/boundArmour_invisible_layer_2.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/models/armor/boundArmour_invisible_layer_2.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/models/armor/boundArmour_layer_1.png b/1.7.2/main/resources/assets/alchemicalwizardry/models/armor/boundArmour_layer_1.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/models/armor/boundArmour_layer_1.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/models/armor/boundArmour_layer_1.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/models/armor/boundArmour_layer_2.png b/1.7.2/main/resources/assets/alchemicalwizardry/models/armor/boundArmour_layer_2.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/models/armor/boundArmour_layer_2.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/models/armor/boundArmour_layer_2.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/models/armor/sanguineArmour_layer_1.png b/1.7.2/main/resources/assets/alchemicalwizardry/models/armor/sanguineArmour_layer_1.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/models/armor/sanguineArmour_layer_1.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/models/armor/sanguineArmour_layer_1.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/blocks/AirRitualStone.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/AirRitualStone.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/blocks/AirRitualStone.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/AirRitualStone.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/blocks/AlchemicChemistrySet.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/AlchemicChemistrySet.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/blocks/AlchemicChemistrySet.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/AlchemicChemistrySet.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/blocks/AltarCapacityRune.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/AltarCapacityRune.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/blocks/AltarCapacityRune.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/AltarCapacityRune.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/blocks/ArcanePedestal.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/ArcanePedestal.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/blocks/ArcanePedestal.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/ArcanePedestal.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/blocks/ArcanePlinth.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/ArcanePlinth.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/blocks/ArcanePlinth.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/ArcanePlinth.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/blocks/BlankRune.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/BlankRune.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/blocks/BlankRune.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/BlankRune.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/blocks/BlockBloodLight.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/BlockBloodLight.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/blocks/BlockBloodLight.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/BlockBloodLight.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/blocks/BloodAltar_Bottom.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/BloodAltar_Bottom.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/blocks/BloodAltar_Bottom.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/BloodAltar_Bottom.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/blocks/BloodAltar_SideType1.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/BloodAltar_SideType1.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/blocks/BloodAltar_SideType1.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/BloodAltar_SideType1.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/blocks/BloodAltar_SideType2.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/BloodAltar_SideType2.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/blocks/BloodAltar_SideType2.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/BloodAltar_SideType2.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/blocks/BloodAltar_Top.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/BloodAltar_Top.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/blocks/BloodAltar_Top.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/BloodAltar_Top.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/blocks/BloodSocket.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/BloodSocket.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/blocks/BloodSocket.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/BloodSocket.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/blocks/BloodStoneBrick.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/BloodStoneBrick.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/blocks/BloodStoneBrick.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/BloodStoneBrick.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/blocks/DislocationRune.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/DislocationRune.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/blocks/DislocationRune.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/DislocationRune.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/blocks/DuskRitualStone.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/DuskRitualStone.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/blocks/DuskRitualStone.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/DuskRitualStone.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/blocks/EarthRitualStone.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/EarthRitualStone.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/blocks/EarthRitualStone.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/EarthRitualStone.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/blocks/EfficiencyRune.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/EfficiencyRune.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/blocks/EfficiencyRune.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/EfficiencyRune.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/blocks/EmptySocket.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/EmptySocket.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/blocks/EmptySocket.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/EmptySocket.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/blocks/FireRitualStone.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/FireRitualStone.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/blocks/FireRitualStone.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/FireRitualStone.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/blocks/HomHeart_bottom.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/HomHeart_bottom.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/blocks/HomHeart_bottom.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/HomHeart_bottom.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/blocks/HomHeart_side.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/HomHeart_side.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/blocks/HomHeart_side.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/HomHeart_side.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/blocks/HomHeart_top.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/HomHeart_top.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/blocks/HomHeart_top.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/HomHeart_top.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/blocks/HomHeart_top1.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/HomHeart_top1.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/blocks/HomHeart_top1.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/HomHeart_top1.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/blocks/ImperfectRitualStone.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/ImperfectRitualStone.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/blocks/ImperfectRitualStone.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/ImperfectRitualStone.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/blocks/LargeBloodStoneBrick.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/LargeBloodStoneBrick.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/blocks/LargeBloodStoneBrick.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/LargeBloodStoneBrick.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/blocks/MasterStone.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/MasterStone.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/blocks/MasterStone.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/MasterStone.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/blocks/OrbCapacityRune.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/OrbCapacityRune.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/blocks/OrbCapacityRune.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/OrbCapacityRune.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/blocks/RitualStone.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/RitualStone.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/blocks/RitualStone.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/RitualStone.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/blocks/RuneOfSacrifice.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/RuneOfSacrifice.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/blocks/RuneOfSacrifice.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/RuneOfSacrifice.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/blocks/RuneOfSelfSacrifice.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/RuneOfSelfSacrifice.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/blocks/RuneOfSelfSacrifice.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/RuneOfSelfSacrifice.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/blocks/SoulForge.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/SoulForge.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/blocks/SoulForge.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/SoulForge.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/blocks/SpectralBlock.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/SpectralBlock.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/blocks/SpectralBlock.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/SpectralBlock.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/blocks/SpeedRune.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/SpeedRune.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/blocks/SpeedRune.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/SpeedRune.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/blocks/Teleposer_Side.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/Teleposer_Side.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/blocks/Teleposer_Side.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/Teleposer_Side.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/blocks/Teleposer_Top.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/Teleposer_Top.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/blocks/Teleposer_Top.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/Teleposer_Top.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/blocks/Testing.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/Testing.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/blocks/Testing.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/Testing.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/blocks/WaterRitualStone.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/WaterRitualStone.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/blocks/WaterRitualStone.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/WaterRitualStone.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/blocks/fireEffectBlock_blank.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/fireEffectBlock_blank.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/blocks/fireEffectBlock_blank.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/fireEffectBlock_blank.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/blocks/fireEffectBlock_input.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/fireEffectBlock_input.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/blocks/fireEffectBlock_input.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/fireEffectBlock_input.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/blocks/fireEffectBlock_output.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/fireEffectBlock_output.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/blocks/fireEffectBlock_output.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/fireEffectBlock_output.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/blocks/fireEffectBlock_upArrow.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/fireEffectBlock_upArrow.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/blocks/fireEffectBlock_upArrow.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/fireEffectBlock_upArrow.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/blocks/lifeEssenceFlowing.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/lifeEssenceFlowing.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/blocks/lifeEssenceFlowing.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/lifeEssenceFlowing.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/blocks/lifeEssenceStill.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/lifeEssenceStill.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/blocks/lifeEssenceStill.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/lifeEssenceStill.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/entities/energyBlastProjectile.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/entities/energyBlastProjectile.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/entities/energyBlastProjectile.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/entities/energyBlastProjectile.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/entities/explosionProjectile.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/entities/explosionProjectile.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/entities/explosionProjectile.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/entities/explosionProjectile.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/entities/fireProjectile.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/entities/fireProjectile.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/entities/fireProjectile.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/entities/fireProjectile.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/entities/holyProjectile.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/entities/holyProjectile.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/entities/holyProjectile.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/entities/holyProjectile.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/entities/iceProjectile.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/entities/iceProjectile.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/entities/iceProjectile.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/entities/iceProjectile.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/entities/lightningProjectile.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/entities/lightningProjectile.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/entities/lightningProjectile.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/entities/lightningProjectile.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/entities/mudProjectile.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/entities/mudProjectile.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/entities/mudProjectile.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/entities/mudProjectile.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/entities/waterProjectile.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/entities/waterProjectile.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/entities/waterProjectile.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/entities/waterProjectile.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/entities/windGustProjectile.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/entities/windGustProjectile.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/entities/windGustProjectile.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/entities/windGustProjectile.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/gui/GuiTrap.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/gui/GuiTrap.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/gui/GuiTrap.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/gui/GuiTrap.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/gui/bookcrafting.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/gui/bookcrafting.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/gui/bookcrafting.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/gui/bookcrafting.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/gui/bookfurnace.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/gui/bookfurnace.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/gui/bookfurnace.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/gui/bookfurnace.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/gui/bookleft.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/gui/bookleft.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/gui/bookleft.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/gui/bookleft.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/gui/bookright.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/gui/bookright.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/gui/bookright.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/gui/bookright.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/8wWtY8d.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/8wWtY8d.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/8wWtY8d.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/8wWtY8d.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/Aether.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/Aether.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/Aether.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/Aether.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/AirScribeTool.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/AirScribeTool.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/AirScribeTool.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/AirScribeTool.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/AirSigil.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/AirSigil.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/AirSigil.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/AirSigil.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/AlchemyFlask.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/AlchemyFlask.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/AlchemyFlask.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/AlchemyFlask.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/ApprenticeBloodOrb.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/ApprenticeBloodOrb.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/ApprenticeBloodOrb.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/ApprenticeBloodOrb.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/Aquasalus.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/Aquasalus.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/Aquasalus.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/Aquasalus.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/ArchmageBloodOrb.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/ArchmageBloodOrb.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/ArchmageBloodOrb.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/ArchmageBloodOrb.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/ArmourInhibitor_activated.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/ArmourInhibitor_activated.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/ArmourInhibitor_activated.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/ArmourInhibitor_activated.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/ArmourInhibitor_deactivated.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/ArmourInhibitor_deactivated.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/ArmourInhibitor_deactivated.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/ArmourInhibitor_deactivated.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/AverageLengtheningCatalyst.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/AverageLengtheningCatalyst.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/AverageLengtheningCatalyst.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/AverageLengtheningCatalyst.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/AveragePowerCatalyst.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/AveragePowerCatalyst.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/AveragePowerCatalyst.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/AveragePowerCatalyst.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/BlankSlate.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/BlankSlate.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/BlankSlate.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/BlankSlate.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/BlankSpell.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/BlankSpell.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/BlankSpell.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/BlankSpell.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/BloodFrame.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/BloodFrame.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/BloodFrame.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/BloodFrame.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/BloodLightSigil.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/BloodLightSigil.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/BloodLightSigil.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/BloodLightSigil.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/BoundAxe_activated.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/BoundAxe_activated.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/BoundAxe_activated.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/BoundAxe_activated.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/BoundBoots.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/BoundBoots.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/BoundBoots.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/BoundBoots.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/BoundHelmet.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/BoundHelmet.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/BoundHelmet.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/BoundHelmet.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/BoundLeggings.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/BoundLeggings.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/BoundLeggings.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/BoundLeggings.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/BoundPickaxe_activated.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/BoundPickaxe_activated.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/BoundPickaxe_activated.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/BoundPickaxe_activated.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/BoundPickaxe_deactivated.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/BoundPickaxe_deactivated.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/BoundPickaxe_deactivated.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/BoundPickaxe_deactivated.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/BoundPlate.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/BoundPlate.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/BoundPlate.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/BoundPlate.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/BoundShovel_activated.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/BoundShovel_activated.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/BoundShovel_activated.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/BoundShovel_activated.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/BoundSword_activated.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/BoundSword_activated.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/BoundSword_activated.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/BoundSword_activated.png diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/BoundTool.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/BoundTool.png new file mode 100644 index 0000000000000000000000000000000000000000..f79088b62c785300831b255c1b367bc0e7b0de11 GIT binary patch literal 376 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmPqt0W_nWlFla^OtO8uI*xEeAJI7VB|q)^ zTc-blyPAFZ?EhaIE@?QiLCiyLz*?-mHQYAN$Ti znPO3vGi#nYwX9Zn;MB6_gYM?fEal$~LqyLXRxGmI>u0=HD0J$ou1z|Dd+QR+{#CW+ zeq~`OIK~*UU4OOKWR*mTwj8ge+IsaWp{cW$sef31dD|WCeN~bS>*D@(*D&3h*uc6+ T?z=BAj2Jv!{an^LB{Ts5+gp*^ literal 0 HcmV?d00001 diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/BridgeSigil_activated.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/BridgeSigil_activated.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/BridgeSigil_activated.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/BridgeSigil_activated.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/BridgeSigil_deactivated.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/BridgeSigil_deactivated.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/BridgeSigil_deactivated.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/BridgeSigil_deactivated.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/CeremonialDagger.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/CeremonialDagger.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/CeremonialDagger.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/CeremonialDagger.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/ComplexCrystal.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/ComplexCrystal.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/ComplexCrystal.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/ComplexCrystal.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/Crepitous.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/Crepitous.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/Crepitous.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/Crepitous.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/Crystallos.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/Crystallos.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/Crystallos.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/Crystallos.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/DaggerOfSacrifice.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/DaggerOfSacrifice.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/DaggerOfSacrifice.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/DaggerOfSacrifice.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/DemonBloodShard.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/DemonBloodShard.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/DemonBloodShard.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/DemonBloodShard.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/DemonPlacer.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/DemonPlacer.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/DemonPlacer.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/DemonPlacer.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/DemonSlate.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/DemonSlate.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/DemonSlate.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/DemonSlate.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/DemonicTeleposerFocus.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/DemonicTeleposerFocus.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/DemonicTeleposerFocus.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/DemonicTeleposerFocus.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/DiabloKey.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/DiabloKey.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/DiabloKey.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/DiabloKey.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/DivinationSigil.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/DivinationSigil.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/DivinationSigil.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/DivinationSigil.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/DuskScribeTool.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/DuskScribeTool.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/DuskScribeTool.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/DuskScribeTool.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/EarthScribeTool.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/EarthScribeTool.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/EarthScribeTool.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/EarthScribeTool.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/ElementalInkAir.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/ElementalInkAir.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/ElementalInkAir.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/ElementalInkAir.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/ElementalInkEarth.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/ElementalInkEarth.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/ElementalInkEarth.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/ElementalInkEarth.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/ElementalInkFire.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/ElementalInkFire.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/ElementalInkFire.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/ElementalInkFire.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/ElementalInkWater.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/ElementalInkWater.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/ElementalInkWater.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/ElementalInkWater.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/ElementalSigil_activated.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/ElementalSigil_activated.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/ElementalSigil_activated.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/ElementalSigil_activated.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/ElementalSigil_deactivated.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/ElementalSigil_deactivated.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/ElementalSigil_deactivated.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/ElementalSigil_deactivated.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/EnergyBattery.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/EnergyBattery.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/EnergyBattery.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/EnergyBattery.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/EnergyBazooka_activated.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/EnergyBazooka_activated.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/EnergyBazooka_activated.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/EnergyBazooka_activated.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/EnergyBlaster_activated.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/EnergyBlaster_activated.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/EnergyBlaster_activated.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/EnergyBlaster_activated.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/EnhancedFillingAgent.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/EnhancedFillingAgent.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/EnhancedFillingAgent.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/EnhancedFillingAgent.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/EnhancedTeleposerFocus.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/EnhancedTeleposerFocus.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/EnhancedTeleposerFocus.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/EnhancedTeleposerFocus.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/FireScribeTool.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/FireScribeTool.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/FireScribeTool.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/FireScribeTool.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/GreaterLengtheningCatalyst.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/GreaterLengtheningCatalyst.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/GreaterLengtheningCatalyst.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/GreaterLengtheningCatalyst.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/GreaterPowerCatalyst.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/GreaterPowerCatalyst.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/GreaterPowerCatalyst.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/GreaterPowerCatalyst.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/GrowthSigil_activated.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/GrowthSigil_activated.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/GrowthSigil_activated.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/GrowthSigil_activated.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/GrowthSigil_deactivated.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/GrowthSigil_deactivated.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/GrowthSigil_deactivated.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/GrowthSigil_deactivated.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/HasteSigil_activated.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/HasteSigil_activated.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/HasteSigil_activated.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/HasteSigil_activated.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/HasteSigil_deactivated.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/HasteSigil_deactivated.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/HasteSigil_deactivated.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/HasteSigil_deactivated.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/IceSigil_activated.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/IceSigil_activated.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/IceSigil_activated.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/IceSigil_activated.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/IceSigil_deactivated.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/IceSigil_deactivated.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/IceSigil_deactivated.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/IceSigil_deactivated.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/Incendium.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/Incendium.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/Incendium.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/Incendium.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/InfusedSlate.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/InfusedSlate.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/InfusedSlate.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/InfusedSlate.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/LavaCrystal.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/LavaCrystal.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/LavaCrystal.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/LavaCrystal.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/LavaSigil.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/LavaSigil.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/LavaSigil.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/LavaSigil.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/LifeBucket.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/LifeBucket.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/LifeBucket.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/LifeBucket.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/Magicales.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/Magicales.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/Magicales.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/Magicales.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/MagicianBloodOrb.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/MagicianBloodOrb.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/MagicianBloodOrb.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/MagicianBloodOrb.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/MasterBloodOrb.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/MasterBloodOrb.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/MasterBloodOrb.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/MasterBloodOrb.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/MiningSigil_activated.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/MiningSigil_activated.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/MiningSigil_activated.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/MiningSigil_activated.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/MiningSigil_deactivated.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/MiningSigil_deactivated.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/MiningSigil_deactivated.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/MiningSigil_deactivated.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/MundaneLengtheningCatalyst.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/MundaneLengtheningCatalyst.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/MundaneLengtheningCatalyst.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/MundaneLengtheningCatalyst.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/MundanePowerCatalyst.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/MundanePowerCatalyst.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/MundanePowerCatalyst.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/MundanePowerCatalyst.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/PotionFlask.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/PotionFlask.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/PotionFlask.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/PotionFlask.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/ReinforcedSlate.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/ReinforcedSlate.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/ReinforcedSlate.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/ReinforcedSlate.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/ReinforcedTeleposerFocus.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/ReinforcedTeleposerFocus.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/ReinforcedTeleposerFocus.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/ReinforcedTeleposerFocus.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/RitualDiviner.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/RitualDiviner.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/RitualDiviner.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/RitualDiviner.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/SacrificialDagger.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/SacrificialDagger.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/SacrificialDagger.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/SacrificialDagger.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/Sanctus.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/Sanctus.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/Sanctus.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/Sanctus.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/SanguineHelmet.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/SanguineHelmet.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/SanguineHelmet.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/SanguineHelmet.png diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/SeerSigil.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/SeerSigil.png new file mode 100644 index 0000000000000000000000000000000000000000..f2f6c0a0fc444c8510b2d784d51684cf3fee8eb5 GIT binary patch literal 593 zcmV-X0WFU8GbZ8()Nlj2>E@cM*00Fg0L_t(I%bk-=ZWBQe zg}?5avCTL_VFP!F6l4>`saOF@0!IExOo$LHkhlwC#Tq4G$4DR+zC@fEXWTtqEQ}|y z>@31twVtXz^($2wRR!SJr?djpww~6{xrNLE@VMDj5h0FaE~ise6=Mt-1HkEEVAcVm z#bf3i;{CkIT7vf&!2Sd5G#VO0Ktz^+C7=?=pvvq0K}ok(iQ|9>18?ual-J*>s9ni?NpRcwD{6vRMgOKn}ZS6yC08jS9RMlBD4I-Zq2L zXgR_{`>idKB;lZaLaXx#5y2M)0yyu9DiuWh>JYE1-#x(?IPU*g@+Xss4%a|JWJ`A*=_eD#lt|o)cFB zFZQ;Ht5sB$!h2Me_s1igb2s0D0)#*a0V^_JYe1riJkJqp`TXUpx&PqaDga<3Nd({` f%ZgiHz literal 0 HcmV?d00001 diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/SheathedItem.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/SheathedItem.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/SheathedItem.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/SheathedItem.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/SigilOfHolding.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/SigilOfHolding.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/SigilOfHolding.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/SigilOfHolding.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/SigilOfMagnetism_activated.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/SigilOfMagnetism_activated.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/SigilOfMagnetism_activated.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/SigilOfMagnetism_activated.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/SigilOfMagnetism_deactivated.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/SigilOfMagnetism_deactivated.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/SigilOfMagnetism_deactivated.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/SigilOfMagnetism_deactivated.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/SigilOfSeverance_activated.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/SigilOfSeverance_activated.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/SigilOfSeverance_activated.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/SigilOfSeverance_activated.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/SigilOfSeverance_deactivated.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/SigilOfSeverance_deactivated.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/SigilOfSeverance_deactivated.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/SigilOfSeverance_deactivated.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/SigilOfSupression_activated.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/SigilOfSupression_activated.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/SigilOfSupression_activated.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/SigilOfSupression_activated.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/SigilOfSupression_deactivated.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/SigilOfSupression_deactivated.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/SigilOfSupression_deactivated.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/SigilOfSupression_deactivated.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/SimpleCatalyst.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/SimpleCatalyst.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/SimpleCatalyst.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/SimpleCatalyst.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/StandardBindingAgent.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/StandardBindingAgent.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/StandardBindingAgent.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/StandardBindingAgent.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/StandardFillingAgent.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/StandardFillingAgent.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/StandardFillingAgent.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/StandardFillingAgent.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/TeleposerFocus.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/TeleposerFocus.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/TeleposerFocus.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/TeleposerFocus.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/Tennebrae.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/Tennebrae.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/Tennebrae.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/Tennebrae.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/Terrae.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/Terrae.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/Terrae.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/Terrae.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/UntamedCrystal.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/UntamedCrystal.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/UntamedCrystal.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/UntamedCrystal.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/VoidSigil.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/VoidSigil.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/VoidSigil.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/VoidSigil.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/WarriorSigil_activated.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/WarriorSigil_activated.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/WarriorSigil_activated.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/WarriorSigil_activated.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/WarriorSigil_deactivated.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/WarriorSigil_deactivated.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/WarriorSigil_deactivated.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/WarriorSigil_deactivated.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/WaterScribeTool.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/WaterScribeTool.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/WaterScribeTool.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/WaterScribeTool.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/WaterSigil.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/WaterSigil.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/WaterSigil.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/WaterSigil.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/WeakBindingAgent.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/WeakBindingAgent.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/WeakBindingAgent.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/WeakBindingAgent.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/WeakBloodShard.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/WeakBloodShard.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/WeakBloodShard.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/WeakBloodShard.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/WeakFillingAgent.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/WeakFillingAgent.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/WeakFillingAgent.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/WeakFillingAgent.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/WindSigil_activated.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/WindSigil_activated.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/WindSigil_activated.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/WindSigil_activated.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/WindSigil_deactivated.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/WindSigil_deactivated.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/WindSigil_deactivated.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/WindSigil_deactivated.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/activationCrystalAwakened.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/activationCrystalAwakened.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/activationCrystalAwakened.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/activationCrystalAwakened.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/activationCrystalWeak.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/activationCrystalWeak.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/activationCrystalWeak.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/activationCrystalWeak.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/baseAlchemyItemConcentratedCatalyst.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseAlchemyItemConcentratedCatalyst.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/baseAlchemyItemConcentratedCatalyst.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseAlchemyItemConcentratedCatalyst.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/baseAlchemyItemFracturedBone.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseAlchemyItemFracturedBone.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/baseAlchemyItemFracturedBone.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseAlchemyItemFracturedBone.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/baseAlchemyItemOffensa.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseAlchemyItemOffensa.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/baseAlchemyItemOffensa.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseAlchemyItemOffensa.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/baseAlchemyItemOrbisTerrae.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseAlchemyItemOrbisTerrae.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/baseAlchemyItemOrbisTerrae.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseAlchemyItemOrbisTerrae.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/baseAlchemyItemPotentia.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseAlchemyItemPotentia.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/baseAlchemyItemPotentia.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseAlchemyItemPotentia.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/baseAlchemyItemPraesidium.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseAlchemyItemPraesidium.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/baseAlchemyItemPraesidium.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseAlchemyItemPraesidium.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/baseAlchemyItemReductus.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseAlchemyItemReductus.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/baseAlchemyItemReductus.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseAlchemyItemReductus.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/baseAlchemyItemStrengthenedCatalyst.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseAlchemyItemStrengthenedCatalyst.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/baseAlchemyItemStrengthenedCatalyst.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseAlchemyItemStrengthenedCatalyst.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/baseAlchemyItemVirtus.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseAlchemyItemVirtus.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/baseAlchemyItemVirtus.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseAlchemyItemVirtus.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/baseItemCostCore.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseItemCostCore.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/baseItemCostCore.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseItemCostCore.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/baseItemCrackedRunicPlate.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseItemCrackedRunicPlate.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/baseItemCrackedRunicPlate.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseItemCrackedRunicPlate.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/baseItemDefaultCore.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseItemDefaultCore.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/baseItemDefaultCore.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseItemDefaultCore.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/baseItemDefensiveCore.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseItemDefensiveCore.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/baseItemDefensiveCore.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseItemDefensiveCore.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/baseItemEarthenCore.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseItemEarthenCore.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/baseItemEarthenCore.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseItemEarthenCore.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/baseItemEmptyCore.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseItemEmptyCore.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/baseItemEmptyCore.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseItemEmptyCore.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/baseItemEnvironmentalCore.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseItemEnvironmentalCore.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/baseItemEnvironmentalCore.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseItemEnvironmentalCore.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/baseItemFlameCore.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseItemFlameCore.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/baseItemFlameCore.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseItemFlameCore.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/baseItemGustCore.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseItemGustCore.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/baseItemGustCore.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseItemGustCore.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/baseItemIcyCore.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseItemIcyCore.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/baseItemIcyCore.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseItemIcyCore.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/baseItemInputCable.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseItemInputCable.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/baseItemInputCable.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseItemInputCable.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/baseItemMagicalesCable.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseItemMagicalesCable.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/baseItemMagicalesCable.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseItemMagicalesCable.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/baseItemMeleeCore.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseItemMeleeCore.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/baseItemMeleeCore.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseItemMeleeCore.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/baseItemObsidianBrace.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseItemObsidianBrace.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/baseItemObsidianBrace.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseItemObsidianBrace.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/baseItemOffensiveCore.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseItemOffensiveCore.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/baseItemOffensiveCore.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseItemOffensiveCore.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/baseItemOutputCable.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseItemOutputCable.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/baseItemOutputCable.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseItemOutputCable.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/baseItemParadigmBackPlate.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseItemParadigmBackPlate.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/baseItemParadigmBackPlate.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseItemParadigmBackPlate.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/baseItemPotencyCore.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseItemPotencyCore.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/baseItemPotencyCore.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseItemPotencyCore.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/baseItemPowerCore.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseItemPowerCore.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/baseItemPowerCore.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseItemPowerCore.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/baseItemProjectileCore.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseItemProjectileCore.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/baseItemProjectileCore.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseItemProjectileCore.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/baseItemQuartzRod.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseItemQuartzRod.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/baseItemQuartzRod.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseItemQuartzRod.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/baseItemRunicPlate.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseItemRunicPlate.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/baseItemRunicPlate.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseItemRunicPlate.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/baseItemScribedRunicPlate.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseItemScribedRunicPlate.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/baseItemScribedRunicPlate.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseItemScribedRunicPlate.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/baseItemSelfCore.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseItemSelfCore.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/baseItemSelfCore.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseItemSelfCore.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/baseItemStoneBrace.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseItemStoneBrace.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/baseItemStoneBrace.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseItemStoneBrace.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/baseItemWoodBrace.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseItemWoodBrace.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/baseItemWoodBrace.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseItemWoodBrace.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/bloodBlastOrn.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/bloodBlastOrn.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/bloodBlastOrn.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/bloodBlastOrn.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/focusBloodBlastOrn.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/focusBloodBlastOrn.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/focusBloodBlastOrn.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/focusBloodBlastOrn.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/items/tYf5ft9.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/tYf5ft9.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/items/tYf5ft9.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/tYf5ft9.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/models/AirFloatingBeacon.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/models/AirFloatingBeacon.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/models/AirFloatingBeacon.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/models/AirFloatingBeacon.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/models/BileDemon.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/models/BileDemon.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/models/BileDemon.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/models/BileDemon.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/models/Bird.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/models/Bird.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/models/Bird.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/models/Bird.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/models/BlockSpellEffect.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/models/BlockSpellEffect.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/models/BlockSpellEffect.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/models/BlockSpellEffect.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/models/BoulderFist.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/models/BoulderFist.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/models/BoulderFist.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/models/BoulderFist.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/models/Conduit.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/models/Conduit.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/models/Conduit.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/models/Conduit.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/models/DarkFloatingBeacon.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/models/DarkFloatingBeacon.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/models/DarkFloatingBeacon.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/models/DarkFloatingBeacon.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/models/EarthFloatingBeacon.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/models/EarthFloatingBeacon.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/models/EarthFloatingBeacon.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/models/EarthFloatingBeacon.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/models/EnergyBazookaMainProjectile.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/models/EnergyBazookaMainProjectile.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/models/EnergyBazookaMainProjectile.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/models/EnergyBazookaMainProjectile.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/models/FireFloatingBeacon.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/models/FireFloatingBeacon.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/models/FireFloatingBeacon.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/models/FireFloatingBeacon.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/models/FloatingBeacon.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/models/FloatingBeacon.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/models/FloatingBeacon.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/models/FloatingBeacon.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/models/HolyFloatingBeacon.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/models/HolyFloatingBeacon.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/models/HolyFloatingBeacon.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/models/HolyFloatingBeacon.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/models/IceDemon.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/models/IceDemon.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/models/IceDemon.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/models/IceDemon.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/models/LowerGuardian.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/models/LowerGuardian.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/models/LowerGuardian.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/models/LowerGuardian.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/models/Meteor.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/models/Meteor.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/models/Meteor.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/models/Meteor.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/models/ParadigmBlock.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/models/ParadigmBlock.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/models/ParadigmBlock.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/models/ParadigmBlock.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/models/Pedestal.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/models/Pedestal.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/models/Pedestal.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/models/Pedestal.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/models/Plinth.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/models/Plinth.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/models/Plinth.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/models/Plinth.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/models/ShadeMob.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/models/ShadeMob.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/models/ShadeMob.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/models/ShadeMob.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/models/SmallEarthGolem.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/models/SmallEarthGolem.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/models/SmallEarthGolem.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/models/SmallEarthGolem.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/models/SpellEffectEarth.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/models/SpellEffectEarth.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/models/SpellEffectEarth.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/models/SpellEffectEarth.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/models/SpellEffectFire.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/models/SpellEffectFire.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/models/SpellEffectFire.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/models/SpellEffectFire.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/models/SpellEffectIce.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/models/SpellEffectIce.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/models/SpellEffectIce.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/models/SpellEffectIce.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/models/SpellEffectWind.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/models/SpellEffectWind.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/models/SpellEffectWind.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/models/SpellEffectWind.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/models/SpellEnhancementCost1.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/models/SpellEnhancementCost1.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/models/SpellEnhancementCost1.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/models/SpellEnhancementCost1.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/models/SpellEnhancementCost2.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/models/SpellEnhancementCost2.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/models/SpellEnhancementCost2.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/models/SpellEnhancementCost2.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/models/SpellEnhancementCost3.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/models/SpellEnhancementCost3.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/models/SpellEnhancementCost3.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/models/SpellEnhancementCost3.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/models/SpellEnhancementPotency1.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/models/SpellEnhancementPotency1.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/models/SpellEnhancementPotency1.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/models/SpellEnhancementPotency1.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/models/SpellEnhancementPotency2.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/models/SpellEnhancementPotency2.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/models/SpellEnhancementPotency2.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/models/SpellEnhancementPotency2.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/models/SpellEnhancementPotency3.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/models/SpellEnhancementPotency3.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/models/SpellEnhancementPotency3.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/models/SpellEnhancementPotency3.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/models/SpellEnhancementPower1.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/models/SpellEnhancementPower1.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/models/SpellEnhancementPower1.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/models/SpellEnhancementPower1.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/models/SpellEnhancementPower2.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/models/SpellEnhancementPower2.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/models/SpellEnhancementPower2.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/models/SpellEnhancementPower2.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/models/SpellEnhancementPower3.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/models/SpellEnhancementPower3.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/models/SpellEnhancementPower3.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/models/SpellEnhancementPower3.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/models/SpellModifierDefault.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/models/SpellModifierDefault.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/models/SpellModifierDefault.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/models/SpellModifierDefault.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/models/SpellModifierDefensive.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/models/SpellModifierDefensive.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/models/SpellModifierDefensive.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/models/SpellModifierDefensive.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/models/SpellModifierEnvironmental.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/models/SpellModifierEnvironmental.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/models/SpellModifierEnvironmental.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/models/SpellModifierEnvironmental.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/models/SpellModifierOffensive.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/models/SpellModifierOffensive.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/models/SpellModifierOffensive.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/models/SpellModifierOffensive.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/models/SpellParadigmMelee.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/models/SpellParadigmMelee.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/models/SpellParadigmMelee.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/models/SpellParadigmMelee.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/models/SpellParadigmProjectile.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/models/SpellParadigmProjectile.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/models/SpellParadigmProjectile.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/models/SpellParadigmProjectile.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/models/SpellParadigmSelf.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/models/SpellParadigmSelf.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/models/SpellParadigmSelf.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/models/SpellParadigmSelf.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/models/WaterFloatingBeacon.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/models/WaterFloatingBeacon.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/models/WaterFloatingBeacon.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/models/WaterFloatingBeacon.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/models/WingedAngel.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/models/WingedAngel.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/models/WingedAngel.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/models/WingedAngel.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/models/WingedFireDemon.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/models/WingedFireDemon.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/models/WingedFireDemon.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/models/WingedFireDemon.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/models/WritingTable.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/models/WritingTable.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/models/WritingTable.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/models/WritingTable.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/models/altar.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/models/altar.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/models/altar.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/models/altar.png diff --git a/1.7.2/resources/assets/alchemicalwizardry/textures/models/blood.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/models/blood.png similarity index 100% rename from 1.7.2/resources/assets/alchemicalwizardry/textures/models/blood.png rename to 1.7.2/main/resources/assets/alchemicalwizardry/textures/models/blood.png diff --git a/1.7.2/resources/assets/forge/lang/en_US.lang b/1.7.2/main/resources/assets/forge/lang/en_US.lang similarity index 100% rename from 1.7.2/resources/assets/forge/lang/en_US.lang rename to 1.7.2/main/resources/assets/forge/lang/en_US.lang diff --git a/1.7.2/resources/assets/forge/lang/es_ES.lang b/1.7.2/main/resources/assets/forge/lang/es_ES.lang similarity index 100% rename from 1.7.2/resources/assets/forge/lang/es_ES.lang rename to 1.7.2/main/resources/assets/forge/lang/es_ES.lang diff --git a/1.7.2/resources/assets/forge/lang/fr_FR.lang b/1.7.2/main/resources/assets/forge/lang/fr_FR.lang similarity index 100% rename from 1.7.2/resources/assets/forge/lang/fr_FR.lang rename to 1.7.2/main/resources/assets/forge/lang/fr_FR.lang diff --git a/1.7.2/resources/mcmod.info b/1.7.2/main/resources/mcmod.info similarity index 100% rename from 1.7.2/resources/mcmod.info rename to 1.7.2/main/resources/mcmod.info diff --git a/1.7.2/resources/assets/alchemicalwizardry/bloodaltar.obj b/1.7.2/resources/assets/alchemicalwizardry/bloodaltar.obj deleted file mode 100644 index 88037009..00000000 --- a/1.7.2/resources/assets/alchemicalwizardry/bloodaltar.obj +++ /dev/null @@ -1,262 +0,0 @@ -# 3ds Max Wavefront OBJ Exporter v0.97b - (c)2007 guruware -# File Created: 07.08.2013 20:11:26 - -mtllib bloodaltar.mtl - -# -# object headusOBJexport002 -# - -v -4.5000 -0.0003 7.0000 -v 4.5000 -0.0003 7.0000 -v 4.0172 8.0000 6.2483 -v -4.0172 8.0000 6.2483 -v 6.9379 -0.0003 4.4994 -v 7.0199 -0.0003 -4.4998 -v 6.2600 8.0000 -4.0177 -v 6.1868 8.0000 4.0159 -v -4.0172 8.0000 -6.2496 -v 4.0172 8.0000 -6.2496 -v 4.5000 -0.0003 -7.0000 -v -4.5000 -0.0003 -7.0000 -v -6.2489 8.0000 4.0165 -v -6.2489 8.0000 -4.0622 -v -7.0000 -0.0003 -4.5497 -v -7.0000 -0.0003 4.5000 -v -5.6437 -0.0003 -7.7219 -v -7.6983 -0.0003 -5.7082 -v -6.9967 8.0000 -5.2528 -v -5.1927 8.0000 -7.0210 -v -5.2002 8.0000 7.0079 -v -7.0086 8.0000 5.1996 -v -7.7102 -0.0003 5.6512 -v -5.6513 -0.0003 7.7101 -v 5.6513 -0.0003 7.7101 -v 7.7102 -0.0003 5.6512 -v 7.0086 8.0000 5.1996 -v 5.2002 8.0000 7.0079 -v 7.7102 -0.0003 -5.6513 -v 5.6513 -0.0003 -7.7102 -v 5.2003 8.0000 -7.0092 -v 7.0086 8.0000 -5.2009 -v 1.7912 8.0000 3.2817 -v -1.7910 8.0000 3.2817 -v 3.2857 8.0000 -1.7950 -v 3.2857 8.0000 1.7872 -v -1.7906 8.0000 -3.2897 -v 1.7912 8.0000 -3.2895 -v -3.2855 8.0000 1.7872 -v -3.2853 8.0000 -1.8147 -v -1.2845 6.5000 2.0590 -v -1.2889 6.5000 -2.0668 -v -2.0626 6.5000 -1.3033 -v -2.0627 6.5000 1.2808 -v 1.2846 6.5000 2.0590 -v 2.0629 6.5000 1.2808 -v 2.0629 6.5000 -1.2885 -v 1.2847 6.5000 -2.0667 -# 48 vertices - -vn 0.0000 0.0935 0.9956 -vn 0.9955 0.0940 0.0091 -vn 0.0000 0.0934 -0.9956 -vn -0.9956 0.0935 -0.0000 -vn -0.1018 -0.5549 -0.8257 -vn -0.8232 -0.5551 -0.1189 -vn -0.9907 0.0943 -0.0983 -vn -0.0769 0.0913 -0.9928 -vn -0.0882 0.0938 0.9917 -vn -0.9919 0.0919 0.0872 -vn -0.8248 -0.5547 0.1099 -vn -0.1106 -0.5553 0.8243 -vn 0.1099 -0.5547 0.8248 -vn 0.8274 -0.5533 0.0960 -vn 0.9933 0.0927 0.0690 -vn 0.0872 0.0920 0.9919 -vn 0.8238 -0.5552 -0.1145 -vn 0.1106 -0.5553 -0.8243 -vn 0.0882 0.0937 -0.9917 -vn 0.9916 0.0921 -0.0908 -vn 0.2232 -0.9083 -0.3537 -vn -0.3592 -0.9076 0.2175 -vn -0.3569 -0.9078 -0.2202 -vn 0.2206 -0.9080 0.3561 -vn -0.2201 -0.9078 0.3569 -vn 0.3437 -0.9101 -0.2313 -vn 0.3617 -0.9067 0.2168 -vn -0.2206 -0.9081 -0.3561 -vn 0.0000 1.0000 -0.0000 -vn -0.5381 0.0439 0.8417 -vn 0.5465 0.0428 -0.8364 -vn -0.8417 0.0438 -0.5381 -vn -0.5397 0.0463 -0.8406 -vn 0.8456 0.0447 0.5319 -vn -0.8459 0.0470 0.5313 -vn 0.5397 0.0464 0.8406 -vn 0.1872 0.8722 -0.4520 -vn 0.1856 0.8723 0.4523 -vn 0.4516 0.8720 0.1888 -vn 0.4520 0.8722 -0.1872 -vn -0.1872 0.8722 -0.4520 -vn 0.2870 0.6616 -0.6928 -vn -0.2870 0.6616 -0.6928 -vn -0.4519 0.8722 -0.1872 -vn -0.6928 0.6616 -0.2869 -vn -0.4519 0.8722 0.1872 -vn -0.6928 0.6616 0.2869 -vn -0.1872 0.8722 0.4519 -vn -0.2870 0.6616 0.6927 -vn 0.2848 0.6611 0.6941 -vn 0.6914 0.6621 0.2891 -vn 0.6928 0.6616 -0.2869 -vn 0.8207 0.0426 -0.5698 -# 53 vertex normals - -vt -0.0000 0.2656 0.0000 -vt 0.2031 0.2656 0.0000 -vt 0.2031 0.5000 0.0000 -vt 0.0000 0.5000 0.0000 -vt 0.3906 0.2656 0.0000 -vt 0.5938 0.2656 0.0000 -vt 0.5938 0.5000 0.0000 -vt 0.3906 0.5000 0.0000 -vt 0.2031 0.2344 0.0000 -vt -0.0000 0.2344 0.0000 -vt -0.0000 0.0000 0.0000 -vt 0.2031 0.0000 0.0000 -vt 0.5938 0.2344 0.0000 -vt 0.3906 0.2344 0.0000 -vt 0.3906 -0.0000 0.0000 -vt 0.5938 0.0000 0.0000 -vt 0.2500 0.0000 0.0000 -vt 0.3438 0.0000 0.0000 -vt 0.3438 0.2344 0.0000 -vt 0.2500 0.2344 0.0000 -vt 0.7344 0.2344 0.0000 -vt 0.6406 0.2344 0.0000 -vt 0.6406 0.0000 0.0000 -vt 0.7344 -0.0000 0.0000 -vt 0.2500 0.2656 0.0000 -vt 0.3438 0.2656 0.0000 -vt 0.3438 0.5000 0.0000 -vt 0.2656 0.5000 0.0000 -vt 0.6406 0.2656 0.0000 -vt 0.7344 0.2656 0.0000 -vt 0.7344 0.5000 0.0000 -vt 0.6406 0.5000 0.0000 -vt 0.0938 0.5781 0.0000 -vt 0.0313 0.6406 0.0000 -vt 0.0000 0.6094 0.0000 -vt 0.0625 0.5469 0.0000 -vt 0.0313 0.9063 0.0000 -vt 0.0938 0.9688 0.0000 -vt 0.0625 1.0000 0.0000 -vt 0.0000 0.9375 0.0000 -vt 0.3750 0.9688 0.0000 -vt 0.4375 0.9063 0.0000 -vt 0.4688 0.9375 0.0000 -vt 0.4063 1.0000 0.0000 -vt 0.4375 0.6406 0.0000 -vt 0.3750 0.5781 0.0000 -vt 0.4063 0.5469 0.0000 -vt 0.4688 0.6094 0.0000 -vt 0.9097 0.6270 0.0000 -vt 0.8522 0.7042 0.0000 -vt 0.7593 0.7045 0.0000 -vt 0.7012 0.6278 0.0000 -vt 0.9689 0.8931 0.0000 -vt 0.8915 0.8357 0.0000 -vt 0.8911 0.7428 0.0000 -vt 0.9662 0.6847 0.0000 -vt 0.7025 0.9520 0.0000 -vt 0.7600 0.8750 0.0000 -vt 0.8529 0.8747 0.0000 -vt 0.9109 0.9512 0.0000 -vt 0.6436 0.6859 0.0000 -vt 0.7207 0.7435 0.0000 -vt 0.7210 0.8369 0.0000 -vt 0.6444 0.8955 0.0000 -vt 0.9884 0.9237 0.0000 -vt 0.9417 0.9708 0.0000 -vt 0.7813 0.2656 0.0000 -vt 0.7813 0.5000 0.0000 -vt 0.6721 0.9722 0.0000 -vt 0.6251 0.9265 0.0000 -vt 0.6237 0.6553 0.0000 -vt 0.6705 0.6082 0.0000 -vt 0.7813 -0.0000 0.0000 -vt 0.7813 0.2344 0.0000 -vt 0.9403 0.6072 0.0000 -vt 0.9874 0.6539 0.0000 -vt 0.7725 0.7362 0.0000 -vt 0.7728 0.8432 0.0000 -vt 0.7527 0.8235 0.0000 -vt 0.7524 0.7565 0.0000 -vt 0.8392 0.7360 0.0000 -vt 0.8595 0.7561 0.0000 -vt 0.8597 0.8227 0.0000 -vt 0.8396 0.8430 0.0000 -# 84 texture coords - -g headusOBJexport002 -usemtl Material__46 -s off -f 1/1/1 2/2/1 3/3/1 4/4/1 -f 5/5/2 6/6/2 7/7/2 8/8/2 -f 9/9/3 10/10/3 11/11/3 12/12/3 -f 13/13/4 14/14/4 15/15/4 16/16/4 -s 1 -f 17/17/5 18/18/6 19/19/7 20/20/8 -f 21/21/9 22/22/10 23/23/11 24/24/12 -f 25/25/13 26/26/14 27/27/15 28/28/16 -f 29/29/17 30/30/18 31/31/19 32/32/20 -f 12/33/21 15/34/22 18/35/6 17/36/5 -f 16/37/23 1/38/24 24/39/12 23/40/11 -f 2/41/25 5/42/26 26/43/14 25/44/13 -f 6/45/27 11/46/28 30/47/18 29/48/17 -s 2 -f 3/49/29 33/50/29 34/51/29 4/52/29 -f 7/53/29 35/54/29 36/55/29 8/56/29 -f 9/57/29 37/58/29 38/59/29 10/60/29 -f 13/61/29 39/62/29 40/63/29 14/64/29 -f 9/57/29 14/64/29 40/63/29 37/58/29 -f 4/52/29 34/51/29 39/62/29 13/61/29 -f 8/56/29 36/55/29 33/50/29 3/49/29 -f 10/60/29 38/59/29 35/54/29 7/53/29 -s 1 -f 25/25/13 28/28/16 3/3/30 2/2/25 -s 2 -f 10/60/29 7/53/29 32/65/29 31/66/29 -s 1 -f 17/17/5 20/20/8 9/9/31 12/12/21 -f 23/23/11 22/22/10 13/13/32 16/16/23 -f 11/67/28 10/68/33 31/31/19 30/30/18 -f 29/29/17 32/32/20 7/7/34 6/6/27 -s 2 -f 14/64/29 9/57/29 20/69/29 19/70/29 -s 1 -f 15/15/22 14/14/35 19/19/7 18/18/6 -s 2 -f 4/52/29 13/61/29 22/71/29 21/72/29 -s 1 -f 1/73/24 4/74/36 21/21/9 24/24/12 -s 2 -f 8/56/29 3/49/29 28/75/29 27/76/29 -s 1 -f 41/77/37 42/78/38 43/79/39 44/80/40 -f 45/81/41 41/77/37 34/51/42 33/50/43 -f 46/82/44 45/81/41 33/50/43 36/55/45 -f 47/83/46 46/82/44 36/55/45 35/54/47 -f 48/84/48 47/83/46 35/54/47 38/59/49 -f 42/78/38 48/84/48 38/59/49 37/58/50 -f 43/79/39 42/78/38 37/58/50 40/63/51 -f 44/80/40 43/79/39 40/63/51 39/62/52 -f 41/77/37 44/80/40 39/62/52 34/51/42 -f 48/84/48 45/81/41 46/82/44 47/83/46 -f 45/81/41 48/84/48 42/78/38 41/77/37 -f 16/37/23 15/34/22 12/33/21 1/38/24 -f 2/41/25 11/46/28 6/45/27 5/42/26 -f 11/46/28 2/41/25 1/38/24 12/33/21 -f 5/5/26 8/8/53 27/27/15 26/26/14 -# 46 polygons - diff --git a/1.7.2/resources/assets/alchemicalwizardry/bloodlevel.obj b/1.7.2/resources/assets/alchemicalwizardry/bloodlevel.obj deleted file mode 100644 index f301ee48..00000000 --- a/1.7.2/resources/assets/alchemicalwizardry/bloodlevel.obj +++ /dev/null @@ -1,64 +0,0 @@ -# 3ds Max Wavefront OBJ Exporter v0.97b - (c)2007 guruware -# File Created: 07.08.2013 20:12:01 - -mtllib bloodlevel.mtl - -# -# object headusOBJexport001 -# - -v -1.2846 0.0000 2.0630 -v -1.2890 0.0000 -2.0628 -v -2.0627 0.0000 -1.2993 -v -2.0628 0.0000 1.2848 -v 1.2845 0.0000 2.0630 -v -1.7911 0.0000 3.2857 -v 1.7911 0.0000 3.2857 -v 2.0628 0.0000 1.2848 -v 3.2856 0.0000 1.7912 -v 2.0628 0.0000 -1.2845 -v 3.2856 0.0000 -1.7910 -v 1.2846 0.0000 -2.0627 -v 1.7911 0.0000 -3.2855 -v -1.7907 0.0000 -3.2857 -v -3.2854 0.0000 -1.8107 -v -3.2856 0.0000 1.7912 -# 16 vertices - -vn 0.0000 1.0000 -0.0000 -# 1 vertex normals - -vt 0.3045 0.1861 0.0000 -vt 0.3038 0.8139 0.0000 -vt 0.1861 0.6977 0.0000 -vt 0.1861 0.3045 0.0000 -vt 0.6955 0.1861 0.0000 -vt 0.2274 -0.0000 0.0000 -vt 0.7726 -0.0000 0.0000 -vt 0.8139 0.3045 0.0000 -vt 1.0000 0.2274 0.0000 -vt 0.8139 0.6955 0.0000 -vt 1.0000 0.7725 0.0000 -vt 0.6955 0.8139 0.0000 -vt 0.7726 1.0000 0.0000 -vt 0.2275 1.0000 0.0000 -vt 0.0000 0.7755 0.0000 -vt 0.0000 0.2274 0.0000 -# 16 texture coords - -g headusOBJexport001 -usemtl Material__46 -s 1 -f 1/1/1 2/2/1 3/3/1 4/4/1 -f 5/5/1 1/1/1 6/6/1 7/7/1 -f 8/8/1 5/5/1 7/7/1 9/9/1 -f 10/10/1 8/8/1 9/9/1 11/11/1 -f 12/12/1 10/10/1 11/11/1 13/13/1 -f 2/2/1 12/12/1 13/13/1 14/14/1 -f 3/3/1 2/2/1 14/14/1 15/15/1 -f 4/4/1 3/3/1 15/15/1 16/16/1 -f 1/1/1 4/4/1 16/16/1 6/6/1 -f 12/12/1 5/5/1 8/8/1 10/10/1 -f 5/5/1 12/12/1 2/2/1 1/1/1 -# 11 polygons - diff --git a/1.7.2/resources/assets/alchemicalwizardry/models/bloodaltar-fixeUV.obj b/1.7.2/resources/assets/alchemicalwizardry/models/bloodaltar-fixeUV.obj deleted file mode 100644 index 83d13903..00000000 --- a/1.7.2/resources/assets/alchemicalwizardry/models/bloodaltar-fixeUV.obj +++ /dev/null @@ -1,262 +0,0 @@ -# 3ds Max Wavefront OBJ Exporter v0.97b - (c)2007 guruware -# File Created: 15.08.2013 16:23:16 - -mtllib bloodaltar-fixeUV.mtl - -# -# object headusOBJexport002 -# - -v -4.5000 -0.0003 7.0000 -v 4.5000 -0.0003 7.0000 -v 4.0172 8.0000 6.2483 -v -4.0172 8.0000 6.2483 -v 6.9379 -0.0003 4.4994 -v 7.0199 -0.0003 -4.4998 -v 6.2600 8.0000 -4.0177 -v 6.1868 8.0000 4.0159 -v -4.0172 8.0000 -6.2496 -v 4.0172 8.0000 -6.2496 -v 4.5000 -0.0003 -7.0000 -v -4.5000 -0.0003 -7.0000 -v -6.2489 8.0000 4.0165 -v -6.2489 8.0000 -4.0622 -v -7.0000 -0.0003 -4.5497 -v -7.0000 -0.0003 4.5000 -v -5.6437 -0.0003 -7.7219 -v -7.6983 -0.0003 -5.7082 -v -6.9967 8.0000 -5.2528 -v -5.1927 8.0000 -7.0210 -v -5.2002 8.0000 7.0079 -v -7.0086 8.0000 5.1996 -v -7.7102 -0.0003 5.6512 -v -5.6513 -0.0003 7.7101 -v 5.6513 -0.0003 7.7101 -v 7.7102 -0.0003 5.6512 -v 7.0086 8.0000 5.1996 -v 5.2002 8.0000 7.0079 -v 7.7102 -0.0003 -5.6513 -v 5.6513 -0.0003 -7.7102 -v 5.2003 8.0000 -7.0092 -v 7.0086 8.0000 -5.2009 -v 1.7912 8.0000 3.2817 -v -1.7910 8.0000 3.2817 -v 3.2857 8.0000 -1.7950 -v 3.2857 8.0000 1.7872 -v -1.7906 8.0000 -3.2897 -v 1.7912 8.0000 -3.2895 -v -3.2855 8.0000 1.7872 -v -3.2853 8.0000 -1.8147 -v -1.2845 6.5000 2.0590 -v -1.2889 6.5000 -2.0668 -v -2.0626 6.5000 -1.3033 -v -2.0627 6.5000 1.2808 -v 1.2846 6.5000 2.0590 -v 2.0629 6.5000 1.2808 -v 2.0629 6.5000 -1.2885 -v 1.2847 6.5000 -2.0667 -# 48 vertices - -vn 0.0000 0.0935 0.9956 -vn 0.9955 0.0940 0.0091 -vn 0.0000 0.0934 -0.9956 -vn -0.9956 0.0935 -0.0000 -vn -0.1018 -0.5549 -0.8257 -vn -0.8232 -0.5551 -0.1189 -vn -0.9907 0.0943 -0.0983 -vn -0.0769 0.0913 -0.9928 -vn -0.0882 0.0938 0.9917 -vn -0.9919 0.0919 0.0872 -vn -0.8248 -0.5547 0.1099 -vn -0.1106 -0.5553 0.8243 -vn 0.1099 -0.5547 0.8248 -vn 0.8274 -0.5533 0.0960 -vn 0.9933 0.0927 0.0690 -vn 0.0872 0.0920 0.9919 -vn 0.8238 -0.5552 -0.1145 -vn 0.1106 -0.5553 -0.8243 -vn 0.0882 0.0937 -0.9917 -vn 0.9916 0.0921 -0.0908 -vn 0.2232 -0.9083 -0.3537 -vn -0.3592 -0.9076 0.2175 -vn -0.3569 -0.9078 -0.2202 -vn 0.2206 -0.9080 0.3561 -vn -0.2201 -0.9078 0.3569 -vn 0.3437 -0.9101 -0.2313 -vn 0.3617 -0.9067 0.2168 -vn -0.2206 -0.9081 -0.3561 -vn 0.0000 1.0000 -0.0000 -vn -0.5381 0.0439 0.8417 -vn 0.5465 0.0428 -0.8364 -vn -0.8417 0.0438 -0.5381 -vn -0.5397 0.0463 -0.8406 -vn 0.8456 0.0447 0.5319 -vn -0.8459 0.0470 0.5313 -vn 0.5397 0.0464 0.8406 -vn 0.1872 0.8722 -0.4520 -vn 0.1856 0.8723 0.4523 -vn 0.4516 0.8720 0.1888 -vn 0.4520 0.8722 -0.1872 -vn -0.1872 0.8722 -0.4520 -vn 0.2870 0.6616 -0.6928 -vn -0.2870 0.6616 -0.6928 -vn -0.4519 0.8722 -0.1872 -vn -0.6928 0.6616 -0.2869 -vn -0.4519 0.8722 0.1872 -vn -0.6928 0.6616 0.2869 -vn -0.1872 0.8722 0.4519 -vn -0.2870 0.6616 0.6927 -vn 0.2848 0.6611 0.6941 -vn 0.6914 0.6621 0.2891 -vn 0.6928 0.6616 -0.2869 -vn 0.8207 0.0426 -0.5698 -# 53 vertex normals - -vt -0.0000 0.2656 0.0000 -vt 0.2031 0.2656 0.0000 -vt 0.2031 0.5000 0.0000 -vt 0.0000 0.5000 0.0000 -vt 0.3906 0.2656 0.0000 -vt 0.5938 0.2656 0.0000 -vt 0.5938 0.5000 0.0000 -vt 0.3906 0.5000 0.0000 -vt 0.2031 0.2344 0.0000 -vt -0.0000 0.2344 0.0000 -vt -0.0000 0.0000 0.0000 -vt 0.2031 0.0000 0.0000 -vt 0.5938 0.2344 0.0000 -vt 0.3906 0.2344 0.0000 -vt 0.3906 -0.0000 0.0000 -vt 0.5938 0.0000 0.0000 -vt 0.2500 0.0000 0.0000 -vt 0.3438 0.0000 0.0000 -vt 0.3438 0.2344 0.0000 -vt 0.2500 0.2344 0.0000 -vt 0.7344 0.2344 0.0000 -vt 0.6406 0.2344 0.0000 -vt 0.6406 0.0000 0.0000 -vt 0.7344 -0.0000 0.0000 -vt 0.2500 0.2656 0.0000 -vt 0.3438 0.2656 0.0000 -vt 0.3438 0.5000 0.0000 -vt 0.2500 0.5000 0.0000 -vt 0.6406 0.2656 0.0000 -vt 0.7344 0.2656 0.0000 -vt 0.7344 0.5000 0.0000 -vt 0.6406 0.5000 0.0000 -vt 0.0938 0.5781 0.0000 -vt 0.0313 0.6406 0.0000 -vt 0.0000 0.6094 0.0000 -vt 0.0625 0.5469 0.0000 -vt 0.0313 0.9063 0.0000 -vt 0.0938 0.9688 0.0000 -vt 0.0625 1.0000 0.0000 -vt 0.0000 0.9375 0.0000 -vt 0.3750 0.9688 0.0000 -vt 0.4375 0.9063 0.0000 -vt 0.4688 0.9375 0.0000 -vt 0.4063 1.0000 0.0000 -vt 0.4375 0.6406 0.0000 -vt 0.3750 0.5781 0.0000 -vt 0.4063 0.5469 0.0000 -vt 0.4688 0.6094 0.0000 -vt 0.9097 0.6270 0.0000 -vt 0.8522 0.7042 0.0000 -vt 0.7593 0.7045 0.0000 -vt 0.7012 0.6278 0.0000 -vt 0.9689 0.8931 0.0000 -vt 0.8915 0.8357 0.0000 -vt 0.8911 0.7428 0.0000 -vt 0.9662 0.6847 0.0000 -vt 0.7025 0.9520 0.0000 -vt 0.7600 0.8750 0.0000 -vt 0.8529 0.8747 0.0000 -vt 0.9109 0.9512 0.0000 -vt 0.6436 0.6859 0.0000 -vt 0.7207 0.7435 0.0000 -vt 0.7210 0.8369 0.0000 -vt 0.6444 0.8955 0.0000 -vt 0.9884 0.9237 0.0000 -vt 0.9417 0.9708 0.0000 -vt 0.7813 0.2656 0.0000 -vt 0.7813 0.5000 0.0000 -vt 0.6721 0.9722 0.0000 -vt 0.6251 0.9265 0.0000 -vt 0.6237 0.6553 0.0000 -vt 0.6705 0.6082 0.0000 -vt 0.7813 -0.0000 0.0000 -vt 0.7813 0.2344 0.0000 -vt 0.9403 0.6072 0.0000 -vt 0.9874 0.6539 0.0000 -vt 0.7725 0.7362 0.0000 -vt 0.7728 0.8432 0.0000 -vt 0.7527 0.8235 0.0000 -vt 0.7524 0.7565 0.0000 -vt 0.8392 0.7360 0.0000 -vt 0.8595 0.7561 0.0000 -vt 0.8597 0.8227 0.0000 -vt 0.8396 0.8430 0.0000 -# 84 texture coords - -g headusOBJexport002 -usemtl Material__46 -s off -f 1/1/1 2/2/1 3/3/1 4/4/1 -f 5/5/2 6/6/2 7/7/2 8/8/2 -f 9/9/3 10/10/3 11/11/3 12/12/3 -f 13/13/4 14/14/4 15/15/4 16/16/4 -s 1 -f 17/17/5 18/18/6 19/19/7 20/20/8 -f 21/21/9 22/22/10 23/23/11 24/24/12 -f 25/25/13 26/26/14 27/27/15 28/28/16 -f 29/29/17 30/30/18 31/31/19 32/32/20 -f 12/33/21 15/34/22 18/35/6 17/36/5 -f 16/37/23 1/38/24 24/39/12 23/40/11 -f 2/41/25 5/42/26 26/43/14 25/44/13 -f 6/45/27 11/46/28 30/47/18 29/48/17 -s 2 -f 3/49/29 33/50/29 34/51/29 4/52/29 -f 7/53/29 35/54/29 36/55/29 8/56/29 -f 9/57/29 37/58/29 38/59/29 10/60/29 -f 13/61/29 39/62/29 40/63/29 14/64/29 -f 9/57/29 14/64/29 40/63/29 37/58/29 -f 4/52/29 34/51/29 39/62/29 13/61/29 -f 8/56/29 36/55/29 33/50/29 3/49/29 -f 10/60/29 38/59/29 35/54/29 7/53/29 -s 1 -f 25/25/13 28/28/16 3/3/30 2/2/25 -s 2 -f 10/60/29 7/53/29 32/65/29 31/66/29 -s 1 -f 17/17/5 20/20/8 9/9/31 12/12/21 -f 23/23/11 22/22/10 13/13/32 16/16/23 -f 11/67/28 10/68/33 31/31/19 30/30/18 -f 29/29/17 32/32/20 7/7/34 6/6/27 -s 2 -f 14/64/29 9/57/29 20/69/29 19/70/29 -s 1 -f 15/15/22 14/14/35 19/19/7 18/18/6 -s 2 -f 4/52/29 13/61/29 22/71/29 21/72/29 -s 1 -f 1/73/24 4/74/36 21/21/9 24/24/12 -s 2 -f 8/56/29 3/49/29 28/75/29 27/76/29 -s 1 -f 41/77/37 42/78/38 43/79/39 44/80/40 -f 45/81/41 41/77/37 34/51/42 33/50/43 -f 46/82/44 45/81/41 33/50/43 36/55/45 -f 47/83/46 46/82/44 36/55/45 35/54/47 -f 48/84/48 47/83/46 35/54/47 38/59/49 -f 42/78/38 48/84/48 38/59/49 37/58/50 -f 43/79/39 42/78/38 37/58/50 40/63/51 -f 44/80/40 43/79/39 40/63/51 39/62/52 -f 41/77/37 44/80/40 39/62/52 34/51/42 -f 48/84/48 45/81/41 46/82/44 47/83/46 -f 45/81/41 48/84/48 42/78/38 41/77/37 -f 16/37/23 15/34/22 12/33/21 1/38/24 -f 2/41/25 11/46/28 6/45/27 5/42/26 -f 11/46/28 2/41/25 1/38/24 12/33/21 -f 5/5/26 8/8/53 27/27/15 26/26/14 -# 46 polygons - diff --git a/1.7.2/resources/assets/alchemicalwizardry/models/bloodaltar.obj b/1.7.2/resources/assets/alchemicalwizardry/models/bloodaltar.obj deleted file mode 100644 index 88037009..00000000 --- a/1.7.2/resources/assets/alchemicalwizardry/models/bloodaltar.obj +++ /dev/null @@ -1,262 +0,0 @@ -# 3ds Max Wavefront OBJ Exporter v0.97b - (c)2007 guruware -# File Created: 07.08.2013 20:11:26 - -mtllib bloodaltar.mtl - -# -# object headusOBJexport002 -# - -v -4.5000 -0.0003 7.0000 -v 4.5000 -0.0003 7.0000 -v 4.0172 8.0000 6.2483 -v -4.0172 8.0000 6.2483 -v 6.9379 -0.0003 4.4994 -v 7.0199 -0.0003 -4.4998 -v 6.2600 8.0000 -4.0177 -v 6.1868 8.0000 4.0159 -v -4.0172 8.0000 -6.2496 -v 4.0172 8.0000 -6.2496 -v 4.5000 -0.0003 -7.0000 -v -4.5000 -0.0003 -7.0000 -v -6.2489 8.0000 4.0165 -v -6.2489 8.0000 -4.0622 -v -7.0000 -0.0003 -4.5497 -v -7.0000 -0.0003 4.5000 -v -5.6437 -0.0003 -7.7219 -v -7.6983 -0.0003 -5.7082 -v -6.9967 8.0000 -5.2528 -v -5.1927 8.0000 -7.0210 -v -5.2002 8.0000 7.0079 -v -7.0086 8.0000 5.1996 -v -7.7102 -0.0003 5.6512 -v -5.6513 -0.0003 7.7101 -v 5.6513 -0.0003 7.7101 -v 7.7102 -0.0003 5.6512 -v 7.0086 8.0000 5.1996 -v 5.2002 8.0000 7.0079 -v 7.7102 -0.0003 -5.6513 -v 5.6513 -0.0003 -7.7102 -v 5.2003 8.0000 -7.0092 -v 7.0086 8.0000 -5.2009 -v 1.7912 8.0000 3.2817 -v -1.7910 8.0000 3.2817 -v 3.2857 8.0000 -1.7950 -v 3.2857 8.0000 1.7872 -v -1.7906 8.0000 -3.2897 -v 1.7912 8.0000 -3.2895 -v -3.2855 8.0000 1.7872 -v -3.2853 8.0000 -1.8147 -v -1.2845 6.5000 2.0590 -v -1.2889 6.5000 -2.0668 -v -2.0626 6.5000 -1.3033 -v -2.0627 6.5000 1.2808 -v 1.2846 6.5000 2.0590 -v 2.0629 6.5000 1.2808 -v 2.0629 6.5000 -1.2885 -v 1.2847 6.5000 -2.0667 -# 48 vertices - -vn 0.0000 0.0935 0.9956 -vn 0.9955 0.0940 0.0091 -vn 0.0000 0.0934 -0.9956 -vn -0.9956 0.0935 -0.0000 -vn -0.1018 -0.5549 -0.8257 -vn -0.8232 -0.5551 -0.1189 -vn -0.9907 0.0943 -0.0983 -vn -0.0769 0.0913 -0.9928 -vn -0.0882 0.0938 0.9917 -vn -0.9919 0.0919 0.0872 -vn -0.8248 -0.5547 0.1099 -vn -0.1106 -0.5553 0.8243 -vn 0.1099 -0.5547 0.8248 -vn 0.8274 -0.5533 0.0960 -vn 0.9933 0.0927 0.0690 -vn 0.0872 0.0920 0.9919 -vn 0.8238 -0.5552 -0.1145 -vn 0.1106 -0.5553 -0.8243 -vn 0.0882 0.0937 -0.9917 -vn 0.9916 0.0921 -0.0908 -vn 0.2232 -0.9083 -0.3537 -vn -0.3592 -0.9076 0.2175 -vn -0.3569 -0.9078 -0.2202 -vn 0.2206 -0.9080 0.3561 -vn -0.2201 -0.9078 0.3569 -vn 0.3437 -0.9101 -0.2313 -vn 0.3617 -0.9067 0.2168 -vn -0.2206 -0.9081 -0.3561 -vn 0.0000 1.0000 -0.0000 -vn -0.5381 0.0439 0.8417 -vn 0.5465 0.0428 -0.8364 -vn -0.8417 0.0438 -0.5381 -vn -0.5397 0.0463 -0.8406 -vn 0.8456 0.0447 0.5319 -vn -0.8459 0.0470 0.5313 -vn 0.5397 0.0464 0.8406 -vn 0.1872 0.8722 -0.4520 -vn 0.1856 0.8723 0.4523 -vn 0.4516 0.8720 0.1888 -vn 0.4520 0.8722 -0.1872 -vn -0.1872 0.8722 -0.4520 -vn 0.2870 0.6616 -0.6928 -vn -0.2870 0.6616 -0.6928 -vn -0.4519 0.8722 -0.1872 -vn -0.6928 0.6616 -0.2869 -vn -0.4519 0.8722 0.1872 -vn -0.6928 0.6616 0.2869 -vn -0.1872 0.8722 0.4519 -vn -0.2870 0.6616 0.6927 -vn 0.2848 0.6611 0.6941 -vn 0.6914 0.6621 0.2891 -vn 0.6928 0.6616 -0.2869 -vn 0.8207 0.0426 -0.5698 -# 53 vertex normals - -vt -0.0000 0.2656 0.0000 -vt 0.2031 0.2656 0.0000 -vt 0.2031 0.5000 0.0000 -vt 0.0000 0.5000 0.0000 -vt 0.3906 0.2656 0.0000 -vt 0.5938 0.2656 0.0000 -vt 0.5938 0.5000 0.0000 -vt 0.3906 0.5000 0.0000 -vt 0.2031 0.2344 0.0000 -vt -0.0000 0.2344 0.0000 -vt -0.0000 0.0000 0.0000 -vt 0.2031 0.0000 0.0000 -vt 0.5938 0.2344 0.0000 -vt 0.3906 0.2344 0.0000 -vt 0.3906 -0.0000 0.0000 -vt 0.5938 0.0000 0.0000 -vt 0.2500 0.0000 0.0000 -vt 0.3438 0.0000 0.0000 -vt 0.3438 0.2344 0.0000 -vt 0.2500 0.2344 0.0000 -vt 0.7344 0.2344 0.0000 -vt 0.6406 0.2344 0.0000 -vt 0.6406 0.0000 0.0000 -vt 0.7344 -0.0000 0.0000 -vt 0.2500 0.2656 0.0000 -vt 0.3438 0.2656 0.0000 -vt 0.3438 0.5000 0.0000 -vt 0.2656 0.5000 0.0000 -vt 0.6406 0.2656 0.0000 -vt 0.7344 0.2656 0.0000 -vt 0.7344 0.5000 0.0000 -vt 0.6406 0.5000 0.0000 -vt 0.0938 0.5781 0.0000 -vt 0.0313 0.6406 0.0000 -vt 0.0000 0.6094 0.0000 -vt 0.0625 0.5469 0.0000 -vt 0.0313 0.9063 0.0000 -vt 0.0938 0.9688 0.0000 -vt 0.0625 1.0000 0.0000 -vt 0.0000 0.9375 0.0000 -vt 0.3750 0.9688 0.0000 -vt 0.4375 0.9063 0.0000 -vt 0.4688 0.9375 0.0000 -vt 0.4063 1.0000 0.0000 -vt 0.4375 0.6406 0.0000 -vt 0.3750 0.5781 0.0000 -vt 0.4063 0.5469 0.0000 -vt 0.4688 0.6094 0.0000 -vt 0.9097 0.6270 0.0000 -vt 0.8522 0.7042 0.0000 -vt 0.7593 0.7045 0.0000 -vt 0.7012 0.6278 0.0000 -vt 0.9689 0.8931 0.0000 -vt 0.8915 0.8357 0.0000 -vt 0.8911 0.7428 0.0000 -vt 0.9662 0.6847 0.0000 -vt 0.7025 0.9520 0.0000 -vt 0.7600 0.8750 0.0000 -vt 0.8529 0.8747 0.0000 -vt 0.9109 0.9512 0.0000 -vt 0.6436 0.6859 0.0000 -vt 0.7207 0.7435 0.0000 -vt 0.7210 0.8369 0.0000 -vt 0.6444 0.8955 0.0000 -vt 0.9884 0.9237 0.0000 -vt 0.9417 0.9708 0.0000 -vt 0.7813 0.2656 0.0000 -vt 0.7813 0.5000 0.0000 -vt 0.6721 0.9722 0.0000 -vt 0.6251 0.9265 0.0000 -vt 0.6237 0.6553 0.0000 -vt 0.6705 0.6082 0.0000 -vt 0.7813 -0.0000 0.0000 -vt 0.7813 0.2344 0.0000 -vt 0.9403 0.6072 0.0000 -vt 0.9874 0.6539 0.0000 -vt 0.7725 0.7362 0.0000 -vt 0.7728 0.8432 0.0000 -vt 0.7527 0.8235 0.0000 -vt 0.7524 0.7565 0.0000 -vt 0.8392 0.7360 0.0000 -vt 0.8595 0.7561 0.0000 -vt 0.8597 0.8227 0.0000 -vt 0.8396 0.8430 0.0000 -# 84 texture coords - -g headusOBJexport002 -usemtl Material__46 -s off -f 1/1/1 2/2/1 3/3/1 4/4/1 -f 5/5/2 6/6/2 7/7/2 8/8/2 -f 9/9/3 10/10/3 11/11/3 12/12/3 -f 13/13/4 14/14/4 15/15/4 16/16/4 -s 1 -f 17/17/5 18/18/6 19/19/7 20/20/8 -f 21/21/9 22/22/10 23/23/11 24/24/12 -f 25/25/13 26/26/14 27/27/15 28/28/16 -f 29/29/17 30/30/18 31/31/19 32/32/20 -f 12/33/21 15/34/22 18/35/6 17/36/5 -f 16/37/23 1/38/24 24/39/12 23/40/11 -f 2/41/25 5/42/26 26/43/14 25/44/13 -f 6/45/27 11/46/28 30/47/18 29/48/17 -s 2 -f 3/49/29 33/50/29 34/51/29 4/52/29 -f 7/53/29 35/54/29 36/55/29 8/56/29 -f 9/57/29 37/58/29 38/59/29 10/60/29 -f 13/61/29 39/62/29 40/63/29 14/64/29 -f 9/57/29 14/64/29 40/63/29 37/58/29 -f 4/52/29 34/51/29 39/62/29 13/61/29 -f 8/56/29 36/55/29 33/50/29 3/49/29 -f 10/60/29 38/59/29 35/54/29 7/53/29 -s 1 -f 25/25/13 28/28/16 3/3/30 2/2/25 -s 2 -f 10/60/29 7/53/29 32/65/29 31/66/29 -s 1 -f 17/17/5 20/20/8 9/9/31 12/12/21 -f 23/23/11 22/22/10 13/13/32 16/16/23 -f 11/67/28 10/68/33 31/31/19 30/30/18 -f 29/29/17 32/32/20 7/7/34 6/6/27 -s 2 -f 14/64/29 9/57/29 20/69/29 19/70/29 -s 1 -f 15/15/22 14/14/35 19/19/7 18/18/6 -s 2 -f 4/52/29 13/61/29 22/71/29 21/72/29 -s 1 -f 1/73/24 4/74/36 21/21/9 24/24/12 -s 2 -f 8/56/29 3/49/29 28/75/29 27/76/29 -s 1 -f 41/77/37 42/78/38 43/79/39 44/80/40 -f 45/81/41 41/77/37 34/51/42 33/50/43 -f 46/82/44 45/81/41 33/50/43 36/55/45 -f 47/83/46 46/82/44 36/55/45 35/54/47 -f 48/84/48 47/83/46 35/54/47 38/59/49 -f 42/78/38 48/84/48 38/59/49 37/58/50 -f 43/79/39 42/78/38 37/58/50 40/63/51 -f 44/80/40 43/79/39 40/63/51 39/62/52 -f 41/77/37 44/80/40 39/62/52 34/51/42 -f 48/84/48 45/81/41 46/82/44 47/83/46 -f 45/81/41 48/84/48 42/78/38 41/77/37 -f 16/37/23 15/34/22 12/33/21 1/38/24 -f 2/41/25 11/46/28 6/45/27 5/42/26 -f 11/46/28 2/41/25 1/38/24 12/33/21 -f 5/5/26 8/8/53 27/27/15 26/26/14 -# 46 polygons - diff --git a/1.7.2/resources/assets/alchemicalwizardry/models/bloodlevel.obj b/1.7.2/resources/assets/alchemicalwizardry/models/bloodlevel.obj deleted file mode 100644 index f301ee48..00000000 --- a/1.7.2/resources/assets/alchemicalwizardry/models/bloodlevel.obj +++ /dev/null @@ -1,64 +0,0 @@ -# 3ds Max Wavefront OBJ Exporter v0.97b - (c)2007 guruware -# File Created: 07.08.2013 20:12:01 - -mtllib bloodlevel.mtl - -# -# object headusOBJexport001 -# - -v -1.2846 0.0000 2.0630 -v -1.2890 0.0000 -2.0628 -v -2.0627 0.0000 -1.2993 -v -2.0628 0.0000 1.2848 -v 1.2845 0.0000 2.0630 -v -1.7911 0.0000 3.2857 -v 1.7911 0.0000 3.2857 -v 2.0628 0.0000 1.2848 -v 3.2856 0.0000 1.7912 -v 2.0628 0.0000 -1.2845 -v 3.2856 0.0000 -1.7910 -v 1.2846 0.0000 -2.0627 -v 1.7911 0.0000 -3.2855 -v -1.7907 0.0000 -3.2857 -v -3.2854 0.0000 -1.8107 -v -3.2856 0.0000 1.7912 -# 16 vertices - -vn 0.0000 1.0000 -0.0000 -# 1 vertex normals - -vt 0.3045 0.1861 0.0000 -vt 0.3038 0.8139 0.0000 -vt 0.1861 0.6977 0.0000 -vt 0.1861 0.3045 0.0000 -vt 0.6955 0.1861 0.0000 -vt 0.2274 -0.0000 0.0000 -vt 0.7726 -0.0000 0.0000 -vt 0.8139 0.3045 0.0000 -vt 1.0000 0.2274 0.0000 -vt 0.8139 0.6955 0.0000 -vt 1.0000 0.7725 0.0000 -vt 0.6955 0.8139 0.0000 -vt 0.7726 1.0000 0.0000 -vt 0.2275 1.0000 0.0000 -vt 0.0000 0.7755 0.0000 -vt 0.0000 0.2274 0.0000 -# 16 texture coords - -g headusOBJexport001 -usemtl Material__46 -s 1 -f 1/1/1 2/2/1 3/3/1 4/4/1 -f 5/5/1 1/1/1 6/6/1 7/7/1 -f 8/8/1 5/5/1 7/7/1 9/9/1 -f 10/10/1 8/8/1 9/9/1 11/11/1 -f 12/12/1 10/10/1 11/11/1 13/13/1 -f 2/2/1 12/12/1 13/13/1 14/14/1 -f 3/3/1 2/2/1 14/14/1 15/15/1 -f 4/4/1 3/3/1 15/15/1 16/16/1 -f 1/1/1 4/4/1 16/16/1 6/6/1 -f 12/12/1 5/5/1 8/8/1 10/10/1 -f 5/5/1 12/12/1 2/2/1 1/1/1 -# 11 polygons - diff --git a/BM_src/WayofTime/alchemicalWizardry/AlchemicalWizardry.java b/BM_src/WayofTime/alchemicalWizardry/AlchemicalWizardry.java index fbdf5a0d..64a796e8 100644 --- a/BM_src/WayofTime/alchemicalWizardry/AlchemicalWizardry.java +++ b/BM_src/WayofTime/alchemicalWizardry/AlchemicalWizardry.java @@ -83,6 +83,7 @@ import WayofTime.alchemicalWizardry.common.rituals.RitualEffectFlight; import WayofTime.alchemicalWizardry.common.rituals.RitualEffectGrowth; import WayofTime.alchemicalWizardry.common.rituals.RitualEffectHealing; import WayofTime.alchemicalWizardry.common.rituals.RitualEffectInterdiction; +import WayofTime.alchemicalWizardry.common.rituals.RitualEffectItemSuction; import WayofTime.alchemicalWizardry.common.rituals.RitualEffectJumping; import WayofTime.alchemicalWizardry.common.rituals.RitualEffectLava; import WayofTime.alchemicalWizardry.common.rituals.RitualEffectLeap; @@ -135,7 +136,7 @@ import cpw.mods.fml.common.registry.EntityRegistry; import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.common.registry.LanguageRegistry; -@Mod(modid = "AWWayofTime", name = "AlchemicalWizardry", version = "v1.0.1d") +@Mod(modid = "AWWayofTime", name = "AlchemicalWizardry", version = "v1.0.1e") @NetworkMod(clientSideRequired = true, serverSideRequired = false, channels = {"BloodAltar", "particle", "SetLifeEssence", "GetLifeEssence", "Ritual", "GetAltarEssence", "TESocket", "TEWritingTable", "CustomParticle", "SetPlayerVel", "SetPlayerPos", "TEPedestal", "TEPlinth", "TETeleposer", "InfiniteLPPath", "TEOrientor"}, packetHandler = PacketHandler.class) public class AlchemicalWizardry @@ -1329,6 +1330,7 @@ public class AlchemicalWizardry Rituals.ritualList.add(new Rituals(1, 20000,new RitualEffectAutoAlchemy(), "Ballad of Alchemy")); Rituals.ritualList.add(new Rituals(1, 1000000,new RitualEffectExpulsion(), "Aura of Expulsion")); Rituals.ritualList.add(new Rituals(1, 10000,new RitualEffectSupression(), "Dome of Supression")); + Rituals.ritualList.add(new Rituals(1, 25000, new RitualEffectItemSuction(),"Call of the Zephyr")); //Rituals.ritualList.add(new Rituals(1,100,new RitualEffectApiaryOverclock(),"Apiary Overclock")); } diff --git a/BM_src/WayofTime/alchemicalWizardry/common/items/sigil/DivinationSigil.java b/BM_src/WayofTime/alchemicalWizardry/common/items/sigil/DivinationSigil.java index 10f491ec..188375e0 100644 --- a/BM_src/WayofTime/alchemicalWizardry/common/items/sigil/DivinationSigil.java +++ b/BM_src/WayofTime/alchemicalWizardry/common/items/sigil/DivinationSigil.java @@ -80,7 +80,7 @@ public class DivinationSigil extends Item implements ArmourUpgrade ItemStack thisItemStack) { // TODO Auto-generated method stub - player.addPotionEffect(new PotionEffect(Potion.nightVision.id, 400, 9)); + player.addPotionEffect(new PotionEffect(Potion.nightVision.id, 400, 9,true)); } @Override diff --git a/BM_src/WayofTime/alchemicalWizardry/common/items/sigil/LavaSigil.java b/BM_src/WayofTime/alchemicalWizardry/common/items/sigil/LavaSigil.java index 972c9961..87fada08 100644 --- a/BM_src/WayofTime/alchemicalWizardry/common/items/sigil/LavaSigil.java +++ b/BM_src/WayofTime/alchemicalWizardry/common/items/sigil/LavaSigil.java @@ -1,12 +1,7 @@ package WayofTime.alchemicalWizardry.common.items.sigil; -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.api.items.interfaces.ArmourUpgrade; -import WayofTime.alchemicalWizardry.common.items.EnergyBattery; -import WayofTime.alchemicalWizardry.common.items.EnergyItems; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; +import java.util.List; + import net.minecraft.block.Block; import net.minecraft.client.renderer.texture.IconRegister; import net.minecraft.entity.player.EntityPlayer; @@ -15,11 +10,21 @@ import net.minecraft.item.ItemBucket; import net.minecraft.item.ItemStack; import net.minecraft.potion.Potion; import net.minecraft.potion.PotionEffect; +import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumMovingObjectType; import net.minecraft.util.MovingObjectPosition; import net.minecraft.world.World; - -import java.util.List; +import net.minecraftforge.common.ForgeDirection; +import net.minecraftforge.fluids.FluidRegistry; +import net.minecraftforge.fluids.FluidStack; +import net.minecraftforge.fluids.IFluidHandler; +import WayofTime.alchemicalWizardry.AlchemicalWizardry; +import WayofTime.alchemicalWizardry.api.items.interfaces.ArmourUpgrade; +import WayofTime.alchemicalWizardry.common.items.EnergyBattery; +import WayofTime.alchemicalWizardry.common.items.EnergyItems; +import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; public class LavaSigil extends ItemBucket implements ArmourUpgrade { @@ -106,6 +111,26 @@ public class LavaSigil extends ItemBucket implements ArmourUpgrade return par1ItemStack; } + TileEntity tile = par2World.getBlockTileEntity(i, j, k); + if(tile instanceof IFluidHandler) + { + FluidStack fluid = new FluidStack(FluidRegistry.LAVA,1000); + int amount = ((IFluidHandler) tile).fill(ForgeDirection.getOrientation(movingobjectposition.sideHit), fluid, false); + + if(amount>0) + { + ((IFluidHandler) tile).fill(ForgeDirection.getOrientation(movingobjectposition.sideHit), fluid, true); + if (!par3EntityPlayer.capabilities.isCreativeMode) + { + if (!EnergyItems.syphonBatteries(par1ItemStack, par3EntityPlayer, getEnergyUsed())) + { + } + } + } + + return par1ItemStack; + } + if (this.isFull == 0) { //Empty @@ -271,7 +296,7 @@ public class LavaSigil extends ItemBucket implements ArmourUpgrade ItemStack thisItemStack) { // TODO Auto-generated method stub - player.addPotionEffect(new PotionEffect(Potion.fireResistance.id, 2, 9)); + player.addPotionEffect(new PotionEffect(Potion.fireResistance.id, 2, 9,true)); player.extinguish(); } diff --git a/BM_src/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfHaste.java b/BM_src/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfHaste.java index b71559b4..4811d336 100644 --- a/BM_src/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfHaste.java +++ b/BM_src/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfHaste.java @@ -188,7 +188,7 @@ public class SigilOfHaste extends EnergyItems implements ArmourUpgrade itemStack.setTagCompound(new NBTTagCompound()); } - player.addPotionEffect(new PotionEffect(AlchemicalWizardry.customPotionBoost.id, 3, 1)); + player.addPotionEffect(new PotionEffect(AlchemicalWizardry.customPotionBoost.id, 3, 1,true)); } @Override diff --git a/BM_src/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfHolding.java b/BM_src/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfHolding.java index 42c3ad96..5ec8951c 100644 --- a/BM_src/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfHolding.java +++ b/BM_src/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfHolding.java @@ -149,6 +149,7 @@ public class SigilOfHolding extends EnergyItems if (itemTag == null) { itemStack.setTagCompound(new NBTTagCompound()); + return null; } ItemStack[] inv = new ItemStack[9]; diff --git a/BM_src/WayofTime/alchemicalWizardry/common/items/sigil/VoidSigil.java b/BM_src/WayofTime/alchemicalWizardry/common/items/sigil/VoidSigil.java index 01800e37..7188c6d8 100644 --- a/BM_src/WayofTime/alchemicalWizardry/common/items/sigil/VoidSigil.java +++ b/BM_src/WayofTime/alchemicalWizardry/common/items/sigil/VoidSigil.java @@ -1,5 +1,22 @@ package WayofTime.alchemicalWizardry.common.items.sigil; +import java.util.List; + +import net.minecraft.block.material.MaterialLiquid; +import net.minecraft.client.renderer.texture.IconRegister; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.IInventory; +import net.minecraft.item.ItemBucket; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.EnumMovingObjectType; +import net.minecraft.util.MovingObjectPosition; +import net.minecraft.world.World; +import net.minecraftforge.common.ForgeDirection; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.event.entity.player.FillBucketEvent; +import net.minecraftforge.fluids.FluidStack; +import net.minecraftforge.fluids.IFluidHandler; import WayofTime.alchemicalWizardry.AlchemicalWizardry; import WayofTime.alchemicalWizardry.api.items.interfaces.ArmourUpgrade; import WayofTime.alchemicalWizardry.common.items.EnergyBattery; @@ -7,19 +24,6 @@ import WayofTime.alchemicalWizardry.common.items.EnergyItems; import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.material.MaterialLiquid; -import net.minecraft.client.renderer.texture.IconRegister; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.IInventory; -import net.minecraft.item.ItemBucket; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumMovingObjectType; -import net.minecraft.util.MovingObjectPosition; -import net.minecraft.world.World; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.event.entity.player.FillBucketEvent; - -import java.util.List; public class VoidSigil extends ItemBucket implements ArmourUpgrade { @@ -185,6 +189,25 @@ public class VoidSigil extends ItemBucket implements ArmourUpgrade { return par1ItemStack; } + + TileEntity tile = par2World.getBlockTileEntity(i, j, k); + if(tile instanceof IFluidHandler) + { + FluidStack amount = ((IFluidHandler) tile).drain(ForgeDirection.getOrientation(movingobjectposition.sideHit), 1000, false); + + if(amount != null && amount.amount > 0) + { + ((IFluidHandler) tile).drain(ForgeDirection.getOrientation(movingobjectposition.sideHit), 1000, true); + if (!par3EntityPlayer.capabilities.isCreativeMode) + { + if (!EnergyItems.syphonBatteries(par1ItemStack, par3EntityPlayer, getEnergyUsed())) + { + } + } + } + + return par1ItemStack; + } if (this.isFull == 0) { diff --git a/BM_src/WayofTime/alchemicalWizardry/common/items/sigil/WaterSigil.java b/BM_src/WayofTime/alchemicalWizardry/common/items/sigil/WaterSigil.java index f5334bc1..3a5fb129 100644 --- a/BM_src/WayofTime/alchemicalWizardry/common/items/sigil/WaterSigil.java +++ b/BM_src/WayofTime/alchemicalWizardry/common/items/sigil/WaterSigil.java @@ -1,11 +1,7 @@ package WayofTime.alchemicalWizardry.common.items.sigil; -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.api.items.interfaces.ArmourUpgrade; -import WayofTime.alchemicalWizardry.common.items.EnergyItems; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; +import java.util.List; + import net.minecraft.block.Block; import net.minecraft.client.renderer.texture.IconRegister; import net.minecraft.entity.player.EntityPlayer; @@ -14,11 +10,20 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.potion.Potion; import net.minecraft.potion.PotionEffect; +import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumMovingObjectType; import net.minecraft.util.MovingObjectPosition; import net.minecraft.world.World; - -import java.util.List; +import net.minecraftforge.common.ForgeDirection; +import net.minecraftforge.fluids.FluidRegistry; +import net.minecraftforge.fluids.FluidStack; +import net.minecraftforge.fluids.IFluidHandler; +import WayofTime.alchemicalWizardry.AlchemicalWizardry; +import WayofTime.alchemicalWizardry.api.items.interfaces.ArmourUpgrade; +import WayofTime.alchemicalWizardry.common.items.EnergyItems; +import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; public class WaterSigil extends ItemBucket implements ArmourUpgrade { @@ -112,6 +117,26 @@ public class WaterSigil extends ItemBucket implements ArmourUpgrade { return par1ItemStack; } + + TileEntity tile = par2World.getBlockTileEntity(i, j, k); + if(tile instanceof IFluidHandler) + { + FluidStack fluid = new FluidStack(FluidRegistry.WATER,1000); + int amount = ((IFluidHandler) tile).fill(ForgeDirection.getOrientation(movingobjectposition.sideHit), fluid, false); + + if(amount>0) + { + ((IFluidHandler) tile).fill(ForgeDirection.getOrientation(movingobjectposition.sideHit), fluid, true); + if (!par3EntityPlayer.capabilities.isCreativeMode) + { + if (!EnergyItems.syphonBatteries(par1ItemStack, par3EntityPlayer, getEnergyUsed())) + { + } + } + } + + return par1ItemStack; + } if (this.isFull == 0) { @@ -254,7 +279,7 @@ public class WaterSigil extends ItemBucket implements ArmourUpgrade { // TODO Auto-generated method stub //PotionEffect effect = new PotionEffect(Potion.waterBreathing.id, 2,9); - player.addPotionEffect(new PotionEffect(Potion.waterBreathing.id, 2, 9)); + player.addPotionEffect(new PotionEffect(Potion.waterBreathing.id, 2, 9,true)); } @Override diff --git a/BM_src/WayofTime/alchemicalWizardry/common/rituals/RitualEffectCrushing.java b/BM_src/WayofTime/alchemicalWizardry/common/rituals/RitualEffectCrushing.java index 824c1a79..ca2a0f9e 100644 --- a/BM_src/WayofTime/alchemicalWizardry/common/rituals/RitualEffectCrushing.java +++ b/BM_src/WayofTime/alchemicalWizardry/common/rituals/RitualEffectCrushing.java @@ -249,7 +249,7 @@ public class RitualEffectCrushing extends RitualEffect { int blockID = world.getBlockId(x + i, y + 1, z + j); Block block = Block.blocksList[blockID]; - if(block == Block.blockEmerald) + if(block == Block.blockEmerald || block == Block.blockDiamond) { index++; } diff --git a/BM_src/WayofTime/alchemicalWizardry/common/rituals/RitualEffectItemSuction.java b/BM_src/WayofTime/alchemicalWizardry/common/rituals/RitualEffectItemSuction.java new file mode 100644 index 00000000..2e9cccb2 --- /dev/null +++ b/BM_src/WayofTime/alchemicalWizardry/common/rituals/RitualEffectItemSuction.java @@ -0,0 +1,164 @@ +package WayofTime.alchemicalWizardry.common.rituals; + +import java.util.ArrayList; +import java.util.List; + +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.IInventory; +import net.minecraft.item.ItemStack; +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; +import net.minecraft.server.MinecraftServer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; +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 RitualEffectItemSuction 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(); + TileEntity tile = world.getBlockTileEntity(x, y + 1, z); + IInventory tileEntity; + + if (tile instanceof IInventory) + { + tileEntity = (IInventory) tile; + } else + { + return; + } + + if (tileEntity.getSizeInventory() <= 0) + { + return; + } + + if (currentEssence < this.getCostPerRefresh()*100) + { + EntityPlayer entityOwner = MinecraftServer.getServer().getConfigurationManager().getPlayerForUsername(owner); + + if (entityOwner == null) + { + return; + } + + entityOwner.addPotionEffect(new PotionEffect(Potion.confusion.id, 80)); + } else + { + List itemDropList = SpellHelper.getItemsInRange(world, x+0.5f, y+0.5f, z+0.5f, 10, 10); + + int count = 0; + + if (itemDropList != null) + { + int invSize = tileEntity.getSizeInventory(); + + for (EntityItem itemEntity : itemDropList) + { + ItemStack item = itemEntity.getEntityItem(); + ItemStack copyStack = itemEntity.getEntityItem().copy(); + + count++; + + for (int n = 0; n < invSize; n++) + { + if (tileEntity.isItemValidForSlot(n, copyStack) && copyStack.stackSize != 0) + { + ItemStack itemStack = tileEntity.getStackInSlot(n); + + if (itemStack == null) + { + tileEntity.setInventorySlotContents(n, item); + copyStack.stackSize = 0; + } else + { + if (itemStack.getItem().equals(copyStack.getItem())) + { + int itemSize = itemStack.stackSize; + int copySize = copyStack.stackSize; + int maxSize = itemStack.getMaxStackSize(); + + if (copySize + itemSize < maxSize) + { + copyStack.stackSize = 0; + itemStack.stackSize = itemSize + copySize; + tileEntity.setInventorySlotContents(n, itemStack); + } else + { + copyStack.stackSize = itemSize + copySize - maxSize; + itemStack.stackSize = maxSize; + } + } + } + } + } + + if(copyStack.stackSize<=0) + { + itemEntity.setDead(); + } + + if (copyStack.stackSize > 0) + { + world.spawnEntityInWorld(new EntityItem(world, x + 0.4, y + 2, z + 0.5, copyStack)); + //flag=true; + } + } + } + + if(count>0) + { + data.currentEssence = currentEssence - this.getCostPerRefresh()*Math.min(count, 100); + data.markDirty(); + return; + } + } + } + + @Override + public int getCostPerRefresh() + { + return 5; + } + + @Override + public List getRitualComponentList() + { + ArrayList suctionRitual = new ArrayList(); + suctionRitual.add(new RitualComponent(2, 0, 0, RitualComponent.AIR)); + suctionRitual.add(new RitualComponent(-2, 0, 0, RitualComponent.AIR)); + suctionRitual.add(new RitualComponent(0, 0, 2, RitualComponent.AIR)); + suctionRitual.add(new RitualComponent(0, 0, -2, RitualComponent.AIR)); + suctionRitual.add(new RitualComponent(1, 1, 1, RitualComponent.AIR)); + suctionRitual.add(new RitualComponent(1, 1, -1, RitualComponent.AIR)); + suctionRitual.add(new RitualComponent(-1, 1, 1, RitualComponent.AIR)); + suctionRitual.add(new RitualComponent(-1, 1, -1, RitualComponent.AIR)); + suctionRitual.add(new RitualComponent(1, -1, 0, RitualComponent.AIR)); + suctionRitual.add(new RitualComponent(-1, -1, 0, RitualComponent.AIR)); + suctionRitual.add(new RitualComponent(0, -1, 1, RitualComponent.AIR)); + suctionRitual.add(new RitualComponent(0, -1, -1, RitualComponent.AIR)); + return suctionRitual; + } +} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellHelper.java b/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellHelper.java index e4dcdb77..390a69c3 100644 --- a/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellHelper.java +++ b/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellHelper.java @@ -7,6 +7,7 @@ import java.util.Random; import net.minecraft.block.Block; import net.minecraft.block.BlockFluid; import net.minecraft.entity.Entity; +import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.item.ItemBlock; @@ -233,4 +234,9 @@ public class SpellHelper PacketDispatcher.sendPacketToPlayer(PacketHandler.getPlayerVelocitySettingPacket(xVel, yVel, zVel), (Player)player); } + + public static List getItemsInRange(World world, double posX, double posY, double posZ, double horizontalRadius, double verticalRadius) + { + return world.getEntitiesWithinAABB(EntityItem.class, AxisAlignedBB.getBoundingBox(posX-0.5f, posY-0.5f, posZ-0.5f, posX + 0.5f, posY + 0.5f, posZ + 0.5f).expand(horizontalRadius, verticalRadius, horizontalRadius)); + } } diff --git a/BM_src/WayofTime/alchemicalWizardry/common/tileEntity/TEWritingTable.java b/BM_src/WayofTime/alchemicalWizardry/common/tileEntity/TEWritingTable.java index 04601957..d5046c66 100644 --- a/BM_src/WayofTime/alchemicalWizardry/common/tileEntity/TEWritingTable.java +++ b/BM_src/WayofTime/alchemicalWizardry/common/tileEntity/TEWritingTable.java @@ -14,9 +14,12 @@ import net.minecraft.network.packet.Packet; import net.minecraft.network.packet.Packet250CustomPayload; import net.minecraft.tileentity.TileEntity; import net.minecraftforge.common.ForgeDirection; +import net.minecraftforge.oredict.OreDictionary; import WayofTime.alchemicalWizardry.ModItems; import WayofTime.alchemicalWizardry.api.alchemy.AlchemicalPotionCreationHandler; +import WayofTime.alchemicalWizardry.api.alchemy.AlchemyRecipe; import WayofTime.alchemicalWizardry.api.alchemy.AlchemyRecipeRegistry; +import WayofTime.alchemicalWizardry.api.items.interfaces.IBloodOrb; import WayofTime.alchemicalWizardry.common.IBindingAgent; import WayofTime.alchemicalWizardry.common.ICatalyst; import WayofTime.alchemicalWizardry.common.IFillingAgent; @@ -751,7 +754,14 @@ public class TEWritingTable extends TileEntity implements ISidedInventory progress = 0; this.setInventorySlotContents(6, getResultingItemStack()); - this.decrementSlots(AlchemyRecipeRegistry.getRecipeForItemStack(getResultingItemStack())); + ItemStack[] composedRecipe = new ItemStack[5]; + + for (int i = 0; i < 5; i++) + { + composedRecipe[i] = inv[i + 1]; + } + + this.decrementSlots(this.getRecipeForItems(composedRecipe, inv[0])); if (worldObj != null) { @@ -779,7 +789,14 @@ public class TEWritingTable extends TileEntity implements ISidedInventory result.stackSize += getStackInSlot(6).stackSize; this.setInventorySlotContents(6, result); - this.decrementSlots(AlchemyRecipeRegistry.getRecipeForItemStack(getResultingItemStack())); + ItemStack[] composedRecipe = new ItemStack[5]; + + for (int i = 0; i < 5; i++) + { + composedRecipe[i] = inv[i + 1]; + } + + this.decrementSlots(this.getRecipeForItems(composedRecipe, inv[0])); if (worldObj != null) { @@ -837,7 +854,7 @@ public class TEWritingTable extends TileEntity implements ISidedInventory return true; } - public void decrementSlots(ItemStack[] recipe) + public void decrementSlots(ItemStack[] recipe) //TODO Fix this. This doesn't work. { boolean[] decrementedList = new boolean[]{false,false,false,false,false}; @@ -854,13 +871,45 @@ public class TEWritingTable extends TileEntity implements ISidedInventory { ItemStack testStack = this.getStackInSlot(j+1); - if(testStack != null && testStack.isItemEqual(decStack) && !(decrementedList[j])) + if(testStack != null && (testStack.isItemEqual(decStack) || (testStack.getItem() == decStack.getItem() && decStack.getItemDamage() == OreDictionary.WILDCARD_VALUE)) && !(decrementedList[j])) { - this.decrStackSize(j+1, 1); + if(testStack.getItem().hasContainerItem()) + { + this.inv[j+1] = testStack.getItem().getContainerItemStack(testStack); + }else + { + this.decrStackSize(j+1, 1); + } + decrementedList[j] = true; break; } } } } + + public ItemStack[] getRecipeForItems(ItemStack[] recipe, ItemStack bloodOrb) + { + if (bloodOrb == null) + { + return null; + } + + if (!(bloodOrb.getItem() instanceof IBloodOrb)) + { + return null; + } + + int bloodOrbLevel = ((IBloodOrb) bloodOrb.getItem()).getOrbLevel(); + + for (AlchemyRecipe ar : AlchemyRecipeRegistry.recipes) + { + if (ar.doesRecipeMatch(recipe, bloodOrbLevel)) + { + return ar.getRecipe(); + } + } + + return null; + } } \ No newline at end of file